Come per la connessione a speculare SQL Server dopo il failover?
-
18-09-2019 - |
Domanda
ho creato un mirroring del database e quindi usato questo connectionstring
di connettersi ad esso:
Data Source={0};Failover Partner={1};Initial Catalog=AdventureWorks;
Integrated Security=True;
Dopo aver aggiunto alcuni dati nel database, ho spegnere il server principale, in modo che il server mirror diventa il server principale. Apro di nuovo la connessione, un ottengo questo errore:
System.Data.SqlClient.SqlException: A transport-level error has
occurred when sending the request to the server. (provider: Shared Memory
Provider, error: 0 - No process is on the other end of the pipe.)
Ho pensato che con failover partner specificato nella stringa di connessione, ADO.NET avrebbe fatto il lavoro per me. Quindi cosa devo fare ora?
Soluzione
Per fortuna, ho risolto questo problema. Tutto quello che devi fare è chiamata al metodo ClearPool:
SqlConnection.ClearPool(conn);
Questo metodo cancellerà il pool di connessioni. Quindi, il problema è andato. Sono così felice con lui.
Grazie, a tutti voi, per il vostro sostegno. : D
Altri suggerimenti
Io non sono un esperto di cose NET, ma è necessario il client nativo SQL (SQLNCLI) per gestire il failover. "Ado.net" può essere SQLOLEDB
Fino a Windows Server 2003, almeno non è installato per impostazione predefinita. E 'sia stand-alone o parte di strumenti client SQL, così ho il sospetto che si sta utilizzando SQLOLEDB
Dopo aver interrotto la preside, ha verificato che il failover in realtà è diventato il preside? Se non ha avuto il failover automatico sul server SQL, quindi è lo specchio è ancora uno specchio.
Abbiamo scoperto che questo sarebbe accaduto se non ha ancora dispone di un grande insieme di timeout sufficiente.