You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2019/02/26 12:32:00 UTC
[jira] [Resolved] (AMQ-5790) Huge number of TIME_WAIT connections
observed while using activemq resource adapter with EAP6
[ https://issues.apache.org/jira/browse/AMQ-5790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-5790.
-----------------------------
Resolution: Fixed
Assignee: Gary Tully
Fix Version/s: 5.16.0
The RAR start/stop contract provides a good place to track the lifecycle of any connection used by xarecovery. This avoids the need to open/close for each operation.
> Huge number of TIME_WAIT connections observed while using activemq resource adapter with EAP6
> ---------------------------------------------------------------------------------------------
>
> Key: AMQ-5790
> URL: https://issues.apache.org/jira/browse/AMQ-5790
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, RAR
> Affects Versions: 5.9.0, 5.11.0
> Environment: ALL
> Reporter: JaySenSharma
> Assignee: Gary Tully
> Priority: Major
> Fix For: 5.16.0
>
>
> - While using activemq resource adapter (activemq-rar-5.9.0.rar or higher) on JBoss EAP 6.3 side it can be noticed that thousand of TIME_WAIT tcp connections are getting created every 2-3 minutes interval. These TIME_WAIT sockets are fluctuating from thousand (like 2000-3000) to 1 in every 2-3 minutes of interval.
> Following are the steps to reproduce this issue:
> *Step-1).* Configure AMQ broker to listen on "61621" then start it.
> *Step-2).* Deploy the "activemq-rar.rar" (5.9 vesion) to standalone instance of JBoss EAP 6.3 and use the attached "standalone-full.xml" file to start the EAP6.3 as ot has the resource-adapter configuration in it.
> {code}
> cd jboss-eap-6.3.0/bin
> ./standalone.sh -c standalone-full.xml
> {code}
> *Step-3).* Deploy the a simple MDB based application like an EAR containing around 20 MDBs listening to 20 different queues present on the A-MQ side. All these MDBs are very simple MDBs and just displays the received TextMessages. These MDBs have the following annotations in it (see maxSessions = 1).
> {code}
> @MessageDriven(activationConfig={@javax.ejb.ActivationConfigProperty(propertyName="destination", propertyValue="java:/jms/queue1/1.0"), @javax.ejb.ActivationConfigProperty(propertyName="useJndi", propertyValue="true"), @javax.ejb.ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @javax.ejb.ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge"), @javax.ejb.ActivationConfigProperty(propertyName="maximumRedeliveries", propertyValue="6"), @javax.ejb.ActivationConfigProperty(propertyName="initialRedeliveryDelay", propertyValue="5000"), @javax.ejb.ActivationConfigProperty(propertyName="maxSessions", propertyValue="1")})
> .
> .
> public void onMessage(Message message) {
> TextMessage textMessage = (TextMessage) message;
> try {
> log.info("SimpleMdb1 received a message" + textMessage.getText());
> }
> catch (JMSException e) {
> log.info("Error in SimpleMdb1 while received a message");
> }
> }
> {code}
> *Step-4).* Execute the following command and notice around thousand TCP connections as following:
> {code}
> netstat -tnlpa | grep TIME_WAIT | grep 61621
> ----------------------------------
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:39199 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:39461 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:39935 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:38999 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:39139 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:39922 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:40027 TIME_WAIT -
> tcp6 0 0 127.0.0.1:61621 127.0.0.1:38908 TIME_WAIT -
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)