3
我们有一个连接到ActivMQ apache-activemq-5.14.3的JBoss EAP 7.0.0.GA的设置。我们正试图建立一个持久订阅者具有以下配置:ActiveMQ - 客户端已经连接到相同的clientId错误
@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:[email protected]
的ActiveMQManagedConnectionFactory设置如下(试图最大池尺寸设置为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专家寻求帮助。
感谢约杰什,我们也尝试了房产置换的方式,有客户端Id是集动态的,可悲的是没有喘息。我们仍然得到同样的错误。我们只有连接工厂池设置为最大1个连接的单节点设置,但仍有多个线程尝试使用相同的ClientId连接。 – dchucks