2 Replies Latest reply on Feb 26, 2004 2:16 PM by Tom Baeyens

    datasource config problem when using 2nd node in cluster

    Tom Baeyens Master

      Hi,

      Continuing in the spirit of one of the previous posts : great job guys ! good docs too :-)

      Setup : I have one stateless session bean that uses hibernate to talk to the database. I want to try my app in the simplest possible cluster.

      So I took 2 nodes in the default partition cluster. In node A I configure my database like this in a file called "jbpm-db-service.xml" :

      <?xml version="1.0" encoding="UTF-8"?>
      <server>
       <mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=JbpmDatabase">
       <attribute name="Port">1701</attribute>
       <attribute name="Silent">true</attribute>
       <attribute name="Database">jbpm</attribute>
       <attribute name="Trace">false</attribute>
       <attribute name="No_system_exit">true</attribute>
       </mbean>
      </server>


      Also in node A, I configure a datasource that uses the database in a file called "jbpm-ds.xml" like this :

      <?xml version="1.0" encoding="UTF-8"?>
      <datasources>
       <local-tx-datasource>
       <jndi-name>JbpmDS</jndi-name> <!-- look it up with "java:/JbpmDs" -->
       <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
       <driver-class>org.hsqldb.jdbcDriver</driver-class>
       <user-name>sa</user-name>
       <password></password>
       <min-pool-size>1</min-pool-size>
       <max-pool-size>5</max-pool-size>
       <idle-timeout-minutes>0</idle-timeout-minutes>
       <track-statements>true</track-statements>
       <depends>jboss:service=JbpmDatabase</depends>
       </local-tx-datasource>
      </datasources>


      When I run the application client test against node A, all works fine.
      Now in the node B, I configured a datasource to the database in node A like this :

      <datasources>
       <local-tx-datasource>
       <jndi-name>JbpmDS</jndi-name> <!-- look it up with "java:/JbpmDs" -->
       <connection-url>jdbc:hsqldb:hsql://machineA:1701</connection-url>
       <driver-class>org.hsqldb.jdbcDriver</driver-class>
       <user-name>sa</user-name>
       <password></password>
       <min-pool-size>1</min-pool-size>
       <max-pool-size>5</max-pool-size>
       <idle-timeout-minutes>0</idle-timeout-minutes>
       <track-statements>true</track-statements>
       </local-tx-datasource>
      </datasources>


      When I start the hsqldb DatabaseManager on node B and provide the url to node A, the DatabaseManager shows the contents of the db in node A as expected.

      When starting node B and running the tests again, a stacktrace in node B tells me that my app couldn't get a connection from the datasource because it couldn't connect.

      Any ideas what I could have messed up. Or which docs I should buy :-)

      Regards, Tom.