2011-10-16 2 views
2

J'ai un travail SQL Server 2008 SSIS qui exécute certains fichiers Win 32 exe. Ce travail s'exécute correctement lorsque j'exécute le travail via BIDS (boîte Windows 2008). J'ai maintenant déployé le paquet dans la base de données MSDB et essayé d'exécuter le paquet en tant que travail SQLAgent. Lorsque je fais cela, le travail échoue et génère un message d'erreur lors de l'exécution du Win 32 exe.Exécution du package SSIS en tant que travail SQLAgent

Je suis capable d'exécuter l'exe à partir d'un fichier batch sur le même serveur. Mais lorsque le travail de l'agent SQLServer essaie de s'exécuter, il renvoie l'erreur ci-dessous

Code: 0xC0029151, Le code de sortie du processus était "1" alors que le attendu était "0". Erreur de fin DTExec: L'exécution du paquet a renvoyé DTSER_FAILURE (1).

Des idées?

Répondre

7

Mon hypothèse est le serveur est un serveur 64 bits, oui? Si c'est le cas, l'agent exécutera SSIS en mode 64 bits et cela provoque une incompatibilité avec les exécutables.

Dans le travail d'agent, dans l'onglet Options d'exécution, cochez la case "Utiliser le runtime 32 bits" et cela devrait fonctionner.

enter image description here

La question est étiqueté comme 2008, mais si je me souviens bien, 2005 tâches Agent SQL de type SQL Server Integration Services Package n'a pas une option pour faire fonctionner en mode 32 bits et par tout défaut couru 64 mode bit. Pour contourner cela, il fallait exécuter une commande OS et appeler le dtexec.exe 32 bits qui était probablement trouvé dans C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe

+0

Bonjour @billinkc: Merci pour la réponse. En fait, j'ai essayé avec l'option d'exécution 32 bits, mais cela n'a pas fonctionné. Quand je lance directement le paquet à partir de la base de données MSDB, il est exécuté correctement. Et j'ai changé les paramètres de compatibilité de l'exe problématique à Windows 2000. – Phoenix

+0

Sur la machine de développement où cela fonctionne très bien à partir de BIDS, essayez d'exécuter le paquet à partir de la ligne de commande. 'C: \ Program Files (x86) \ Microsoft SQL Server \ 100 \ DTS \ Binn \ DTExec.exe"/fichier C: \ src \ package.dtsx' et si votre boîte de développement n'est pas 64 bits, alors laissez tomber le ' (x86) 'part: L'invocation fonctionne-t-elle ou échoue-t-elle sur votre boîte? – billinkc

1

Cela doit également être modifié sur BIDS. Explorateur de solutions> Clic droit Propriétés du projet> Propriétés des configurations> Options de débogage> Run64BitRuntime - Faux enter image description here

Questions connexes