,但是有一些關於未關閉的JMS連接的警告,然後由ActiveMQ關閉。 MDB得到一個messageHandler注入,它獲得注入了replysender的方法在下面給出。MessageDrivenBean:AMQ122000:我正在關閉一個JMS連接,當您通過MDB發送某些消息時,您仍然打開
這是我得到的警告:當試塊已完成下面的代碼中
[org.apache.activemq.artemis.jms.client] (Finalizer) AMQ122000: I''m closing a JMS connection you left open. Please make sure you close all JMS connections explicitly before letting them go out of scope! see stacktrace to find out where it was created: java.lang.Exception
at org.apache.activemq.artemis.jms.client.ActiveMQConnection.<init>(ActiveMQConnection.java:155)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:750)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:233)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:229)
[...]
警告時(不是每個時間)(如此直接log.debug後(..)) :
private Message doSendAndReturn(XmlMessageCreator messageCreator) throws JMSException {
Message message = null;
try (Session session = cf.createConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);) {
MessageProducer producer = session.createProducer(jmsReplyQueue);
message = messageCreator.createMessage(session);
producer.send(message);
log.debug("JMSTemplate sended message to myEnvironment with ID "
+ message.getJMSMessageID()
+ "\n Using Thread "
+ Thread.currentThread().getName());
}
return message;
}
我仍然讀取即使世界的連接工廠但「CF」無參考是經由上下文中定義的全局單變量這些警告也發生:
@Resource(lookup = "java:/myProject_myEnvironment_factory")
private ConnectionFactory cf;
當在log.debug(...)上設置一個斷點時,我可以看到它似乎工作了一段時間,但有時卻不行。這種方法在前三次工作時被調用約7次,然後一次拋出警告四次(可能也是前一次調用),等等。 每次我在webapp中執行特定的任務時,這都是可重複的。
我不知道這裏出了什麼問題。
任何意見將不勝感激。提前致謝。