I am developing an ETL system on a 32-bit machine let's say, called 'dwdev'. The application connects to a Sybase database as a source system using ODBC connection. I am able to run this application directly from Visual studio 2005 and i am able to deploy it into SQL Server 2005 and run it from Server as a job. Both work. At this server i am connecting to a SQL Server instance called 'dwdev'.
When i transfer my application onto a 64-bit machine, let's say called 'dwtest', i am able to run my application from Visual Studio 2005 properly and it works, but when i deploy it into SQL Server (instance is called 'dwtest') and try to run it as a job just like the development machine, it gives an error and stops executing.
I was facing 'data source' type of error when i was first trying it from Visual Studio, but i solved this problem by setting Run64bitRunTime settings to FALSE on the Project's properties Debugging Page, at 64-bit machine. now it uses 32-bit runtime then 32-bit Sybase ODBC driver. But i cannot force the application to use 32 bit runtime when i am executing it from SQL Server as a job.
How can i do that? is there an alternative method?
Thanks for your help...
The solution in this thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=603814&SiteID=1
worked for me(Thanks to Michael Entin) when i execute my application on SQL Server as a Job (SQL Server Agent) calling command line dtexec utility. I defined my job step as TYPE: Operation System (CmdExec) , RUN AS: SQL Agent Service Account
I used the follwing string as my command:
C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\dtexec.exe /sq EXECUTE_ALL_S0_JOBS_FROM_SQL_SERVER_MASTER /ser dwtest
but i still wonder whether there is a solution for defining job step as a SQL Server Integration Services Package and executing the package EXECUTE_ALL_S0_JOBS_FROM_SQL_SERVER_MASTER in a 32-bit mode under SQL Server Agent?
Thanks
No comments:
Post a Comment