
Wir haben eine Anwendung, die Service Broker verwendet, um Benachrichtigungen vom SQL Server zu empfangen. Die Anwendung funktioniert einwandfrei, wenn SQL Always On nicht aktiviert ist und wenn wir mit einer einzelnen Datenbank interagieren.
Seit Kurzem verwenden wir SQL Always On. Nachdem wir ein Failover von einem SQL Node1 zu einem anderen SQL Node2 durchgeführt haben, erhalten wir keine Benachrichtigungen mehr von SQL Node2. Vor einem Failover erhalten wir Benachrichtigungen, selbst wenn SQL Always On verwendet wird. Um die Benachrichtigungen wieder zu erhalten, müssen wir die Service Broker-Vertragsnachrichten, den Warte- und Empfangsbefehl für den jeweiligen Dienst und die Warteschlange usw. erneut senden. Dies entspricht einem Neustart unseres Dienstes.
Ich habe im Internet nachgesehen und fanddieser MSDN-Artikel zu Service Broker auf SQL Always On. Ich habe die in diesem Abschnitt des obigen Artikels genannten Schritte ausgeführt, insbesondere im AbschnittAnforderungen an einen Dienst in einer Verfügbarkeitsgruppe zum Empfangen von Remotenachrichten.
Der im obigen Artikel erwähnte 4. Schritt:Stellen Sie sicher, dass msdb entweder eine AutoCreatedLocal-Route oder eine Route zum spezifischen Dienst enthält.Aber AutoCreatedLocal war standardmäßig vorhanden, deshalb habe ich im 4. Schritt nichts getan.
Aber ich erhalte nach dem Failover immer noch keine Benachrichtigungen.
Können Sie mir bitte sagen, welche Schritte ich übersehen oder nicht richtig ausgeführt habe oder welche weiteren Punkte noch zu beachten sind?