jboss - ActiveMQ - 客户端已连接但有相同的 clientId 错误

标签 jboss jms activemq message-driven-bean durable-subscription

我们有一个连接到 ActivMQ apache-activemq-5.14.3 的 JBoss EAP 7.0.0.GA 设置。我们正在尝试使用以下配置设置持久订阅者:

@MessageDriven(
      name = "TestListener",
      activationConfig = {
        @ActivationConfigProperty(propertyName  = "destinationType",
                                      propertyValue = "javax.jms.Topic"),

        @ActivationConfigProperty(propertyName  = "subscriptionDurability",
                                      propertyValue = "Durable"),

        @ActivationConfigProperty(propertyName  = "subscriptionName",
              propertyValue = "subscriptionNameTest"),

        @ActivationConfigProperty(propertyName  = "clientId",
                                      propertyValue = "2"),

        @ActivationConfigProperty(propertyName  = "destination",
                                      propertyValue = "jms/testTopic")
      }
)
@PermitAll
@ResourceAdapter(value="activemq-rar.rar")

但是,我们在 JBoss 服务器控制台中收到以下异常

ERROR [org.apache.activemq.ra.ActiveMQEndpointWorker] (default-threads - 4) Failed to connect to broker [tcp://127.0.0.1:61616?jms.rmIdFromConnectionId=true]: Broker: TestBroker    - Client: 2 already connected from tcp://127.0.0.1:64246: javax.jms.InvalidClientIDException: Broker: TestBroker - Client: 2 already connected from tcp://127.0.0.1:64246

同时如果我们在activmq看到如下日志:

WARN  | Failed to add Connection ID: 40600-51:1 due to javax.jms.InvalidClientIDException: Broker: TestBroker - Client: 2 already connected from tcp://127.0.0.1:64246 | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: tcp:///127.0.0.1:50170@61616

ActiveMQManagedConnectionFactory 设置如下(尝试将 max-pool-size 设置为 1,但没有效果):

/subsystem=resource-adapters/resource-adapter=activemq-rar.rar/connection-definitions=ConnectionFactory:add(class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory", jndi-name="java:/MyConnectionFactory", enabled=true, min-pool-size=1, max-pool-size=20, pool-prefill=false, same-rm-override=false, recovery-username=ejb_user, recovery-password=xxxxx)

请向 AMQ 专家寻求帮助。

最佳答案

我能够让 AMQ 和 jboss 在没有一千个线程做愚蠢事情的情况下运行的唯一方法是使用嵌入式代理设置 RAR,然后将嵌入式代理与外部代理网络连接。

关于jboss - ActiveMQ - 客户端已连接但有相同的 clientId 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697494/

相关文章:

mysql - 无法将 C3P0PooledDataSource 类型的属性值转换为属性 dataSource 所需的类型 javax.sql.DataSource

java - @远程JNDI通信: Wildfly to JBoss AS 5. 1.0.GA

java - Camel 组件定义: What is the difference between componentProperties and properties?

c++ - JMS uri 问题

parallel-processing - Camel JMS 组件和并行处理

java - 如何在 JBoss 上部署一个又一个的 .war

java - 以编程方式为 JBoss 4.2.x 创建数据源

java - Thorntail JMS 到远程 ActiveMQ 服务器?

java - MQ (websphere) 连接问题 java.lang.NoClassDefFoundError

jboss - Camel 应用程序在关闭 session 后尝试使用 JMS session