JBoss JMS远程队列?

标签 jboss jms message-queue

我要发送消息到远程队列吗?我应该怎么做
我找不到有关的任何文档?
任何人都可以帮助? ?

最佳答案

在$ {JBOSS_CONF}/deploy/messaging/jms-ds.xml中添加另一个“JMSProvider”。在此示例中,我使用提供程序名称“RemoteJMSProvider”:

<!-- 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>

接下来,添加一个“远程连接工厂”:
<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>

现在,只要您创建对“RemoteJMSFactory”的连接工厂引用,您引用的任何队列都将在远程服务器上查找:
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);

也可以看看:
http://community.jboss.org/wiki/HowDoIConfigureAnMDBToTalkToARemoteQueue

关于JBoss JMS远程队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1900791/

相关文章:

java - 通过同一个 ActiveMQConnectionFactory 使用多个 ActiveMQ 队列

c# - 无法解析与 ServiceBus 队列远程名称的 Azure 网站连接

java - JBoss,爆炸 jar 与紧凑 jar

apache - 将所有静态文件放在 WAR/EAR 文件之外是一种好的做法吗?

java - 从源代码中查找 JAR 文件的来源以确定所使用的框架?

architecture - 消息队列架构(客户端到 Web 服务器到工作人员并返回)

java - 使用 JMS 队列的潜在陷阱?

java - 我如何将jboss与eclipse集成来运行调试过程

jms - JMSMessageID 是否应该在发布和订阅之间更改?

HTTP 到 JMS 桥