ソケット接続には、共用可能永続的ソケットと専用永続的ソケットの 2 種類があり、 非同期出力を検索するために使用できます。非同期出力メッセージの検索方法は、使用するソケット接続の種類によって異なります。非同期出力を検索するために使用できる interactionVerb プロパティー値は、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT および SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT (古い SYNC_RECEIVE_ASYNCOUTPUT と一緒に使用) です。
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_NOWAIT 対話では、可能な最短の実行タイムアウト値である 10 をお勧めします。
SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 対話では、検索要求が出されたときに IMS OTMA 非同期保留キューに非同期出力がない場合、IMS Connect は、OTMA がメッセージを戻すのを、対話の executionTimeout プロパティーで指定された時間の長さの間待ちます。実行タイムアウトの時間が過ぎたときに保留キューに依然として非同期出力がない場合、IMS Connect は実行タイムアウト・エラーを戻します。 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 対話では、可能な最短の値ではなく、適切な実行タイムアウト値を選択してください。
これらの 3 つの interactionVerb プロパティー値はすべてコミット・モード 0 を必要とし、共用可能永続的ソケットと専用永続的ソケットの両方の接続で使用可能です。さらに、IMSInteractionSpec プロパティーの purgeAsycOutput、reRoute、および reRouteName は、上記 3 つの interactionVerbs を使用する対話には適用されず、IMS Connector for Java によって無視されます。 interactionVerb プロパティーを呼び出す方法は、共用可能永続的ソケット接続と専用永続的ソケット接続で異なります。
専用永続的ソケット接続での非同期出力の検索
専用永続的ソケットでキューに入れられた出力メッセージを検索するには、クライアント・アプリケーションは、IMSInteractionSpec の interactionVerb プロパティーを SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT に設定して、コミット・モード 0 対話を実行する必要があります。
また、IMSInteractionSpec の該当する interactionVerb プロパティーを 設定して、専用永続的ソケット接続でコミット・モード 0 対話を実行する他に、 クライアント・アプリケーションは、IMSConnectionSpec の clientID プロパティーの 値を指定する必要があります。 clientID が必要なのは、非同期出力を検索する TPIPE を判別するためです。専用永続的ソケットで実行されるコミット・モード 0 対話から出力メッセージを検索するには、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT 対話で指定する clientID が、元のコミット・モード 0 対話に指定された値と一致している必要があります。代替 PCB に送信される出力メッセージを検索するには、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT 対話で指定する clientID が、代替 PCB の名前と一致している必要があります。 reRouteName 宛先に転送された出力メッセージを検索するには、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT 対話の clientID を、その reRouteName プロパティーの宛先に設定する必要があります。
共用可能永続的ソケット接続での非同期出力の検索
reRoute フラグが TRUE に設定されていない、共用可能永続的ソケット接続での対話からの結果として発生して 配信されなかった出力メッセージを検索するには、 同じ共用可能永続的ソケット接続で、非同期出力をキューに入れた対話を呼び出した同じアプリケーション内で、 クライアント・アプリケーションが、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 対話また は SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 対話を実行する必要があります。この 2 つの対話を同じクライアント・アプリケーション内で呼び出さなければならないのは、IMS リソース・アダプターが、共用可能永続的ソケット接続のクライアント ID を自動的に生成するためです。生成されたこの clientID では、ソケット接続を識別するだけでなく、非同期出力がキューに入れられる、関連の OTMA TPIPE も識別します。新しい接続が確立されると、新しいクライアント ID が生成されます。共用可能永続的ソケット接続では、clientID は IMS Connector for Java によって生成され、各接続ごとに固有です。したがって、生成された特定の clientID に関する非同期出力を検索するには、同じ clientID を持つ接続を使用しなければなりません。 これは、共用可能永続的ソケット接続 (これは常に、生成される固有の clientID を持ちます)のためには、同じ接続を使用しなければならないことを意味します。必ず同じ接続を使用するようにするための唯一の方法は、 両方の対話 (元の対話と、SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 対話または SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 対話) を同じクライアント・アプリケーション内で実行することです。
共用可能永続的ソケット接続での対話については、IMSConnectionSpec の clientID プロパティーに値を指定しないでください。 共用可能永続的ソケット接続では、IMS Connector for Java が自動的に clientID を生成するので、ユーザー指定の clientID は許可されません。