2015-07-27 8 views
5

Ich habe eine Anwendung auf einem Server, der eine SqlDependency/Abfrage-Benachrichtigung hat - Überwachung Änderungen an einer Tabelle auf einem anderen Server.SqlDependency/Query Benachrichtigung - SQL Server Neustart

Es funktioniert gut, bis wir SQL Server neu starten/neu starten. Wenn SQL Server aufgrund einiger Wartung und Patches neu gestartet wird, löst die andere Anwendung die folgenden Fehler aus und beendet. Ich kann definitiv sagen, dass es aufhört, weil es Änderungen nicht überwacht, sobald der SQL Server ausgeführt wird.

Ich muss die Anwendung neu starten, um die Abfragebenachrichtigung erneut zu abonnieren. Ich gebe keine Ausnahme innerhalb des Codes, der die Anwendung stoppen würde. Ich erhalte die Ausnahme und sende eine E-Mail.

System.Data.SqlClient.SqlException (0x80131904): A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) --->

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.

Ich bin neu in SqlDependency/Abfrage-Benachrichtigungen, so bin ich nicht sicher, ob dies ein erwartetes Verhalten oder etwas, was ich falsch mache. Es ist mein Verständnis (von anderen Stellen (SqlDependency Reliablity?), die ich habe den Auftrag nicht neu starten, um erneut abonniert.

Ihre Zeit schätzen und Antworten

+1

Dieser erwartet wird. Wenn die SQL-Verbindung aufgrund eines Neustarts von SQL Server unterbrochen wird, muss die Anwendung erneut abonnieren. –

+0

Danke für die Antwort. – itsfighter

Antwort

0

Das ist normal, weil, wenn Sie den SQL Server neu starten, der Service war gestoppt und jede Anwendung, die auf sQL Server wird geworfen diesen Fehler verbunden ist:

A network-related or instance-specific error occurred while establishing a connection to SQL Server.

um dieses Problem zu vermeiden, können Sie eine andere Instanz für jede Anwendung verwenden Sie können neue installieren Serverinstanzen mit unterschiedlichen Namen, dies zu vermeiden. Wenn Sie eine einzelne SQL-Server-Instanz neu starten, wird der andere SQL-Server gestartet Instanz wird weiterhin online bleiben.

können Sie diese Schritte ausführen zu installieren oder eine neue SQL Server-Instanz zu erstellen:

https://4sysops.com/archives/how-to-create-a-new-sql-server-2012-instance/

Verwandte Themen