Hi, just migrating a 7.3 environment to 7.4 and getting the following error in t

Hi, just migrating a 7.3 environment to 7.4 and getting the following error in the jboss log ...

20:24:51,958 WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA control connection. Error: "Could not find stored procedure 'master..xp_sqljdbc_xa_init_ex'."
          at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
          at com.microsoft.sqlserver.jdbc.SQLServerXAResource.recover(SQLServerXAResource.java:723)
          at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.recover(XAManagedConnection.java:358)
          at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.recover(XAResourceWrapperImpl.java:165)
          at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:534) [jbos...

OriginalPostID-95457

OriginalPostID-95457

  Discussion posts and replies are publicly visible

Parents
  • You can safely disregard this message. This WARNING means you configured your data sources as XA-Datasources but your SQL Server is not configured to handle distributed transaction and XA support for the Microsoft JDBC Driver for SQL Server. This topic falls more into the SQL Server Support scope, but in general here's what you have to do:

    1. Download the latest version of the MS SQL Server JDBC Driver www.microsoft.com/.../details.aspx
    2. Unzip the content in a temporary directory
    3. Drop the sqljdbc4.jar as indicated in the Appian documentation
    4. Inside the unzipped content from step #2 there's a directory called "xa" under <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\ navigate to that directory
    5. In the directory you will find a file called "xa_install.sql" with the instructions on how to enable this feature in your SQL server which basically consist on:
    ----> 5.1 Identifying if you are running SQL Server 2008 64 or 32bits
    ----> 5.2 Depending on the answer from step 5.1 copy the sqljdbc_xa.dll from the unzipped folder <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\xa\\x64 for 64 bits or <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\xa\\x86 for 32bits
    ----> 5.3 Paste the sqljdbc_xa.dll you copied from step 5.2 into <SQL_SERVER_2008_HOME>\\Tools\\Binn and SQL_SERVER_2008_HOME>\\localDB\\Binn
    ----> 5.4 Execute the xa_install.sql script mentioned on step #5


    if after fixing this you get this other warning:

    18:10:17,905 WARN [loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery got XA exception javax.transaction.xa.XAException: The function RECfailed. The status is: -3. Error: "*** SQLJDBC_XA DTC_ERROR Context: xa_recover, state=1, StatusCode:-3 (0xFFFFFFFD) ***", XAException.XAER_RMERR

    the solution is to do the following in the SQL Server 2008 server

    1) Open:

    Control Panel | Administrative Tools | Component Services

    2) Open the Distributed Transaction Services item for the necessary computer(s)

    3) Right click the "Local DTC" option

    4) Select the security tab

    5) Check "Enable XA Transactions", forcing the MS DTC service to restart.

    6) Restart SQL Server to make sure it picks up the MS DTC changes.

    7) Restart JBoss
Reply
  • You can safely disregard this message. This WARNING means you configured your data sources as XA-Datasources but your SQL Server is not configured to handle distributed transaction and XA support for the Microsoft JDBC Driver for SQL Server. This topic falls more into the SQL Server Support scope, but in general here's what you have to do:

    1. Download the latest version of the MS SQL Server JDBC Driver www.microsoft.com/.../details.aspx
    2. Unzip the content in a temporary directory
    3. Drop the sqljdbc4.jar as indicated in the Appian documentation
    4. Inside the unzipped content from step #2 there's a directory called "xa" under <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\ navigate to that directory
    5. In the directory you will find a file called "xa_install.sql" with the instructions on how to enable this feature in your SQL server which basically consist on:
    ----> 5.1 Identifying if you are running SQL Server 2008 64 or 32bits
    ----> 5.2 Depending on the answer from step 5.1 copy the sqljdbc_xa.dll from the unzipped folder <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\xa\\x64 for 64 bits or <Microsoft JDBC Driver 4.0 for SQL Server>\\sqljdbc_4.0\\enu\\xa\\x86 for 32bits
    ----> 5.3 Paste the sqljdbc_xa.dll you copied from step 5.2 into <SQL_SERVER_2008_HOME>\\Tools\\Binn and SQL_SERVER_2008_HOME>\\localDB\\Binn
    ----> 5.4 Execute the xa_install.sql script mentioned on step #5


    if after fixing this you get this other warning:

    18:10:17,905 WARN [loggerI18N] [com.arjuna.ats.internal.jta.recovery.xarecovery1] Local XARecoveryModule.xaRecovery got XA exception javax.transaction.xa.XAException: The function RECfailed. The status is: -3. Error: "*** SQLJDBC_XA DTC_ERROR Context: xa_recover, state=1, StatusCode:-3 (0xFFFFFFFD) ***", XAException.XAER_RMERR

    the solution is to do the following in the SQL Server 2008 server

    1) Open:

    Control Panel | Administrative Tools | Component Services

    2) Open the Distributed Transaction Services item for the necessary computer(s)

    3) Right click the "Local DTC" option

    4) Select the security tab

    5) Check "Enable XA Transactions", forcing the MS DTC service to restart.

    6) Restart SQL Server to make sure it picks up the MS DTC changes.

    7) Restart JBoss
Children
No Data