「MQ メッセージの取得 (MQ Get Message)」アクティビティー

MQ メッセージの取得 (MQ Get Message)」アクティビティーを使用して、実行時に MQ キューからメッセージを取得します。

注: アクティビティーを構成する 前に、MQ アクティビティーのエンドポイントを作成しておく 必要があります。
構成」タスクには、以下の 3 つのセクションがあります。

構成」タスクの完了後に、 アクティビティーの入力のマップおよび出力のマッピングを 行います。

注: 最大メッセージ・サイズは 100 MB です。

キューおよびメッセージの詳細

次の表にあるフィールドに対してキューおよびメッセージの詳細を指定します。必須フィールドはアスタリスクでマークされています。
フィールド 説明
キュー名 * 統合アプライアンスがメッセージの取得を試みるときの取得元となる MQ キューの名前を指定します。
タイムアウト キューからメッセージを取得するように「MQ メッセージの取得 (MQ Get Message)」アクティビティーによって要求されてから、 メッセージが返されずにタイムアウトになるまでの秒数。 このタイムアウト期間が過ぎて、メッセージがキューから返されない場合、統合アプライアンスは、メッセージの取得を再試行する前に指定の再試行時間の間、 待機します。 タイムアウトおよび再試行オプションについて詳しくは、『タイムアウトおよび再試行オプション』を参照してください。

統合アプライアンスがタイムアウトになるまでに待機しなければならない時間 (秒) を指定するには、 「」オプションを選択して、「」フィールドに秒数を入力します。 デフォルトでは、「なし」オプションが選択されています。 このオプションは、統合アプライアンスがキューからメッセージを取得するために無期限に待機すること (タイムアウト期間なし) を指定します。

ペイロード・データ型 メッセージ・ペイロードのデータ型 (「バイナリー」または「ストリング」) を指定します。
MQRFH2 ヘッダーのスキーマ・フラグメント メッセージに MQRFH2 ヘッダーが含まれるかどうかを指定します。 メッセージに MQRFH2 ヘッダーが含まれる場合は、このチェック・ボックスを選択して、「[...]」をクリックします。 「スキーマ・タイプ・エレメントの参照」ダイアログ・ボックスで、ヘッダーを定義する XML スキーマを見つけて、 その XML スキーマの NameValueData エレメントを選択し、「OK」をクリックします。 スキーマ・フラグメントは、NameValueData エレメントおよびそのすべての子エレメントです。
注: ヘッダーを定義する XML スキーマを選択するには、そのスキーマを最初に作成してプロジェクトにロードしておく必要があります。 詳細については、『MQRFH2 ヘッダーの XML スキーマの定義およびロード』を参照してください。

配信ルール

フィールド 説明
メッセージの配信 ここで選択できるオプションは、「固有 ID (Unique ID's)」チェック・ボックスが選択されているかどうかによって異なります。 そのチェック・ボックスが選択されている場合は、3 つのオプションがすべて選択可能です。 そのチェック・ボックスが選択されていない場合は、「1 回以上」のみが表示されます。
  • 1 回以上 - メッセージが少なくとも 1 回は配信されるように指定します (複数回の配信も可能)。 接続や統合アプライアンスで障害が発生すると、メッセージは何度も取得されて処理される可能性があります。 通常、この配信オプションは、受信システムが重複メッセージを検出または許容できる場合に使用されます。
  • 1 回まで - メッセージが 1 回のみ配信されるか、またはまったく配信されないように指定します。 接続や統合アプライアンスで障害が発生すると、メッセージは失われる可能性があります。 通常、この配信オプションは、受信システムが重複メッセージを許容できないがメッセージの消失を許容できる場合に使用されます。
  • 1 回のみ - メッセージが 1 回のみ配信されるように指定します。 接続や統合アプライアンスで障害が発生しても、このオプションによる配信には影響がありません。 統合アプライアンスは、MQ メッセージ ID を使用して、すべてのメッセージが 1 回のみ取得および処理されるようにします。
    注:1 回のみ」オプションを選択する場合は、 パーシスタンスを使用可能にする必要があります。 詳しくは、『パーシスタンスを使用可能にする』を参照してください。
メッセージの ID は固有 キュー上のメッセージの ID が固有であるかどうかを指定します。

再試行オプション

次の表の説明に従って、MQ キューからメッセージを取得するための再試行オプションを構成します。

再試行オプション 説明
1) 再試行ごとに __ 秒待機します。 統合アプライアンスがキューからのメッセージの取得を試行するまでに待機する秒数。 このオプションが「構成」ペインの 「タイムアウト」フィールドや、timeout 入力パラメーターと どのように関連しているのかについて詳細を知るには、『タイムアウトおよび再試行オプション』を参照してください。
2) 失敗するまで __ 回の接続を試みます。 統合アプライアンスがキューからのメッセージの取得を試行する最大回数を指定します。 この回数を超えると、統合アプライアンスはエラーを発行して現行オーケストレーション・ジョブの処理を停止します。

MQ メッセージの取得 (MQ Get Message)」アクティビティーが含まれているオーケストレーションがデプロイされる場合に、 統合アプライアンスは指定の MQ サーバーに接続できなかったりキューからメッセージを取得できなかったりすると、 再試行回数値に達するまでシステム・ログおよびオーケストレーション・ログにエラーを警告として記録します。 再試行回数に達した場合、統合アプライアンスがシステムおよびオーケストレーションのログにエラーを記録し、 現在のオーケストレーション・ジョブの処理を停止します。

例えば、再試行回数を 3 に設定すると、第 1、第 2、第 3 のエラーはシステム・ログに警告として表示されます。 統合アプライアンスは、第 4 のエラーをエラーとしてログに記録し、現行オーケストレーション・ジョブの処理を停止します。

このオプションが「構成」ペインの 「タイムアウト」フィールドや、timeout 入力パラメーターと どのように関連しているのかについて詳細を知るには、 『タイムアウトおよび再試行オプション』を参照してください。

入力のマップ

  1. チェックリスト」で「入力のマップ」タスクを選択します。 「再試行」パネルが開きます。

    アクティビティーの入力パラメーターが、「アクティビティーへ」パネルに表示されます。

  2. MQ メッセージの取得 (MQ Get Message)」アクティビティーの入力パラメーターはすべてオプションです。 次の表にリストされている入力パラメーターが「入力のマップ」ペインの 「アクティビティーへ」パネルに表示されない場合は、 ツールバー・メニューから「マップ」>「オプション・パラメーターの表示」を選択するか、 または「アクティビティーへ」パネルで右クリックして「オプション・パラメーターの表示」オプションを 選択します。 ツールバー・メニューで「マップ」>「オプション・パラメーターの表示」オプションを選択できない場合は、 「入力のマップ」パネルでノードをクリックして、このオプションをアクティブにします。
    以下の mqmdheader オプション入力パラメーター・ノードを組み合わせたものをマップすれば、 「MQ メッセージの取得 (MQ Get Message)」アクティビティーで返されるメッセージのタイプを制約できます。
    • mqmdheader/MsgId
    • mqmdheader/CorreId
    • mqmdheader/GroupId
    • mqmdheader/MsgSeqNumber

    実行時に、このアクティビティーは、 キューにあるすべてのメッセージに対して連続して繰り返されます。 これらのノードに何もマップされていない場合は、何の制約も受けないため、 キューにある最初のメッセージが「MQ メッセージの取得 (MQ Get Message)」アクティビティーによって返され、 オーケストレーションにおける次のアクティビティーが処理されます。

    これらのいずれかのノードがマップされている場合は、マップされているすべてのノードの実行時の値に適合する 最初のメッセージが検出されるまで、実行時に「MQ メッセージの取得 (MQ Get Message)」アクティビティーが、 キューにある各メッセージに対して繰り返されます。 最初に適合するメッセージが「MQ メッセージの取得 (MQ Get Message)」アクティビティーによって返され、 オーケストレーションにおける次のアクティビティーが処理されます。

    例えば、次の図に示すように、 「入力のマップ」タスクで mqmdheader/MsgId がストリング msgId に マップされていて、デフォルト値 largeOrdersmqmdheader/GroupId に対して指定されているとします。
    実行時に、「MQ メッセージの取得 (MQ Get Message)」アクティビティーから、 以下の両方の条件を満たすキュー内の最初のメッセージが返されます。
    • ストリング変数 msgId の指定の実行時値が、キューにあるメッセージのメッセージ ID と等しい。
    • メッセージのグループ ID が largeOrders と等しい。

    オプションで、次の表に定義されている入力パラメーターを使用して、 チェックリストの「構成」タスクで 「キュー名」および「タイムアウト」に対して指定した設定を実行時に動的に 指定変更できます。

    例えば、MQ キュー名は、「構成」タスクで poqueue に設定できます。 実行時に、queuename 入力パラメーターを使用して MQ キュー名 newqueue をアクティビティーに渡すことができます。 実行時に動的に指定されるキュー名が、「構成」パネルで指定された元の設定を指定変更します。 この例では、統合アプライアンスは、MQ キュー newqueue でメッセージを検索します。

    「構成」タスクの設定を指定変更するオプション入力パラメーター
    入力パラメーターの名前/ノード 説明 タスクで設定を指定変更するかどうか
    timeout キューからメッセージを取得するように要求してから再試行するまでに統合アプライアンスが待機する時間を指定します。

    タイムアウト期間なし (統合アプライアンスがキューからメッセージを取得するために無期限に待機する) を指定するには、負の数値を指定します。 負の数値を指定することは、「構成」タスクで「なし」オプションを指定することと同じです。

    timeout 入力パラメーターは、「構成」タスクの「タイムアウト」フィールドを 指定変更します。
    queuename 統合アプライアンスがメッセージを検索する場所となる MQ キューの名前を指定します。 queuename 入力パラメーターは、「構成」タスクの「キュー名」フィールドで 指定されたエンコード方式を指定変更します。

    マッピングについての一般的な説明は、『マップの作成』を参照してください。

出力のマッピング

このアクティビティーに関しては、出力パラメーターをマップする必要はありません。 マッピングについての一般的な説明は、『マップの作成』を参照してください。

タイムアウトおよび再試行オプション

構成」タスクの「タイムアウト」フィールドで指定されたタイムアウト、 または timeout 入力パラメーターは、 キューからメッセージを取得するように「MQ メッセージの取得 (MQ Get Message)」アクティビティーによって要求されてから、 メッセージが返されずにタイムアウトになるまでの秒数を指定します。 このタイムアウト期間が過ぎて、メッセージがキューから返されない場合、 統合アプライアンスは、メッセージの取得を再試行する前に、 「1) 再試行ごとに __ 秒待機します (1) Wait ___ second(s) between each retry)」オプションで 指定された時間の間、待機します。 統合アプライアンスは、指定の再試行回数までメッセージの取得を試行し続けます。 再試行回数は、「2) 失敗するまで __ 回の接続を試みます (2) Try to connect ___ times before failing)」で指定されます。 「1) 再試行ごとに __ 秒待機します (1) Wait ___ second(s) between each retry)」および「2) 失敗するまで __ 回の接続を試みます (2) Try to connect ___ times before failing)」オプションは、再試行オプション・タスクで指定されます。

例えば、「MQ メッセージの取得 (MQ Get Message)」アクティビティーは、以下のオプションで構成されます。
  • 構成」タスクの「タイムアウト」フィールドは 10 秒に設定され、 オプションの timeout 入力パラメーターはマップされず、 デフォルト値は定義されません。
  • 1) 再試行ごとに __ 秒待機します (1) Wait ___ second(s) between each retry)」オプションは 15 秒に設定されます。
  • 2) 失敗するまで __ 回の接続を試みます (2) Try to connect ___ times before failing)」オプションは 2 に設定されます。
実行時に「MQ メッセージの取得 (MQ Get Message)」アクティビティーで キューからメッセージを連続して取得することができない場合、アクティビティーは次の図に示すように再試行します。




フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/MQ_Get_Message_Activity.html