1 Reply Latest reply on Jun 6, 2005 9:03 PM by Everett Toews

    mdb connecting to remote durable topic causes jboss to hang

    Everett Toews Newbie

      hello,

      i'm having a problem when i try to have an mdb connect to a remote durable topic. jboss hangs after creating the topic connection. my environment is:

      mdbhost - win xp; jboss 4.0.1
      remotehost - win 2000; jboss 4.0.1

      with TRACE enabled on the mdbhost this is how the log output ends:

      14:23:57,875 DEBUG [ServiceController] starting service jboss.j2ee:jndiName=local/SubscribedToRemoteTopicMDB,plugin=pool,service=EJB
      14:23:57,875 DEBUG [MessageDrivenInstancePool] Starting jboss.j2ee:jndiName=local/SubscribedToRemoteTopicMDB,plugin=pool,service=EJB
      14:23:57,875 DEBUG [MessageDrivenInstancePool] Started jboss.j2ee:jndiName=local/SubscribedToRemoteTopicMDB,plugin=pool,service=EJB
      14:23:57,875 DEBUG [ServiceController] Starting dependent components for: jboss.j2ee:jndiName=local/SubscribedToRemoteTopicMDB,plugin=pool,service=EJB dependent components: []
      14:23:57,875 DEBUG [CachedConnectionInterceptor] start called in CachedConnectionInterceptor
      14:23:57,875 DEBUG [ServiceController] starting service jboss.j2ee:binding=remote-mdb-invoker,jndiName=local/SubscribedToRemoteTopicMDB,plugin=invoker,service=EJB
      14:23:57,875 DEBUG [JMSContainerInvoker] Starting jboss.j2ee:binding=remote-mdb-invoker,jndiName=local/SubscribedToRemoteTopicMDB,plugin=invoker,service=EJB
      14:23:57,875 DEBUG [JMSContainerInvoker] Initializing
      14:23:57,875 DEBUG [JMSContainerInvoker] Looking up provider adapter: java:/RemoteJMSProvider
      14:23:57,875 DEBUG [JMSContainerInvoker] Provider adapter: org.jboss.jms.jndi.JNDIProviderAdapter@1eb717e
      14:23:57,875 DEBUG [DLQHandler] Creating DLQHandler
      14:23:57,875 DEBUG [DLQHandler] Using factory: org.jboss.mq.SpyXAConnectionFactory@1886a34
      14:23:57,875 DEBUG [DLQHandler] Created connection: Connection@30662761[token=ConnectionToken:null/c3e2c8b8374797aff8a382888cb553d1 rcvstate=STOPPED]
      


      the mdbhost jboss hangs at this point. if i try to connect to it with a client i get a javax.naming.NameNotFoundException. there are no error messages on the remotehost jboss.

      using the active ports utility i can see that mdbhost has a connection with remotehost on port 2003 (the jnp port) in the ESTABLISHED state.

      i do have mdbs on mdbhost that are subscribed to durable topics on mdbhost with no problem. messages are sent and received.


      any ideas on what the problem with the remote durable topic could be?



      my configuration files follow:

      remote-jms-ds.xml
      <server>
       <!-- The JMS provider loader -->
       <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
       name="jboss.mq:service=JMSProviderLoader,name=RemoteJMSProvider,server=remotehost">
      
       <attribute name="ProviderName">RemoteJMSProvider</attribute>
      
       <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
      
       <!-- The queue connection factory -->
       <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
      
       <!-- The topic factory -->
       <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
      
       <!-- Connect to HAJNDI on the remote host -->
       <attribute name="Properties">
       java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
       java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
       java.naming.provider.url=remotehost:2003
       </attribute>
       </mbean>
      
      
      </server>
      


      jboss.xml
      <jboss>
      
       <enterprise-beans>
      
       <session>
       </session>
      
       <message-driven>
       <ejb-name>SubscribedToRemoteTopicMDB</ejb-name>
       <destination-jndi-name>topic/DurableTopic</destination-jndi-name>
       <mdb-user>guest</mdb-user>
       <mdb-passwd>guest</mdb-passwd>
       <mdb-client-id>com.SubscribedToRemoteTopicMDB</mdb-client-id>
       <mdb-subscription-id>MDB</mdb-subscription-id>
       <invoker-bindings>
       <invoker>
       <invoker-proxy-binding-name>remote-mdb-invoker</invoker-proxy-binding-name>
       </invoker>
       </invoker-bindings>
       </message-driven>
      
       </enterprise-beans>
      
       <resource-managers>
       </resource-managers>
      
       <invoker-proxy-bindings>
       <invoker-proxy-binding>
       <name>remote-mdb-invoker</name>
       <invoker-mbean>remote-invoker-mbean</invoker-mbean>
       <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
       <proxy-factory-config>
       <JMSProviderAdapterJNDI>RemoteJMSProvider</JMSProviderAdapterJNDI>
       <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
       <MinimumSize>1</MinimumSize>
       <KeepAliveMillis>30000</KeepAliveMillis>
       <MaximumSize>15</MaximumSize>
       <MaxMessages>1</MaxMessages>
       <MDBConfig>
       <ReconnectIntervalSec>10</ReconnectIntervalSec>
       <DLQConfig>
       <DestinationQueue>queue/DLQ</DestinationQueue>
       <MaxTimesRedelivered>10</MaxTimesRedelivered>
       <TimeToLive>0</TimeToLive>
       </DLQConfig>
       </MDBConfig>
       </proxy-factory-config>
       </invoker-proxy-binding>
       </invoker-proxy-bindings>
      </jboss>
      


      durabletopic-destination-service.xml
      <server>
       <mbean code="org.jboss.mq.server.jmx.Topic"
       name="jboss.mq.destination:service=Topic,name=DurableTopic">
       <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
       <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
       </mbean>
      </server>
      



      ejb-jar.xml
      <ejb-jar >
      
       <enterprise-beans>
      
       <!-- Session Beans -->
       <session >
       </session>
      
       <!-- Message Driven Beans -->
       <message-driven >
       <ejb-name>SubscribedToRemoteTopicMDB</ejb-name>
      
       <ejb-class>com.SubscribedToRemoteTopicMDB</ejb-class>
      
       <transaction-type>Container</transaction-type>
       <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
       <message-driven-destination>
       <destination-type>javax.jms.Topic</destination-type>
       <subscription-durability>Durable</subscription-durability>
       </message-driven-destination>
      
       </message-driven>
      
       </enterprise-beans>
      
       <!-- Assembly Descriptor -->
       <assembly-descriptor >
       </assembly-descriptor>
      
      </ejb-jar>