带HornetQ的Glassfish JMS队列:本地存储和远程转发

带HornetQ的Glassfish JMS队列:本地存储和远程转发,glassfish,jms,hornetq,Glassfish,Jms,Hornetq,对于以下场景,我需要参考glassfish文档的一些精确步骤 如何创建JMS队列以支持本地存储和远程转发。远程系统是HornetQ。 远程连接应支持SSL和用户/密码身份验证 它应该支持自动重试和配置重试。 如果出现任何故障,应该可以选择批量重新发送jms消息 我已经阅读了一些glassfish文档,但需要专家进一步验证 简单的场景,但仍然不工作,发送JMS到sourceQueue,并发送JMS桥接服务到targetQueue。这里是配置 A.domain.xml提取 <jms-servi

对于以下场景,我需要参考glassfish文档的一些精确步骤

如何创建JMS队列以支持本地存储和远程转发。远程系统是HornetQ。 远程连接应支持SSL和用户/密码身份验证 它应该支持自动重试和配置重试。 如果出现任何故障,应该可以选择批量重新发送jms消息 我已经阅读了一些glassfish文档,但需要专家进一步验证

简单的场景,但仍然不工作,发送JMS到sourceQueue,并发送JMS桥接服务到targetQueue。这里是配置

A.domain.xml提取

<jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
    <jms-host host="localhost" name="default_JMS_host" lazy-init="false">
      <property name="imq.bridge.bridge1.type" value="jms"></property>
      <property name="imq.bridge.bridge1.xmlurl" value="file:///C:/TEMP/bridge.xml"></property>
      <property name="imq.bridge.bridge1.autostart" value="true"></property>
      <property name="imq.bridge.bridge1.logfile.limit" value="0"></property>
      <property name="imq.bridge.bridge1.logfile.count" value="1"></property>
      <property name="imq.bridge.enabled" value="true"></property>
      <property name="imq.bridge.admin.user" value="admin"></property>
      <property name="imq.bridge.admin.password" value="admin"></property>
      <property name="imq.bridge.activelist" value="bridge1"></property>
    </jms-host>
</jms-service>
B.bridge.xml桥配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jmsbridge SYSTEM "sun_jmsbridge_1_0.dtd">
<jmsbridge name="bridge1">
    <link name="link1">
        <enabled ="true"></enabled>
           <source connection-factory-ref=”jms/__defaultConnectionFactory" destination-ref="sourceQueue"></source>
     <target connection-factory-ref="jms/__defaultConnectionFactory" destination-ref="targetQueue "></target>
    </link>
    <connection-factory ref-name="jms/__defaultConnectionFactory"/>
    <connection-factory ref-name="jms/__defaultConnectionFactory"/>
    <destination ref-name="sourceQueue" type="queue" lookup-name="sourceQueue"/>
    <destination ref-name="targetQueue" type="queue" lookup-name="targetQueue"/>
</jmsbridge>

Glassfish部署Glassfish JMS服务器。如果您想与HornetQ对话,您需要使用HornetQ库,并使用适当的API core或JMS与HornetQ服务器对话

如果需要通过MDB进行XA集成,则需要部署资源适配器并进行适当的恢复集成。看看glassFish如何部署外部资源适配器。。但这是一个RedHat还没有人测试过的领域,考虑到玻璃鱼的停产状态,我怀疑这种情况很快就会发生


另一种方法是在JBoss/HornetQ中部署JMS桥,在那里通过GlassFish JMS发送的任何消息都将通过桥接过程在HornetQ上使用。

谢谢;您或论坛中的其他人是否在Glassfish中创建了JMS桥的成功示例?如果是这样,请将配置文件与XMLJM桥文件一起共享?这是一个相当标准的东西。请看我们的JMS桥示例。你只需要玻璃鱼图书馆。。您可以在jboss端执行此操作。看来我已经回答了你的问题。。我希望你能接受。嗨,克莱伯特,是的,这是相当标准的,我想知道为什么JMS桥不起作用。我创造了一个最简单的场景;将消息发送到sourceQueue、JMS桥以将消息传输到targetQueue。全部在MQ+Glassfish中本地使用。我在原始消息中嵌入了domain.xml和bridge.xml。你能看一看,并建议如果我错过了这个基本和标准配置的东西。另外,在代理上执行此操作时,我在JMS网桥服务错误上得到一个错误。[B2215]:Bridge service manager未运行您应该在HornetQ上打开一个用户论坛,以便我们可以查看您做错了什么。从StackOverFlow的视角来看,问题已经得到了回答,我无法在此回顾配置。。SOF不是一个谈话的地方。。等如果你打开一个用户论坛与一些配置后,我们可以帮助你。