次の方法で共有


方法: データベースで Service Broker メッセージ配信をアクティブにする (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed Instance

既定では、 Service Broker が有効になり、データベースの作成時にデータベースでメッセージ配信がアクティブになります。 メッセージ配信がアクティブでない場合、メッセージは伝送キューに残ります。 Service Broker がデータベースに対してアクティブかどうかを確認するには、is_broker_enabled カタログ ビューのsys.databases列を確認します。

注記

Service Broker をアクティブ化すると、そのデータベースにメッセージが配信されるようになります。 インスタンスの外部からメッセージを送受信するには、Service Broker エンドポイントを作成する必要があります。

Service Broker を無効にする

Service Broker は、データベースの作成時に既定で有効になります。 ALTER DATABASE ステートメントを使用して、データベース内の Service Broker メッセージ配信を無効にすることができます。 Service Broker を無効にすると、メッセージは伝送キューに残り、データベースに配信されません。

Service Broker を無効にするには、次の Transact-SQL スクリプトを実行します。

USE master;
GO
ALTER DATABASE [<database name>]
    SET DISABLE_BROKER;    

注記

Azure SQL Managed Instance に移行されたデータベースで Service Broker が無効になっている場合、ターゲット SQL マネージド インスタンスで Service Broker を有効にすることはできません。 ターゲット SQL マネージド インスタンスで Service Broker を使用するには、SQL マネージド インスタンスに移行する前に、ソース SQL Server データベースで有効にします。

データベースで Service Broker を有効にする

Service Broker が無効になっている場合は、 ALTER DATABASE ステートメントを使用して ENABLE_BROKER オプションを設定することで有効にすることができます。

Service Broker を有効にするには、次の Transact-SQL スクリプトを実行します。

USE master;
GO

ALTER DATABASE [<database name>]
    SET ENABLE_BROKER;
GO

Service Broker の状態を確認する

データベースの Service Broker の状態を確認するには、次の Transact-SQL スクリプトを実行します。

SELECT name AS [Database Name], is_broker_enabled AS [Service Broker Enabled]
FROM sys.databases
WHERE name = '[<database name>]';

Azure SQL Managed Instance の Service Broker

Azure SQL Managed Instance では、Service Broker は既定で有効になっており、無効にすることはできません。 次の ALTER DATABASE オプションはサポートされていません。

  • ENABLE_BROKER
  • DISABLE_BROKER