目標
このセクションでは、ESB ディスパッチャー逆アセンブル パイプライン コンポーネントを構成して、ESB オンランプに送信された XML メッセージのメッセージ検証を実行する方法について説明します。
このハウツー トピックでは、次の手順を実行します。
ItinerarySelectReceiveXml パイプラインを使用する ESB オンランプを作成します。
ESB ディスパッチャー逆アセンブル パイプライン コンポーネントを構成して、メッセージの内容を検証します。
スケジュール セレクター パイプライン コンポーネントを構成して、適切なスケジュールを解決します。
有効なメッセージと無効なメッセージを使用して、メッセージの検証をテストします。
[前提条件]
このハウツー トピックの手順では、 開発アクティビティの前提条件を完了する必要があります。
開始する前に
このハウツー トピックの後の手順を実行する前に、次のタスクを完了してください。
無効なテスト メッセージを作成します。
ESB スケジュール ドメイン固有言語 (DSL) モデルを作成します。
スケジュールのプロパティを構成します。
旅程の構造を定義します。
モデルをスケジュール データベースにエクスポートします。
次の手順では、それぞれを実行する方法について説明します。
無効なテスト メッセージを作成するには
Windows エクスプローラーで、C:\HowTos に移動します。
NAOrderDoc.xmlのコピーを作成し、コピー Invalid.xmlの名前を変更します。
メモ帳で、Invalid.xmlを開きます。
<ns0:requestType>10</ns0:requestType> を <ns0:requestType>TEN</ns0:requestType> に変更します。
Invalid.xml UTF-8 として保存し、メモ帳を閉じます。
注
この要素の数値をテキストに変更することで、メッセージはスキーマに従って有効ではなくなります。
ESB イテナラリー DSL モデルを作成するには
Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。
ソリューション エクスプローラーで、[ ItineraryLibrary] を右クリックし、[ 追加] をポイントして、[ 新しいスケジュール] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[名前] ボックスに「検証」と入力し、[追加] をクリックします。
スケジュールのプロパティを構成するには
Visual Studio で、 Validation.itinerary のデザイン画面をクリックします。 [ 検証 プロパティ] ウィンドウで、次のプロパティを構成します。
[ モデル エクスポーター ] ドロップダウン リストで、[ データベース スケジュール エクスポーター] をクリックします。
[ スケジュール データベース ] プロパティの横にある省略記号ボタン (...) をクリックします。
[ 接続のプロパティ ] ダイアログ ボックスで、スケジュール リポジトリ データベースをホストする SQL Server を選択し、データベースの名前を指定します (既定の名前は EsbItineraryDb です)。
[ スケジュールの状態] ドロップダウン リストで、[ デプロイ済み] をクリックします。
注
この手順では、スケジュールを中央リポジトリにエクスポートできます。メッセージの受信時に、このリポジトリからスケジュールを選択して添付できます。 後で、静的リゾルバーを使用してこのリポジトリから適切なスケジュールを選択するように、スケジュール セレクター パイプライン コンポーネントを構成します。
旅程の構造を定義するには
ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ReceiveNAOrder」と入力します。
[ エクステンダー ]ドロップダウン リストで、[ On-Ramp ESB エクステンダー]をクリックします。
BizTalk アプリケーションのドロップダウン リストで、Microsoft.Practices.ESB をクリックします。
[受信ポート] ドロップダウン リストで、[OnRamp.Itinerary] をクリックします。
ツールボックスから 、Off-Ramp モデル要素をデザイン サーフェイスにドラッグし、既存のモデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendNAOrder」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。
BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。
[送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 ReceiveNAOrder モデル要素と SendNAOrder モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendPortFilter」と入力します。
Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。
[オフランプ] ドロップダウン リストで、[SendNAOrder] を展開し、[Send Handlers] をクリックします。
SendPortFilter 要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ConfigureOffRamp」と入力します。
[ リゾルバーの実装 ] ドロップダウン リストで、[ 静的リゾルバー拡張機能] をクリックします。
[ トランスポート名 ] ドロップダウン リストで、[ ファイル] をクリックします。
[ トランスポートの場所 ] プロパティをクリックし、「 C:\HowTos\Out\Validated%MessageID%.xml」と入力します。
ツールボックスで、[ コネクタ] をクリックします。 ReceiveNAOrder モデル要素から SendPortFilter モデル要素に接続をドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から SendNAOrder モデル要素にドラッグします。
モデルをスケジュール データベースにエクスポートするには
Visual Studio で、 検証 スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。
注
スケジュールはスケジュール データベースにエクスポートされ、スケジュール セレクター パイプライン コンポーネントで使用できるようになりました。
すべてのプロジェクト成果物を保存します。
ステップス
ESB エントリーポイントを作成して構成するには
タスク バーの [ スタート] をクリックし、[ すべてのプログラム] をポイントし、[ BizTalk Server] をポイントして、[ BizTalk Server の管理] をクリックします。
BizTalk Server 管理コンソールで、 BizTalk グループを展開し、 アプリケーションを展開し、 Microsoft.Practices.ESB を展開します。
[ 受信場所] を右クリックし、[ 新規] をポイントして、[ 一方向の受信場所] をクリックします。
[ 受信ポートの選択 ] ダイアログ ボックスで、[ OnRamp.Itinerary] をクリックし、[ OK] をクリックします。
[受信場所のプロパティ] ダイアログ ボックスで、[名前] ボックスに「OnRamp.Itinerary.HowTo」と入力します。
[ 種類 ] ドロップダウン リストで、[ ファイル] をクリックし、[ 構成] をクリックします。
[ファイル トランスポートのプロパティ] ダイアログ ボックスで、[受信フォルダー] ボックスに「C:\HowTos\DropFolder」と入力し、[OK] をクリックします。
メッセージ検証を実行するようにオンランプを構成するには
[ 受信場所のプロパティ ] ダイアログ ボックスの [ 受信パイプライン ] ドロップダウン リストで、[ ItinerarySelectReceiveXml] をクリックし、省略記号ボタン (...) をクリックします。
[ パイプラインの構成 ] ダイアログ ボックスを使用して、次の XML 逆アセンブラー コンポーネントのプロパティを構成します。
GlobalBank.Esb アプリケーションを展開し、[ スキーマ] をクリックします。 GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc を右クリックし、[プロパティ] をクリックします。 Name プロパティと Assembly プロパティをコピーし、テキスト ファイルに貼り付けます。
Disassemble コンポーネントで、ValidateDocument ドロップダウンリストで True をクリックします。
DocumentSpecNames プロパティをクリックし、スキーマの完全修飾名を入力します。 完全修飾名は名前で始まり、その後にコンマとステップ a で抽出されたアセンブリ情報が続きます。 以下に例を示します。
GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc, GlobalBank.ESB.DynamicResolution.Schemas, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c2c8b2b87f54180a
注
これは、検証するスキーマの完全修飾名です。これは、スキーマ名と 4 つのアセンブリ プロパティ (アセンブリ名、バージョン、カルチャ、公開キー トークン) で構成されます。 複数の値を使用できます。では、複数のスキーマをパイプ (|) 記号で区切ります。
旅程セレクターパイプラインコンポーネントを構成するには
[ パイプラインの構成 ] ダイアログ ボックスで、次の スケジュール セレクター コンポーネントのプロパティを構成します。
ItineraryFactKey プロパティをクリックし、「Resolver.Itinerary」と入力します。
ResolverConnectionString プロパティをクリックし、「ITINERARY:\\name=Validation;」と入力します。
[ OK] を クリックして、[ パイプラインの構成 ] ダイアログ ボックスを閉じます。
[ OK] を クリックして、[ 受信場所のプロパティ ] ダイアログ ボックスを閉じます。
BizTalk Server 管理コンソールで、 OnRamp.Itinerary.HowTo 受信場所を右クリックし、[ 有効] をクリックします。
メッセージの検証とスケジュールの選択をテストするには
Windows エクスプローラーで、C:\HowTos に移動します。
NAOrderDoc.xml を DropFolder フォルダーにコピー (移動しない) します。
ディレクトリに書き込まれた C:\HowTos\Out. Verify that Validated%MessageID%.xml にアクセスしてください。
注
有効なメッセージは、予定どおりに旅程ベースのルーティングを完了しました。
[出力] フォルダーから検証済みの%MessageID%.xml を削除します。
Windows エクスプローラーで、C:\HowTos に移動します。
Invalid.xml を DropFolder フォルダーにコピー (移動しない) します。
C:\HowTos\Out に移動します。新しいメッセージが配信されていないことを確認します。
注
メッセージを検証できませんでした。そのため、旅程ベースのルーティングを完了できませんでした。
タスク バーの [ スタート] をクリックし、[ 管理ツール] をポイントして、[ イベント ビューアー] をクリックします。
イベント ビューアーで、[ Windows ログ] を展開し、[ アプリケーション] をクリックします。
ソースが BizTalk Server で、イベント ID が 5719 の最近のイベントを見つけます。
注
無効なメッセージの送信と失敗により、アプリケーション イベント ログへの例外エントリが発生しました。
BizTalk Server 管理コンソールで、 OnRamp.Itinerary.HowTo 受信場所を右クリックし、[ 無効] をクリックします。
OnRamp.Itinerary.HowTo 受信場所が無効になった後、それを右クリックし、[削除] をクリックします。 [ 受信場所の削除の確認 ] ダイアログ ボックスで、[ はい] をクリックします。
その他のリソース
詳細については、次の関連項目を参照してください。