非 MDB アプリケーションからの同期コールアウト要求メッセージの取得

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

始める前に

図形記述の開始。IMS TM リソース・アダプター バージョン 10.3 以降。図形記述の終了。以下のサンプルでは、 IMS™ TM リソース・アダプター バージョン 10.3 以降が必要です。
前提条件: WebSphere® Application Server 管理者は、共有可能な接続ファクトリーを構成して、コールアウト要求を検索用に Java アプリケーションによって使用されるようにする必要があります。

このタスクについて

以下は、IMS から同期コールアウト要求を検索してそれに応答する場合の、Java アプリケーションの主要なステップです。

手順

  1. 同期コールアウト要求を検索するには、次のようにします。
    1. 対話コミット・モードを 0 (COMMIT_THEN_SEND) に設定します。
      interactionSpec.setCommitMode(IMSInteractionSpec.COMMIT_THEN_SEND); 
    2. 対話同期レベルを CONFIRM に設定します。
      interactionSpec.setSyncLevel(IMSInteractionSpec.SYNC_LEVEL_CONFIRM); 
    3. コールアウト・キュー名を 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);
    4. 対話 Verb を SYNC_RECEIVE_CALLOUT に設定します。
      interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_RECEIVE_CALLOUT);
    5. 取得するコールアウト要求のタイプとして、同期のみ (CALLOUT_REQUEST_SYNC)、非同期のみ (CALLOUT_REQUEST_ASYNC)、または両方 (CALLOUT_REQUEST_BOTH) を指定します。 次の例では、同期コールアウト要求メッセージのみを取得します。
      // Specify to retrieve only synchronous callout request messages
      interactionSpec.setCalloutRequestType(IMSInteractionSpec.CALLOUT_REQUEST_SYNC); 
    6. 実行タイムアウト値を指定します。 次の例では、タイムアウト値を 5 秒に設定します。
      interactionSpec.setExecutionTimeout(5000);
    7. 対話を実行します。 次の例では、対話を実行し、要求が calloutRequestMsg として返されます。
      iteraction.execute(interactionSpec, null, calloutRequestMsg); 
  2. IMSInteractionSpec インスタンスから相関トークンを取得します。 次の例では、タイムアウト値を 5 秒に設定します。
    byte[] corrToken = interactionSpec.getSyncCalloutCorrelationToken();
  3. 要求を処理します。 前の例では、要求が calloutRequestMsg として返されます。
  4. 応答を送信します。
    1. 対話 Verb を SYNC_SEND に設定します。
      interactionSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND); 
    2. 要求とともに送信するように相関トークンを設定します。
      interactionSpec.setSyncCalloutCorrelationToken(corrToken); 
    3. 対話を実行します。 次の例では、対話を実行し、コールアウト応答メッセージ (calloutRespondMsg) を送信します。
      iteraction.execute(interactionSpec, calloutRespondMsg, null); 

フィードバック