Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Max_Queue_Readers-Eigenschaft wird ignoriert, wenn Sie versuchen, die Aktivierung Tasks in Service Broker zu begrenzen

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 3163368
Problembeschreibung
Betrachten Sie das folgende Szenario:
  • Service Broker in Microsoft SQL Server 2014 oder Microsoft SQL Server 2012 verwenden.
  • Service Broker festgelegt für asynchrone gespeicherte Prozedur.
  • Legen Sie die Max_Queue_Readers -Eigenschaft auf einen bestimmten Wert für Service Broker-Warteschlange beschränken, wie viele Instanzen einer Aktivierung gespeicherte Prozedur gleichzeitig ausführen
In diesem Szenario Beachten Sie, dass mehr Aufgaben aktiviert als der Wert fürMax_Queue_Readersausgeführt werden.
Ursache
Dieses Problem kann auftreten, wenn die Service Broker-Datenbank in den Einzelbenutzermodus (RESTRICTED_USER) Mehrbenutzermodus (MULTI_USER) gewechselt wird ausgeführt werden:

alter database <dbname> set multi_user
Wenn Benutzermodus in der Datenbank geändert, Service Broker heruntergefahren und neu gestartet. Während dieses Vorgangs das vorhandene QueueMonitor-Objekt wird gelöscht, und eine andere Instanz des QueueMonitor-Objekts erstellt. Läuft die Aktivierung ein langen Vorgangs während Service Broker heruntergefahren wird, wird der Status des QueueMonitor-Objekts in "Gelöschte" geändert

Vorhandene QueueMonitor Objektinstanz wird jedoch nicht gelöscht, weil sein Verweiszähler nicht 0 (null) erreicht hat. Läuft die Aktivierung noch beim Neustart von Service Broker, wird die neue Instanz des QueueMonitor-Objekts und das abgelegte Objekt QueueMonitor in dieselbe Warteschlange vorhanden sein. Gelöschte QueueMonitor Objektinstanz wird wieder gelöscht, die Service Broker zu starten.
Abhilfe
Um dieses Problem zu umgehen, stellen Sie sicher, wenn keine aktivierten Prozedur auszuführen "alter Datenbank [Dbname] Set Multi_user" ausgeführt. Verwenden Sie hierzu eine der folgenden Methoden:

  • Vor dem Ändern des Benutzermodus alle Warteschlangen in der Datenbank deaktivieren und Reaktivieren der Warteschlangen.
  • Vor dem Ändern des Benutzermodus deaktivieren Sie Aktivierungsverfahren für alle betroffenen Warteschlangen durch Ausführen des folgenden Befehls und reaktivieren Sie Aktivierung:

    alter queue <queueName> with activation ( status = off)
Weitere Informationen
Sie können die Anzahl der Aktivierungsvorgang überprüfen, die für eine bestimmte Warteschlange durch Ausführen einer Abfrage "sys.dm_broker_activated_tasks" wie folgt ausgeführt werden:

select * from sys.dm_broker_activated_tasks where queue_id = <queue number>
Durch Ausführen der folgenden Abfrage können Sie den Status der Arbeitswarteschlangen-Monitor Abfragen:

Select * from sys.dm_broker_queue_monitors where queue_id = <queue number>
Die Arbeitswarteschlangen-Monitor wird angezeigt als "gelöscht", wenn die Datenbank Benutzer geändert wurde.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 3163368 – Letzte Überarbeitung: 05/19/2016 18:16:00 – Revision: 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 KbMtde
Feedback
ript>