専用永続的ソケットとは、ソケット接続が特定のクライアント ID
に割り当てられており、接続が切断されるまでその特定クライアント ID に占有されることを意味します。
一般に、専用永続的ソケット接続は単一のアプリケーションによって連続的に使用 (または再使用) されます。ただし、専用永続的ソケット接続は、同じクライアント ID を使用してソケットを取得できる複数アプリケーションによっても、連続的に使用できます。
異なる複数のアプリケーションが同じクライアント ID を使用して同時に専用永続的ソケット接続を使用しようとした場合は、最初のアプリケーションによる試行が成功します。
最初のアプリケーションがまだ接続を使用しているときに他のアプリケーションが続けて試行すると、IMS™ Connect から重複クライアント・エラー (DUPCLNT) を受け取ります。
重複クライアント・エラーは、別の場合にも起こる可能性があります。
それは、指定のクライアント ID を使用して専用永続的ソケット接続を取得したアプリケーションが、複数の
WebSphere® Application Server インスタンスから複数の専用永続的ソケット接続が発生する環境で実行されている場合です。
例えば、ワークロード・マネージャーにより管理される複数の
WebSphere Application Server インスタンスを持つ環境では、重複クライアント・エラーが発生することがあります。
推奨: ご使用のアプリケーションが専用永続的ソケット接続を使用している場合は、このタイプの環境にデプロイしないでください。
専用永続的ソケット接続は、
WebSphere Application Server の単一インスタンスが単一の IMS Connect に接続される環境で使用するためのものです。
状況によっては、
WebSphere Application Server の単一のインスタンスを IMS Connect の複数のインスタンスに接続できます。
この構成で、
WebSphere Application Server と IMS Connect 間でシスプレックス・ディストリビューターが使用される場合、以下の対話はサポートされません。
- 2 フェーズ・コミット・リカバリー
- IMS 会話型トランザクション
サポートされるコミット・モードおよび対話
専用永続的ソケットは、コミット・モード
0 の対話を実行する
Java
アプリケーションでのみ使用することができます。
表 1. ソケット・タイプ別のサポートされるコミット・モード、対話 Verb、および同期レベル| コミット・モード |
ソケット・タイプ |
対話 Verb |
クライアント ID |
同期レベル |
| CM1 |
共有可能永続的 |
- SYNC_END_CONVERSATION (会話型トランザクションの場合)
- SYNC_SEND_RECEIVE
|
自動生成および管理 |
NONE または CONFIRM |
| CM0 |
共有可能永続的 |
- SYNC_SEND
- SYNC_SEND_RECEIVE
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
- SYNC_RECEIVE_CALLOUT (非管理コールアウト・プログラミング・モデルの場合)
|
自動生成および管理 |
CONFIRM |
| 専用永続的 |
- SYNC_SEND
- SYNC_SEND_RECEIVE
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
- SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
|
クライアント・アプリケーションにより指定 (clientID プロパティー) |
SYNC_RECEIVE_ASYNCOUTPUT 対話 Verb は使用すべきでないため、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 対話 Verb に置き換えられました。
メッセージの取得
専用永続的ソケット上での SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT および SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 対話 (および非推奨の SYNC_RECEIVE_ASYNCOUTPUT 対話) では、クライアント・アプリケーションは以下のソースからメッセージを取得することができます。
- 失敗したコミット・モード 0 の対話の結果として、IMS OTMA 非同期出力キューに置かれたメッセージ
- 代替プログラム連絡ブロック (ALTPCB) への挿入を実行した IMS アプリケーションからのメッセージ
- 共有可能ソケット接続で実行されたトランザクションの出力の転送からのメッセージ
このようなメッセージを取得するには、クライアント・アプリケーションは、非同期出力メッセージがキューイングされている tpipe を表すクライアント ID を提供する必要があります。
専用永続的ソケットで対話を行ったときに配信されなかった出力メッセージは、
転送またはパージすることはできません。
OTMA Super Member を使用せずに複数の IMS システムを使用している場合は、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 対話を使用しても、すべての使用可能な出力メッセージを取得できないことがあります。
専用永続的ソケット接続
専用永続的ソケット接続は、少なくとも以下のカスタム・プロパティーの値を使用して、IMS
接続ファクトリーによって作成されます。
- ホスト名: IMS
Connect を実行しているシステムの TCP/IP ホスト名です。
- ポート番号 : 関連するポート番号
- データ・ストア名: ターゲットの IMS の名前
- CM0 専用: true
CM0Dedicated プロパティーの値が true に設定されていると、接続ファクトリーが専用永続的ソケット接続を作成します。
同じ IMS
Connect インスタンスに対する専用永続的ソケットを作成するように構成されている
接続ファクトリーが複数ある場合、特定のクライアント ID へのソケットを専用にできるのは、
一度に 1 つの接続ファクトリーのみです。
例えば、接続ファクトリーが CLIENT01 というクライアント ID 専用のソケット接続を正常に作成したとします。
2 番目の接続ファクトリーも、CLIENT01 専用のソケット接続を作成しようとします。
最初の接続ファクトリーによって作成されたソケット接続がまだ IMS Connect に接続されている場合、2 番目の接続では次の例外を受け取ります。
javax.resource.spi.EISSystemException: ICO0001E:
com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@23766050.processOutputOTMAMsg
(byte [], InteractionSpec,Record) error. IMS Connect returned error: RETCODE=[8],
REASONCODE=[DUPECLNT].
Duplicate client ID was used; the client ID is currently in use.