How to add "sqljdbc_xa.dll" to Azure SQL Database for XA Distributed transaction?

Banerjee, Indranil 1 Reputation point
2020-08-04T14:30:18.947+00:00

During our Migration from Oracle DB to Azure SQL Database service, we encountered the below exception for XA Distributed Transactions.

javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA control connection. Error: "Reference to database and/or server name in 'master..xp_sqljdbc_xa_init_ex' is not supported in this version of SQL Server."
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:738) [mssql-jdbc-8.2.2.jre8.jar:]
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:772) [mssql-jdbc-8.2.2.jre8.jar:]
at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.start(XAManagedConnection.java:263)
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.start(XAResourceWrapperImpl.java:215)
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.start(XAResourceWrapperStatImpl.java:176)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:661)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:422)
at org.wildfly.transaction.client.LocalTransaction.enlistResource(LocalTransaction.java:168)
at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.enlist(TxConnectionListener.java:987)
at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:379)
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:564)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:977)
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:792)
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:151)
at org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:64)
at com.unisys.trans.shared.util.jdbc.DataBaseConnectionMngr.createNewProperties(DataBaseConnectionMngr.java:540)
at com.unisys.trans.shared.util.jdbc.DataBaseConnectionMngr.getProperty(DataBaseConnectionMngr.java:362)
at com.unisys.trans.shared.util.jdbc.DataBaseConnectionMngr.getStatement(DataBaseConnectionMngr.java:216)
at com.unisys.trans.shared.util.jdbc.FactoryFinderBase.getFactoryForCurrentThread(FactoryFinderBase.java:117)

Azure SQL Database
{count} votes

1 answer

Sort by: Most helpful
  1. Alexander Ivanov 491 Reputation points
    2020-10-14T23:57:23.347+00:00

    Hi @Banerjee, Indranil ,

    Unfortunately Azure SQL Database does not currently support XA Distributed Transactions. You can find more information about DT limitations in Azure SQL Database here: https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-transactions-overview#limitations.

    Thanks,
    Alex.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.