3

I have an SSIS package in which I am reading data from a csv and dumping it to an excel file (.xls). At first, it did not work and I had to change the SSIS project 64-bit runtime property to false to make it work.

I need to call this package from another windows service which is built to "Any CPU" output. When I do so, I get the same 64-bit runtime error and the package fails. I cannot change the runtime of the service to x86/x64. Is there a solution so that I can tell the package that it needs to execute in the 32-bit runtime from the service?

Aniruddha Ghosh
  • 83
  • 2
  • 11
  • 2
    As far as I know, the package will be executed in the same process as its parent. You can solve this by executing the package in a separate (x86) process. – Jeroen Bolle Jul 25 '12 at 08:34
  • @JeroenBolle: Yes, you are right. I had to change the parent service to run on x86 platform to make this work. – Aniruddha Ghosh Aug 26 '12 at 11:21

2 Answers2

3

try to set this property to false (its on the solution's properties):

enter image description here

Also, rememebr that Dtexec, dtutil, and the SQL Server Import and Export Wizard have both a 64-bit and a 32-bit application. Be sure to note that if you develop a package in a 32-bit environment and want to run the package in a 64-bit environment, the connection managers need to be 64-bit compliant. Some connection managers such as Excel work in a 32-bit environment only.

Diego
  • 34,802
  • 21
  • 91
  • 134
0

It's possible to force 32 bit execution through EXEC Commands:

 EXEC SSISDB.catalog.create_execution
 @folder_name = @p_yourFolder,
 @project_name = @p_yourProject,
 @package_name = @p_yourProcess,
 @reference_id = @v_yourReferenceId,
 @use32bitruntime = 1,  --To force 32 bit runtime
 @execution_id =  @r_SSISDB_ExecutionID OUTPUT;

Or through a SQL Agent in Configuration\Advanced properties where you have a «Run in 32 bit mode» check box available.

LCR
  • 1