Domanda

Abbiamo un numero molto elevato di lavori SSIS che sono programmati ogni sera / mattina presto per essere eseguiti in successione. Questi lavori popolano e aggiornano grandi quantità di dati per i nostri sistemi di produzione. Di recente, abbiamo iniziato a ricevere un messaggio di errore su diversi lavori in momenti diversi. Finora, è stato impossibile riprodurlo su una base coerente:

     Code: 0xC0202009     
     Source: [Job Name] Connection manager "[Connection.Manager.Name]"
     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Communication link failure". 
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Named Pipes Provider: No process is on the other end of the pipe.  ".  
End Error
Error: 2009-03-10 05:19:51.09
     Code: 0xC00291EC     Source: Update record status Execute SQL Task
     Description: Failed to acquire connection "[Connection.Manager.Name]". Connection may not be configured correctly or you may not have the right permissions on this connect...  The package execution fa...  The step failed.

La connessione è sicuramente configurata correttamente e la stiamo eseguendo come utente con le autorizzazioni appropriate. Per oltre un anno, questi lavori hanno funzionato perfettamente. Le ricerche di Google mostrano risultati che sembrano estendersi da possibili problemi di connessione a problemi di integrità dei dati. Abbiamo provato a farlo dall'estremità dell'origine dati come problema di connettività e dal db di SQL Server e dalla casella del server controllando i registri degli eventi. Nulla sembra allinearsi. Ecco la nostra configurazione:

  • Abbiamo una scatola Server 2003 con SQL Server 2005 dedicata solo all'alloggiamento e all'esecuzione di lavori SSIS
  • Abbiamo una scatola Server 2003 dedicata con solo il database SQL Server che contiene i nostri dati e serve anche report di Reporting Services
  • La maggior parte dei nostri lavori si collega tramite ODBC a un database Sybase per ottenere dati dal nostro sistema di registrazione e trasferirli a SQL Server per il reporting e la manipolazione dei dati

Qualcuno ha riscontrato questa eccezione in modo simile? Ancora una volta, abbiamo tentato di risolvere i DB di SQL Server e anche la connessione Sybase senza fortuna.

È stato utile?

Soluzione

Se OLE DB ti sta mentendo, questo potrebbe essere qualsiasi cosa. In caso contrario, forse non c'è alcun processo sull'altra estremità del tubo. Dovresti cercare nei registri degli eventi, ecc. Per vedere se forse è morto l'altro processo.

Anche i processi che sono stati in esecuzione nella produzione per anni possono cambiare il loro comportamento se qualcos'altro cambia. Ad esempio, un backup o un altro processo automatizzato potrebbe richiedere sempre più tempo e ora si scontra con la pianificazione esistente dei pacchetti SSIS. Una cosa del genere potrebbe forzare la chiusura di qualsiasi connessione aperta, causando "nessun processo sull'altra estremità del tubo".

Altri suggerimenti

Nel nostro caso è stata una contesa di risorse. Si sono verificati deadlock a causa di blocchi a livello di tabella di altri processi. L'errore di Native Client non era abbastanza descrittivo per farci sapere che cosa non andava inizialmente. Abbiamo dovuto eseguire SQL Server Profiler sul DB e filtrare gli errori di deadlock. Questo articolo ha aiutato molto a farci puntare nella giusta direzione.

Spero che aiuti !!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top