64 bit runtime issue

  • hi there,

    i am having issues while running the package from 64 bit environment

    Actually it fails to enter data into the excel file; the typical jet driver issue.

    However, i cannot run the package in the 32 bit mode. if i do, one of the script tasks fails.

    can you help me solving this.

    Much Appreciate !!

  • This is what exactly I had a year ago. I don't remeber , But I was able to fix it. I think in my case, there is an option something like run as 32 bit or run as 64 bit and I set it to true.

  • nabajyoti.b (6/25/2009)


    hi there,

    i am having issues while running the package from 64 bit environment

    Actually it fails to enter data into the excel file; the typical jet driver issue.

    However, i cannot run the package in the 32 bit mode. if i do, one of the script tasks fails.

    can you help me solving this.

    Much Appreciate !!

    Can you include description of the error? Did you specify to precompile the script?

    ---
    SSIS Tasks Components Scripts Services | http://www.cozyroc.com/

  • I dont want to use precompile=true as it starts giving exceptions with the script task.

    Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040154.

    An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered". End Error Error: 2009-06-23 14:12:48.05 Code: 0xC020801C Source: Data Flow SDOL Original Currency Excel Destination [302] Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method cal... The package execution fa... The step failed.

  • Okay, now tell us what exceptions do you get in the script when you precompile?

    ---
    SSIS Tasks Components Scripts Services | http://www.cozyroc.com/

  • The Excel provider is really the Excel Jet provider, and there is ONLY a 32 bit provider for it. I ran into this as well. When you run it from BIDS it will work because BIDS is 32-bit, but when you run it from Agent it will run 64 bit if possible. You actually have to build the command line and call the DTEXEC from the 32-bit path to the executables probably C:\Program Files(X86)\[blah, blah, blah].

    It sucks but it is a known issue.

  • are you trying to say that the

    the 32 bit version of dtexec can be scheduled to run.

    Will that have some sort of limitation or completely fine.

  • It should be completely fine. What you lose is some of the better memory management and some performance because 64bit SSIS performs better than 32bit (in general) based on my experience. I didn't have any trouble once I did it the way I specified above and I belive this is the only supported way to use Excel as an input in a dataflow. It is just a hassle to have to do it this way. I believe there is even a KB article on this.

    In the past when I have had to do this, I created a seperate solution for just the packages that were going to be executed this way so that when I went to deploy or support them I had a clear indication that these were "different".

    Also on the issue of precompile you don't have a choice they must be precompiled for 64-bit execution, but not for 32-bit.

    From SQL 2005 BOL (Nov 2008)

    ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/extran9/html/f6cce7df-4bd6-4b75-9f89-6c37b4bb5558.htm

    Under Optimization:

    VSA scripts must be compiled before the package runs. The Script task includes the option to precompile script into binary code when the package is saved. When script is precompiled, the language engine is not loaded at run time and the package runs more quickly; however, compiled binary files consume significant disk space. If you do not use the precompile option, the script is compiled at run time, which slows package execution but consumes less disk space. If storing large packages is not a problem, you should precompile your VSA scripts. Also, only precompiled script can be run in a 64-bit environment.

    CEWII

  • I also found this:

    SQL Server 2005 BOL (Nov 2008)

    ms-help://MS.VSCC.v80/MS.VSIPCC.v80/MS.SQLSVR.v9.en/extran9/html/e66349f3-b1b8-4763-89b7-7803541a4d62.htm

    The Excel source extracts data from worksheets or ranges in Microsoft Excel workbooks.

    Note:

    On a 64-bit computer, you must run packages that connect to Microsoft Excel data sources in 32-bit mode. The Microsoft Jet OLE DB Provider that connects to Excel data sources is available only in a 32-bit version.

  • Hi,

    I am also facing the same problem.

    I am executing package through code using Microsoft.SqlServer.Dts.Runtime assembly.

    The method for executing the package is

    Application app = new Application();

    Package package;

    package = app.LoadPackage(packagepath, null);

    package.Execute();

    it works on 32 bit but on 64 bit it gives error for excel connection manager as

    SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC00F9304. There may be error messages posted before this with more information on why the AcquireConnection method call failed. component "Excel Source" (1) failed validation and returned error code 0xC020801C.

    does anybody know how to solve this issue.

  • Try to execute the package using following command through command prompt:

    "C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\dtexec.exe" /FILE "PackagePath" /CONFIGFILE "ConfigfilePath"

  • I want to run it through code,also it has some parameters. how can i achieve it?

  • for that you need to

    click project

    - click on the properties menu - choose debugging - Run64BitRuntime to false

    which should enable it to pick the 32 bit dtexec version without having to write all those parameters.

  • That option ONLY works in BIDS, it has no effect during a run outside of BIDS.

    As far as calling it from code, that has me stumped too, I know that DTEXEC comes in 64 and 32-bit versions and given that there are 2 seperate executables I am wondering if you can call a 32-bit package from a 64-bit exe..

    Sorry, don't have a good answer on that one..

    CEWII

  • if we need to schedule a job for 32 bit in 64-bit env?

    what should we do then?

    i know that there exists a dtexec to be picked from the Int86 directory.

    however what do we do for running it in a job.

    Many Thanks...

Viewing 15 posts - 1 through 15 (of 18 total)

You must be logged in to reply to this topic. Login to reply