SSIS Package Fails when pointed to 2019 - sql-server

I am starting the process of upgrading our SQL server from 2016 to 2019. I upgraded my SSMS to the newest version. That allowed me to flip the compatibility type of SSISDB to 2019. I took a SSIS package and ran it pointing to 2016, no issues and the data came down. I then updated it to point to SQL Server 2019 within SSDT and it bombed out with an ODBC error I'll post below. I then back tracked it to point to compatibility level 2017 within SSDT and it pulled data down with no issues at all. So on the surface it looks like any previous versions run fine within SSDT but as soon as I convert it to target version 2019, they fail within the application locally. Has anyone seen this that may be able to give me some direction on where to look next? I haven't been able to find much online.
[ODBC Source 2] Error: SQLSTATE: 07006, Message: [Cache ODBC][State : 07006][Native Code 7006]
[C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Commo]
ERROR #388: Unknown error, code 7006;
[ODBC Source 2] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "ODBC Source.Outputs[ODBC Source Output]" failed because error code 0xC020F450 occurred, and the error row disposition on "ODBC Source" 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.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on ODBC Source returned error code 0xC0209029. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
EDIT: I've narrowed this down to 1 specific field that is numeric to numeric. If I remove it, the package is successful. The advanced editor looks ok to me.
External
Output

Related

SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR with Code: 0xC020901E

I have an SSIS package that runs perfectly fine on Visual Studio 2013 but when I deploy the package to SQL server agent and execute it there I get the following error:
Description: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Lookup" failed because error code 0xC020901E occurred, and the error row disposition on "Lookup.Outputs[Lookup Match Output]" specifies failure on error. An error occurred on the specified object of the specified component.
The package is running on Sql Server 2014.
I changed how to handle the rows with no matching entries to Redirect rows to no match output.The default was set to fail component.

ODBC error when executed by SQL JOB AGENT

I am getting an error when I try to execute my SSIS Package by the Job Agent.
If I run through Visual Studio it runs perfectly.
The error is:
SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on ODBC Source returned error code 0x80004005. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
This ODBC is an "IBM i Access for Windows ODBC data source".
I have try to put the packages running at 32-bit. Change some parameters in my connection (that is a project parameter).
Update:
I had to change my queries and work with openquery. Just a note, get attention to numeric columns because I was having problems with decimal values.

SSIS Deployment: Connection Issue

I am facing an issue while deploying my SSIS packages to a target machine.
I have done the deployment through an indirect XML configuration. I use one parent package which invokes all the other child packages in loading a data warehouse. Child packages acquire the database connections via a parent package variable. Thus an isolated child package is not executable.
In this setup the flow works perfectly in my development machine. But when I try to deploy it to another one some packages run and populate the tables while others with the same configurations fail. I have made the "Delay Validation" property to true in all the child packages as well.
Follwing are the errors I get in order:
Error 17 Validation error. Extract and Populate Data to DimRetailer: DimRetailer: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for ODBC Drivers" Hresult: 0x80004005 Description: "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". DimRetailer.dtsx 0 0
Error 18 Validation error. Extract and Populate Data to DimRetailer: Extract and Populate Data to DimRetailer: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Con_XONTRDDATAMART_OLEDB" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. DimRetailer.dtsx 0 0
Error 19 Validation error. DimRetailer Connection manager "Con_XONTRDDATAMART_OLEDB": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for ODBC Drivers" Hresult: 0x80004005 Description: "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". DimRetailer.dtsx 0 0
Error 20 Validation error. Extract and Populate Data to DimRetailer Expire Old SCD2 Rows [617]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "Con_XONTRDDATAMART_OLEDB" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. DimRetailer.dtsx 0 0
What I can not realize is why some packages run alright while others fail which share the same connections.
Additionally, the final deployment will be on a server with a 64 bit OS, are there any steps I should specifically take to make the deployment run smoothly?
Thank you very much for any contribution, in advance.
I have a setup similar to yours. However, what i share to child packages is a connection string. It might be worth a try if you are still facing the same issue

Cannot update Excel source properties in SSIS package

I have an SSIS package that imports an excel spreadsheet into an SQL Server 2008 database.
I have an Excel connection in the Connection Managers tab and it points to an Excel file on my local computer.
But when I open the Excel Source in Data Flow, if I try to view columns or change the "Name of Excel sheet:" I get this error.
Error at LoadMasterData [Connection manager "SourceConnectionExcel"]: 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 Data Flow Task 1 [Source - Sheet1$ [1]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "SourceConnectionExcel" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
The package was saved from SQL Server Management Studio using Import Data. When I run the package it works fine but I want to be able to specify the spreadsheet name as a variable. When I change the option to specify the sheet name as a variable, it won't let me close the window with the "OK" button, and just keeps giving me the same error as above.
Has anyone experienced this behaviour before that can help me get this working?
Thanks
Are you running on 32bit or 64bit? if you're on 64bit you need to know that there are no providers for Excel - you'll have to enforce the package to not use 64bit. Right click project, properties, debugging: Run64BitRuntime - set to false.

Oracle Transaction under MS SSIS

I'm trying to get transactions working under SSIS (SQL Server Integration Services 2005) and Oracle with no luck. I'm using Oracle 10g.
I have created a Sequence Container, set its TransactionOption to "Required" and put inside it a DataFlow Task with TransactionOption = "Supported".
The server running SSIS has the MSDTC service running.
The DataFlow Task has, as source, a SQL Server OLEDB connection and as target an Oracle OLEDB connection.
When trying to execute it, I get the following errors:
Error: 0xC001402C at MediaMarketAnnullamento, Connection manager "ITMASORASVIL:1521/SVILUPPO.EDP": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D01B "The Transaction Manager is not available.".
Error: 0xC0202009 at MediaMarketAnnullamento, Connection manager "ITMASORASVIL:1521/SVILUPPO.EDP": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8004D01B.
Error: 0xC020801C at 9999 - Insert_MAGAZZZINO_MM_SHOW, MAGAZZINO_MM_SHOW_SSIS [2187]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ITMASORASVIL:1521/SVILUPPO.EDP" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
Error: 0xC004701A at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: component "MAGAZZINO_MM_SHOW_SSIS" (2187) failed the pre-execute phase and returned error code 0xC020801C.
Information: 0x40043009 at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: Cleanup phase is beginning.
Information: 0x4004300B at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: "component "MAGAZZINO_MM_SHOW_SSIS" (2187)" wrote 0 rows.
Task failed: 9999 - Insert_MAGAZZZINO_MM_SHOW
Information: 0x4001100C at 9999 - Insert_MAGAZZZINO_MM_SHOW: Aborting the current distributed transaction.
Information: 0x4001100C at Insert su Oracle: Aborting the current distributed transaction.
SSIS package "MediaMarketAnnullamento.dtsx" finished: Failure.
Any help?
Thanks
EDIT:
I just discovered that the server running Oracle is not, as I thought, Windows based but IBM ICS. I don't know if this is relevant.
Looks like it may be a problem with MSDTC permissions this MS blog post might help to debug it. Also I'm assuming that the permissions on the Oracle server are set correctly see this MS kb article for help with this.
Is this doc of any use?
http://msdn.microsoft.com/en-us/library/aa344212.aspx

Resources