共有可能永続的ソケットは、コミット・モード
1 (CM1) またはコミット・モード 0 (CM0)
の対話を実行する、複数のアプリケーションによって共有 (連続再利用) できるソケットです。
共有可能永続的ソケットでコミット・モード 0 の対話を実行するアプリケーションの場合、IMS™ TM リソース・アダプターは、HWS という接頭部が付いたクライアント ID を自動的に生成します。
このクライアント ID は、ソケット接続とそれに関連した OTMA tpipe を表し、また識別します。
このタイプのソケットでは、
IMS TM リソース・アダプターにより生成されたクライアント ID
のみ許可されます。 共有可能永続的ソケットで
CM0 として定義されていない接続でクライアント ID を指定すると、例外がスローされ、クライアントに戻ります。
制約事項: 代替 PCB にメッセージを挿入する IMS アプリケーション・プログラムでは、代替 PCB の名前を HWS で始めてはなりません。
IMS TM リソース・アダプターは HWS メッセージを検索できません。
ヒント: クライアント ID は、代替クライアント ID とは異なります。
代替クライアント ID は IMSInteractionSpec クラスのプロパティーです。
代替クライアント ID は、OTMA 保留キュー (tpipe) から非同期出力メッセージを検索するために使用します。
サポートされるコミット・モードおよび対話
共有可能永続的ソケットは、コミット・モード 1 またはコミット・モード 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 に置き換えられました。
メッセージの取得
共有可能永続的ソケットで CM0 対話を実行する Java
クライアントに送信できなかった出力メッセージは、後で取得するためにキューに入れることができます。
2 次出力は常に CM0 出力として処理され、後で取得するために再キューイングすることができます。
共有可能永続的ソケットで
CM1
または CM0 対話がプログラム間切り替えを実行する状態を考えてみましょう。
両方のプログラムとも出力を戻した場合、戻った 2 番目の出力メッセージは CM0
出力として処理されます。
このメッセージをもう一度キューに入れ、後で検索することができます。
共有可能永続的ソケットで実行される CM1 対話または CM0 対話がプログラム間の切り替えをおこし、別の CM0 対話が呼び出され、その結果として作成される 2 次出力 (これは常に CM0) がある場合、その出力を後で取得するために再キューイングすることができます。
IMS
OTMA 非同期保留キューまたは tpipe でキューに入れられた、配信されなかった
出力メッセージの取得を、代替クライアント ID
を使用して行わない場合には、元の対話および取得を、同じソケット接続を使用して同じクライアント・アプリケーション内で呼び出す必要があります。
共有可能ソケット接続および関連する
OTMA tpipe を識別する同じ生成済みクライアント ID
を、元の対話と、その対話からのすべての非同期出力の取得の両方に使用しなければなりません。
共有可能永続的ソケットでは、
配信されなかった出力メッセージを処理できる方法が複数あります。
- 非同期出力メッセージが存在する OTMA 保留キューの名前を IMSInteractionSpec
オブジェクトの代替クライアント ID プロパティー値として指定することによって、配信不能の出力を検索します。
- 配信されなかった出力をパージします。配信されなかった出力メッセージをパージするには、IMSInteractionSpec
purgeAsyncOutput プロパティーの値を true に設定する必要があります。この入力プロパティーは、IMS
Connect が配信されなかった入出力 PCB 出力をパージするかどうかを決定します。
purgeAsyncOutput プロパティーは、SYNC_SEND_RECEIVE 対話 verb でのみ
有効です。このプロパティーが SYNC_SEND_RECEIVE で指定されていない場合、
デフォルトは true です。
- メッセージを別の宛先に転送します。IMSInteractionSpec reRoute プロパティーを true に設定すると、配信されなかった出力メッセージを別の宛先に転送することができます。
このプロパティーが有効なのは、SYNC_SEND_RECEIVE
および SYNC_SEND の対話 Verb についてのみです。reRoute プロパティーを true
に設定すると、配信されなかった出力メッセージが、通常はクライアント・アプリケーションによって
指定される、名前が指定された宛先にキューイングされます。
この宛先は IMSInteractionSpec
reRouteName プロパティーで指定します。reRoute プロパティーが true に設定され、reRouteName が
指定されていない場合は、reRouteName プロパティーの値は、IMS
Connect 構成ファイルで指定された値になります。IMS
Connect 構成ファイルで値が指定されていない場合は、デフォルト値の HWS$DEF が使用されます。
共有可能永続的ソケット接続
共有可能永続的ソケット接続は、以下のカスタム・プロパティーに必要な
値を使用して、IMS
接続ファクトリーによって作成されます。
- ホスト名: IMS
Connect を実行しているシステムの TCP/IP ホスト名です。
- ポート番号 : 関連するポート番号
- データ・ストア名: ターゲットの IMS の名前
- CM0 専用: false
CM0Dedicated プロパティーのデフォルト値は
false です。
このデフォルト値では、CM0Dedicated プロパティーが明示的に
true に設定されていない限り、接続ファクトリーに共有可能永続的ソケット接続を作成させます。