2012-10-17 20 views
9

Ho 2 processi pianificati sul mio computer SQL Server 2005 che è pianificato per essere eseguito ogni mattina (intorno alle 2:00 AM). Questi lavori hanno funzionato bene (per lo più) per anni e anche se ho avuto qualche singhiozzo che ho dovuto affrontare attraverso questo problema mi sta bloccando completamente.SSIS: Appena iniziato a ricevere una "Chiave non valida per l'uso nello stato specificato". errore sul pacchetto SSIS pianificato

Due mattine fa, uno dei miei pacchetti iniziato segnalato la seguente errore:

Executed as user: [Service Acount]. ...n 9.00.4035.00 for 32-bit 
Copyright (C) Microsoft Corp 1984-2005. All rights reserved. 
    Started: 1:15:01 AM Error: 2012-10-17 01:15:03.98 
    Code: 0xC0016016 
    Source: 
     Description: Failed to decrypt protected XML node "DTS:Password" 
     with error 0x8009000B "Key not valid for use in specified state.". 
     You may not be authorized to access this information. This error 
     occurs when there is a cryptographic error. Verify that the 
     correct key is available. End Error Error: 2012-10-17 01:15:03.99 
    Code: 0xC0016016 
    Source: 
     Description: Failed to decrypt protected XML node "DTS:Password" 
     with error 0x8009000B "Key not valid for use in specified state.". 
     You may not be authorized to access this information. This error 
     occurs when there is a cryptographic error. Verify that the 
     correct key is available. End Error Error: 2012-10-17 01:15:04.01 
    Code: 0xC0016016  
Source:  
Description: Failed to ... The package execution fa... The step failed. 

Questo sembra essere un problema comune, tuttavia, nessuna delle raccomandazioni che ho trovato né si applica a mio scenario né la mia istanza sembra corrispondere alla maggior parte degli altri casi in cui ciò si verifica. Ecco i dettagli importanti riguardanti la mia implementazione.

  • Questo pacchetto sta esportando i dati da un sistema iSeries, alle tabelle di dati di SQL Server 2005.
  • Questo processo funziona correttamente ma continua a bloccarsi in una tabella, esportazione specifica. Infatti, funziona senza problemi per oltre 2 ore prima che muoia. Dopo aver esaminato tutte le proprietà associate con questo passaggio, è possibile notare che non vi è nulla di diverso in questo passo rispetto alle altre fasi di esportazione della tabella, ad eccezione dei mapping di esportazione tabella/colonna.
  • Il pacchetto ProtectionLevel è impostato su DontSaveSensitive e le credenziali iSeries sono memorizzate in un file di configurazione a cui accede SQL Server.
  • Posso eseguire il passaggio non riuscito sulla mia macchina, in BIDS. Indipendentemente da ciò, non funziona sul server, sebbene il server stia utilizzando le stesse identiche credenziali.
  • Come ho già detto, ho due pacchetti. Sono effettivamente la stessa cosa, ad eccezione di uno sta esportando i dati da un database iSeries e l'altro sta esportando i dati che è quasi la stessa struttura esatta da un altro DB iSeries. Il primo pacchetto non presenta alcun problema anche se utilizza le stesse credenziali iSeries.
  • Per essere chiari, nulla sul mio server è cambiato in mesi (che io sappia). Questo ha appena iniziato a succedere ieri mattina.

Qualsiasi suggerimento o suggerimento sarebbe estremamente utile. Questa esportazione è estremamente importante e molti utenti/dipendenti fanno affidamento su questi dati per il loro lavoro quotidiano.

+1

Eventuali aggiornamenti applicati al server? Hai provato a salvare il pacchetto direttamente da BIDS alla posizione di destinazione (Salva come fornisce tale opzione)? – rvphx

+0

Non credo che nessun aggiornamento sia stato inviato al Server (OS). Controllo eventuali aggiornamenti di SQL Server e non ne ho installato nessuno. Inoltre, costruisco il progetto localmente sulla mia macchina, quindi remoto nella macchina SQL Server e lo importa nel database (non in una posizione basata su file.) – RLH

+0

Hai provato a modificare il livello di protezione del pacchetto quando lo importi su SQL Server? A volte durante l'importazione del pacchetto, quella cosa viene incasinata. – rvphx

risposta

12

Beh, odio dover postare una simile risposta, ma ho risolto il problema.

Il motivo di risposta breve per cui ho avuto questo problema è dovuto al fatto che uno dei campi in una tabella di dati non è stato definito correttamente. In questo caso è stato dichiarato come decimal (11, 3) e avrebbe dovuto essere un decimal (13, 3). Non ho riscontrato questo problema finché non è stato pubblicato un valore nella tabella che non si adattava all'intervallo (11, 3).

Questo problema evidenzia uno dei miei più grandi reclami con SSIS. A volte ricevo errori che sono spesso ben documentati su Internet. Ricerco tutti i miei registri e cerco di impostare vari scenari di test partendo dal presupposto che il messaggio di errore sia onesto. Tuttavia, quando finalmente risolvo il problema, è completamente estraneo al messaggio di errore che viene scritto nel file di registro.

In questo caso, l'errore di cui sopra non ha assolutamente nulla a che fare con il problema ?! In effetti, sono stato molto fortunato a vedere il problema. Sapevo che l'aggiornamento sul mio tavolo potrebbe essere una potenziale soluzione perché ho visto comunicare SSIS in modo errato prima del.

mi piacerebbe dare la colpa questo sui neutrini dallo spazio bombardando mio server, ma il migliore take-away da questa esperienza è quello di cercare di risolvere i vostri problemi SSIS in base al largo del parere di altri, tuttavia , se i loro consigli non aiuta, rendersi conto che il problema potrebbe non essere correlato al messaggio di errore SSIS e triplicare tutto ciò che è associato al punto di errore.

+2

Wow..non mi sarei mai aspettato un problema di tipo di dati per causare quel problema. Non ha ancora senso per me, ma terrò questo a mente. Grazie per aver condiviso la tua scoperta. – rvphx

+0

rvphx: beh, come ho sintetizzato, il take-away non è che un missmatch di tipo dati sia la causa di questo errore * specifico *. Invece, è il fatto che SSIS sta segnalando un errore errato. Non so perché, ma questo errore esatto sembra sempre essere un "ripiego" quando qualcosa va storto in SSIS. Ci sono un paio di errori che controllo sempre, prima di cercare l'errore lungo (cioè i tentativi di immissione di chiavi duplicate riportano anche un errore fittizio). Questo sembra essere un altro. :/ – RLH

5

Non è stato possibile pubblicare l'immagine nei commenti, quindi pubblicarla come risposta.

Quando si tenta di importare il pacchetto in SQL Server, non appena si fa clic con il pulsante destro del mouse e si esegue "Importa pacchetto", verrà visualizzata la seguente finestra.

enter image description here

Fare clic sulla casella rettangolo a destra della finestra. Ti darà la possibilità di cambiare il livello di protezione del pacchetto. Passa a "Non salvare sensibili" e prova a eseguire il pacchetto. Una parola di cautela, questo richiederà la rimozione del pacchetto esistente e la reimportazione di nuovo. Quindi, potresti voler provarlo su un'altra macchina prima di toccare la configurazione esistente.

+0

Interessante. Vedo il Livello di protezione ma non l'ho mai prestato attenzione per due ragioni. Innanzitutto, è vuoto. Inizialmente avrei pensato che avrebbe ereditato le mie impostazioni iniziali, inoltre credo di ignorare tale impostazione dall'attività Esecuzione lavoro. In secondo luogo, il campo sembra disabilitato a causa dello sfondo grigio. Posso cambiarlo, comunque. Sto facendo un altro test adesso. Una volta che finisce, e se fallisce, risponderò con i risultati di questo aggiornamento. Potrebbe volerci un altro giorno. Questo pacchetto richiede molto tempo per essere eseguito e potrei essere fuori ufficio al termine. – RLH

+0

Grazie per il tuo aiuto rvphx. Sfortunatamente questa non era la soluzione ai miei problemi, quindi non posso darti il ​​segno di risposta (ma posso darti una risposta positiva.) Vedi la mia risposta per la mia correzione che vorrei fosse un po 'più utile alla comunità. – RLH

3

Per me era solo la password per una connessione Manager in SSIS, che non è stata salvata. Inserire la password -> OK-> chiudere il file dtsx & riaprire. Errore andato.

0

Questa è una soluzione alternativa per evitare il problema, in primo luogo, il salvataggio di password sensibili nel pacchetto.

Ho rimosso l'attività FTP e ho utilizzato un'attività File System invece di copiare il file nella stessa posizione tramite una condivisione di rete sul server ftp ed evitato di utilizzare il protocollo ftp.

Sono stato anche in grado di salvare il pacchetto nel file system anziché nel server SQL Server e funzionava correttamente.

Speriamo che ti aiuti!

3

incontrato lo stesso messaggio di errore in SQL Server 2012. Per me, il riavvio di SQL Server Management Studio risolto il problema. Il problema era probabilmente causato dalla modifica della password del mio dominio pochi giorni fa mentre SSMS era aperto. Se si verifica un problema simile e non si risolve il problema con un semplice riavvio, assicurarsi di controllare Control Panel\User Accounts\Credential Manager per informazioni sull'account memorizzato nella cache e/o provare a riavviare.

+0

Avevo ricevuto anche il messaggio di errore riportato all'inizio di questo post. Il mio problema era un Connection Manager in cui la sicurezza del database era cambiata e DTS non poteva più connettersi con le credenziali specificate. UGH, SSIS! – RickC

Problemi correlati