スローされる例外のタイプによって、出力メッセージが検索できるかどうかが決まります。 例えば、トランザクションが停止したことを示す IMSDFSMessageException 例外を Java クライアントが受け取った場合、アプリケーションは実行されていません。 したがって、検索できる出力メッセージはありません。 ただし、トランザクションが実行されたにもかかわらず、出力メッセージが IMS Connect に戻される前に executionTimeout 値の時間が満了した場合、Java クライアントは EISSystemException 例外を受け取ります。 この例外は、実行タイムアウトが発生したことを示しています。 この場合、出力メッセージは、適切な IMS OTMA 非同期出力キューまたは tpipe にキューイングされて、後で検索されます。
一般に、出力メッセージが関連するクライアント ID にどのようにキューイングされたかに関わらず、非同期出力対話 (SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT および SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT) を使用して、クライアント ID に対してキューイングされた出力メッセージの取得を行うことができます。 メッセージがキューイングされるのは、コミット・モード 0 のトランザクションが失敗したか、あるいは IMS アプリケーションが代替プログラム連絡ブロック (ALTPCB) への INSERT 呼び出しを実行した場合です。
例えば、失敗したコミット・モード 0 のトランザクションからの出力メッセージを検索する場合、検索要求のための IMSConnectionSpec クラスで指定するクライアント ID は、失敗したコミット・モード 0 のトランザクションで指定されたクライアント ID と一致している必要があります。 その特定のクライアント ID に対する OTMA 非同期出力キューに何も入っていない場合は、実行タイムアウト例外が発生します。 このタイムアウト例外は、次の 2 つのシナリオのいずれかを意味します。
どちらの非同期出力対話でも、実行タイムアウトは、IMS Connect が IMS からの応答を待つ時間です。 検索要求用に実行タイムアウト値を指定しない場合は、 デフォルトの実行タイムアウト値が使用されます。デフォルトのタイムアウト値は、IMS Connect 構成メンバーの TIMEOUT の値です。 ユーザーは、その実行タイムアウト値で試行して、すべてのタイプの対話について出力メッセージが戻されることを 確認しなければならない場合があります。