Max_Queue_Readers プロパティは、Service Broker のアクティブ化タスクを制限しようとするときに無視されます

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:3163368
現象
次のような状況を考えます。
  • Microsoft SQL Server を Microsoft SQL Server 2012 Service Broker を使用するとします。
  • ストアド プロシージャの非同期実行するためには、Service Broker を設定します。
  • Max_Queue_Readersプロパティをストアド プロシージャの同時実行の活性化のインスタンスの数を制限するための Service Broker キューの特定の値に設定します。
このシナリオで発生する複数のタスクがアクティブ化されているMax_Queue_Readersに設定されている値よりも実行しています。
原因
この問題は、次を実行して、マルチ ユーザー モード (MULTI_USER) に、Service Broker データベースがシングル ユーザー モード (RESTRICTED_USER) から切り替えられた場合に発生することができます。

alter database <dbname> set multi_user
データベース上のユーザー モードが変更されると、Service Broker がシャット ダウンと再起動します。この処理中に既存の QueueMonitor オブジェクトを削除すると QueueMonitor オブジェクトの別のインスタンスを作成します。サービス ブローカーのシャット ダウン中に、ライセンス認証プロセスが長時間のオペレーションを実行している場合、QueueMonitor オブジェクトのステータスは「ドロップ」します。

ただし、その参照カウントがゼロに達していないために、既存の QueueMonitor オブジェクトのインスタンスは削除されません。Service Broker の再起動時に、アクティブ化の手順を実行中は、場合、QueueMonitor オブジェクトと QueueMonitor ドロップされたオブジェクトの新しいインスタンスは同じキューに共存します。サービス ブローカーを起動する次に、ドロップされた QueueMonitor オブジェクトのインスタンスが削除されます。
回避策
この問題を回避するには、実行ことを確認する「データベースの [データベース名] 設定 multi_user を変更する」としないアクティブ化手順を実行します。これを行うには、次の方法のいずれかの手順に従います。

  • ユーザー モードを変更する前に、データベース内のすべてのキューを無効にして、すべてのキューを再度有効にします。
  • ユーザー モードを変更する前に、次のコマンドを実行することによって影響を受けるすべてのキューのアクティブ化の手順を無効にして、アクティブ化の手順を再度有効にします。

    alter queue <queueName> with activation ( status = off)
詳細
次のように"sys.dm_broker_activated_tasks"に対してクエリを実行して、特定のキューを実行しているアクティブ化の手順の数を確認できます。

select * from sys.dm_broker_activated_tasks where queue_id = <queue number>
キュー モニターの状態を照会するには、次のクエリを実行します。

Select * from sys.dm_broker_queue_monitors where queue_id = <queue number>
データベース ・ ユーザー ・ モードが変更された場合は「削除」とは、キュー モニターの状態が表示されます。

警告: この記事は自動翻訳されています

プロパティ

文書番号:3163368 - 最終更新日: 05/19/2016 18:22:00 - リビジョン: 1.0

Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup

  • kbprb kbsurveynew kbexpertiseadvanced kbmt KB3163368 KbMtja
フィードバック