У нас есть некоторые проблемы со слишком большим количеством TCP-соединений в нашей среде, поэтому мы пытаемся ограничить как можно больше соединений.Поэтому я установил свойство конфигурации активации maxSession
в 1
для всех наших удаленных MDB:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "user", propertyValue = "jmsuser"),
@ActivationConfigProperty(propertyName = "password", propertyValue = "xxxx"),
@ActivationConfigProperty(propertyName = "minSession", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "myQueue"),
@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=127.0.0.1;port=5545"),
@ActivationConfigProperty(propertyName = "connectorClassName", propertyValue = "org.hornetq.core.remoting.impl.netty.NettyConnectorFactory") },
mappedName = "myQueue")
public class ReadQueueTest implements MessageListener {
@Override
public void onMessage(Message msg) {
//do something...
}
}
После запуска приложения в пределах одного MDB я получаю следующие TCP-соединения:
######:~ user$ netstat -an | grep 5545 | grep ESTA
tcp4 0 0 127.0.0.1.5545 127.0.0.1.64644 ESTABLISHED
tcp4 0 0 127.0.0.1.64644 127.0.0.1.5545 ESTABLISHED
tcp4 0 0 127.0.0.1.5545 127.0.0.1.64643 ESTABLISHED
tcp4 0 0 127.0.0.1.64643 127.0.0.1.5545 ESTABLISHED
Через несколько минут число соединений увеличивается:
######:~ user$ netstat -an | grep 5545 | grep ESTA
tcp4 0 0 127.0.0.1.5545 127.0.0.1.64652 ESTABLISHED
tcp4 0 0 127.0.0.1.64652 127.0.0.1.5545 ESTABLISHED
tcp4 0 0 127.0.0.1.5545 127.0.0.1.64644 ESTABLISHED
tcp4 0 0 127.0.0.1.64644 127.0.0.1.5545 ESTABLISHED
tcp4 0 0 127.0.0.1.5545 127.0.0.1.64643 ESTABLISHED
tcp4 0 0 127.0.0.1.64643 127.0.0.1.5545 ESTABLISHED
Может кто-нибудь сказать мне, почему существует так много соединений, и почему оно увеличивается?Можно ли ограничить TCP-соединения одним для каждого удаленного MDB?
Мы используем JBoss EAP 6.4 с HornetQ.