データベーステーブルをポーリングし、未処理のレコードを取得し、マップを使用して変換を実行し、サードパーティのサービスを呼び出すBizTalk2010ソリューションがあります。幸せな道が機能しています。
ワークフローは次のとおりです。
- GetUnprocessedCustomersストアドプロシージャから場所/ポートを受信する:未処理の顧客を返すストアドプロシージャを呼び出して、WCF-SQLアダプターを使用してSQL Server 2008をポーリングします(WHERE IsProcessed = 0)
- SendPortからサードパーティのWebサービス:ReceivePortName ==にフィルター処理され、アウトバウンドマップを使用して、上記のストアドプロシージャから返されたメッセージをサービススキーマに変換します
- SendPort to UpdateIsProcessedストアドプロシージャ:MessageType ==にフィルタリングされ、アウトバウンドマップを使用して、サービス応答をIsProcessed=1を更新するストアドプロシージャ呼び出しに変換します。
次の可能性のある例外をキャッチし、例外情報を含むメッセージを作成して、内部例外処理サービスを呼び出したいと思います。
- データベースまたはストアドプロシージャにアクセスできません。
- サードパーティのサービスにはアクセスできません。
失敗したメッセージのルーティングを有効にすることで、上記の2番目を処理できました。Greg.Forsytheに感謝します。
私の質問は、すべての例外をキャプチャし、例外情報(例外日時、メッセージ、スタックトレースなど)を内部サービスに送信する汎用ソリューションを作成するにはどうすればよいですか?