次の方法で共有


方法: ESB On-Ramp を使用してメッセージを検証する

目標

このセクションでは、ESB ディスパッチャー逆アセンブル パイプライン コンポーネントを構成して、ESB オンランプに送信された XML メッセージのメッセージ検証を実行する方法について説明します。

このハウツー トピックでは、次の手順を実行します。

  • ItinerarySelectReceiveXml パイプラインを使用する ESB オンランプを作成します。

  • ESB ディスパッチャー逆アセンブル パイプライン コンポーネントを構成して、メッセージの内容を検証します。

  • スケジュール セレクター パイプライン コンポーネントを構成して、適切なスケジュールを解決します。

  • 有効なメッセージと無効なメッセージを使用して、メッセージの検証をテストします。

[前提条件]

このハウツー トピックの手順では、 開発アクティビティの前提条件を完了する必要があります。

開始する前に

このハウツー トピックの後の手順を実行する前に、次のタスクを完了してください。

  • 無効なテスト メッセージを作成します。

  • ESB スケジュール ドメイン固有言語 (DSL) モデルを作成します。

  • スケジュールのプロパティを構成します。

  • 旅程の構造を定義します。

  • モデルをスケジュール データベースにエクスポートします。

    次の手順では、それぞれを実行する方法について説明します。

無効なテスト メッセージを作成するには

  1. Windows エクスプローラーで、C:\HowTos に移動します。

  2. NAOrderDoc.xmlのコピーを作成し、コピー Invalid.xmlの名前を変更します。

  3. メモ帳で、Invalid.xmlを開きます。

  4. <ns0:requestType>10</ns0:requestType> を <ns0:requestType>TEN</ns0:requestType> に変更します。

  5. Invalid.xml UTF-8 として保存し、メモ帳を閉じます。

    この要素の数値をテキストに変更することで、メッセージはスキーマに従って有効ではなくなります。

ESB イテナラリー DSL モデルを作成するには

  1. Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。

  2. ソリューション エクスプローラーで、[ ItineraryLibrary] を右クリックし、[ 追加] をポイントして、[ 新しいスケジュール] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスで、[名前] ボックスに「検証」と入力し、[追加] をクリックします。

スケジュールのプロパティを構成するには

  1. Visual Studio で、 Validation.itinerary のデザイン画面をクリックします。 [ 検証 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. [ モデル エクスポーター ] ドロップダウン リストで、[ データベース スケジュール エクスポーター] をクリックします。

    2. [ スケジュール データベース ] プロパティの横にある省略記号ボタン (...) をクリックします。

    3. [ 接続のプロパティ ] ダイアログ ボックスで、スケジュール リポジトリ データベースをホストする SQL Server を選択し、データベースの名前を指定します (既定の名前は EsbItineraryDb です)。

  2. [ スケジュールの状態] ドロップダウン リストで、[ デプロイ済み] をクリックします。

    この手順では、スケジュールを中央リポジトリにエクスポートできます。メッセージの受信時に、このリポジトリからスケジュールを選択して添付できます。 後で、静的リゾルバーを使用してこのリポジトリから適切なスケジュールを選択するように、スケジュール セレクター パイプライン コンポーネントを構成します。

旅程の構造を定義するには

  1. ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「ReceiveNAOrder」と入力します。

    2. [ エクステンダー ]ドロップダウン リストで、[ On-Ramp ESB エクステンダー]をクリックします。

    3. BizTalk アプリケーションのドロップダウン リストで、Microsoft.Practices.ESB をクリックします。

    4. [受信ポート] ドロップダウン リストで、[OnRamp.Itinerary] をクリックします。

  2. ツールボックスから 、Off-Ramp モデル要素をデザイン サーフェイスにドラッグし、既存のモデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「SendNAOrder」と入力します。

    2. [ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。

    3. BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。

    4. [送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。

  3. ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 ReceiveNAOrder モデル要素と SendNAOrder モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「SendPortFilter」と入力します。

    2. Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。

    3. [オフランプ] ドロップダウン リストで、[SendNAOrder] を展開し、[Send Handlers] をクリックします。

  4. SendPortFilter 要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。

    1. Name プロパティをクリックし、「ConfigureOffRamp」と入力します。

    2. [ リゾルバーの実装 ] ドロップダウン リストで、[ 静的リゾルバー拡張機能] をクリックします。

    3. [ トランスポート名 ] ドロップダウン リストで、[ ファイル] をクリックします。

    4. [ トランスポートの場所 ] プロパティをクリックし、「 C:\HowTos\Out\Validated%MessageID%.xml」と入力します。

  5. ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から SendPortFilter モデル要素に接続をドラッグします。

  6. ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から SendNAOrder モデル要素にドラッグします。

モデルをスケジュール データベースにエクスポートするには

  1. Visual Studio で、 検証 スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。

    スケジュールはスケジュール データベースにエクスポートされ、スケジュール セレクター パイプライン コンポーネントで使用できるようになりました。

  2. すべてのプロジェクト成果物を保存します。

ステップス

ESB エントリーポイントを作成して構成するには

  1. タスク バーの [ スタート] をクリックし、[ すべてのプログラム] をポイントし、[ BizTalk Server] をポイントして、[ BizTalk Server の管理] をクリックします。

  2. BizTalk Server 管理コンソールで、 BizTalk グループを展開し、 アプリケーションを展開し、 Microsoft.Practices.ESB を展開します。

  3. [ 受信場所] を右クリックし、[ 新規] をポイントして、[ 一方向の受信場所] をクリックします。

  4. [ 受信ポートの選択 ] ダイアログ ボックスで、[ OnRamp.Itinerary] をクリックし、[ OK] をクリックします。

  5. [受信場所のプロパティ] ダイアログ ボックスで、[名前] ボックスに「OnRamp.Itinerary.HowTo」と入力します。

  6. [ 種類 ] ドロップダウン リストで、[ ファイル] をクリックし、[ 構成] をクリックします。

  7. [ファイル トランスポートのプロパティ] ダイアログ ボックスで、[受信フォルダー] ボックスに「C:\HowTos\DropFolder」と入力し、[OK] をクリックします

メッセージ検証を実行するようにオンランプを構成するには

  1. [ 受信場所のプロパティ ] ダイアログ ボックスの [ 受信パイプライン ] ドロップダウン リストで、[ ItinerarySelectReceiveXml] をクリックし、省略記号ボタン (...) をクリックします。

  2. [ パイプラインの構成 ] ダイアログ ボックスを使用して、次の XML 逆アセンブラー コンポーネントのプロパティを構成します。

    1. GlobalBank.Esb アプリケーションを展開し、[ スキーマ] をクリックします。 GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc を右クリックし、[プロパティ] をクリックします。 Name プロパティと Assembly プロパティをコピーし、テキスト ファイルに貼り付けます。

    2. Disassemble コンポーネントで、ValidateDocument ドロップダウンリストで True をクリックします。

    3. DocumentSpecNames プロパティをクリックし、スキーマの完全修飾名を入力します。 完全修飾名は名前で始まり、その後にコンマとステップ a で抽出されたアセンブリ情報が続きます。 以下に例を示します。

      GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, GlobalBank.ESB.DynamicResolution.Schemas, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c2c8b2b87f54180a

      これは、検証するスキーマの完全修飾名です。これは、スキーマ名と 4 つのアセンブリ プロパティ (アセンブリ名、バージョン、カルチャ、公開キー トークン) で構成されます。 複数の値を使用できます。では、複数のスキーマをパイプ (|) 記号で区切ります。

旅程セレクターパイプラインコンポーネントを構成するには

  1. [ パイプラインの構成 ] ダイアログ ボックスで、次の スケジュール セレクター コンポーネントのプロパティを構成します。

    1. ItineraryFactKey プロパティをクリックし、「Resolver.Itinerary」と入力します。

    2. ResolverConnectionString プロパティをクリックし、「ITINERARY:\\name=Validation;」と入力します。

    3. [ OK] を クリックして、[ パイプラインの構成 ] ダイアログ ボックスを閉じます。

  2. [ OK] を クリックして、[ 受信場所のプロパティ ] ダイアログ ボックスを閉じます。

  3. BizTalk Server 管理コンソールで、 OnRamp.Itinerary.HowTo 受信場所を右クリックし、[ 有効] をクリックします。

メッセージの検証とスケジュールの選択をテストするには

  1. Windows エクスプローラーで、C:\HowTos に移動します。

  2. NAOrderDoc.xml を DropFolder フォルダーにコピー (移動しない) します。

  3. ディレクトリに書き込まれた C:\HowTos\Out. Verify that Validated%MessageID%.xml にアクセスしてください。

    有効なメッセージは、予定どおりに旅程ベースのルーティングを完了しました。

  4. [出力] フォルダーから検証済みの%MessageID%.xml を削除します。

  5. Windows エクスプローラーで、C:\HowTos に移動します。

  6. Invalid.xml を DropFolder フォルダーにコピー (移動しない) します。

  7. C:\HowTos\Out に移動します。新しいメッセージが配信されていないことを確認します。

    メッセージを検証できませんでした。そのため、旅程ベースのルーティングを完了できませんでした。

  8. タスク バーの [ スタート] をクリックし、[ 管理ツール] をポイントして、[ イベント ビューアー] をクリックします。

  9. イベント ビューアーで、[ Windows ログ] を展開し、[ アプリケーション] をクリックします。

  10. ソースBizTalk Server で、イベント ID が 5719 の最近のイベントを見つけます。

    無効なメッセージの送信と失敗により、アプリケーション イベント ログへの例外エントリが発生しました。

  11. BizTalk Server 管理コンソールで、 OnRamp.Itinerary.HowTo 受信場所を右クリックし、[ 無効] をクリックします。

  12. OnRamp.Itinerary.HowTo 受信場所が無効になった後、それを右クリックし、[削除] をクリックします。 [ 受信場所の削除の確認 ] ダイアログ ボックスで、[ はい] をクリックします。

その他のリソース

詳細については、次の関連項目を参照してください。