相互運用性と共存 (Service Broker)

SQL Server 2008 での Service Broker の動作は SQL Server 2005 での動作と同様ですが、メッセージ交換の優先度の扱いが異なります。

メッセージ交換の優先度

メッセージ交換の優先度は、SQL Server 2005 データベース エンジン のインスタンスにアタッチされているデータベースでは定義できません。SQL Server 2005 データベースでは、すべての Service Broker 操作が同じ優先度の操作として動作します。

SQL Server 2008 データベースと SQL Server 2005 データベースの間のメッセージ交換では、SQL Server 2005 データベースのメッセージ交換エンドポイントは常に既定の優先度 5 が割り当てられているものとして動作します。SQL Server 2008 データベースのメッセージ交換エンドポイントには構成により異なる優先度を割り当てられますが、SQL Server 2005 データベースのエンドポイントに異なる優先度を割り当てることはできません。すべてのメッセージが優先度 5 のメッセージとして SQL Server 2005 インスタンスから送信されます。SQL Server 2005 データベース内のサービス キューはいずれも、メッセージとメッセージ交換グループを同じ優先度のデータとして返します。

SQL Server 2005 データベースでメッセージ交換の優先度を有効にするには、次の方法があります。

  • 次のいずれかの方法でデータベースを SQL Server 2005 にアップグレードします。

    • データベース エンジンのインスタンスを SQL Server 2008 にアップグレードする。

    • データベースをデタッチしてデータベース エンジンの SQL Server 2008 インスタンスに再アタッチする。

  • ALTER DATABASE ステートメントを使用して、HONOR_BROKER_PRIORITY データベース オプションを ON に設定します。

  • CREATE BROKER PRIORITYALTER BROKER PRIORITY、および DROP BROKER PRIORITY ステートメントを使用して、データベース内にメッセージ交換の優先度のセットを構成します。