SQL Server Service Broker

SQL Server Service Broker は、SQL Server データベース エンジンのメッセージング アプリケーションおよびキューイング アプリケーションをネイティブで サポートします。 これにより、データベース エンジン コンポーネントを使用して異種データベース間の通信を行う高度なアプリケーションを簡単に作成できるようになるため、 Service Broker を使用すれば、信頼性の高い分散アプリケーションを簡単に開発できます。

アプリケーション開発者は、Service Broker を使用すれば、通信やメッセージングの複雑な内部のプログラミングを行わなくても、データ ワークロードを複数のデータベースに分散できます。 Service Broker によってメッセージ交換のコンテキスト内で通信パスが処理されるので、開発やテストの作業を削減できます。 また、パフォーマンスも向上します。 たとえば、Web サイトをサポートするフロントエンド データベースで情報の記録を行い、処理負荷の高いタスクはバックエンド データベースのキューに送信できます。 Service Broker では、すべてのタスクがトランザクションのコンテキストで管理されるため、信頼性と技術的な一貫性を確保できます。

Service Broker のドキュメントの格納場所

Service Broker のリファレンス ドキュメントは SQL Server 2012 のドキュメントに含まれています。 リファレンス ドキュメントには次のセクションがあります。

Service Broker の概念、開発作業、および管理作業については、以前に公開されたドキュメントを参照してください。 Service Broker は SQL Server 2012 においてわずかな変更しか加えられていないため、SQL Server 2012 用のドキュメントは作成されていません。

SQL Server 2012 での Service Broker の新機能

メッセージを複数の対象サービスに送信可能 (マルチキャスト)

SEND (Transact-SQL) ステートメントの構文が拡張され、複数のメッセージ交換ハンドルをサポートすることにより、マルチキャストが有効になりました。

メッセージがエンキューされている時間の公開

メッセージがキューに格納されている時間を示す新しい列 message_enqueue_time がキューに追加されました。

有害メッセージの処理の無効化が可能

CREATE QUEUE (Transact-SQL) ステートメントおよび ALTER QUEUE (Transact-SQL) ステートメントでは、POISON_MESSAGE_HANDLING (STATUS = ON | OFF) 句を追加することによって有害メッセージの処理を無効化できるようになりました。 カタログ ビュー sys.service_queues に、有害メッセージの処理が有効であるか無効であるかを示す is_poison_message_handling_enabled 列が追加されました。

Service Broker での AlwaysOn のサポート

詳細については、「Service Broker と AlwaysOn 可用性グループ (SQL Server)」を参照してください。