Question

J'essaie d'exécuter à distance un package DTSX à partir d'un fichier bat avec cette commande:

DTEXEC /DTS "\File System\MY_PACKAGE_NAME" /SERVER MY_SERVER_NAME /MAXCONCURRENT " -1 " /CHECKPOINTING OFF  /REPORTING V

Cela fonctionne très bien localement mais échoue à distance (j'ai des droits d'administrateur sur la machine vers laquelle je pointe et j'ai également des autorisations SQL). Une erreur de délai d'attente s'est écoulée (délai de connexion expiré).

Était-ce utile?

La solution 2

Après quelques recherches, il semble impossible d'exécuter DTEXEC à distance (il doit être exécuté localement - l'exécution à distance n'est pas prise en charge).

Pour surmonter cette limitation, la méthode suivante semble être largement appliquée:

  1. configurer un travail SQL pour exécuter le package DTSX
  2. configurer une procédure stockée pour exécuter le travail
  3. utilise la ligne de commande isql dans un fichier BAT (exécuté à distance) pour exécuter la procédure stockée sur l'instance SQL appropriée (avec des informations d'identification SQL et non des informations d'identification de machine)

Autres conseils

C'est très possible et si facilement. Il n'est pas nécessaire d'avoir une procédure de stockage, ni un agent SQL, ni un développement Web ou .NET. Je suis surpris que Microsoft n'ait jamais suggéré cela:

  1. Planifiez une tâche sur le serveur SQL pour exécuter le package DTSX. Désactivez-le pour qu'il ne s'exécute pas tant que vous ne l'avez pas exécuté manuellement à partir d'un PC distant.
  2. Exécutez la tâche à partir du PC à l'aide de la commande suivante:
  

schtasks / run / tn Ma tâche [/ s MySQLServer [/ u [domaine] utilisateur / p mot de passe]] /?

Remarque: si vous n'aimez pas exposer le mot de passe, utilisez la commande "PSEXEC" pour exécuter la commande "schtasks" (téléchargez l'outil puissant et gratuit à partir de http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

SSIS expose également un service Web sur le serveur d'hébergement. Vous pouvez, via du code, interroger des paquets sur une machine, exécuter des packages via une base de données ou un système de fichiers et ajouter / modifier des variables du package par programmation via la plate-forme de programmation de votre choix.

Cela étant dit, vous pouvez également configurer votre service Web pour appeler votre fichier de commandes local contenant votre commande "DETEXEC".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top