失敗したメッセージのサブスクリプションの操作
Microsoft BizTalk Accelerator for SWIFT (A4SWIFT) 逆アセンブラーがメッセージを処理 (解析および検証) すると、そのメッセージのプロパティが昇格されます。 これらの昇格されたプロパティは、メッセージの正確性と有効性に関する情報と、受信バッチの一部としてメッセージA4SWIFT受信した場合のバッチ関連の情報を提供します。 これらのプロパティの完全な一覧については、「 A4SWIFT_* 昇格されたプロパティ」を参照してください。
ネイティブの BizTalk 逆アセンブラーとは異なり、A4SWIFT逆アセンブラーは、処理でエラーやエラーが発生してもメッセージを中断しません。 代わりに、失敗したメッセージを有効なメッセージと同様に MessageBox データベースに発行します。 その結果、失敗したメッセージは、エラーの詳細を MessageBox データベースに送信する可能性があります。 MessageBox データベースからメッセージを取得し、メッセージを処理して修復し、メッセージを MessageBox データベースに再送信することもできます。 メッセージが実際に 中断されている場合、これらのタスクのほとんどは実行できません。
A4SWIFTが MessageBox データベースに発行したメッセージを、昇格されたプロパティによって失敗または誤りとして識別できます。 失敗したメッセージを処理すると、SWIFT 逆アセンブラーは、メッセージを MessageBox データベースに発行する前に、 A4SWIFT_Failed プロパティと他の 1 つ以上のプロパティを設定して昇格させます。
A4SWIFT_ParseErrors は、処理中に検出された解析エラー (不適切なデータなど) の数を示します。
A4SWIFT_XmlValidationErrors は、処理中に発生した XML 検証エラー (スキーマに関して無効なデータや正しくない型など) の数を示します。
A4SWIFT_BreValidationErrors は、処理中に発生したビジネス ルール エンジン (BRE) 検証エラー (SWIFT ネットワーク ルールを破るデータなど) の数を示します。
A4SWIFT_Failed は、上記のプロパティの数が 0 より大きい場合は true 、カウントが 0 に等しい場合は false です。
これらのプロパティはすべて Microsoft の一部です。Solutions.A4SWIFT.Property 名前空間。 これらのプロパティとその他の昇格されたプロパティの詳細については、「 A4SWIFT_* 昇格されたプロパティ」を参照してください。
失敗したメッセージをキャッチまたは取得するには、上記のプロパティの一部を含む送信ポートまたはオーケストレーション受信図形のフィルター式 (サブスクリプション) を式の AND 句として作成する必要があります。
たとえば、失敗したすべてのメッセージをサブスクライブするには、次の句を追加します (他の句がある場合は AND 句として)。
マイクロソフト。Solutions.A4SWIFT.Property.A4SWIFT_Failed == true
解析エラーのみを含むメッセージをサブスクライブするには、次の句を一緒に追加します。
そしてマイクロソフト。Solutions.A4SWIFT.Property.A4SWIFT_Failed == true,AND Microsoft .Solutions.A4SWIFT.Property.A4SWIFT_XmlValidationErrors == 0,ANDMicrosoft .Solutions.A4SWIFT.Property.A4SWIFT_BreValidationErrors == 0;
逆に、有効なメッセージのみを処理するように設計された送信ポートまたはオーケストレーションには、"ANDMicrosoft.フィルター式の句として == false" をSolutions.A4SWIFT.Property.A4SWIFT_Failedします。
Note
サブスクリプションが重複する場合、A4SWIFTはすべてのサブスクリプションを満たします。 つまり、複数のサービス (送信ポートまたはオーケストレーション) に特定のメッセージによって満たされたフィルター式がある場合、そのようなサービスはすべて同じメッセージを受け取ります。 たとえば、送信ポートが失敗したすべてのメッセージをサブスクライブし、オーケストレーションが解析エラーを含むメッセージのみをサブスクライブする場合、メッセージの処理中にA4SWIFTで解析エラーが発生した場合、両方のサブスクリプションが満たされます。 サービス間のサブスクリプションの不要な重複を排除してください。
Note
A4SWIFTがメッセージを受信して処理し、そのメッセージを MessageBox データベースに発行したが、メッセージがサブスクリプションを満たしていない場合、A4SWIFTはサブスクライバーの不足を示すBizTalk Server エラーでメッセージを中断します。 たとえば、"A4SWIFT_Failed == false" のすべてのメッセージをサブスクライブするサービスがあり、"A4SWIFT_Failed == true" のメッセージをサブスクライブするサービスがない場合、サブスクライバーがないため、解析または検証に失敗したメッセージは実際に中断されます。 このシナリオでは、実際には、失敗したメッセージの従来の中断を模倣できます。 中断したくないすべてのメッセージをサブスクライブしてください。 MessageBox データベース サブスクリプション、送信ポート、オーケストレーション、フィルター式の詳細については、「BizTalk Server ヘルプ」を参照してください。
このセクションには、次のトピックが含まれています。