[jboss-user] [Clustering/JBoss] - How to run a Queue and MDB into a cluster

dmary do-not-reply at jboss.com
Fri Aug 8 09:19:35 EDT 2008


Hi all, 

I need to migrate a queue and mdb into a cluster configuration.

I've read mutliple wiki and docs and I need some help.
I'm running all into a Jboss AS 4.05 Ga.

Actualy, to create queue, it is done directly by Jboss , in reading annotation from my MDB. I haven't any xml files, all is done automaticly

For example, this is my annotation into my java file of mdb :
@MessageDriven(messageListenerInterface = MessageListener.class, activationConfig = {
  |     @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
  |     @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/Cmd2MuQueue"),
  |     @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
  | 



Now, from what I've read, I understand that I've got to declare a queue and mdb into xml file and to put it (with java class of MDB) into JBOSS_HOME/deploy-hasingleton/jms.

I've made a conf file for queue, named myqueue-service.xml : 
<mbean code="org.jboss.mq.server.jmx.Queue"
  |          name="jboss.mq.destination:service=Queue,name=Cmd2MuQueue">
  |     <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  |     <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
  |     <attribute name="SecurityConf">
  |       <security>
  |         <role name="guest" read="true" write="true" create="true"/>
  |       </security>
  |     </attribute>
  |     <attribute name="ReceiversImpl">
  |       org.jboss.mq.server.ReceiversImplArrayList
  |     </attribute>
  |   </mbean>
  | 

And I've made a jar file contains :

  | + com
  |   + society
  |      + CmdMessageDrivenBean.class
  | + META-inf
  |    + ejb-jar.xml
  |    + jboss.xml
  | 

ejb-jar.xml :
<ejb-jar>
  |     <enterprise-beans>
  |         <message-driven>
  |             <description>Singleton MDB, MyMDB</description>
  |             <ejb-name>MyMDB</ejb-name>
  |             <ejb-class>com.society.CmdMessageDrivenBean</ejb-class>
  |             <transaction-type>Container</transaction-type>
  |             <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
  |             <message-driven-destination>
  |                 <destination-type>javax.jms.Queue</destination-type>
  |             </message-driven-destination>
  |         </message-driven>
  |     </enterprise-beans>        
  | 
  |     <assembly-descriptor>
  |         <container-transaction>
  |             <method>
  |                 <ejb-name>MyMDB</ejb-name>
  |                 <method-name>onMessage</method-name>
  |             </method>
  |             <trans-attribute>Required</trans-attribute>
  |         </container-transaction>
  |     </assembly-descriptor>    
  | 
  | </ejb-jar>

and jboss.xml :
<jboss>
  |     <enterprise-beans>
  |         <message-driven>
  |             <ejb-name>MyMDB</ejb-name>
  |             <configuration-name>Singleton Message Driven Bean</configuration-name>
  |             <destination-jndi-name>queue/Cmd2MuQueue</destination-jndi-name>
  |         </message-driven>
  |     </enterprise-beans>
  | </jboss>

First question : is it the right way ?
Second question : how I handle the fact that my mdb need to access to EJB3 classes , and these classes aren't loaded yet, so I've got an class loading error, as my EJB3 ared loaded after queue actualy.. ??

Thanks a lot for ur responses.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4169605#4169605

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4169605



More information about the jboss-user mailing list