2009-02-09 6 views
1

J'ai un problème lors de l'exécution d'un package via l'API sur Microsoft.SqlServer.Dts.Runtime. J'ai 4 serveurs SQL qui peuvent potentiellement exécuter mon paquet dans 2 clusters. Sur les nœuds passifs de chaque cluster, l'exécution échoue - l'erreur signalée est que la période d'évaluation SSIS a expiré. Sur les nœuds actifs, cela fonctionne bien. Je ne pense pas que cela a à voir avec le cluster, plus que SSIS lui-même n'a pas été installé à l'origine sur les nœuds actifs. Nous l'avons installé plus tard. Vendredi, nous avons désinstallé et réinstallé SSIS sur les nœuds passifs en nous assurant que nous utilisions le support d'installation correct mais que rien n'a changé. Nous avons également essayé d'échouer de nouveau avec les mêmes résultats (échec sur les nœuds maintenant actifs) Il est intéressant de pouvoir exécuter le paquet à partir de SSMS en utilisant l'utilitaire Execute Package sur les nœuds à problèmes. Mais l'appeler à partir de l'API .net ne fonctionne pas. Des idées? Je ne trouve rien! Code pour l'appel API ci-dessous ...L'exécution du package SSIS échoue lors de l'exécution de la période d'évaluation d'Integration Services

merci!

Ben

Package pck; 

DTSExecResult execResult; 

Application app = new Application(); 

//Load package from SQL Server 

pck = app.LoadFromSqlServer(jobParams.SSISPackagePath, jobParams.ServerName, null, null, null); 

//Assign values to the package variables 

pck.Variables["FlatFileInputPath"].Value = destinationFilePath; 




//Execute the package 

logger.WriteInfo("Started executing SSIS package..."); 

execResult = pck.Execute(null, null, new SSISEventsSink(logger), null, null); 
+0

Je pense que le forum de support SSIS est meilleur pour de telles questions. Cela ressemble plus à un bug ou à un problème d'installation qu'à une question de conception/programmation. SSIS les gars peuvent y répondre mieux: http://social.msdn.microsoft.com/forums/en-US/sqlintegrationservices/threads/ – Michael

+0

Déjà fait traverser à là http://social.msdn.microsoft.com/ Forums/fr-fr/sqlintegrationservices/fil/be298301-554a-4d88-9cea-f80d9e4dbaf9 – Ben

Répondre

1

Bingo; SSIS raconte l'édition est en regardant la clé de Registre à

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90 

Notre processus de durcissement de serveur supprimé l'autorisation héritée du groupe d'utilisateurs d'avoir un accès en lecture à cette clé. Au lieu de donner l'erreur de ne pas pouvoir lire cette clé, il a décidé qu'il s'agissait d'une copie d'évaluation et, comme nous l'avions fait 180 jours depuis son installation, elle avait expiré.

La restauration des autorisations sur le compte spécifique a résolu le problème.

1

Vérifiez quelle version de DTExec vous utilisez par défaut (démarrage run: cmd, dtexec). J'ai eu une erreur il y a un moment quand j'avais installé ServicePacks sur l'un des serveurs. J'ai ensuite eu plusieurs versions de dtexec.exe installées. L'un était par défaut lors de l'exécution de cmd.exe et l'autre par défaut lors de l'exécution à partir de l'API. Combien de fichiers "dtexec.exe" différents trouvez-vous lorsque vous effectuez une recherche dans les serveurs?

+0

Il y a deux - dans chacun des dossiers suivants D: \ MSSQL2005 \ 90 \ DTS \ Binn D: \ MSSQL2005 (x86) \ 90 \ DTS \ Binn Je vais essayer de les appeler tous les deux .... – Ben

+0

Les deux exécutables fonctionnent de la même manière, bon appel cependant. D'autres pensées? – Ben

0

Cela fonctionne très bien si j'exécute le processus en tant qu'administrateur local! Donc, je ne reçois pas "période d'évaluation a expiré" si je cours en tant qu'administrateur local - bizarre.

Questions connexes