保留キュー内のコールアウト要求を取得し、適切な要求への応答の相関を処理するように、Java アプリケーションを変更する必要があります。
始める前に

以下のサンプルでは、
IMS™ TM リソース・アダプター バージョン 10.3 以降が必要です。
前提条件: WebSphere® Application Server 管理者は、共有可能な接続ファクトリーを構成して、コールアウト要求を検索用に Java アプリケーションによって使用されるようにする必要があります。
このタスクについて
以下は、IMS から同期コールアウト要求を検索してそれに応答する場合の、Java アプリケーションの主要なステップです。
手順
- 同期コールアウト要求を検索するには、次のようにします。
- 対話コミット・モードを 0 (COMMIT_THEN_SEND) に設定します。
interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND);
- 対話同期レベルを CONFIRM に設定します。
interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM);
- コールアウト・キュー名を OTMA tpipe (保留キュー) 名に指定します。
// An 8-character name of the OTMA asynchronous hold queue that the
// messages are to be retrieved from
String calloutQueueName = new String (“CALLOUTQ”);
// Set the queue name for the callout messages
interactionSpec.setAltClientID(calloutQueueName);
- 対話 Verb を SYNC_RECEIVE_CALLOUT に設定します。
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
- 取得するコールアウト要求のタイプとして、同期のみ (CALLOUT_REQUEST_SYNC)、非同期のみ (CALLOUT_REQUEST_ASYNC)、または両方 (CALLOUT_REQUEST_BOTH) を指定します。 次の例では、同期コールアウト要求メッセージのみを取得します。
// Specify to retrieve only synchronous callout request messages
interactionSpec.setCalloutRequestType(IMSInteractionSpec.CALLOUT_REQUEST_SYNC);
- 実行タイムアウト値を指定します。 次の例では、タイムアウト値を 5 秒に設定します。
interactionSpec.setExecutionTimeout(5000);
- 対話を実行します。 次の例では、対話を実行し、要求が calloutRequestMsg として返されます。
iteraction.execute(interactionSpec, null, calloutRequestMsg);
- IMSInteractionSpec インスタンスから相関トークンを取得します。 次の例では、タイムアウト値を 5 秒に設定します。
byte[] corrToken = interactionSpec.getSyncCalloutCorrelationToken();
- 要求を処理します。 前の例では、要求が calloutRequestMsg として返されます。
- 応答を送信します。
- 対話 Verb を SYNC_SEND に設定します。
interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND);
- 要求とともに送信するように相関トークンを設定します。
interactionSpec.setSyncCalloutCorrelationToken(corrToken);
- 対話を実行します。 次の例では、対話を実行し、コールアウト応答メッセージ (calloutRespondMsg) を送信します。
iteraction.execute(interactionSpec, calloutRespondMsg, null);