1 Reply Latest reply on Jan 20, 2011 11:14 AM by wdfink

    Ok to use single DB as JMS store for multiple Jboss instances?

    deepakp

      HI,

       

      We have two applications deployed to two different JBoss clusters residing on two nodes (each node has one instance of each JBoss server). The JBoss versions are 4.0.3SP1 and 4.2.3GA, each running one of these applications. JBOss MQ is used as a JMS provider and Sybase is used as message store. A single database is used as datastore for all of these JBoss servers.

       

      Are there any known problems associated with this setup? Does this create a possibility of mixxing mesages or disturbing the JMS transaction management? What is the best practice in configuring JMS persistence for multiple JBoss clusters?

       

      Of these applications (let's call them A and B), A has been running for over 4 years on JBoss 4.0.3SP1 and has run well. B, running on 4.2.3GA was deployed a few weeks back. A and B both update a common DB (not same rows) and send messages to other apps/middleware but not to each other. Since the deployment, application A has experienced transaction failures only when application B runs although we have had periods with both running successfully. An analysis of the log shows a JMS exceptions around the time of failure at the point where application A is attempting to post a message to a queue. The thread does not gracefully recover and leaves locks in the database which then prevents other sessions from progressing. The only remedy is to restart JBoss.

       

      We suspect that JMS messages may be getting mixed up, causing the JMS transaction management to fail. However, we have no direct evidence so far that this is the root cause of these exceptions. Hence the above questions.

       

      Thanks for your help,

      Deepak

        • 1. Ok to use single DB as JMS store for multiple Jboss instances?
          wdfink

          As JBoss4.0 and 4.2 use JBossMQ I suppose that both use the same tables because JBossMQ is not able to cluster!

           

          My first ideas are

          1)

          use a different database schema for JMS.

          You can configure a new *-d.xml and change the deploy-hasingleton/jms/*-jdbc2-service.xml (ConnectionManager)

          2)

          You modify the table names within the *-jdbc2-service.xml

           

          I'll prefere 1. because it is less work and the JMS tables are complete separated.