SSIS - OData Connection to Sharepoint List Failed Validation Error - ssis

In SSIS (version 15, created through Visual Studio 2017), I am trying to connect to a Sharepoint list ("Deficiencies") with an HTTPS URL. I get this error:
Error: 0xC020801F at Deficiencies, Get Deficiencies Data [2]: Cannot
acquire a managed connection from the run-time connection manager.
Error: 0xC0047017 at Deficiencies, SSIS.Pipeline: Get Deficiencies
Data failed validation and returned error code 0xC020801F. Error:
0xC004700C at Deficiencies, SSIS.Pipeline: One or more component
failed validation. Error: 0xC0024107 at Deficiencies: There were
errors during task validation.
I am using an OData Source. The Connection Manager returns a "test successful" and previews the list data. However, when I run the package in VS, it returns the above error. It does the same whether I use Windows Authentication or use the service SQL account.
I'm including /_vti_bin/listdata.svc at the end of the URL.

Related

SSIS Package to copy data from one to another error

I have setup a SSIS package to copy over some data from one table to another. At first I tried doing from one server to another server, did not succeed. Then I tried it doing within the same server, no luck again. I followed couple tutorials/videos how to do it and followed the exact pattern.
However here's what I tried to do:
Create a "Data Flow Task"
Under "Data Flow" tab create an "OLE DB Source" and "OLE DB Destination"
Configure the "OLE DB connection manager" and setup the column mapping, verify connection status for both source and destination
When I run the package I get following errors
Here are the 5 errors that are in the above figure,
[OLE DB Destination 2] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "STLEDGSQL01.MES_DEV" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
[SSIS.Pipeline] Error: OLE DB Destination failed validation and returned error code 0xC020801C.
[SSIS.Pipeline] Error: One or more component failed validation.
Error: There were errors during task validation.
[Connection manager "STLEDGSQL01.MES_DEV"] 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 Server Native Client 11.0" Hresult: 0x80004005 Description: "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Client unable to establish connection".
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Registry information is corrupt or missing. Make sure the provider is installed and registered correctly.".
Now I have tried applying couple of solution that I found in stackoverflow and out in the internet, such as following but nothing helped me so far.
Set delay validation property at package level to True from false
Change ProtectionLevel to EncryptSensitiveWithUserKey
Any help is greatly appreciated!
For anyone who's interested or had the same issue as mine, I just found the answer. I was using the wrong TargetServerVersion in project properties. My SQL server is 2016 and it was defaulted to 2019 automatically in this property page. I did change it back to 2016 and yes it all starts working.
I suggest that you do not use SSIS to move data around inside a database. Just use a stored prcedure or script. Here is a sample script that will copy data from one table to another, but only for data that doesn't exist in the target.
insert into targettable (PrimaryKeyColumn,Column1,Column2,Column3)
select PrimaryKeyColumn,Column1,Column2,Column3
from sourcetable SRC
where not exists (
select *
from targettable TGT
where TGT.PrimaryKeyColumn = SRC.PrimaryKeyColumn
)

SSIS Script Task fails when run from sql job

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.

Login failed for "user" in ssis

[Load_Row table [9928]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.
The AcquireConnection method call to the connection manager "DB_NAME" failed with error code 0xC0202009.
There may be error messages posted before this with more information on why the AcquireConnection method call failed.
[SSIS.Pipeline] Error: component "Load_Row table" (9928) failed validation and returned error code 0xC020801C.
[Connection manager "Raven_MSSQL"] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E4D Description: "Login failed for user '****'."
I am getting above error for 10-12 packages in my pre-prod environment .
But Couple of week before, It was fine and loaded the data.
I have checked the config files and could see no changes happened and everything looks same.But when I downloaded the same package from server and executed, i got the same error.After google, I changed the protection level and executed, it got succeeded.
Do I want to change the protection level and re-deploy ?
Please put your suggestion which helps me to overcome this issue.
Thanks in advance

Handing SSIS validation failures

I'm trying to implement the SSIS package failure handler. I've added onError Event handler on whole package and failure operation the task where i'm expecting an error in the control flow.
The main task of the package is to pick up some data from the db,
the error handler is Send Mail Task sending email message with error description.
Now, I'm trying to emulate a common error: I make some changes in the SQL query (for example, set incorrect name for one of the columns) and try to run the package.
What i see is that package fails on validation stage and does not even proceed to execution, saying
Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occured. Error Code 0x80040E14. An OLE DB record is available. Source "Microsoft SQL Server Native Client 11.0"
Hresult 0x80040E14 Description "Statement(s) could not be prepared"
Description "The multipart identifier "MyTable.SomeWrongField" could not be bound".
Error: "OLE DB Source" failed validation and returned validation status "VS_BROKEN".
It doesn't even procceed to execution, failing right after validation.
How to set the error handle so it handles EVERY error, even the issue like this (incorrect sql request)?
Thanks.
A Validation error is the SSIS equivalent of a syntax error. There is no opportunity for recovery as the execution is dead in the water. OnTaskFailed and OnError won't catch this type of error (which is one of the reasons we no longer implement error notification from within our packages themselves)

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