次の方法で共有


方法: ESB オンランプを利用し、メッセージを検証する

目標

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

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

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

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

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

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

前提条件

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

はじめに

このハウツー トピックで後述する手順を実行する前に、次のタスクを実行します。

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

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

  • 旅程のプロパティを構成します。

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

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

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

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

  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 として保存し、メモ帳を閉じます。

    Note

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

ESB スケジュール DSL モデルを作成するには

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

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

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

旅程のプロパティを構成するには

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

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

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

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

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

    Note

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

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

  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. [ エクステンダー ] ドロップダウン リストで、[ Off-Ramp ESB エクステンダー] をクリックします。

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

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

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

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

    2. [ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ オフランプ エクステンダー] をクリックします。

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

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

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

    2. [ 競合回避モジュールの実装] ドロップダウン リストで、[ Static Resolver Extension]\(静的リゾルバー拡張機能\) をクリックします。

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

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

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

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

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

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

    Note

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

  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. [逆アセンブリ] コンポーネントの [ValidateDocument] ドロップダウン リストで [True] をクリックします。

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

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

      Note

      これは、検証するスキーマの完全修飾名です。スキーマ名と 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 に移動します。Validated%MessageID%.xml がディレクトリに書き込まれたことを確認します。

    Note

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

  4. [出力] フォルダーから Validated%MessageID%.xml を削除します。

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

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

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

    Note

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

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

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

  10. SourceBizTalk Serverされ、イベント ID5719 である最近のイベントを見つけます。

    Note

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

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

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

その他のリソース

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