SSIS et ACE 12.0 : Unspecified error

Si comme moi vous avez un package SSIS permettant de charger un fichier Excel via le provider Microsoft Access Database Engine 12.0 et que ce dernier est exécuté par un job via un compte proxy, vous serez certainement confronté à cette erreur :

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x80004005 Description: "Unspecified error".

Comme son nom l’indique, l’erreur est non spécifiée, prévoyez donc  de longues heures de recherches hasardeuses….

De mon côté, aucune des possibilités trouvées sur le Net n’a fonctionné, je remercie néanmoins les pistes intéressantes de Karthick P.K sur SQLServerScribbes.COM via l’article http://wp.me/p38xyH-3n

  1. paramétrer le Data Flow Task pour spécifier les propriétés BufferTempStoragePath et BlobTempStoragePath
  2. spécifier le dossier temporaire BufferTempStoragePath et BlobTempStoragePath qui sont par défaut définis dans les variables d’environnement TEMP et TMP du compte exécutant le SQL Server Agent :
    • TEMP=C:\Users\StartupaccountofSQLAgent\AppData\Local\Temp
    • TMP=C:\Users\ StartupaccountofSQLAgent\AppData\Local\Temp
  3. donner les droits du compte proxy sur le profil du compte de service du SQL Server Agent

Malheureusement rien ni fait..

Alors on peut toujours par désespoir, mettre le compte proxy comme administrateur local de votre serveur EIM mais je trouve cela bien moche.

En essayant de comprendre un peu plus les opérations indiquées par Karthick, j’en déduis qu’il s’agit d’un problème d’accès au File System et je constate, alors, qu’en attribuant au compte proxy les droits d’écriture et de lecture sur l’ensemble du dossier c:\Users, l’exécution se passe correctement.

Il s’agit donc bien d’un problème d’accès au système de fichiers mais où ? Grace à l’aide d’Eric, nous traçons tout çà à l’aide de l’utilitaire Process Monitor et là bingo !!!

Il suffit d’attribuer à votre compte proxy les droits en lecture/écriture au dossier C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO

Un grand merci à MS pour cette remontée d’erreur si parlante. Il est vrai qu’il est trivial d’avoir à attribuer des droits au compte de proxy sur dossier qui ne semble rien à voir avec la choucroute.
A croire que Jean-Claude ait été stagiaire chez eux.

« Il faut que tu crois encore plus ce que tu crois…
Et quand tu commences à croire ce que tu crois, y a personne au monde qui peut te bouger ! »
J.C.V.D

N.B : quelques infos à propos de l’environnement SQL Server 2012 SP1, Windows Server 2008 R2, ACE 12.0 64 bits.

2 réflexions sur “SSIS et ACE 12.0 : Unspecified error

  1. Salut,

    Je suis tombé sur le même problème très récemment, et le pire c’est que c’est pourtant documenté par Microsoft mais que ce n’est pas très « explicit lyrics » pour le commun des consultants BI (en tout cas pas pour moi, même si j’ai fini par trouver un solution sur le Web en farfouillant)
    Bref ça se passe d’abord et surtout dans le paragraphe « Informations complémentaires » de la page de téléchargement du composant en question : https://www.microsoft.com/fr-fr/download/details.aspx?id=13255
    Ensuite les détails précis mentionnant le répertoire sur lequel mettre les droits est là https://support.microsoft.com/fr-fr/kb/2966097
    Et ça passe aussi par la lecture des quelques blog et en particulier de celui-ci http://dougbert.com/blog/post/Excel-driver-now-supported-on-server-for-use-by-SSIS.aspx qui pointait très précisemment le pb en question lors du changement de position de Microsoft sur le fait d’enfin supporter officiellement l’utilisation de l’ACE12 dans SSIS en production.
    Pour moi le pb se situe plutôt ailleurs :
    – Soit on zappe cette partie ou on la lit en diagonale et on passe à côté sans y revenir = on ne lit pas la doc (syndrome RTFM)
    – Soit on la lit vraiment, et on ne la comprend pas toujours (surtout quand ça parle de ruche dans la base de registre) et on se dit qu’on est pas concerné et on y revient pas non plus = le documentation n’est pas très claire ou explicite et ne nous aide pas a priori
    Bref, il faut creuser mais c’est une question de volonté et de temps disponible pour maitriser tous les composants de nos solutions, et ça c’est forcément impossible.
    En tout cas merci pour le post, ça remet un coup de projecteur dessus en français surtout qu’il n’est pas forcément évident de tomber sur les ressources en anglais qui en parlent, la preuve d’ailleurs tu as trouvé la solution autrement que sur le Web.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s