トランスポートの種類と処理の分離
サービス指向ソリューションでは、ビジネス プロセスとメッセージの送受信の詳細を明確に区別することがよくあります。 これによって、ビジネス プロセスまたはソリューションのメッセージ処理部分を個別に変更できます。
サービス指向ソリューションには、この設計方針に違反する箇所が 1 か所あります。 このセクションでは、状況、可能性のある代替方法、および選択された構造について説明します。
関連付けと MQSeries アダプタ
MQSeries アダプタを使用するため、標準の BizTalk Server 関連付け識別子は使用できません。 独自の関連付け識別子システムを持つ IBM バックエンド システムに関連付け識別子が使用されるためです。 代わりに、MQSeries.MQMD_CorrelId プロパティと MQSeries.MQMD_MsgID プロパティを使用 する 必要があります。 これらのプロパティを使用すると、トランスポート固有の情報がオーケストレーション (つまり、ビジネス プロセス) に配置されることがあります。
この依存関係を処理するには、BizTalk Server の関連付け識別子を使用し、カスタム パイプライン コンポーネントを使用して MQSeries の関連付け識別子を変換する方法があります。 これにより、シナリオが複雑になります。 また、トランスポートが変更された場合、2 つのパイプライン コンポーネントを変更する必要があります。 最終的に、パイプライン コンポーネントの依存関係が解決されないで再配置されます。
別の方法として、MQSeries 固有の関連付け処理を個別のオーケストレーションに分離し、そのオーケストレーションを呼び出す方法があります。 これにより、ビジネス プロセスの独立性が確保されます。 ただし、オーケストレーション間のコンパイル時の依存関係が発生します。 トランスポートを変更する場合、両方のオーケストレーションの再コンパイルが必要です (ソリューションのスタブ バージョンからアダプタ バージョンへの移行など)。 また、この呼び出しにより、ソリューションの応答時間が長くなります。
複雑になりパフォーマンスが低下する可能性を考慮した場合、オーケストレーションの MQSeries の関連付けを直接使用することが最も簡単です。
オーケストレーションでのアダプターと関連付けの詳細については、「MQSCorrelationSetOrchestration (BizTalk Server サンプル)」を参照してください。
参照
サービス指向ソリューションの実装の重要なポイント
MQSCorrelationSetOrchestration (BizTalk Server サンプル)