Tech Blog

LiveCycle Error (ALC-WKS-007-043) / JBoss JMS connection failure

by Rolando on Jan.10, 2008, under LiveCycle ES

Interesting thing I came across in the past couple of days.  At work we have setup a TurnKey installation of LiveCycle ES for testing purposes.  As you might know this means LiveCycle is deployed in JBOSS with MySQL as the backend database.

Well, being a newbie to JBoss and because I did not take the time to Read the JBoss documentation since this was for testing purposes (Who does anyways?) I stumbled upon a merciless error that did not want to go away!

At one point I renamed the default data-source(DefaultDS) to something else and updated several files as mentioned in this tutorial from onjava.com.

Changing the name of the default data-source caused a connection failure since the “DefaultDS” that was being referenced in many files (as I explain below) did not exist. So, the server log was being bombarded by this error every 5 seconds or so! 

“ERROR [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Reconnect failed: JMS

provider failure detected

javax.naming.NameNotFoundException: XAConnectionFactory”

 

I didn’t notice this until LiveCycle Workspace started to fail on every form submitted, showing the following error:

“An error occurred submitting the form (task xxx, form {1}). (ALC-WKS-007-043)”

Explanation:

 By default JBoss uses Hypersonic SQL (HSQL) open-source database which is written entirely in JAVA. The name for the default datasource is “DefaultDS”, this is more important than what one might think since JBoss reference this datasource in many places and several services depends on it. So, changing this default data-source takes quite a few extra steps than setting a regular data-source connection.  Thanks to the guys at Adobe, the turnkey installation of LiveCycle does all the dirty work for you so that JBoss is reconfigured to use MySQL as the default database.  

Fixing the error:

To fix the problem I just restored my original data-source with the proper name and added my own data-sources below just as:

<datasources>
  <local-tx-datasource>
      <jndi-name>DefaultDS</jndi-name>
      <connection-url>jdbc:mysql://localhost:3306/adobe</connection-url>
      <driver-class>com.mysql.jdbc.Driver</driver-class>
      <user-name>adobe</user-name>
      <password>pwd</password>
      <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

<metadata>
         <type-mapping>mySQL</type-mapping>
      </metadata>
  </local-tx-datasource>

<!– my own ds –>

<local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/myownDb</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>myUser</user-name>
    <password>myPwd</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

– And of course follow the extra steps mentioned at this tutorial.

As simple as it is, no one in the LiveCycle Forum was able to answer this question directly and the only person who had the same error before have opted to reinstall the server from the ground up at that time. I also “google” the JBoss error message and nothing lead me to the solution.  So, here it is in case some other folks out there using LiveCycle end up in the same situation.

By the way, if you wish to change the DefaultDS to something else or you want to change your default database, the steps to take are posted here.


Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...