L'exécution d'un Package SSIS à l'aide de dtexec
Je suis en cours d'exécution d'un package SSIS à l'aide de dtexec. Le package fonctionne très bien sur des OFFRES sur mon système. Lorsque je crée un travail SQL server agent pour exécuter le package sur un calendrier. Le package de l'exécution de l'étape est prévue, comme un T-SQL tâche, pas un package SSIS un). Le travail ne rapporte pas d'erreur, mais il n'est même pas de la création de la sortie fichier excel @ mon choix de destination sur le serveur.
De plus, quand je séparément exécuter la commande dans l'invite de commande, il est de retour moi les erreurs qui s'affichent ci-dessous. Par intermittence, elle va aussi retourner des erreurs sur le système de fichiers de la Tâche que j'utilise pour copier des fichiers, en disant que soit la source ou la destination n'existe pas!! Lorsque les mêmes valeurs de la variable de travail pour moi dans les OFFRES, pourquoi le travail SQL défaut?
Started: 7:33:27 PM
Error: 2012-10-26 19:33:27.60
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password" with error 0
x8009000B "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 err
or. Verify that the correct key is available.
End Error
Error: 2012-10-26 19:33:27.78
Code: 0xC00F9304
Source: GICSReport Connection manager "Excel Connection Manager"
Description: SSIS Error Code DTS_E_OLEDB_EXCEL_NOT_SUPPORTED: The Excel Conne
ction Manager is not supported in the 64-bit version of SSIS, as no OLE DB provi
der is available.
End Error
Error: 2012-10-26 19:33:27.78
Code: 0xC020801C
Source: Data Flow Task Excel Destination [22]
Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAG
ER. The AcquireConnection method call to the connection manager "Excel Connecti
on Manager" failed with error code 0xC00F9304. There may be error messages post
ed before this with more information on why the AcquireConnection method call fa
iled.
End Error
Error: 2012-10-26 19:33:27.78
Code: 0xC0047017
Source: Data Flow Task SSIS.Pipeline
Description: component "Excel Destination" (22) failed validation and returne
d error code 0xC020801C.
End Error
Error: 2012-10-26 19:33:27.78
Code: 0xC004700C
Source: Data Flow Task SSIS.Pipeline
Description: One or more component failed validation.
End Error
Error: 2012-10-26 19:33:27.79
Code: 0xC0024107
Source: Data Flow Task
Description: There were errors during task validation.
End Error
DTExec: The package execution returned DTSER_FAILURE (1).
Started: 7:33:27 PM
Finished: 7:33:27 PM
Elapsed: 0.343 seconds
Pls aider! 🙂 .... Dois-je ajouter toutes les variables, les gestionnaires de connexion, et tout à mon fichier de config? actuellement j'ai seulement ajouté quelques ppty valeurs des variables et des gestionnaires de connexion, mais pas de combo semble fonctionner de manière efficace.
- +1 car c'est une erreur commune et le nombre de personnes pouvant bénéficier de la lecture à travers la façon de déchiffrer toutes les erreurs et d'arriver à une solution.
Vous devez vous connecter pour publier un commentaire.
La première erreur que je voudrais aborder est "Excel Gestionnaire de Connexion n'est pas pris en charge dans la version 64 bits de SSIS, car aucun fournisseur OLE DB est disponible."
La sortie de la boîte Excel pilotes n'existent que dans les 32 bits de l'adresse de l'espace. OFFRES/SSDT est un 32 bits, application pour Excel source et les destinations fonctionnent tout aussi bien. Toutefois, lorsque vous exécutez à partir de la ligne de commande/de l'Agent SQL, alors vous avez besoin pour utiliser explicitement la version 32 bits de l'DTEXEC programme.
L'étape 1, sera de vous assurer que vous pouvez exécuter le package à partir de la ligne de commande sur le serveur, l'agent s'exécute sur comme toi-même. En supposant que votre Serveur SQL server est installé dans le coutumier de l'emplacement, vous avez probablement l'une des opérations suivantes DTEXEC.exe disponible pour vous
Vous souhaitez utiliser le (x86) version. Les futurs lecteurs, si vous arrive d'être sur un 32 version de Windows (Windows 2003, peut-être), les 3 premiers seront les seules options disponibles pour vous. Comme Vivek du message d'erreur est indiqué, il est en cours d'exécution d'un package SSIS en mode 64 bits.
dtexec fournit un commutateur de ligne de commande /X86 pour vous permettre d'utiliser de manière transparente le même exécutable pour à la fois 32 bits et 64 bits des opérations. MENSONGES! La documentation ne fait appel qu', mais qui lit la documentation?
Ainsi, vous aurez besoin pour exécuter votre colis en fournissant le chemin d'accès explicite
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe /file C:\folder\GICSReport.dtsx
Je vois "pas réussi à déchiffrer protégé nœud XML" dans votre sortie et vous déclarez également que vous utilisez des fichiers de configuration de sorte que vous pouvez très probablement changer votre PackageProtectionLevel de la valeur par défaut EncryptSensitiveWithUserKey à DontSaveSensitive. Cette fonctionnalité existe pour éviter toute exposition accidentelle de données sensibles (mots de passe), mais puisque vous êtes déjà en cours de traitement qu'avec des fichiers de configuration, qui ne devrait pas être un problème. ... Qui pourrait en fait être une erreur de l'un des autres niveaux de protection de package maintenant que j'y pense.
En tout cas, essayez d'exécuter à partir de l'exécutable 32 bits en premier. Si cela ne fonctionne pas essayez de changer le niveau de protection de package comme indiqué. Si l'un de ceux qui font le package de fonctionner comme prévu, puis essayez d'exécuter la même commande à partir de l'Agent SQL.
Si tout fonctionne, la marque présente comme la réponse. Si non, veuillez mettre à jour le billet avec le courant généré et nous allons demander pour plus d'informations.
Voici la solution si vous essayez d'exécuter un package SSIS avec
dtexec
de transact-SQL qui contient une importation excel.Créer un fichier de commandes qui contient le code suivant.
cd C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\
DTEXEC.exe /DE "mot de passe" /F "C:\mySSISfolder\package.dtsx"
Créer un raccourci pointant vers votre fichier de commandes, définissez la
properties\advanced
sur le raccourci pour exécuter en tant qu'administrateur.de votre transact sql procédure exécutez la commande suivante
exec xp_cmdshell 'C:\myfolder\runssis_sc.lnk'