BizTalk エラー メッセージ ルーティング ESB 処理サンプルを実行する
Microsoft BizTalk Failed Message Routing ESB Processing サンプルは、Microsoft BizTalk ESB Toolkit 例外管理フレームワークを、BizTalk Serverのすべての条件で発生する例外を管理、シリアル化、およびレンダリングするためのユニバーサル メカニズムとして使用する方法を示しています。 これには、BizTalk 失敗メッセージ ルーティング メカニズムによって生成された例外と、オーケストレーション内から例外管理フレームワークによって生成されたエラー メッセージが含まれます。
BizTalk 失敗メッセージ ルーティング メカニズムは、BizTalk Serverのエラー処理機能です。これを使用することで、デザイナーは、失敗したメッセージを "中断" キューに配置する従来の (既定の) 動作の代わりに、メッセージング エラーの自動処理を指定できます。 この自動処理により、送信ポートやオーケストレーションなど、サブスクライブしているルーティング先にエラー メッセージがルーティングされます。 エラー メッセージは、以前に昇格されたすべてのプロパティが降格され、メッセージ コンテキストに昇格された特定のメッセージング エラーに関連する選択されたプロパティを含む、元のメッセージの複製です。
BizTalk 失敗メッセージ ルーティング メカニズムを受信ポートまたは送信ポートで有効にするには、図 1 に示すように、[失敗したメッセージのルーティングを有効にするチェック] ボックスを選択します。
図 1
BizTalk 失敗メッセージ ルーティング メカニズムの有効化
ただし、オーケストレーションで発生するエラーやエラーに対して同様のメカニズムはありません。 代わりに、オーケストレーションの例外ハンドラー内のコードは、例外管理フレームワーク API を利用して、BizTalk 失敗メッセージ ルーティング メカニズムの機能をエミュレートできます。
このサンプルでは、EAIProcess.RequestPort_FILE という名前の受信場所は、場所 \Source\Samples\Exception Handling\Test\Filedrop\EAIProcess.RequestPort にコピーされたファイルを取得します。
さらに、ALL という名前の汎用送信ポートがあります。Exceptions_FILE例外管理フレームワークの一部としてインストールされている GlobalFaultProcessor パイプラインを使用するように構成されています。 このポートは、図 2 に示すように、BizTalk で失敗したメッセージ ルーティング メッセージと ESB エラー メッセージの両方で、システムで発生するすべての例外をサブスクライブします。
図 2
ALL。例外は、すべての種類のエラーまたは例外のポート サブスクリプションを送信します
例外管理フレームワークは、すべての例外を 1 つの形式に正規化し、Microsoft InfoPath 処理命令を使用して場所 \Source\Samples\Exception Handling\Test\Filedrop\All_Exceptions にシリアル化します。
インストール
すべての例外管理サンプルでは、同じコア サービスセットと BizTalk アプリケーション成果物が使用されます。 したがって、すべての例外管理サンプルを実行できるようにするには、例外管理サンプル成果物を 1 回だけインストールする必要があります。 例外管理サンプルをインストールする方法については、「 例外管理サンプルのインストール」を参照してください。
サンプル アプリケーションの実行
BizTalk 失敗メッセージ ルーティング ESB 処理サンプルを実行するには
このサンプルを初めて実行する前に、受信場所と送信ポート URL が 、\Source\Samples\Exception Handling\Test\Filedrop フォルダー内の適切なディレクトリを指していることを確認してください。 受信場所には EAIProcess.RequestPort フォルダーを指定し、送信ポート URL はフォルダー All_Exceptionsを指定する必要があります。
GlobalBank.ESB アプリケーションがまだ実行されていない場合は、BizTalk 管理コンソールを使用して起動します。
フォルダー \Source\Samples\Exception Handling\Test\Data から、FlatFileReceive_in.txt という名前のファイルを EAIProcess.RequestPort という名前の受信場所フォルダー (\Source\Samples\Exception Handling\Test\Filedrop フォルダー内) にコピーします。
このメッセージはテキスト ファイルであり、例外が発生します。 All_Exceptions という名前のフォルダー (\Source\Samples\Exception Handling\Test\Filedrop フォルダー内) を開き、エラー メッセージをダブルクリックして、適切なテンプレートを使用して InfoPath に開きます。 ESB 例外処理メカニズムによってコンテンツが適切にシリアル化され、InfoPath でコンテンツがレンダリングされることがわかります。
次に、soapmessage[1].xml という名前のファイルをフォルダー \Source\Samples\Exception Handling\Test\Data から EAIProcess.RequestPort 受信場所フォルダーにコピーします。
このメッセージは CDATA セクションを含む XML ドキュメントであり、例外が発生します。 All_Exceptions出力フォルダーを開き、エラー メッセージをダブルクリックして InfoPath に開きます。 ESB 例外処理メカニズムによってこのコンテンツが適切にシリアル化され、InfoPath でレンダリングされることがわかります。
最後に、フォルダー \Source\Samples\Exception Handling\Test\Data から Csqzav01.pdf という名前のファイルを EAIProcess.RequestPort 受信場所にコピーします。
このメッセージは PDF ファイルであり、例外が発生します。 All_Exceptions出力フォルダーを開き、エラー メッセージをダブルクリックして InfoPath で開きます。 ESB 例外処理メカニズムがシリアル化され、Base-64 によってコンテンツがエンコードされて InfoPath でレンダリングされることがわかります。