SSIS Script Task fails when run from sql job - ssis

I have a created a SSIS package to load excel file into database but before Data Flow Task, i m using a script task to change data type of one the excel columns using interop.excel dll.
While running the package in VS2015 on the server itself, it completes with success, but when i am running it through sql server agent it is getting failed and giving following error message
"Script Task Error : Exception has been thrown by the target of an
invocation."
i have already registered the dll in GAC.
What others steps should i try to resolve the issue?
Edit :-
Error Message :
Retrieving the COM class factory for component with CLSID
{000209FF-0000-0000-C000-000000000046} failed due to the following
error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005
(E_ACCESSDENIED)).

Hmm. As you succeed in running the package under your account and it fails run by SQL Job - the most probable case is that SQL Server Agent service account does not have an access to the Excel file.
I would create a job proxy, as described here How to add SQL Job Proxy with an account which has access to the Excel file.

Related

SSIS Package Works in VS but not in SSIS because of ODBC Data Flow Task Error

We have a test package that was designed using VS2017 that has one "Data Flow Task" object with "ODBC Source" and "ODBC Destination" objects within it. The package is simply trying to move records from table 'Table_1' to table 'Table_2' in the same SQL Server 2014 database named 'Test'.
When we execute the package from VS2017, it runs successfully.
However, when we import that package into SSIS, and then run the package directly from there, we get the following error messages (see screen shots below):
The version of ODBC Destination, clsid {51B271F1-3B7E-4875-870E-62A0456FE2AD} is not compatible with this version of the DataFlow.
The version of ODBC Source, clsid {F8600F4A-E321-42F4-AA59-DA00FA374EA5} is not compatible with this version of the DataFlow.
The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "ODBC Destination;Connector for Open Database Connectivity (ODBC) by Attunity; Attunity Ltd.; All Rights Reserved; http://www.attunity.com;7".
Any ideas as to what is causing these errors?
Couple side questions / interesting notes:
Why is it referencing Attunity? We are not using the Attunity connectors. We are using ODBC. I don't even have Attunity installed on this machine (I did at one point but uninstalled it).
If you don't use the DataFlow task with the OBDC driver and just use a simple 'Execute SQL Task' object in the package that runs a simple 'INSERT INTO Table_2...' statement, the package runs in SSIS. There is something wrong with using the Data Flow Task.
Screen shots:
Here you can see the package is running successfully in VS2017:
The package was imported into SSIS:
When you run it in SSIS, it fails with the following errors:
Found the answer from other posts.
First, change the TargetServerVersion property for the project to the version of SQL Server you are using for SSIS as explained by the links below and the screen shot shows.
The version of ODBC source is not compatible with this version of the dataflow
SSIS: version of ODBC source is not compatible with this version of the dataflow
After you do that, you may run into an error that states something like the following:
[ODBC Destination [2]] Error: The AcquireConnection method call to the connection manager MyConnectionManager failed with error code 0xC0014009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
If you get that error, change the Run64BitRuntime property to 'True' for the project as explained by the link below and the screen shot shows.
‌https://social.msdn.microsoft.com/Forums/sqlserver/en-US/eb9e6826-b650-433b-bab9-16da214efd99/the-acquireconnection-method-call-to-the-connection-manager-mydatabaseodbc-failed-with-error-code?forum=sqlintegrationservices

SSIS The connection is not found. The error is thrown by connections collection

I have created a SSIS package using visual studio 2015 and deployed it SQL 2008 R2 server. I have attached the config file to SQL job step that executes the package and deployed the config file to the location.
When I run the SQL job, I get the error
The connection "XXXXX\SQL2008R2.XXXX" is not found. This error is thrown by Connections collection when the specific connection element is not found
After getting this error i Checked the configurations tab in the job step and noticed that the connections weren't selected
see screenshot below
I then checked the check boxes and reran the package to get the same error
I am not sure that I am missing. It looks like the package is not reading the config file correctly

SSIS Logging Throws an Error

I have programmed some ETL which works OK, the processing finishes without errors. Now I want to create a log using SSIS Loggin feature.
However, once I set this logging up (SSIS log provider for SQL Server; all events; all cotainers are checked, also the log is checked) and start the ETL, the MS Visual Studio 2008 app return error window with not error specified in it so I don't have even clue what could be the problem. The destination of ETL is SQL Server 2008 R2. The credentials are the same as my AD account, I have no problem to write the data into this DB (respectivelly it's tables).
To sum up, the whole ETL run works without problem, but once the SSIS Logging is turned on, the ETL does not even start.
One notice: the log table was created in the DB though [domain\user_name].[sysssislog]. Also the logging to e.g. text file works without any problems.
Any suggestions, please?
+++
Error I am receiving
TITLE: Package Validation Error
Package Validation Error
ADDITIONAL INFORMATION:
Error at Reporting_v3 [Log provider "SSIS log provider for SQL Server"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14 Description: "There is already an object named 'sysssislog' in the database.".
Error at Reporting_v3 [Log provider "SSIS log provider for SQL Server"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E14.
There is like around 500 rows with the same error. If I delete the ssislog table and run the package with SSIS Logging turned on, the table is created again and the same error pops up.
Fixed. The solution can be found at the following link:
http://connect.microsoft.com/SQLServer/feedback/details/467794/ssis-log-provider-for-sql-server-do-not-work-when-default-schema-is-not-dbo-sysdtslog90-sysssislog

Excecuting SSIS package deployed in Integration Service Catalog

I have edited my entire question, first my question was how to execute the SSIS Package, but now I have got the solution to execute it via SQL Server Agent job but when I am trying to execute the SQL Server Agent job, I am getting error , when I viewed in history then following message is shown
Job failed. Job was evoked by the user. Last step to run was step 1.
please note the table where I am inserting the data into database via SSIS package in SQL Express, is it SQL Express creating problem.
---------Updated Error Message-------------
The following error message is seen when I expand log file of SQL Server Agent job,
Executed as user: NT Service\SQLAgent$SQL_Server_Evalu. Microsoft(R) SQL Server Execute Package utility Version 11.0.2100.60 for 64 bit copyright (C) Microsoft Corporation. All right reserved started: 16:11:39 Package Execution on IS Server failed. Execution ID:4, Execution Status:4.
Below is the screen shot how I execute the SQL Server Agent job,
------------Updated error message------------
Below is the screen shot of the error message that are given while execution of the deployed package.
Errors are as follows:
1) Data Flow Task Error: There were errors during task validation.
2) Data Flow Task Error: OLE DB Destination failed validation and return error code 0XC020801C.
3) Data Flow Task Error: One more component failed.
4) Data Flow Task Error: SSIS Error Code
DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER
The AcquireConnection method call to the connection manager "RESHMAJADHAV\SQLEXPRESS.Adventureworks2012" failed with error code 0XC0202009.
5) Package Error: SSIS Error Code DTS_E_OLEDBERROR. An OLEDB error has occured. Error Code: 0X80004005. An OLE DB record is available. source: "Microsoft SQL Server Native Client 11.0" Hresult: 0X80004005 Description:"Login failed for user 'NTSERVICE\SQLAgGENT$SQL_SERVER_EVALU'.". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0X80004005 Description:"Cannot open Database" AdventureWorks2012"
requested by login. The login failed"
Is it because of the connection string
"Data Source=RESHMAJADHAV\SQLEXPRESS;Initial Catalog=AdventureWorks2012;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"
That I have defined in environmental variables in Integration Service Catalog I am unable to open the database..?
Any help will be greatly apprecaiated...
Data Source=RESHMAJADHAV\SQLEXPRESS;User ID=XXXXXXX;Password=XXXXXXXXX;Initial Catalog=AdventureWorks2012;Provider=SQLOLEDB;
for the destination connection. I think job is not getting the end user name and password.
It might help. I f not can you please post the exact error message. I am no able to see anything form the picture..
Thanks

"Unspecified Error" when clicking on 'Name of Excel Sheet' for a Excel Source Task

I've created an Excel connection. When I create a data flow with an Excel destination and click 'Name of Excel Sheet' I get an "Unspecified Error". When I look under 'Show Advanced Editor' of the destination I see the following error:
Error at blah [Connection manager "DestinationConnectionExcel"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft JET Database Engine" Hresult: 0x80004005 Description: "Unspecified error".
Error at Insert blah [Destination - blah [199]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "DestinationConnectionExcel" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
Exception from HRESULT: 0xC020801C (Microsoft.SqlServer.DTSPipelineWrap)
I've read through a tons of other post and nothing seems to help. I've tried setting the 'DelayValidation=True' on all the Jet Engine related task. While this allows me to run the package without any errors, I can't edit or change anything. I also can't create new tasks with Excel.
I've already tried to set 'Run64BitRuntime = false" and that also isn't helping.
Another note, The problem is intermittent. I've been able to work with Excel tasks fine one time after a reboot, then another time its all failing as I described.
Any help would be appreciated. Thanks all
I encountered a similar issue, and the resolution was two-fold for me. First, make sure certain dlls are properly registered on your dev machine:
Paraphrased from SSIS 2005: Using Execute SQL Task to work with Excel Connection Manager
Please check whether the following files exist:
C:\windows\system32\odbcjt32.dll
C:\windows\system32\msjet40.dll
C:\windows\system32\msexcl40.dll
C:\Program Files\Common Files\System\Ole DB\oledb32.dll
C:\Program Files\Common Files\System\ado\msado15.dll
If they are, please manually register them. Run each of the following commands from command prompt:
Regsvr32 "C:\Program Files\Common Files\system\Ole DB\oledb32.dll"
Regsvr32 "C:\Program Files\Common Files\system\ado\msado15.dll"
Regsvr32 "C:\windows\system32\msjet40.dll"
Regsvr32 "C:\windows\system32\msexcl40.dll"
Then, update any folder/file paths referenced in the SSIS package. I kept changing the Excel Connection Manager object to point to the correct file, but the change would never "stick." Another developer directed me to look at the list of Variables in the SSIS package. Right-click anywhere in the package designer and choose "Variables" (based on the 2008 version). In the list of variables, check if there are any paths that are being used. If you find any, verify that they exist on your machine or change them to use your own local paths.
After following these two suggestions, I was able to open the Excel file and choose the target sheet in the Excel Connection Manager window. And, the SSIS package runs successfully in my local environment.
I take it the path to the excel workbook is correct? I also had problems when I had opened and saved the excel workbook I was using as my destination in excel. I think if you create the workbook from within SSIS it might use office web tools. Perhaps you could try to recreate the workbook within SSIS.
I got similar problem,make sure connection manager is connected to MicrosoftExcel-64 bit which is same as SQL SSIS version.
Otherwise add Microsoft.ACE.OLEDB.12.0 provider in your linked server, not in your local machine.
And also check if you have Microsoft excel present in your server again not on your local machine
If local machine and SQL Server installed on the same machine then its fine.