activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: Integrating ActiveMQ with Jboss4
Date Fri, 28 Jul 2006 09:59:18 GMT
I'd ignore the JBossMQ way to do it and just get the RAR to connect to
whatever ActiveMQ broker you wish using the brokerURL - then you're
all set. That URL is all you need to connect to local/remote brokers.

So start by just using the RAR for ActiveMQ
http://incubator.apache.org/activemq/jboss-integration.html

On 7/28/06, cosjav <cosjav@gmail.com> wrote:
>
> Hi,
>
> I am relatively new to JMS and have been looking to migrate our current
> JBossMQ implementation of JMS to ActiveMQ and at the same time move from
> using JBoss 3.2.3 to JBoss 4.0.4.
>
> Our product is deployed over two servers whereby MDBs deployed on server1
> will write to queues located on server2 which server2 will then read from.
> Server2 also writes to queues located on itself that server1 will read from.
> Finally server1 also has some local queues that it writes to and reads from
> (accessed by server1 only).
>
> This above-mentioned setup is working perfectly fine with the JBossMQ
> implementation of JMS and the only reason why we are migrating to ActiveMQ
> is because JBossMQ doesnt support indexing on message selectors (i.e. when a
> queue that has multiple receivers, which receive messages based on a msg
> selector, grows large with messages that dont match a particular receiver,
> performance degrades significantly).
>
> Now the question I'm asking is a newbie one in relation to MDBs reading from
> remote JMS queues. It was my understanding that to achieve this one would
> have to follow something similar to:
> http://wiki.jboss.org/wiki/Wiki.jsp?page=HowDoIConfigureAnMDBToTalkToARemoteQueue
> Which is pretty much identical to the way we have set up with JBossMQ. But
> when it comes to ActiveMQ I couldnt find any samples that show me how to do
> this (the ActiveMQ Jboss Integration Guide seems to take a different
> approach thats not for remote queue access). Does this mean there is another
> way to do it? (btw, I have also posted this on the ActiveMQ forums but
> wanted to get an idea from the ActiveMQ community as to how to achieve my
> migration goal)
>
> I will appreciate any guidance (even RTFM advice but with references
> please). Like what should I read first, and what comes next, etc... because
> at the moment there seems to be loads of information that I cant make much
> sense of in terms what links with what.
>
> Thanks,
> cosjav
>
> P.S the attempts I have made so far are shown below:
>
> I changed the server1 JMSProviderLoader (contained in a file named
> jms-providers-service.xml in deploy/jms) details from:
>
> <server>
>     <!--
>     JMS Providers to access server2 queues
>     -->
>     <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
>
> name="jboss.mq:service=JMSProviderLoader,name=RemoteJBossMQProvider_server2">
>         <attribute name="ProviderName">RemoteJMSProvider_server2</attribute>
>         <attribute name="ProviderUrl">jnp://server2:1099</attribute>
>         <attribute
> name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider</attribute>
>         <attribute
> name="QueueFactoryRef">UIL2XAConnectionFactory</attribute>
>         <attribute
> name="TopicFactoryRef">UIL2XAConnectionFactory</attribute>
>     </mbean>
>
> </server>
>
> to
>
> <server>
>     <!--
>     JMS Providers to access server2 queues
>     -->
>     <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
>
> name="jboss.mq:service=JMSProviderLoader,name=RemoteActiveMQProvider_server2,server=server2">
>         <attribute name="ProviderName">RemoteJMSProvider_indium</attribute>
>         <attribute
> name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
>         <!--<attribute
> name="QueueFactoryRef">ConnectionFactory</attribute>-->
>         <attribute
> name="QueueFactoryRef">ActiveMQConnectionFactory</attribute>
>         <attribute
> name="TopicFactoryRef">ActiveMQConnectionFactory</attribute>
>         <attribute name="Properties">
>
> java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
>           java.naming.factory.url.pkgs=org.jnp.interfaces
>           java.naming.provider.url=server2:1099
>         </attribute>
>     </mbean>
> </server>
>
> (I think I have set the connection factory incorrectly above because I'm
> getting exceptions saying "javax.naming.NameNotFoundException:
> ActiveMQConnectionFactory")
>
> Then I changed jms-ds.xml (in deploy/jms) on server1 from:
>
>  <tx-connection-factory>
>     <jndi-name>RemoteJmsXA_server2</jndi-name>
>     <xa-transaction/>
>     <track-connection-by-tx>true</track-connection-by-tx>
>     <adapter-display-name>JMS Adapter</adapter-display-name>
>     <config-property name="JmsProviderAdapterJNDI"
> type="java.lang.String">java:/RemoteJMSProvider_server2</config-property>
>     <config-property name="SessionDefaultType"
> type="java.lang.String">javax.jms.Queue</config-property>
>
> <security-domain-and-application>RemoteJmsXA_server2_Realm</security-domain-and-application>
>     <max-pool-size>100</max-pool-size>
>  </tx-connection-factory>
>
> to
>
>    <tx-connection-factory>
>       <jndi-name>RemoteJmsXA_server2</jndi-name>
>       <xa-transaction/>
>       <track-connection-by-tx/>
>       <adapter-display-name>JMS Adapter</adapter-display-name>
>       <config-property name="JmsProviderAdapterJNDI"
> type="java.lang.String">java:/RemoteJMSProvider_server2</config-property>
>       <config-property name="SessionDefaultType"
> type="java.lang.String">javax.jms.Queue</config-property>
>
> <security-domain-and-application>RemoteJmsXA_server2_Realm</security-domain-and-application>
>       <max-pool-size>100</max-pool-size>
>       <rar-name>activemq-ra-4.0.1.rar</rar-name>
>
> <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
>    </tx-connection-factory>
>
> (this was changed based on the ActiveMQ sample)
>
> Finally I changed the queue definitons from:
>
>    <mbean code="org.jboss.mq.server.jmx.Queue"
>         name="jboss.mq.destination:service=Queue,name=queue1">
>         <depends
> optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
>     </mbean>
>
> to
>
>    <mbean code="org.jboss.resource.deployment.AdminObject"
> name="activemq.queue:name=queue1">
>       <attribute name="JNDIName">queue/queue1</attribute>
>
>       <depends
> optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra-4.0.1.rar'</depends>
>       <attribute name="Type">javax.jms.Queue</attribute>
>       <attribute name="Properties">PhysicalName=queue.queue1</attribute>
>    </mbean>
>
> I fiddled around with some other configs too but it'll make my post too long
> if I show all those...
>
> I'm clearly missing a link somewhere because after all these changes I am
> getting:
>
> java.lang.ClassCastException
>         at org.jboss.mq.SpyQueueReceiver.<init>(SpyQueueReceiver.java:42)
>         at org.jboss.mq.SpySession.createReceiver(SpySession.java:689)
>
> whenever I try to create a receiver (and I think its the same for creating a
> sender too)
>
> Thanks again...
> --
> View this message in context: http://www.nabble.com/Integrating-ActiveMQ-with-Jboss4-tf2014134.html#a5535547
> Sent from the ActiveMQ - User forum at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message