java - ActiveMQ InactivityMonitor is not closing after elapsing maxInactivityDuration setting -
i'm implementing activemq in application. have use case in when there no messages in remote listening queue need close activemq connection , have reopen connection when there message. know setting maxinactivityduration=30000 not me achieve use case atleast not closing connection after elapsing 30 seconds timeout setting. please let me know wrong in connection , let me know how can achieve use case. thank solution.
@configuration @enablejms @importresource("classpath*:beans.xml") public class messagingconfiguration { @value("${activemq.broker.url}") private string broker_url = "tcp://localhost:61616?wireformat.maxinactivityduration=30000"; @value("${activemq.request.queue}") private string request_queue = "test.request"; @value("${activemq.response.queue}") private string response_queue = "test.response"; @value("${activemq.borker.username}") private string broker_username = "admin"; @value("${activemq.borker.password}") private string broker_password = "admin"; @autowired listenerclass messagelistener; @autowired jmsexceptionlistener jmsexceptionlistener; @bean public activemqconnectionfactory connectionfactory() { activemqconnectionfactory connectionfactory = new activemqconnectionfactory(); connectionfactory.setbrokerurl(broker_url); connectionfactory.setusername(broker_username); connectionfactory.setpassword(broker_password); connectionfactory.settrustallpackages(true); connectionfactory.setredeliverypolicy(redeliverypolicy()); return connectionfactory; } @bean public redeliverypolicy redeliverypolicy() { redeliverypolicy redeliverypolicy = new redeliverypolicy(); redeliverypolicy.setbackoffmultiplier(3); // wait 5 seconds first re-delivery, 15, 45 seconds redeliverypolicy.setinitialredeliverydelay(5000); redeliverypolicy.setmaximumredeliveries(3); redeliverypolicy.setuseexponentialbackoff(true); return redeliverypolicy; } @bean public connectionfactory cachingconnectionfactory() { cachingconnectionfactory connectionfactory = new cachingconnectionfactory(); connectionfactory.settargetconnectionfactory(connectionfactory()); connectionfactory.setexceptionlistener(jmsexceptionlistener); connectionfactory.setsessioncachesize(100); connectionfactory.setcacheconsumers(false); connectionfactory.setcacheproducers(false); return connectionfactory; } @bean public jmstemplate jmstemplate() { jmstemplate template = new jmstemplate(); template.setconnectionfactory(connectionfactory()); template.setdefaultdestinationname(request_queue); template.setsessionacknowledgemodename("client_acknowledge"); template.setmessageconverter(converter()); return template; } @bean public defaultmessagelistenercontainer jmslistenercontainer() { defaultmessagelistenercontainer factory = new defaultmessagelistenercontainer(); factory.setconnectionfactory(connectionfactory()); factory.setconcurrency("1-1"); factory.setdestinationname(response_queue); factory.setmessagelistener(messagelistener); factory.setexceptionlistener(jmsexceptionlistener); return factory; } @bean messageconverter converter() { mappingjackson2messageconverter converter = new mappingjackson2messageconverter(); converter.settargettype(messagetype.text); converter.settypeidpropertyname("_type"); return converter; } }
console logs:
aug 20, 2017 5:24:47 pm org.apache.catalina.startup.catalina start info: server startup in 61255 ms 17:24:52.216 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:24:52.216 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:24:53.145 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10000ms elapsed since last write check. 17:24:53.145 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:24:56.134 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:24:56.134 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:24:56.336 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10000ms elapsed since last write check. 17:24:56.336 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:00.252 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10000ms elapsed since last write check. 17:25:00.257 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:02.217 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:25:02.217 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:03.145 [activemq inactivitymonitor readchecktimer] debug o.a.a.t.abstractinactivitymonitor - 30001ms elapsed since last read check. 17:25:03.146 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:25:03.146 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:03.262 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10000ms elapsed since last write check. 17:25:03.262 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:06.133 [activemq inactivitymonitor readchecktimer] debug o.a.a.t.abstractinactivitymonitor - 30001ms elapsed since last read check. 17:25:06.135 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:25:06.135 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:06.337 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:25:06.337 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616] 17:25:10.253 [activemq inactivitymonitor writechecktimer] debug o.a.a.t.abstractinactivitymonitor - writechecker: 10001ms elapsed since last write check. 17:25:10.253 [activemq inactivitymonitor worker] debug o.a.a.t.abstractinactivitymonitor - running writecheck[tcp://127.0.0.1:61616]
looks per code, have registered listener connection wont in idle state hence wont closed.
but if want forcefully close connection may need set maxtimeout connection.
Comments
Post a Comment