メッセージ ボックス データベース

Microsoft BizTalk Server の公開/サブスクライブ エンジンの中心となるのは、メッセージ ボックス データベースです。 MessageBox は、1 つ以上の Microsoft SQL Server データベースとメッセージング エージェントの 2 つのコンポーネントで構成されます。 メッセージ、メッセージ部分、メッセージ プロパティ、サブスクリプション、オーケストレーションの状態、追跡データ、ルーティングのためのホスト キューなど、その他多くの要素に対して、SQL Server データベースによる永続的なストアが提供されます。 BizTalk Server グループには、メッセージの公開先として 1 つまたは複数のメッセージ ボックス データベースを設定できます。メッセージのサブスクライバーは、これらのデータベースからメッセージを抽出します。

メッセージのルーティングやサブスクリプション情報の入力に関するロジックの一部は、データベースから提供されます。 ただし、データベース コンポーネントは、メッセージ エージェントによってカプセル化、抽象化されます。BizTalk Server とメッセージ ボックスとのやりとりには、インターフェイスとしてメッセージ エージェントが使用されます。 メッセージ エージェントは、メッセージの公開、サブスクライブ、取得などを行うためのインターフェイスを提供する Component Object Model (COM) コンポーネントです。 このインターフェイスは、アダプター フレームワークやオーケストレーションなど他の BizTalk Server コンポーネントが、メッセージ ボックスと対話するために使用される唯一のメカニズムです。

メッセージ ボックスとメッセージ

メッセージ ボックス データベースのサブスクリプションは、設定済みの情報とサービス情報のセットです。 設定済みの情報 (述語情報) とは、メッセージが満たす必要のある条件です。 サービス情報は、条件を満たしたメッセージに対する処理を表します。 これらの情報はすべてメッセージングおよびオーケストレーション エンジンを呼び出す一連のテーブルに保存されます。

BizTalk Server でメッセージを受信すると、パイプラインでメッセージが処理され、メッセージ ボックス データベースにそのメッセージが保存されます。 受信メッセージにはコンテキストがあります。 メッセージ コンテキストとは、そのメッセージに関連付けられているプロパティのセットを指します。 メッセージ コンテキストのプロパティには次の 3 種類があります。

  • 単純な書き込みプロパティ

  • 昇格させたプロパティ

  • 述語プロパティ

    昇格させたメッセージと述語メッセージのプロパティは、このメッセージをサブスクライブしているビジネス プロセスを示すと共に、そのビジネス プロセスにメッセージを受信するためのアクセス許可があるかどうかも示します。

    あるビジネス プロセスがメッセージをサブスクライブしていれば、メッセージ ボックス データベースはそのビジネス プロセスにメッセージを送信します。 ビジネス プロセスは、そのメッセージを受信すると、使用可能なホスト インスタンスでメッセージを処理します。 メッセージの処理後、ビジネス プロセスがパイプラインまたは送信ポートをサブスクライブしている場合、そのビジネス プロセスはメッセージ ボックス データベースに返信メッセージを送信します。

    各 BizTalk ホストに関連付けられているメッセージ ボックスには、作業キューと保留キューがそれぞれ 1 つずつあります。 さらに、各メッセージ ボックス データベースには、静的状態、動的状態、およびインスタンス状態のテーブルのセットが格納されています。 BizTalk ホストの詳細については、「 エンティティ」を参照してください。

重要

ホストが使用不可になった場合、たとえば、ホストからメッセージを受信するメッセージ ボックス データベースが使用できなくなった場合は、他のメッセージ ボックス データベースもすべて使用できなくなります。

最初のメッセージ ボックス データベースは、構成ウィザードの実行時に作成されます。 構成されたメッセージ ボックス データベースが、マスター メッセージ ボックス データベースになります。 マスター メッセージ ボックス データベースは、BizTalk Server 環境内にある他のすべてのメッセージ ボックス データベースのサブスクリプションを評価し、ルーティングします。 マスター MessageBox データベースのパフォーマンスの向上については、「MessageBox データベース の管理」を参照してください。

重要

メッセージ ボックス データベースに対してフェールオーバー保護を行うには、SQL Server クラスタリングを使用する必要があります。

メッセージ ボックス データベース内の保留メッセージ

BizTalk Server では中断したパイプラインに関連するメッセージがメッセージ ボックス データベースに保存されます。 パイプラインでエラーが発生した場合、BizTalk Server ではそのメッセージのインスタンスが中断されます。 中断されたサービスのインスタンスには、次の 2 種類があります。

  • 中断された、再開可能なインスタンス。

  • 中断された、再開不可能なインスタンス。 たとえば、インスタンスが破壊されている場合などです。

    中断の原因によっては、中断BizTalk Serverサービスを再開できる場合があります。たとえば、オーケストレーションが Suspend 図形にヒットした場合や、トランスポートがメッセージを配信できなかった場合、BizTalk Serverは、MessageBox データベースから再開できない中断されたインスタンスを自動的に削除しません。 サービス インスタンスを保留キューから削除する前に、ディスクに保存することができます。

    MessageBox データベースのバックアップの詳細については、「BizTalk Server データベースのバックアップと復元」を参照してください。

参照

メッセージング エンジン