BizTalk ConnectionException: Value cannot be null. Parameter name: transaction.

BTS_DevKO 0 Reputation points
2023-04-20T02:41:31.3466667+00:00

Hi, An exception occurred intermittently on the send port (WCF-OracleDB).

System.ArgumentNullException: Value cannot be null. Parameter name: transaction at System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction) at Oracle.DataAccess.Client.OraMTSImpl.EnlistDistributedTransaction(OpoConCtx opoConCtx, Transaction txn, Boolean bImplicitEnlistment)

at Oracle.DataAccess.Client.OracleConnectionOCP.Open(OracleConnection con) at Oracle.DataAccess.Client.OracleConnection.Open()

at Microsoft.Adapters.OracleCommon.OracleCommonConnectionWrapper..ctro(String connectionString,OracleCommonExecutionHelper executeionHelper)

at Microsoft.Adapters.OracleDB.oracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)

--- End of inner exception stack trace ---

How can i handle this exception?

AmbientTransaction = true; MessageAction = CompositeOperation;

Microsoft BizTalk Server
Microsoft BizTalk Server
A family of Microsoft server products that support large-scale implementation management of enterprise application integration processes.
358 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Colin Dijkgraaf 1,346 Reputation points
    2023-04-27T00:08:06.3866667+00:00

    AmbientTransaction means it will try to use MSDTC to commit any transactions that are across multiple database. As MSDTC wouldn't be effective against an Oracle DB, you might want to try disabling this and see if it resolves your issue.

    A CompositeOperation means the same transaction can do a Insert, Update, and Delete at the same time. See Run composite operations on SQL Server using BizTalk Server