Commit; does not work on SSIS for DB2 OleDB connection - ssis

I'm experiencing a problem with an OleDB connection in DB2.
I need to include some blocks in a transaction (transaction in ssis = "Supported")
and I made a SQL Task that execute "SAVEPOINT A ON ROLLBACK RETAIN CURSORS;"
then an other dataflow that execute some stuffs,
on success I have to commit the exec, otherwise I have to Rollback.
But both Commit and rollback (they are SQL task) give me this error.
"Executing the query "COMMIT;" failed with the following error: "A SQL
error has occurred. Please consult the documentation for your
specific DB2 version for a description of the associated Native Error
and SQL State. SQLSTATE: 2D521, SQLCODE: -925". Possible failure
reasons: Problems with the query, "ResultSet" property not set
correctly, parameters not set correctly, or connection not established
correctly. Task failed: Commit"
I also tried with "SYNCPOINT" with no success. Can anyone help me?
Thanks.

Related

Issue in running SSIS package through SQL job

I am executing SSIS package through SQL job and Sometimes I am getting following error in the SQL job.
Executing the query "" failed with the following error: "Retrieving the COM class factory for component with CLSID {2D01DD3B-3F2B-4A00-B0EB-8340ADA5581B} failed due to the following error: 800703fa Illegal operation attempted on a registry key that has been marked for deletion. (Exception from HRESULT: 0x800703FA).". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Can someone help me on this Please.

Error when calling BigQuery stored procedure from SSIS using Simba odbc driver

I’m trying to call a BQ stored procedure in SSIS using Simba odbc driver and getting an error
[Execute SQL Task] Error: Executing the query "CALL
`mhpmvp.MCR_V01_M_MA..." failed with the following error:
"[Simba][BigQuery] (70) Invalid query: Positional query parameters are
not supported in scripts". Possible failure reasons: Problems with the
query, "ResultSet" property not set correctly, parameters not set
correctly, or connection not established correctly.**
The call worked in query editor
The sp doesn’t take parameters and doesn’t return anything
The connection is fine. It works if I run a select query
I'm from Google Cloud Platform Support.
I can see that this issue is already being investigated internally. I created a Public Issue in our Tracker regarding this, so you can subscribe to or star it to receive a notification whenever an update is posted.

Timeout expired. SSIS

I am getting this error randomly:
Timeout expired.
"Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed before completion of the operation or the server is not responding."
Sometimes the package just runs fine without any errors. I am confident there is no syntax or database error in the SQL script I wrote. I also changed the connection timeout to 30 but I still get this error.
Any suggestion would be highly appreciated.
I have series of data flow task, and I have one script task as well. I get this error in the script task when I try to run a select query, Select query run fine if I run it on SQL server management studio. I take data from one server and insert it into a database on the different server. I hope that makes sense.
Also, when i debug the script it hangs right on that query but when I run this in SSMS it gives result in like 30 seconds. Could it be possible that there is some network issue connecting to SQL server through is?

SSIS: Making an Informix transaction local doesn't work

For a single SSIS task I'm trying to make its transaction local.
To simplify things, I'm trying to do it like this:
create the new package
create just one Execute SQL Task
inside that task I delete some rows from destination table and issue a ROLLBACK:
DELETE FROM SOME_TABLE WHERE SOME_COLUMN = 'ABCD';
ROLLBACK;
I create a new Connection Manager for that task (IBM Informix OLE DB Provider) and make sure it passes Test Connection
after adding the task, I change its TransactionOption property to Required
after that, I change the RetainSameConnection property of Connection Manager to True
As I understand, the task should start a local transaction without using DTC. However, this is the output when I run the package:
SSIS package "Package1.dtsx" starting.
Information: 0x4001100A at ROLLBACK: Starting distributed transaction
for this container.
Error: 0xC001402C at Package1, Connection manager
"xxx#yyy": 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 Package1, Connection manager
"xxx#yyy": SSIS Error Code DTS_E_OLEDBERROR.
An OLE DB error has occurred. Error code: 0x8004D01B.
Error: 0xC00291EC at ROLLBACK, Execute SQL Task: Failed to acquire
connection "xxx#yyy". Connection may not be
configured correctly or you may not have the right permissions on this
connection.
Task failed: ROLLBACK
Information: 0x4001100C at ROLLBACK: Aborting the current distributed
transaction.
Warning: 0x80019002 at Package1: SSIS Warning Code
DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but
the number of errors raised (1) reached the maximum allowed (1);
resulting in failure. This occurs when the number of errors reaches
the number specified in MaximumErrorCount. Change the
MaximumErrorCount or fix the errors. SSIS package "Package1.dtsx"
finished: Failure.
Does anyone know what's happening here?

SSIS connection dropped

I have an SSIS package that within a data flow task fetches a lot of data using an OLEDB connection.
When i run the package from my local machine it sometimes fails with the following error (snippet):
Warning: 0x80019002 at OnError: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. [..]
Error: 0xC0202009 at DFT Transform, SRC BSASREL1 [1]: 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 SQL Server" Hresult: 0x80004005 Description: "[DBNETLIB][ConnectionRead (recv()).]Generel netværksfejl. [..]
Error: 0xC0047038 at DFT Transform, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "SRC BSASREL1" (1) returned error code 0xC0202009.
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.
If I deploy the package to the server and run it with an agent job nothing goes wrong.
The error is periodical which makes it hard for me to debug....
Have anyone else had similar errors or do anyone have ideas of how to solve this?
EDIT: It seems that the problem is solved. We haven't had connection problems since we disabled TCP Chimney.
I don't think there's enough information here to isolate the root cause of the error. That's not SSIS' fault. There are error returned from various providers and SSIS simply "forwards" them. There are likely clues in the error message pointing to the cause.
I once spent a lot of time trying to fix a connectivity issue in SSIS and SQL Server. The root cause turned out to be one of the DCs had gone offline...
Andy
Does it run for a long time? Is the server where you deploy the package the same server where you read the data from?
If so, your problem might be external. I have similar issues with some heavy data transfer packages i run. Sometimes they fail if the server is too loaded with other processes. If that is the case, it is an external problem.
My advice is that you try to pinpoint the source of the error (trying to overload a test server while you run the package, or look for timeouts on the connection) and circumvent the limitation through a retry mechanism, or by running the package on lower traffic times.
well, 0xC0202009 is a DTS_E_OLEDBERROR error (http://msdn.microsoft.com/en-us/library/ms345164.aspx) and dbnetlib.dll process "has the ability to send keep-alive TCP/IP packets to Microsoft SQL Server in order to maintain the connection" (this is from BOL)
I would say something related timeouts.
There is a command timeout propertie on the OLE DB Source component. Can you check the value?
Or maybe on the connectionstring on the Connection manager
Nobody's done anything with this post in two years, but I ran into this error and found that the size of the data set determined whether this error was thrown or not. Oddly, when running the SSIS program through the IDE, I didn't get the error. It's only in production mode that I found this error occurring.
The solution, I found, was to break up my data sets (which were being written to XML) using something like this to limit the amount of data returned:
select * from (
select *, row_number() over (order by a.pkey asc) 'ranker' from sometable
) where Ranker <500000
Sucks, but that's what I found worked.