You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBoss EAP 7.4迁移至ActiveMQ Artemis后JMS桥配置参数填充求助

问题:JBoss EAP 7.4中ActiveMQ Artemis JMS桥配置缺失参数填充

正在从OpenMQ迁移到ActiveMQ Artemis,在JBoss EAP 7.4中配置JMS桥时遇到参数缺失问题。需要配置两个JMS桥:

  • 入桥:从远程Artemis集群(1.0.0.1:61616)的sync.Trigger.gg队列消费消息,转发到本地SyncTriggerQueue
  • 出桥:将本地消费失败的消息转发到远程dlq.sync.Trigger.gg队列

当前配置中JMS桥的部分参数标记为"??",请求填充以确保桥正常运行,同时可按需调整内置ActiveMQ队列配置。


完整修改后配置

1. 调整内置Artemis队列与地址设置

在<server name="default">节点内添加专属死信队列及地址配置:

<address-setting name="jms.queue.SyncTriggerQueue" 
                 dead-letter-address="jms.queue.SyncTriggerDLQ" 
                 expiry-address="jms.queue.ExpiryQueue" 
                 max-size-bytes="10485760" 
                 page-size-bytes="2097152" 
                 message-counter-history-day-limit="10" 
                 redistribution-delay="1000"/>
<jms-queue name="SyncTriggerDLQ" entries="java:/jms/queue/SyncTriggerDLQ" durable="true"/>

2. 填充入桥(SyncTriggerInBridge)参数

<jms-bridge name="SyncTriggerInBridge"
            module="org.apache.activemq.artemis"
            add-messageID-in-header="true"
            max-batch-time="500"
            max-batch-size="10"
            max-retries="-1"
            failure-retry-interval="30000"
            quality-of-service="ONCE_AND_ONLY_ONCE">
    <source destination="sync.Trigger.gg"
            connection-factory="jms/RemoteConnectionFactory"
            user="appusertest"
            password="appusertest">
        <source-context>
            <property name="java.naming.factory.initial" value="org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"/>
            <property name="java.naming.provider.url" value="tcp://1.0.0.1:61616"/>
        </source-context>
    </source>        

    <target destination="java:jboss/exported/SyncTriggerQueue"
            connection-factory="java:/ConnectionFactory">
    </target>
</jms-bridge>

3. 填充出桥(SyncTriggerOutBridge)参数

<jms-bridge name="SyncTriggerOutBridge"
            module="org.apache.activemq.artemis"
            add-messageID-in-header="true"
            max-batch-time="500"
            max-batch-size="10"
            max-retries="-1"
            failure-retry-interval="30000"
            quality-of-service="ONCE_AND_ONLY_ONCE">
    <source destination="java:/jms/queue/SyncTriggerDLQ"
            connection-factory="java:/ConnectionFactory">
    </source>        

    <target destination="dlq.sync.Trigger.gg"
            connection-factory="jms/RemoteConnectionFactory"
            user="appusertest"
            password="appusertest">
        <target-context>
            <property name="java.naming.factory.initial" value="org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory"/>
            <property name="java.naming.provider.url" value="tcp://1.0.0.1:61616"/>
        </target-context>
    </target>
</jms-bridge>

参数说明

入桥参数逻辑

  • source.destination:远程队列物理名称sync.Trigger.gg,直接匹配远程Artemis集群中的队列
  • source.connection-factory:远程Artemis标准连接工厂的JNDI名jms/RemoteConnectionFactory
  • source-context.java.naming.provider.url:远程Artemis的TCP连接地址tcp://1.0.0.1:61616,与资源适配器配置一致
  • target.destination:本地队列的导出JNDI地址java:jboss/exported/SyncTriggerQueue
  • target.connection-factory:JBoss内置Artemis的本地连接工厂java:/ConnectionFactory

出桥参数逻辑

  • source.destination:为SyncTriggerQueue配置的专属死信队列java:/jms/queue/SyncTriggerDLQ,确保仅转发该队列的失败消息
  • source.connection-factory:本地内置连接工厂java:/ConnectionFactory
  • target.destination:远程死信队列物理名称dlq.sync.Trigger.gg
  • target.connection-factory:同入桥使用远程连接工厂jms/RemoteConnectionFactory
  • target-context.java.naming.provider.url:远程Artemis的TCP连接地址

额外配置原因

  • 为SyncTriggerQueue配置专属死信队列,避免与全局DLQ的消息混淆,精准控制需要转发回远程的失败消息
  • 专属死信队列设为持久化,防止消息丢失

内容的提问来源于stack exchange,提问作者rihdze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:29:09