Execute SSIS Package Through ASP.NET Web Service - Different Problem
Aug 22, 2007
Hi all,
There was already several posts about executing packages programmatically from the context of Web Services. I have decided to follow Web Service approach because we were already calling packages programmatically through .NET. So far I have been able to clear all security configuration obstacles as I am able to load package and call Execute but mysteriously package doesn€™t execute. I am reading StopTime, StartTime and ExecutionDuration properties after call to Execute and evidently package doesn€™t execute because StartTime and EndTime are identical and ExecutionDuration is 0 but no error is raised or logged anywhere but package return status is failure)!
We are using SQL Server 2005 with Service Pack 2 on Windows 2003 R2 Enterprise, .NET Framework 2.0. The Domain Account that has Admin privileges on both servers is calling Web Service. DefaultAppPool uses Network Service and Anonymous access is enabled. Network Service is also member of the sysadmin role.
I am sure root of the problem is still in the Security but I am not getting any clue because of lack of any error. Does anyone has any suggestion? Thanks in advance.
When running an integration services package from a windows service I get the "Object ... has been disconnected or does not exist at the server." exception after aproximately six minutes of execution.
This is *not* my windows service failing. I can loop indefinately while tracing to a log file within the service and it will run forever. While calling the mypackage.execute(...) method however, after six minutes (give or take) the exception is thrown...
my code looks something like this: <code> dim foo as Microsoft.SqlServer.Dts.Runtime.Application mypackage = foo..LoadPackage(strimportPkgFilename, pkgevents) results = myPackage.Execute(Nothing, Nothing, pkgevents, Nothing, Nothing) </code>
<error> A first chance exception of type 'System.Runtime.Remoting.RemotingException' occurred in mscorlib.dll Exception in: frmMyForm.DoImports Message: Object '/b76f98a0_5bd9_49d8_a524_eeb49d55b303/bqbhkjnaofq_ifr_cwz+srid_1.rem' has been disconnected or does not exist at the server. </error>
oddly, this same code works perfectly if I run it within a windows form application no matter how long it takes.
It also runs fine if the package can complete in under six minutes.
I have a master package, which executes child packages that are located on a SQL Server. The Child packages execute other child packages which are also located on the SQL server.
Everything works fine when I execute in process. But when I set the parameter in the mater package ExecutePackageTask to ExecuteOutOfProcess = True, I get the following error
Error: 0xC00470FE at DFT Load Data, DTS.Pipeline: SSIS Error Code DTS_E_PRODUCTLEVELTOLOW. The product level is insufficient for component "Row Count" (5349).
Error: 0xC00470FE at DFT Load Data, DTS.Pipeline: SSIS Error Code DTS_E_PRODUCTLEVELTOLOW. The product level is insufficient for component "SCR Custom Split" (6399).
Error: 0xC00470FE at DFT Load Data, DTS.Pipeline: SSIS Error Code DTS_E_PRODUCTLEVELTOLOW. The product level is insufficient for component "SCR Data Source" (5100).
Error: 0xC00470FE at DFT Load Data, DTS.Pipeline: SSIS Error Code DTS_E_PRODUCTLEVELTOLOW. The product level is insufficient for component "DST_SCR Load Data" (6149).
The child packages all run fine when executed directly, and the master package runs fine if Execute Out of Process is False.
I have a SSIS job, one of the last steps it performs is to execute a SQL 2000 DTS package. This has to be done as a SQL 2000 DTS package as it is performing rebuilds of SQL 2000 Analysis Services dimensions and cubes. We've found that when the DTS fails the SSIS job is happily completing showing as a success, we would prefer to know it went wrong.
As far as I'm aware SSIS merely starts the DTS off and doesn't care about it's result. I've taken a look in to turning on the logging for the execute DTS package and thought that the ExecuteDTS80PackageTaskTaskResult would give me the answer I need...but is merely written to the log not available as an event-handler. It also looks like it is not safe to put a SQL task in as the next item to go look at the SQL 2000 system tables to look at the log for the DTS package as the SSIS documentation warns that the DTS package can continue to run after the execute DTS package task has ended.
Ideally I want any error raised within the DTS package to cascade up to be an error in the SSIS job, I can then handle it appropriately. I cannot find a way to do this. Is there a way?
If not, can anyone suggest how in the remainder of the SSIS tasks I can be sure that the DTS has completed before I start any other tasks that will check for the SQL 2000 log of its execution?
I now have two SSIS package, "TESTING" and "LOADING". The "TESTING" package have an execute package task that call the "LOADING" package. When I want to execute the TESTING package, how can I setup the connection string so that I can edit the password of the database connected by the "LOADING" package?
I have successfully created a SSIS package which execute a DTS 2000 package and with no problem to execute the task. But I failed to schedule this package. I was not success in setting the logging. When running the package in command line:
dtexec file "C:Documents and SettingslyangMy DocumentsVisual Studio 2005ProjectsTraingDTSTraingDTSDTSTraining.dtsx"
Error: 2008-03-24 08:03:24.36 Code: 0xC0012024 Source: Execute DTS 2000 Package Task Description: The task "Execute DTS 2000 Package Task" cannot run on this edit ion of Integration Services. It requires a higher level edition. End Error Warning: 2008-03-24 08:03:24.38
Code: 0x80019002 Source: DTSTraining Description: The Execution method succeeded, but the number of errors raised (2) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the M aximumErrorCount or fix the errors. End Warning DTExec: The package execution returned DTSER_FAILURE (1).
hi, can anyone explain, how to execute package with sql server agent:
the problem is::
i made a integration service package (in visual studio 2005). When I 'm in visual studio and do "execute" the package it works well. Then I build a dtsx file. When i double click on it, it opens and if i do execute, it works well.
I want to execute the package every week automatically. I write a job in SQL server agent, in Steps I choosed Type=SQL server Integration service packege, then General->packacge source -> file system, and then wrote where the dtsx file is (which was built). "Run as" I choose my user name.
then i'm trying to start a job, but it fails, and writes "The package execution failed."
I am seeking a walkthrough for executing packages via a web service. All I have found so far are fragmented bits of information. This article is a good start but it leaves out some critical security setting information. http://msdn2.microsoft.com/en-us/library/ms403355.aspx#service.
Does anyone know of a good walkthrough that includes the security setup: Impersonation, Proxies, etc.?
Need some help... When we tried to run mulitple packages one after the other from a windows service, first one succeeds but later ones are throwing below error : "The script threw an exception: The element cannot be found in a collection. This error happens when you try to retrieve an element from a collection on a container during execution of the package and the element is not there. A deadlock was detected while trying to lock variable "System:ackageName, User::BusinessDate, User::Environment, User:ortfolioName" for read access. A lock could not be acquired after 16 attempts and timed out."
Later, we tried to create separate AppDomains for each package and execute via console application, but ended up with below error (The below expressions were defined in OnError Event) : "The result of the expression "@[User::ReportErrorFrom]" on property "FromLine" cannot be written to the property. The expression was evaluated, but cannot be set on the property. The result of the expression ""Error At :" + @[System:ourceName] + "" + "Error Description : "+ @[System::ErrorDescription] + "" " on property "MessageSource" cannot be written to the property. The expression was evaluated, but cannot be set on the property."
At last, we tried to span a separate process (System.Diagnostics.Process) for each package. this seems working but taking very long time: A package that normally takes 2 min, is taking 60 min.
We also tried creating an SSIS Package that executes mulitple packages. But only first package is getting executed, and second one is throwing below error (Here the variable it is trying to lock is of first package): "Failed to lock variable "UniqueInstrumentsQuery1" for read access with error 0xC0010001 "The variable cannot be found. This occurs when an attempt is made to retrieve a variable from the Variables collection on a container during execution of the package, and the variable is not there. The variable name may have changed or the variable is not being created.".
Please help us with some work around for this. Thanking you in advance,
Hi, Using SSIS, how is it possible to execute another ssis package and pass a parameter to it? For example, I would like to have a sql code that runs the package say "d:sysapplCEMSSISCSA.dtsx" and pass a parameter of fileName because the CSA.dtsx package requires a filename.
I wrote this post in another category but the answer did not satisfied so that I'd like to know if really anyone has ever used or experienced with this possibility. No by .Net language rather than Vb 6.0 or ASP or even instanciacing DMO library.
I have created four package, it should executed sequencely one by one. Is it there any option like sequencer in Data Stage for achive this requirement? I want to execute these package one by one using SSIS. could you help on this requirement?
I've an application developed in VB 6.0. Now I had created a SSIS package which is used to import data from an Excel file. This package has a variable "App ID".
Now I need to execute the package from VB application. Also I need to pass the value for the variable "App ID".
A developer needs to execute an SSIS package from a stored procedure and I do not want to enable xp_cmdshell on SQL 2005.
One suggestion is to have the application invoke dtexec on the client PC, but this would cause the package to be executed on the client and also requires some SSIS components be installed on each client.
Another idea is to configure a Windows Service to execute dtexec, but I do not know the risks of this approach. Any thoughts?
I've got here a strange Problem. If I try to execute the SQL Server Agent Job, that executes my SSIS Package, it fails. The job succeedes when I run the Job as the Proxy, that maps on the User, that has deployed the Package, or when I run the Job under an System Administrator Proxy. Now my Question - how must I set up an Service-Account, which is no Admin and not has deployed the Package?
I already know, that the User has to be in the sysadmin role, and in all msdb SQLAgent*
1. I am trying to load data from AS400 DB2 to SQL Database using integration services.
2. I am using microsoft ole DB for Db2 driver to pull data from AS400 and using native SQL driver to load data into MS SQL 2005.
AS400 View to pull this data is---
SELECT UPPER(CHAR(SVSGVL)) AS AccountID, UPPER(CHAR(SVLDES)) AS AccountDesc, INT(SVSGTP) AS AccountTypeID, INT(SVTR) AS TranslationMethodID, INT(SVDEF) AS AccountValue, INT(SVRM) AS RemeasurementID FROM V820PRMF.GSVL01 WHERE (UPPER(SVSGMN) = 'ACCT') ORDER BY AccountID
AccountID String[DT_STR] Lenhth-16
AccountDesc String[DT_STR] Length -30
All other column is int.
MS SQL 2005 is were data to be loaded. Table Info.
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Integration Package
[Destination - Account [34]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Native Client" Hresult: 0x80004005 Description: "Unspecified error".
[Destination - Account [34]] Error: There was an error with input column "ACCOUNTID" (284) on input "Destination Input" (47). The column status returned was: "The value violated the integrity constraints for the column.".
[Destination - Account [34]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "input "Destination Input" (47)" failed because error code 0xC020907D occurred, and the error row disposition on "input "Destination Input" (47)" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
[DTS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination - Account" (34) failed with error code 0xC0209029. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
[DTS.Pipeline] Error: SSIS Error Code DTS_E_THREADFAILED. Thread "WorkThread1" has exited with error code 0xC0209029. There may be error messages posted before this with more information on why the thread has exited.
// IDataReader 'ın buradaki gerçekleştirimi diğer dataReader 'lardan farklı. Kayıtlar okunurken son kayıt okunmasına rağmen // read() metodu bir kez daha true dönüyor ve kayıt sayısı + 1 tane okuma yapılıyor. Yapılan son okuma da istisna fırlatıyor. try { dataTable.Load(dataReader); } catch (ApplicationException ae) {
return dataTable; } However it always fails after I publish the asp.net 2.0 application to our Win 2003 Server. I also copied the configuration and dtsx file to proper location on the server.
I can use dtexec to execute the package without any problem on the same location. But when called from the application, the package fails to validate.
I€™ve installed Sql25k Client Components on my own workstation (XP SP2) in order to build ssis packages comfortably against our production server (64 bit on A-P cluster)
I open my Visual Studio .Net 2003 and create a new Windows Application. But when I run the code for to launch a SSIS package fails. It doesn€™t find the necessarry assemblies. Fine, I understand it. No problem. I copy them from %windir%sql server90assemblies... to C:windowsMicrosoft.NETFramework After that I€™m going to add new reference from my project but .net complain telling me that these ones are not valid assemblies ¿¿
Assemblies are:
Microsoft.SqlServer.ManagedDTS.dll
Program FilesMicrosoft SQL Server90SDKAssemblies
.NET
Microsoft.SqlServer.DTSRuntimeWrap.dll
Program FilesMicrosoft SQL Server90SDKAssemblies
.NET
Microsoft.SqlServer.DTSPipelineWrap.dll
Program FilesMicrosoft SQL Server90SDKAssemblies
.NET
Let me know where am I failing.
I provide you the snippet of code:
Imports Microsoft.SqlServer.Dts.Runtime Module Module1 Sub Main()
Dim pkgLocation As String Dim pkg As New Package Dim app As New Application Dim pkgResults As DTSExecResult
While executing packages in a file from a procedure, I get error:
Error: 2006-10-24 14:58:54.62 Code: 0xC0016016 Source: Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available. End Error
I'm new to SSIS so I have not found the answer yet. I have a SSIS package that needs to be run everyday,that loads a basic text file. The only problem is that the text file may not be in the same location everyday so my users will need to locate the path prior to running the package. Is there a way to browse to the text file then have my users execute the package sort of like the old DTS in SQL 2000.
I am executing a SSIS Package in C# (2005). Does anybody know how to find out, in case of an error, the error message?
I am doing the follwoing: Microsoft.SqlServer.Dts.Runtime.Package local_Package = new Microsoft.SqlServer.Dts.Runtime.Package(); Microsoft.SqlServer.Dts.Runtime.DTSExecResult local_DTSExecResult = new Microsoft.SqlServer.Dts.Runtime.DTSExecResult(); Microsoft.SqlServer.Dts.Runtime.Application local_Application = new Microsoft.SqlServer.Dts.Runtime.Application();