Service Broker と AlwaysOn 可用性グループ (SQL Server)
このトピックでは、SQL Server 2014 でAlways On可用性グループを操作するように Service Broker を構成する方法について説明します。
このトピックの内容
可用性グループのサービスでリモート メッセージを受信するための要件
可用性グループにリスナーが存在している。
詳細については、可用性グループのリスナーの作成および構成 (SQL Server) に関するページを参照してください。
Service Broker エンドポイントが存在し、正しく構成されている。
可用性グループの可用性レプリカをホストするすべての SQL Server のインスタンスで、次のように Service Broker エンドポイントを構成します。
LISTENER_IP を "ALL" に設定します。 この設定により、可用性グループ リスナーにバインドされている有効な IP アドレスに接続できるようになります。
すべてのホスト サーバー インスタンスで Service Broker の PORT を同じポート番号に設定します。
ヒント
特定のサーバー インスタンスの Service Broker エンドポイントのポート番号を確認するには、 sys.tcp_endpoints カタログ ビューの port 列に対してクエリを実行します ( type_desc = 'SERVICE_BROKER')。
次の例では、既定の Service Broker ポート (4022) を使用し、有効なすべての IP アドレスをリッスンする Windows 認証済みの Service Broker エンドポイントを作成します。
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
詳細については、「 CREATE ENDPOINT (Transact-SQL)」を参照してください。
エンドポイントに対する CONNECT 権限を許可する。
Service Broker エンドポイントに対する CONNECT 権限を PUBLIC またはログインに許可します。
次の例では、
broker_endpoint
という名前の Service Broker エンドポイントに対する接続を PUBLIC に許可します。GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
詳細については、「GRANT (Transact-SQL)」を参照してください。
msdb に AutoCreatedLocal ルートまたは特定のサービスへのルートが含まれている。
Note
msdbを含む各ユーザー データベースには、既定で AutoCreatedLocalというルートが含まれています。 このルートは、どのサービス名および任意のブローカー インスタンスにも適用でき、現在のインスタンス内でメッセージを配信するように指定します。 AutoCreatedLocal の優先度は、リモート インスタンスと通信する特定のサービスを明示的に指定したルートよりも低くなります。
ルートの作成の詳細については、(SQL Server 2008 R2 バージョンのオンライン ブックの)「Service Broker のルーティングの例」および「CREATE ROUTE (Transact-SQL)」を参照してください。
可用性グループのリモート サービスにメッセージを送信するための要件
対象サービスへのルートを作成する。
次のようにルートを構成します。
ADDRESS を、サービス データベースをホストする可用性グループのリスナーの IP アドレスに設定します。
PORT を、各リモート SQL Server インスタンスの Service Broker エンドポイントに指定したポートに設定します。
次の例では、
RouteToTargetService
サービスに対するISBNLookupRequestService
という名前のルートを作成します。 ルートの対象は、ポート 4022 を使用している可用性グループ リスナーMyAgListener
です。CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
詳細については、「CREATE ROUTE (Transact-SQL)」を参照してください。
msdb に AutoCreatedLocal ルートまたは特定のサービスへのルートが含まれている。 (詳細については、このトピックの前の「 可用性グループのサービスでリモート メッセージを受信するための要件」を参照してください)。
Related Tasks
参照
AlwaysOn 可用性グループの概要 (SQL Server)
可用性グループ リスナー、クライアント接続、およびアプリケーションのフェールオーバー (SQL Server)
SQL Server Service Broker (SQL Server Service Broker)