ソケット接続には、共用可能な永続的ソケット、および専用永続的ソケットの 2 つがあり、非同期出力を検索するために使用できます。非同期出力の検索方法は、使用するソケット接続によって異なります。非同期出力を検索できる interactionVerb プロパティーは、SYNC_RECEIVE_ASYNCOUTPUT、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT、 および SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT です。
これらの 3 つの interactionVerb プロパティーはすべてコミット・モード 0 を必要とし、共用可能な永続的ソケット接続と専用永続的ソケット接続の両方で 使用可能です。interactionVerb プロパティーを呼び出す方法は、共用可能な 永続的ソケット接続または専用永続的ソケット接続で異なります。
注: SYNC_RECEIVE_ASYNCOUTPUT または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT に 機能の違いはありません。しかし、IMS リソース・アダプター 9.1.0.1 および将来の リリースでは、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT を使用することを お勧めします。
SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT と SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT の 違いは、IMS Connect が IMS OTMA によってメッセージが戻されるのを待つかどうかです。 SYNC_RECEIVE_ASYNCOUTPUT または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT の 対話では、検索要求が出されたときに IMS OTMA 非同期保留キューに非同期出力がない場合、IMS Connect は、クライアント・アプリケーションで指定した 実行タイムアウト値に応じて、即時にタイムアウト通知を戻します。(少ない タイムアウト値をお勧めします。) SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT の 対話では、検索要求が出されたときに IMS OTMA 非同期保留キューに非同期出力がない場合、IMS Connect は、OTMA がメッセージを戻すのを、対話の executionTimeout プロパティーで指定された時間の長さの間待ちます。
専用永続的ソケット接続での非同期出力の検索
専用永続的ソケットでキューに入れられた出力メッセージを検索するには、 クライアント・アプリケーションは、IMSInteractionSpec の interactionVerb プロパティーを SYNC_RECEIVE_ASYNCOUTPUT、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT、 または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT に設定して、コミット・モード 0 対話を実行する必要があります。
また、IMSInteractionSpec の該当する interactionVerb プロパティーを 設定して、専用永続的ソケット接続でコミット・モード 0 対話を実行する他に、 クライアント・アプリケーションは、IMSConnectionSpec の clientID プロパティーの 値を指定する必要があります。 clientID は、非同期出力をキューに入れる関連 TPIPE を表すため、必要となります。
専用永続的ソケットで実行されるコミット・モード 0 対話から出力メッセージを 検索する場合、clientID の値は、元のコミット・モード 0 対話に指定された値に なります。代替 PCB 上で出力メッセージをリトリーブする場合、clientID の値は代替 PCB の名前になります。定義された宛先に転送された出力メッセージを検索するには、clientID の 値は、reRouteName プロパティーの前に指定された値になります。
共用可能な永続的ソケット接続での非同期出力の検索
共用可能な永続的ソケット接続で配信されなかった出力メッセージを 検索するには、クライアント・アプリケーションは、IMSInteractionSpec の interactionVerb プロパティーを SYNC_RECEIVE_ASYNCOUTPUT、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT、 または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT に設定して、共用可能な永続的ソケットでコミット・モード 0 対話を実行する必要があります。
共用可能な永続的ソケットで非同期出力を検索するには、同じクライアント・アプリケーション内で interactionVerb プロパティーを呼び出す必要があります。 interactionVerb を同じクライアント・アプリケーション内で呼び出さなければならないのは、IMS リソース・アダプターが共用可能な ソケット接続のクライアント ID を自動的に生成するためです。生成された この clientID は、ソケット接続、および非同期出力がキューに入れられるそれに関連した OTMA TPIPE を表し、また識別します。新規のクライアント ID が、新規接続を確立すると生成されます。 TPIPE でキューに入れられるメッセージは、生成された clientID に 関連付けられます。クライアント・アプリケーションによって実行された対話から、キューに入れられた非同期出力を検索するには、関連付けられ、 生成された正しい clientID を持つ同じ共用可能なソケット接続が使用されるように、 同じクライアント・アプリケーション内で interactionVerb を呼び出す必要があります。
共用可能な永続的ソケットで送信される対話では、IMSConnectionSpec の clientID プロパティーの値を指定してはなりません。ユーザーが指定する clientID を共用可能なソケット接続で使用することはきません。共用可能な 永続的ソケットで非同期出力を検索する場合は、生成された clientID のみが 使用されます。