オーケストレーション サンプルからヘッダー プロパティ アクセスを実行する
サンプルのこの部分では、ESB が JMS ヘッダー メタデータをメッセージ コンテキスト プロパティに昇格させる方法を示します。このプロパティは、Microsoft BizTalk 内のオーケストレーション内のコードとコンポーネントにアクセスできます。 このサンプルには、JMS ヘッダー メタデータをメッセージ コンテキスト プロパティに昇格させる ESB JMS コンポーネントのインスタンスを含む受信パイプラインが含まれています。
受信ポートは、メッセージのコンテキスト プロパティから RfhUtil ユーティリティ (およびヘッダー メタデータで送信) によって割り当てられたキュー名を取得する JMSRouter という名前のオーケストレーションにメッセージを渡します。 オーケストレーションは、このキュー名を動的送信ポートに割り当て、そのポートにメッセージを送信します。
ポートの送信パイプラインには、メッセージ コンテキスト プロパティを JMS ヘッダー メタデータに降格する ESB JMS コンポーネントのインスタンスが含まれています。
ヘッダー プロパティ アクセスのサンプルを実行するには
GlobalBank.ESB アプリケーションがまだ実行されていない場合は、BizTalk 管理コンソールを使用して起動します。
IBM RfhUtil ユーティリティを実行します。ESB という名前のキュー・マネージャーを選択します。Jms。このサンプルのパート 1 のように、このキュー・マネージャーに接続するための最初のドロップダウン・リストの Sample.QueueManager。
2 番目のドロップダウン リストで、ESB という名前のターゲット送信キューを選択します。Jms。サンプル。SENDTOBIZTALK。
RfhUtil ユーティリティの [ ReadFile ] ボタンをクリックし、TEST-000128 という名前のテスト メッセージ ファイルに移動します。JMS は、\Source\Samples\JMS\Test\Data\Load\ という名前のサブフォルダーにあります。 このファイルには 128 個のテスト メッセージのバッチが含まれていますが、ユーティリティは最初のメッセージのみを読み込みます。
[RFH] タブをクリックし、[JMS チェック] ボックスのみが選択されていることを確認します。
[ jms ] タブをクリックし、選択した [応答 先] キューが ESB であることを確認します。Jms。サンプル。選択した 宛先キュー が ESB であることを返信します。Jms。サンプル。DYNAMICQ2。
[ メイン ] タブをクリックし、[ Q の書き込み ] ボタンをクリックしてメッセージをキューに書き込みます。
アプリケーションの実行中に遅延が発生すると、ESB 出力メッセージが ESB に表示されます。Jms。サンプル。キュー DYNAMICQ2。 WebSphere Queue エクスプローラーを開き、キューを参照してこれを確認します。
サンプルのしくみ
オーケストレーション内では、次のコードに示すように、メッセージを XmlDocument インスタンスに読み込むことで、JMS ヘッダー内の値にアクセスできます。
if (null != InboundMsg(
Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData))
{
jmsInfo.LoadXml(InboundMsg(
Microsoft.Practices.ESB.JMS.Schemas.Property.MQRFH2_NameValueData));
if (null != jmsInfo)
{
if (null != jmsInfo.SelectSingleNode("//Dst"))
{
xElement = jmsInfo.SelectSingleNode("//Dst");
destinationQueue = xElement.InnerText.ToUpper(
System.Globalization.CultureInfo.CurrentCulture);
}
if (null != jmsInfo.SelectSingleNode("//Rto"))
{
xElement = jmsInfo.SelectSingleNode("//Rto");
replyToQueue = xElement.InnerText.ToUpper(
System.Globalization.CultureInfo.CurrentCulture);
}
}
}
さらに、コードはメッセージのすべての MQMD コンテキスト・プロパティーにアクセスできます。