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 2014 のドキュメントに含まれています。 リファレンス ドキュメントには次のセクションがあります。

の概念、開発作業、および管理作業については、 以前に公開されたドキュメント Service Broker を参照してください。 このドキュメントは、SQL Server 2014 での Service Broker の変更の数が少ないため、SQL Server 2014 のドキュメントでは再現されていません。

Service Broker の新機能

SQL Server 2014 では、大きな変更は行われません。 SQL Server 2012 では、次の変更が導入されました。

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

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 with AlwaysOn 可用性グループ (SQL Server)」を参照してください。