2016-05-02 25 views
3

BizTalk Server 2013 WCF-WebHttpアダプタを使用して、REST API SalesForceを呼び出しています。 HTTPステータスコードが200と異なる場合、私のオーケストレーションはSystemExceptionをキャッチしますが、まだ送信ポートインスタンスが中断しています。 送信ポートのインスタンスが中断されないようにする「ネイティブ」ソリューションはありますか? 私はこの記事を読んでいます: BizTalk Server: REST Services Error HandlingBizTalk Server 2013エラー処理の処理

しかし、カスタムバインドオプションは利用できません。 私は障害メッセージを追加しようとしましたが、この例外をキャッチするのに適切なタイプはまだ見つかりませんでした。

ご存知ですか?

答えて

1

残念ながら、

がないあなたが再作成すべての後、WCF-Customにあなたの送信ポートを設定し、バインディングカスタムを使用してする必要がその記事BizTalk Server 2013 R2: Handle exceptions from REST services in Orchestration

の更新バージョンはありませんWCF-WebHttpからの設定。

詳細はこちらをご覧ください。

更新:
システム例外が良いと、あなたはそれは、例えばビジネス例外であるかどうかを確認するために、エラーを検査することができますオーケストレーションで例外をキャッチクエリを実行して、RESTfulサービスにオブジェクトが存在するかどうかを確認してから、作成または更新してから404を取得する場合は、ポート。

1)送信ポートで失敗したメッセージのルーティングを有効にするポートでSuspendedメッセージを停止するには、次の手順を実行します。

2)これは、しかし、それはその後、このいずれかあなたを防ぐあなたのフィルタ式を微調整する必要があるために、エラーの多くは、ビジネス例外を

を上昇させるメッセージを失敗した処理のためのあなたが持っているものは何でもフレームワークに行くことを意味します例外ハンドラを使用するか、例外処理フレームワークでこれらのメッセージを無視するルールを持っている必要があります。

たとえば、ESB Exception Handling Frameworkを使用して、特定の送信ポートを除外するルールを調整しました。

ESB All.Exceptions port 枠組みAll.Exceptionsポートの取り扱いESB例外

3)しかし、あなたはまだ、我々はそのためのカスタムヌル・アダプタを使用し、何か他のものは、それらが消えるように失敗したメッセージをサブスクライブしている必要がありそのエラーを購読するフィルタを使用します。つまり、エラーはオーケストレーションにのみ送られます。

NULL Adapter filter expression

NULLアダプタフィルタ式

+0

こんにちは、 は、あなたの答えをいただき、ありがとうございます。 これは悲しいことですが、私はWCF-WebHttpアダプタをVariable Mappingオプションにしておきたいと思っていました。 私は詳細を追及したいと思います。 よろしくお願いいたします。 –

+0

@LarysaSUDASはい、私たちは全く同じ問題を今見ています。私がリンクしている2013 R2記事のように見えるのは、カスタムバインディングを使用していないのですが、パイプラインのフォルトをサニタイズしようとしています。中断されたメッセージか、失敗したメッセージを処理したものにルーティングされた失敗のいずれかでまだ終了していると思われます。 – Dijkgraaf

+0

私はBT 2013でWCF-WebHttpアダプタを試しましたが、HTTPステータスコード200,201,202,203には "uncatchable"例外はなく、ステータスコード500とともにフォルトメッセージが返される場合は500にも操作。カスタムパイプラインの必要はありません。デフォルトのXMLReceiveパイプラインも同じように機能します。 また、障害メッセージが操作に追加された場合、ステータスコード2xxの場合でも障害メッセージが応答本体に返された場合にキャッチ可能な障害例外がスローされます。 –