Process.Start application was unable to start correctly w/ DTExec - ssis

I am writing a tool that allows a DBA to remotely run an SSIS package. The application is an XBAP and has been deployed to a SQL Server, with the SSIS package on the same server. I achieve the remote calling of the SSIS package by running DTExec remotely on the server (I open the servers DTExec utility, not a local version) running as another user using Process.Start.
Here is the issue that I'm getting. When running the application (from the server) from my desktop it works absolutely fine. DTExec is started and the SSIS package is executed. However, when I go to a different computer within our same network, I receive the error
The application was unable to start correctly (0xc0000143). Click OK to close the application.
This has happened on multiple computers, but for some reason works from mine.
The only difference between the two computers, is that mine has a version of SQL Server developer on it (meaning I have a local DTExec tool - however I am not calling this tool, the path is to \\server\Microsoft SQL Server...\DTExec.exe).
Does anyone have any idea what's going on here?

Found the answer via this blog post: http://asprosys.blogspot.ca/2009/03/perils-and-pitfalls-of-launching.html
Adding Credentials to the Process.StartInfo requires have permissions on the local machine as well as the server where the application is running and where the application you are attempting to run is found.

Related

Does SSIS Components have to be installed on all involved hosts?

TLDR; I am attempting to connect to a host and hitting "To run a SSIS package outside of SQL Server Data Tools you must install Derived Column of Integration Services or higher". Does SSIS need to be installed on all Hosts for my package to succeed? Secondary question: If so, why would a manual execution from my dev machine work while the deployed/dtexec versions fail?
Apologies if this is a basic question (I am still steeping myself in all things SSIS and trying to learn as quickly as possible). Thanks in advance for any assistance you can provide!
I have a package that runs fine on my development machine (via Visual Studio). However, when I deploy the package out I encounter errors when attempting to connect to a MySQL database on a secondary host machine on the network. Taking a step back, I decided to attempt a manual execution via DTEXEC on my dev machine to attempt troubleshooting...
When executing this package through DTEXEC however, I encounter an error stating:
"To run a SSIS package outside of SQL Server Data Tools you must install Derived Column of Integration Services or higher"
Looking at the log, it looks like the package is able to connect to Host 1 successfully and do some data manipulation (one of the 3 hosts; I know Host 1 and Host 3 have SSIS installed). However, when it attempts connection to Host 2, it fails with the aforementioned error. For the longest time, I thought this was due to the MySQL database I am trying to connect to (using .net Provider\MySQL Data Provider) but given the error above, it is possibly pointing to something else...
After doing a bit of searching I have located the following articles which may be related:
https://dba.stackexchange.com/questions/49786/error-to-run-a-ssis-package-outside-of-sql-server-data-tools-you-must-install
Getting error running SSIS package on non-SSIS Server
I know SSIS isn't installed on Host 2. The package is being executed from Host 1 and this host does have SQL Server and SSIS installed. Host 3 additionally has SQL Server and SSIS installed and I am able to successfully operate/connect on this host as well. The only host presenting a problem is Host 2 which does not have SQL Server nor SSIS installed.
Do all hosts have to have SSIS installed for connections to be made? Additionally, if SSIS does need to installed on Host 2, why would my dev machine succeed while the dtexec/deployed versions fail?
Again, thank you for any assistance you can provide!
The answer to your first question is "Yes", and that fact is the answer to your secondary question.
In short, SSIS packages are NOT self-contained executable files. They are more like .ini files that the SSIS Service reads, interprets, and executes. If the SSIS Service is not running on a host computer, then that computer cannot do anything with an SSIS package (the .dtsx file).
Your dev machine succeeds because it has Visual Studio, or BIDS, which is a developer's version of the SSIS Service engine.

SQL SERVER 2008 SSIS

I have a question regarding to SSIS. I designed a package and it worked fine when I executed in my local machine. I used to extract the data from Teradata and load into SQL SERVER 2008. Everything was fine but I'm looking for how to execute the package without my local machine. I mean how to configure and set up the odbc in the SSIS server machine, not my local machine.
Thank you,
Paul
You'll need to make sure you've installed SQL Server Integration Services on the box; then there's a number of ways to go about running it. From there, I prefer to connect to Integration Services from the Object Explorer in SSMS and import packages, using the "SQL Server" as the Package Location. Once the Integration Services on the box has an entry for the package, you'll be able to run it with the agent by specifying a step type of "SQL Server Integration Services Package." I don't think you will need to set up the ODBC on the server itself if you have it configured correctly in your package, but if you do that should be no different than the way you have it set up on your own box.

Need to run SSIS via a remote application

I'm running into this issue basically:
Can I deploy & Use SSIS SQL server DTS DLL's onto a machine that does not have SQL server 2008 installed?
Since it's been answered I don't know if my request for further information will get any traction.
I'm running into the same problem I think. When I deploy locally on my dev box, my application calling SSIS works fine. When I deploy my application on Server A, and my SSIS package on Server B (my database server), I get the error mentioned in the post: " An Integration Services class cannot be found. Make sure that Integration Services is correctly installed on the computer that is running the application. Also, make sure that the 64-bit version of Integration Services is installed if you are running a 64-bit application".
If I understand things correctly I need to have an SSIS license on my application Server and my database server?
This doesn't seem to make sense. When you make a SQL call to SQL server, provided you have an enterprise license you only pay once. You don't have to pay for an extra license for your application server.
I just want to make sure I've got this clear before I go to the higher ups, and that my problem isn't stemming from something else. So to put it concisely: Do you need to have an SSIS license for both your app server and your SQL Server when calling an SSIS package remotely?
Just to clarify the 64 vs 32 bit thing: I've got 64 bit OS's running on my local machine, the app server and the database server - and all my VS projects are being built to use "Any CPU".
Sorry for the lengthy post, but I thought I should be thorough on this.
You will need to have SSIS licensed (SQL Server) on any machine that is using SSIS to execute packages.

SSIS Error When executing from command line [duplicate]

This question already has an answer here:
Executing SSIS 2012 package that has script components from external application
(1 answer)
Closed 8 years ago.
I have a small SSIS package which exports data to a excel file from SQL server 2008. The package works perfectly fine in our dev environment, when the package is moved to our another environment we receive the below error on execution from command line.
The package runs for a while and then gives the below error
Error: 2012-05-21 18:34:01.61
Code: 0xC000F427
Source: Create Summary From Detail SSIS.Pipeline
Description: To run a SSIS package outside of Business Intelligence
Development Studio you must install Standard Edition of Integration Services
or higher.
End Error
Other SSIS packages which were exported to this environment before are working fine now. Only this package is throwing this error, what i meant to say is we are having the SSIS installed on this environment.
Can Some one please let me know what could be the possible reason for this?
Please let me know if you need more information.
Thank you
What version of SQL Server do you have installed on your computer? You need at least SQL Server 2005 Standard Edition. If you are running Workgroup Edition or SQL Server Express, you will have difficulties with advanced SSIS features (unless you are running through Visual Studio.)
See http://msdn.microsoft.com/en-us/library/cc645993.aspx#SSIS for a list of SSIS features not supported by SQL Server Workgroup.
A package runs on the same computer as the program that launches it. Even when a program loads a package that is stored remotely on another server, the package runs on the local computer. Also, you can only run a package outside the development environment on a computer that has Integration Services installed. You cannot run packages outside of Business Intelligence Development Studio on a client computer that does not have Integration Services installed, and the terms of your SQL Server 2005 licensing may not permit you to install Integration Services on additional computers.
So, apparently you don't have SSIS on your "another environment". Did you deploy it to SQl Server or File disk?
To run remote packages from a local computer that does not have
Integration Services installed, start the packages so that they run on
the remote computer on which Integration Services is installed. You do
this by having the local computer use SQL Server Agent, a Web service,
or a remote component to start the packages on the remote computer. If
you try to start the remote packages directly from the local computer,
the packages will load onto and try to run from the local computer. If
the local computer does not have Integration Services installed, the
packages will not run.
This article shows mechanisms for running the package on another machine that does have SSIS installed:

SSIS Execute Process Task hanging from SQL Server Job, no errors given

I have a basic SSIS package that has an execute process task which runs a .exe sitting on our NAS/Share drive which produces a csv file and is read by later steps.
I can execute the SSIS package within BIDS and everything works flawlessly. When deploying to the server and running from job the SSIS package just hangs and stays in executing mode.
To verify we could run it from the server, I tried running the .exe from the command line from within the server and came across an error which was stopping the .exe running, turns out we needed a 64bit, windows server 2008 specific .exe which we have put together. Despite updating the .exe and being able to run it from the command line in the server now we are still suffering the same issue.
Any ideas, pointers, even potential research avenues would be greatly appreciated as I am relatively new to SSIS and am patiently trying to hack my way through it.
Cheers
If you are using your executable from a UNC path you will have to add it in the zone setting in Local intranet.
On your Internet Explorer, go to Security and select Local Intranet setting. Click on Sites and add your UNC path and click ok. The file:// protocol is added automatically.
This has nothing to do with SSIS, but everything to do with the zone settings in Internet Explorer.
This should help.