1 Reply Latest reply on Apr 6, 2009 10:25 AM by adrian.brock

    How can I use different DestinationManager services

    eugenyt

      I'm trying to use different DestinationManager services. Reason for that - I need to use different PersistantManager and StateManager for different durable topics.

      In order to do that I deploy AAA-jms-service.xml
      includes :


      <depends optional-attribute-name="MessageCache">jboss.mq:service=AAAMessageCache
      <depends optional-attribute-name="PersistenceManager">jboss.mq:service=AAAPersistenceManager
      <depends optional-attribute-name="StateManager">jboss.mq:service=AAAStateManager

      .....

      <depends optional-attribute-name="DestinationManager">jboss.mq:service=AAADestinationManager
      <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager


      After deploy of AAA-JMS-Service.xml and ear includes MDB which intended to listen to AAATopic I see the following exception :

      javax.jms.InvalidDestinationException: The destination TOPIC.AAATopic.DurableSubscription[clientId=AAA-Handler name=AAAdb selector=null] does not exist !

      When I'm looking on AAADestinationManager on jmx-console I see that clients map is empty, although I see AAATopic on MessageCounter and Message statistics.

      JBOSS version 4.2.3

      Is it possible at all to use different DestinationManager services?
      If yes - any thoughts about what I'm doing wrong?
      If no - is there any other way to use different persistant and state managers.

      Thanks a lot in advance



        • 1. Re: How can I use different DestinationManager services

          You have to copy all the configuration, i.e. run two jbossmq instances inside the server.

          That's because you need a different connection factory to distinguish which one
          you want to use.
          Client jms api -> jbossmq interceptor chain -> destination manager -> persistence manager

          Its also because if you want to use both in the same transaction you need 2 phase commit.
          So the client side needs to think it is talking to two different servers.

          More details can be found on other posts where this question has been asked before.