2009-12-14 15 views
5

Uzak kuyruğa mesaj göndermek istiyorum? Hangi adımları yapmalıyım bu konuda herhangi bir belge bulamıyorum? herkes yardımcı olabilir? ?JBoss JMS Uzak Sıra?

cevap

6

$ {JBOSS_CONF} /deploy/messaging/jms-ds.xml dosyanıza başka bir "JMSProvider" ekleyin. Ben bu örnekte sağlayıcı adı "RemoteJMSProvider" kullanın:

<tx-connection-factory> 
    <jndi-name>RemoteJMSConnectionFactory</jndi-name> 
    <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.Queue</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> 
Şimdi

, ne zaman bir oluşturun:

<!-- Remote JMS Server--> 
<mbean code="org.jboss.jms.jndi.JMSProviderLoader" 
    name="jboss.mq:service=JMSProviderLoader,name=RemoteJMSProvider,server=your_remote_host"> 
    <attribute name="ProviderName">RemoteJMSProvider</attribute> 
    <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute> 
    <!-- The connection factory --> 
    <attribute name="FactoryRef">XAConnectionFactory</attribute> 
    <!-- The queue connection factory --> 
    <attribute name="QueueFactoryRef">XAConnectionFactory</attribute> 
    <!-- The topic factory --> 
    <attribute name="TopicFactoryRef">XAConnectionFactory</attribute> 
    <!-- Connect to JNDI on the host "the-remote-host-name" port 1099--> 
    <attribute name="Properties"> 
     java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 
     java.naming.factory.url.pkgs=org.jnp.interfaces 
     java.naming.provider.url=your_remote_host:1099 
    </attribute> 

Sonraki bir "Uzaktan Bağlantı Fabrikası" eklemek "RemoteJMSFactory" bağlantı fabrikası başvurusu, başvurulan herhangi bir kuyruk, uzak sunucuda aranacak:

ConnectionFactory factory =(ConnectionFactory)JNDIContext.lookup("java:/RemoteJMSConnectionFactory"); 
queue = (Destination) JNDIContext.lookup("queue/myqueue"); 
connection = factory.createConnection(); 
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
MessageProducer sender = session.createProducer(queue); 
sender.send(jmsMessage); 

Ayrıca bakınız: http://community.jboss.org/wiki/HowDoIConfigureAnMDBToTalkToARemoteQueue

+0

ben –

+0

yapmış u çok teşekkür ederim Will Uzaktan Konu için bu iş. IBM MQ üzerinde uzak bir konuyu dinlemek için JBOSS'ta EJB3 MDB kullanıyorum. –

0

jboss yüklemenizin belgelerine/örneklerine bakın. Uzak bir sıraya bağlanmak için gereken tek değişiklik, ilk bağlamınızı uzak uygulama sunucusunun JNDI bağlantı noktasına başvurmaktır.