IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSIS Discussion :

[SSIS][2k5] Problème d'exécution SQL Server Agent


Sujet :

SSIS

  1. #21
    Membre actif
    Inscrit en
    Janvier 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2009
    Messages : 198
    Points : 244
    Points
    244
    Par défaut
    Bonjour,

    Tu utilises quelle version de SQL Server (build) ?
    Quel est le Owner du job, est-il bien sysadmin ?

    Alexis Molteni

  2. #22
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Alexis.Molteni Voir le message
    Bonjour,

    Tu utilises quelle version de SQL Server (build) ?
    Quel est le Owner du job, est-il bien sysadmin ?

    Alexis Molteni
    Bonjour,
    voici les informations concernant notre serveur SQL:

    Microsoft SQL Server Management Studio 9.00.3042.00
    Microsoft Analysis Services Client Tools 2005.090.3042.00
    Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
    Microsoft MSXML 2.6 3.0 6.0
    Microsoft Internet Explorer 6.0.3790.3959
    Microsoft .NET Framework 2.0.50727.1433
    Operating System 5.2.3790

    Le owner du job est sa

    Merci et bonne journée
    --Samus 535

  3. #23
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 790
    Points : 3 056
    Points
    3 056
    Par défaut
    Pardon pour ma persévérance mais je continue à croire que c'est un problème d'autorisation; en tout cas c'est ce que me laisse penser le message d'erreur.

    Es-tu dba (database admin) ? Si oui, peux-tu vérifier que le compte sa est bien

    1. actif;
    2. a les autorisations suffisantes pour ouvrir la vue.

    Si tu n'es pas dba, peux-tu demander à ton dba de faire ce test ?

  4. #24
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Pardon pour ma persévérance mais je continue à croire que c'est un problème d'autorisation; en tout cas c'est ce que me laisse penser le message d'erreur.

    Es-tu dba (database admin) ? Si oui, peux-tu vérifier que le compte sa est bien

    1. actif;
    2. a les autorisations suffisantes pour ouvrir la vue.

    Si tu n'es pas dba, peux-tu demander à ton dba de faire ce test ?
    Bonjour,
    je ne suis pas DBA mais je vais lui demander de faire la vérification. Je vous tiens au courant.

    Merci et bonne journée
    --Samus 535

  5. #25
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Bonjour, avant tout, personne ne l'a demandé, mais est-ce que ton package fonctionne dans Visual Studio ? Ensuite, si tu as plusieurs bases peut-être que tu ne pointes pas sur la bonne. Si tu utilises du code SQL qui fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .... FROM [dbo].[v_uom]
    tu peux aussi essayer de préfixer par le nom de ta base, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FROM [ta base].[dbo].[v_uom]
    Enfin, si tu n'es pas le premier à faire tourner des jobs exécutant des packages SSIS, ouvre les autres jobs et regarde comment ils sont faits (et qui own le job).

    a+, =)
    -=Clement=-

  6. #26
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Bonjour, avant tout, personne ne l'a demandé, mais est-ce que ton package fonctionne dans Visual Studio ? Ensuite, si tu as plusieurs bases peut-être que tu ne pointes pas sur la bonne. Si tu utilises du code SQL qui fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .... FROM [dbo].[v_uom]
    tu peux aussi essayer de préfixer par le nom de ta base, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FROM [ta base].[dbo].[v_uom]
    Enfin, si tu n'es pas le premier à faire tourner des jobs exécutant des packages SSIS, ouvre les autres jobs et regarde comment ils sont faits (et qui own le job).

    a+, =)
    -=Clement=-
    Bonjour Clement,
    Mon package fonctionne #1 dans Visual Studio. Pour mes vues, j'utilises déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... FROM [ta base].[dbo].[v_uom]
    .

    Je suis effectivement le premier à faire tourner des jobs exécutant des packages SSIS.

    Merci et bonne journée
    --Samus535

  7. #27
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Quel compte exécute le service SSIS ? Est-ce que ton Package est hébergé sur le système de fichiers où sur le serveur ? Ton étape de job est-elle de type Operating System Command ou celle dédiée aux packages SSIS ?
    Si tu est sur le serveur en type exécution de package SSIS, tu peux essayer le type Operating System Command à la place avec le code
    "C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\DTExec.exe" /SQL "\ton_package" /SERVER "ton_instance_base_de_donnees" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E
    (ton chemin peut différencier)

    a+, =)
    -=Clement=-

  8. #28
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Quel compte exécute le service SSIS ? Est-ce que ton Package est hébergé sur le système de fichiers où sur le serveur ? Ton étape de job est-elle de type Operating System Command ou celle dédiée aux packages SSIS ?
    Si tu est sur le serveur en type exécution de package SSIS, tu peux essayer le type Operating System Command à la place avec le code(ton chemin peut différencier)

    a+, =)
    -=Clement=-
    Mon package est héberger sur le serveur.
    Mon étape de job est de type "SQL Server Integration Services Package"

    Lorsque j'essaye avec le type "Operating System Command" j'ai un problème de droit. Je me demande où je peux spécifier le user/pass à utiliser lorsque nous utilisons ce type (Operating System Command).

    J'ai le message d'erreur suivant:
    Executed as user: SRVDRUSQL01\SYSTEM. Microsoft (R) SQL Server Execute Package Utility Version 9.00.3042.00 for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 9:14:22 AM Could not load package "\Data" because of error 0xC0014062. Description: The LoadFromSQLServer method has encountered OLE DB error code 0x80040E4D (Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.). The SQL statement that was issued has failed. Source: Started: 9:14:22 AM Finished: 9:14:22 AM Elapsed: 0.125 seconds. Process Exit Code 5. The step failed.
    Merci et bonne journée
    --Samus535

  9. #29
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Quel compte exécute le service SSIS ?
    Sur le serveur avec SQL Server 2005 : Démarrer / Programmes / Sql Server 2005 / Configuration Tools / Sql Server Configuration Manager / Sql Server 2005 Services / clic droit sur Sql Server Integration Services / Propriétés / Log On As: (à priori ce sera Network Service (défaut) bien que la best practice soit d'avoir un compte dédié)
    Profites-en pour regarder quel compte fait tourner le service Sql Server Database Engine et Sql Server Agent.
    qui own le job ?
    SQL Server Agent / clic droit sur le Job / Propriétés / Owner: (ton login Windows ?).

    a+, =)
    -=Clement=-

  10. #30
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Sur le serveur avec SQL Server 2005 : Démarrer / Programmes / Sql Server 2005 / Configuration Tools / Sql Server Configuration Manager / Sql Server 2005 Services / clic droit sur Sql Server Integration Services / Propriétés / Log On As: (à priori ce sera Network Service (défaut) bien que la best practice soit d'avoir un compte dédié)
    Profites-en pour regarder quel compte fait tourner le service Sql Server Database Engine et Sql Server Agent.SQL Server Agent / clic droit sur le Job / Propriétés / Owner: (ton login Windows ?).

    a+, =)
    -=Clement=-
    Pour Sql Server Integration Services, c'est bien Network Service qui est entré.
    Pour Sql Server Database Engine et Sql Server Agent c'est Local Service

    Le owner c'est sa (ce qui n'est pas mon login windows). Est-ce que je devrais mettre mon login Windows à la place ?

    Merci beaucoup pour ton aide Clement
    --Samus535

  11. #31
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    Non, ce n'est pas la peine de changer car il y a peu de chance que ton login Windows ai plus de droits que sa. Par contre cela signifie que tu utilises SQL Server Authentication et non Windows Authentication (recommandé) pour te connecter au serveur SQL. Il faut donc ajouter
    /User sa /Password ton_mot_de_passe
    ou s'il n'y a pas de mot de passe
    /User sa
    Plus d'infos sur dtexec ici : http://msdn.microsoft.com/en-us/library/ms162810.aspx

    a+, =)
    -=Clement=-

  12. #32
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Bonjour,

    Non, ce n'est pas la peine de changer car il y a peu de chance que ton login Windows ai plus de droits que sa. Par contre cela signifie que tu utilises SQL Server Authentication et non Windows Authentication (recommandé) pour te connecter au serveur SQL. Il faut donc ajouterou s'il n'y a pas de mot de passePlus d'infos sur dtexec ici : http://msdn.microsoft.com/en-us/library/ms162810.aspx

    a+, =)
    -=Clement=-
    Bonjour Clement,
    j'ai ajouté le User/pass et j'obtiens l'erreur suivante:

    Executed as user: SRVDRUSQL01\SYSTEM. ...9.00.3042.00 for 32-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 8:59:46 AM Error: 2009-02-13 09:00:55.50 Code: 0xC0202009 Source: ERPWarehouse OLE DB Source [1] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E37. End Error Error: 2009-02-13 09:00:55.50 Code: 0xC02020E8 Source: ERPWarehouse OLE DB Source [1] Description: Opening a rowset for "[dbo].[v_warehouse]" failed. Check that the object exists in the database. End Error Error: 2009-02-13 09:00:55.50 Code: 0xC004706B Source: ERPWarehouse DTS.Pipeline Description: "component "OLE DB Source" (1)" failed validation and returned validation status "VS_ISBROKEN". End Error Error: 2009-02-13 09:00:55.50 Code: 0xC004700C Source: ERPWarehouse DTS.Pipeline Description: One or more component failed validation. End Error Error: 2009-02-13 09:0... Process Exit Code 1. The step failed.

    Voici ma ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe" /SQL "\Data" /SERVER "srvdrusql01b" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING E /User sa /Password xxxxx /DECRYPT "xxxxx"
    L'agent s'est exécuter pendant quelques minutes avant de planter.

    Merci et bonne journée
    --Samus535

  13. #33
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Ok. Maintenant ce n'est pas la même vue, ce qui confirme ce que tu disais plus haut. Dans ce cas j'en déduis que ta source OLE DB est de type SQL Command et je te suggère de couper ta requête en deux et d'utiliser un composant Merge Join pour réaliser une des jointures qu'il ne manquera pas d'y avoir dans ta requête. Crée donc une nouvelle Source OLE DB. De cette façon si tu réussis à isoler une portion de code pour laquelle l'erreur est reproductible tu pourras trouver un diagnostique et une solution. Peux tu confirmer que la Connection OLE DB utilise le compte SQL Server 'sa' dans Visual Studio et que ça marche ?

    a+, =)
    -=Clement=

  14. #34
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Ok. Maintenant ce n'est pas la même vue, ce qui confirme ce que tu disais plus haut. Dans ce cas j'en déduis que ta source OLE DB est de type SQL Command et je te suggère de couper ta requête en deux et d'utiliser un composant Merge Join pour réaliser une des jointures qu'il ne manquera pas d'y avoir dans ta requête. Crée donc une nouvelle Source OLE DB. De cette façon si tu réussis à isoler une portion de code pour laquelle l'erreur est reproductible tu pourras trouver un diagnostique et une solution. Peux tu confirmer que la Connection OLE DB utilise le compte SQL Server 'sa' dans Visual Studio et que ça marche ?

    a+, =)
    -=Clement=
    Bonjour Clement,
    J'ai inclu un print screen de mon SSIS pour que tu puisse voir la structure de mon package. Ma source OLE DB est de type "Table or vue" et elle utilise uen vue qui est sur mon serveur SQL.

    Le code qui est dans la vue est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE view [dbo].[v_warehouse] as
    select * from [SOPREMA_FORM].[SOPREMAFORM].[PUB].[warehouse]
    le nom SOPREMA_FORM fait référence à un Linked Server qui se connecte à une base de données Progress via un connecteur ODBC.

    Je confirme également que j'utilise le compte SQL Server 'sa' dans Visual Studio et que ça marche.

    Merci et bonne journée
    --Samus535
    Images attachées Images attachées  

  15. #35
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Ok, il n'y a pas de jointure mais beaucoup de parallèlisme. Dans ce cas, à ta place je mettrai des contraintes de précédence pour les Data Flow Task de ton conteneur Import par exemple, pour éviter de surcharger le canal en connexions simultanées et le moteur en threads, et voir si ça marche mieux, bien sûr.

    A voir ton package je me dis aussi que le fait que tu reçoives le message d'erreur sur des vues différentes proviendrait peut-être du fait qu'avec le parallèlisme la première connexion à tenter la validation peut ne pas être la même à chaque exécution.

    Par ailleurs le compte Local Service qui utilise un Linked Server je ne suis pas certain que ce soit compatible si le linked server est distant : demande à ce qu'un utilisateur du domaine soit configuré pour les services SQL Server.

    a+, =)
    -=Clement=-

    edit : à bien y penser c'est presque certain que ton problème vient du fait d'utiliser un serveur lié. Dommage de ne pas avoir eu cette info plus tôt !
    En tous cas, tu vas au devant de complexes configurations de droits/déléguations/authentification ...

  16. #36
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 221
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par clementratel Voir le message
    Ok, il n'y a pas de jointure mais beaucoup de parallèlisme. Dans ce cas, à ta place je mettrai des contraintes de précédence pour les Data Flow Task de ton conteneur Import par exemple, pour éviter de surcharger le canal en connexions simultanées et le moteur en threads, et voir si ça marche mieux, bien sûr.

    A voir ton package je me dis aussi que le fait que tu reçoives le message d'erreur sur des vues différentes proviendrait peut-être du fait qu'avec le parallèlisme la première connexion à tenter la validation peut ne pas être la même à chaque exécution.

    Par ailleurs le compte Local Service qui utilise un Linked Server je ne suis pas certain que ce soit compatible si le linked server est distant : demande à ce qu'un utilisateur du domaine soit configuré pour les services SQL Server.

    a+, =)
    -=Clement=-

    edit : à bien y penser c'est presque certain que ton problème vient du fait d'utiliser un serveur lié. Dommage de ne pas avoir eu cette info plus tôt !
    En tous cas, tu vas au devant de complexes configurations de droits/déléguations/authentification ...
    Désolé de ne pas avoir partager l'information que c'était un serveur lié plus tôt .

    Je ne comprends pas pourquoi le package fonction très bien et à tout coup à partir de Visual Studio mais qu'il ne fonctionne pas à partir de l'agent.

    Puisque le problème semble venir su fait que c'est un serveur lié, est-ce que les contraintes de précédence pourrait aidées quand même ?

    Merci beaucoup du coup de main et encore désolé pour les informations manquantes .
    --Samus 535

  17. #37
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    Tu peux ajouter les contraintes de précédence pour stabiliser l'ordre d'exécution temporairement. Je crois que dans Visual Studio, c'est le compte Windows qui accède au package, le compte de service SSIS qui exécute le package et sa qui accède au serveur lié. Sur le serveur c'est le compte sa qui accède au package, c'est le compte du service SQL Server Agent qui exécute le job et c'est le compte Windows du service SSIS qui exécute le package. Mais pourquoi utiliser un serveur lié et pas une connexion directe à la base dans ton cas ?

    a+, =)
    -=Clement=-

Discussions similaires

  1. Problème MS SQL Server Agent et SSIS 2005.
    Par AA_27 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 23/03/2010, 13h16
  2. Réponses: 2
    Dernier message: 10/12/2009, 15h37
  3. [SSIS] [2K5] Problème d'exécution de package
    Par samus535 dans le forum SSIS
    Réponses: 3
    Dernier message: 18/11/2009, 17h18
  4. Réponses: 0
    Dernier message: 14/05/2009, 11h00
  5. [SSIS][2k5]Equivalant DTS dans sql server 2005
    Par imanesl dans le forum SSIS
    Réponses: 1
    Dernier message: 25/03/2008, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo