Hi,
 If i am getting it right, this is what you are trying to do:
- You are maintaining a queue, say 'FabricationQueue' at bo1
- All 3 clients from bo1, bo2 and bo3 write to 'FabricationQueue'
- There are MDBs on bo1, bo2 and bo3 listening to 'FabricationQueue'

If this is the case then, i had tried out a similar example and which worked. 
Here's what i did:

You will have to change your jboss.xml as follows:

jboss.xml:

<message-driven>
  |                     <ejb-name>FabRequestHandlerBean</ejb-name>
  |                     
<configuration-name>FabRequestHandlerBean</configuration-name>
  |                     
<message-driven-destination>javax.jms.Queue</message-driven-destination>
  |                     
<destination-jndi-name>queue/FabricationQueue</destination-jndi-name>
  |  <invoker-bindings>
  |             <invoker>      
  |                
<invoker-proxy-binding-name>MyMDBInvoker</invoker-proxy-binding-name>
  |             </invoker>
  |          </invoker-bindings>
  | </message-driven>
  | 
  | 
  | <invoker-proxy-bindings>
  |       <invoker-proxy-binding>
  |          <name>MyMDBInvoker</name>
  |          <invoker-mbean>doesntMatter</invoker-mbean>
  |          
<proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
  |          <proxy-factory-config>
  |             <JMSProviderAdapterJNDI>MyJMSProvider</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>   

Add the following entry to jms-ds.xml

jms-ds.xml:


  <!--Adding my own JMS provider. This will be used to setup a 
'destination'(queue/topic) on a remote m/c-->
  |   <mbean code="org.jboss.jms.jndi.JMSProviderLoader" 
  |          
name="jboss.mq:service=JMSProviderLoader,name=RemoteMQProvider,server=bo1">
  |     <!--this name will be used in jboss.xml-->
  |     <attribute name="ProviderName">MyJMSProvider</attribute>
  |     <!--Points to Swati's server-->
  |     <attribute name="ProviderUrl">jnp://bo1:1099</attribute>
  |     <attribute 
name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider</attribute>
  |     <attribute name="QueueFactoryRef">UIL2XAConnectionFactory</attribute>
  |     <attribute name="TopicFactoryRef">UIL2XAConnectionFactory</attribute>
  |   </mbean>

The above proceedure will setup a remote queue on which the MDBs will be 
listening.

Now the next step is to create the 'FabricationQueue'. You had stated that you 
are creating the queue on ALL the m/cs. I think going by what you are trying to 
achieve, you just have to add the following entry into the 
jbossmq-destinations-service.xml file of bo1 :

<mbean code="org.jboss.mq.server.jmx.Queue"
  |      name="jboss.mq.destination:service=Queue,name=FabricationQueue">
  |     <depends 
optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  |   </mbean>

However, if you need to create the queue on all 3 m/cs then place the above 
entry in jbossmq-destinations-service.xml file of all 3 m/cs.

But, make sure that while writing to the queue, you are always looking up the 
remote queue(on which the MDBs are listening). This can be done by having your 
InitialContext as follows:



Hashtable env = new Hashtable();
  |             env.put("java.naming.factory.initial", 
"org.jnp.interfaces.NamingContextFactory");
  |             env.put("java.naming.provider.url", "bo1");
  |             Context ctx = new InitialContext(env);
  | 
  | ctx.lookup("queue/FabricationQueue");

See, if this works

-Jaikiran







 

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

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


-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to