0 Replies Latest reply on Mar 3, 2006 3:57 PM by adamwynne

    Dependency problem for service running on another node

    adamwynne

      I am attempting to set up a Postgres 8 DataSource in a cluster. I am running jboss-4.0.3SP1 with EJB3.0. I have been following the wiki articles ConfigJBossMQDB and JBossMQHAOverview in terms of setting up my PostgresDS and removing the hypersonic one.

      I am testing this with a simple MDB (deployed to two nodes) which just does a println when it receives a message from a client. The nodes are running identical jboss configurations. The DB configuration seems to work in that messages are received by the beans on each node as expected and I can see messages queued up and removed in the jms_messages table. Also, TRACE logging for mq seems to show normal activity.

      Although running this simple test seems to work, the problem occurs on start up of the 2nd node. In other words, everything starts normally on the first node (the one containing the postgres DB), but adding the additional node causes startup errors to occur on those nodes such as:

      --- MBeans waiting for other MBeans ---
      ObjectName: jboss.ejb:service=EJBTimerService,persistencePolicy=database
      State: CONFIGURED
      I Depend On:
      jboss.jca:service=DataSourceBinding,name=PostgresDS

      ObjectName: jboss.mq.destination:service=Queue,name=tutorial
      State: CONFIGURED
      I Depend On:
      jboss.mq:service=DestinationManager

      --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
      ObjectName: jboss.jca:service=DataSourceBinding,name=PostgresDS
      State: NOTYETINSTALLED
      Depends On Me:
      jboss.ejb:service=EJBTimerService,persistencePolicy=database

      ObjectName: jboss.mq:service=DestinationManager
      State: NOTYETINSTALLED
      Depends On Me:
      jboss.mq.destination:service=Queue,name=tutorial

      Even though I get these errors, the test mentioned above works. The issue seems to be that the PostgresDS lives on the first node, but services on the other node depends on it. I followed the steps to make the DS a singleton, but there seems to be a problem with referencing it remotely since it only appears in the local JNDI, ie java:/PostgresDS.

      Is the PostgresDS supposed to be only available locally? If not, what do I have to do to make it available in the global JNDI namespace? Or, should I specify in the the specific node where the service is running?

      Any help is appreciated. Thanks!