1 Reply Latest reply on Nov 8, 2009 10:49 PM by Yong Hao Gao

    2 JBoss instance - 1. for JBoss Messaging and 2. Remote Cons

    erkin kanlioglu Newbie

      Hi All

      I couldn't figure out how to configure 2. jboss instance to use queues deployed on the 1. jboss instance. As our application is deployed in jboss, we want to cache jms connections as explained in the article below

      http://www.jboss.org/community/wiki/ShouldIcacheJMSconnectionsandJMSsessions

      In order to use JmsXA with remote messaging provider, I changed jms-ds.xml like below

      <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
       name="jboss.messaging:service=JMSProviderLoader,name=JMSProvider, server=192.168.4.107">
       <attribute name="ProviderName">remoteJMSProvider</attribute>
       <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
       <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
       <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
       <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
       <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=192.168.4.107:1300
       </attribute>
      
       </mbean>
      
       <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
       <tx-connection-factory>
       <jndi-name>JmsXA</jndi-name>
       <use-java-context>false</use-java-context>
       <xa-transaction/>
       <rar-name>jms-ra.rar</rar-name>
       <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
       <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
       <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/remoteJMSProvider</config-property>
       <max-pool-size>20</max-pool-size>
       <security-domain-and-application>JmsXARealm</security-domain-and-application>
       <depends>jboss.messaging:service=ServerPeer</depends>
       </tx-connection-factory>
      


      Both JBoss version : 5.0.1.GA
      JBossMessaging : 1.4.1.GA

      Error : nested exception is javax.naming.NameNotFoundException: queue/outboundQueue
      org.springframework.jms.support.destination.DestinationResolutionException: Destination [/queue/outboundQueue] not found in JNDI; nested exception is javax.naming.NameNotFoundException: queue/outboundQueue

      There is no problem accessing this queue via XAConnectionFactory, but as you know performance is very important.

      Second Part: I was using hsqldb for jboss messaging for initial performance tests. it performed as we expected.
      Then I started using mysql db for jboss messaging(this is the only change), application became 5 times slower.
      Do you have any suggestion to resolve this?

      Thanks for your help and time.