When i try to start the JBoss server for the first time i get the folowing error

Certified Senior Developer
When i try to start the JBoss server for the first time i get the folowing error:

11:13:21,435 WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery go
t XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServe
rException: Failed to create the XA control connection. Error: "Could not find stored procedure 'master..xp_sq
ljdbc_xa_init_ex'."
May i know if i need to sdo any othr seting for this. I am tryin to install Appian 7.1...

OriginalPostID-59134

OriginalPostID-59134

  Discussion posts and replies are publicly visible

  • I have run in to this recently. This is a warning and should not prevent you from starting up Jboss. Appian's technical support team recently provided thes the following:
    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 Technical Support scope, but in general here's what you have to do:

    1. Download the latest version of the MS SQL Server JDBC Driver
    2. Unzip the content in a temporary directory
    3. Drop the sqljdbc4.jar in <JBOSS_HOME>\\bin\\server\\all\\lib
    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
  • Additionally, you will need to set the user specified to connect to the database to be part of the xa role created with the above SQL.

    Next, you need to do next set of steps to avoid another SQL warning:

    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

    Thanks go to Eduardo Fuentes for these instructions.
  • Or switch to non-xa data sources. For a local installa doesn't make sense to use xa data sources:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <datasources>
    <datasource enabled="true" jndi-name="/jdbc/XXXXXX" jta="true" pool-name="XXXXXX" spy="false" use-ccm="true" use-java-context="true">
    <connection-url>jdbc:sqlserver://XXXXXX:1433;databaseName=XXXXXXXt</connection-url>
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    <datasource-class/>
    <driver>com.microsoft.sqlserver.jdbc</driver>
    <transaction-isolation>TRANSACTION_NONE</transaction-isolation>
    <pool>
    <prefill>false</prefill>
    <use-strict-min>false</use-strict-min>
    <flush-strategy>FailingConnectionOnly</flush-strategy>
    </pool>
    <security>
    <user-name>XXXXX</user-name>
    <password>XXXXXXX</password>
    </security>
    <validation> </validation>
    <timeout>
    </timeout>
    <statement>
    <track-statements>false</track-statements>
    </statement>
    </datasource>
    </datasources>
  • 0
    Certified Senior Developer
    Eduardo: Will it make sense if i geve the security domain name instead of uname and pwd???
    And In Appian 7.1 I dont see any server folder under JBoss?
    If I need to place my Email Jar file where sould i locate it. It gives me error when it looks up for email.jar.
  • Yes, use the security domain as guided by the documentation and replace the security portion in Eduardo's example.

    For 7.1, the sql server jar goes to <AE_HOME>\\bin\\jboss\\jboss-as-7.1.1.Final\\modules\\com\\microsoft\\sqlserver\\jdbc\\main.

    Not sure what this email.jar file is. Is this a customisation you have done? If so, then you'll have to familiarise yourself with the new Jboss structure and re-factor.
  • 0
    Certified Senior Developer
    micheal: I am talking about sending mails from Appian. We used to add mail-1.4.2.jar in the server/all/deploy folder to send emails from Appian. Now in JBoss 7.1 what is the relevant configuration for that.
  • In this case the best approach is to take advantage of the great search functionality our documentation and Forum provide. By searching in the documentation you will find the instructions (which are now as simple as configuring custom.properties) here forum.appian.com/.../Mail_Server_Setup