javax.jms.JMSException:在配置的阻塞超时内没有可用的ManagedConnections
在Tomcat中运行ActiveMQ时,在点击服务器并添加新消息后,我收到以下异常:javax.jms.JMSException:在配置的阻塞超时内没有可用的ManagedConnections,java,tomcat,jms,activemq,apache-tomee,Java,Tomcat,Jms,Activemq,Apache Tomee,在Tomcat中运行ActiveMQ时,在点击服务器并添加新消息后,我收到以下异常: javax.jms.JMSException: No ManagedConnections available within configured blocking timeout ( 5000 [ms] ) for pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@6581542c at org.apache
javax.jms.JMSException: No ManagedConnections available within configured blocking timeout ( 5000 [ms] ) for pool org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor@6581542c
at org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:101)
at org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:67)
我正在使用ApacheTomee来管理ActiveMQ队列
我的ActiveMQ配置非常简单:
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
<!-- see http://tomee.apache.org/containers-and-resources.html -->
<!-- activate next line to be able to deploy applications in apps -->
<!-- <Deployments dir="apps" /> -->
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://localhost:61616)
ServerUrl = tcp://localhost:61616
</Resource>
<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
</tomee>
如果我在消息之间留一点间隙,我就可以很好地发送消息。但是,如果我更努力地访问服务器,我会在上面的异常中运行
在哪里可以配置连接池大小等?
使用连接后关闭连接是否有问题
谢谢,
塞巴斯蒂安我想我找到了:
但我认为实际的问题是我没有关闭连接
在以下示例中:
结尾有一个“…”字。代码块末尾实际缺少的是:
connection.close()
这解决了我的连接问题
@Resource(name = "myQueue")
private Queue barQueue;
@Resource
private ConnectionFactory connectionFactory;
/**
* Push Message to Queue
*
* @param payload
* @throws JMSException
*/
private void pushToQueue(Serializable payload) throws JMSException {
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create a MessageProducer from the Session to the Topic or Queu
MessageProducer producer = session.createProducer(barQueue);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
// Create a message
ObjectMessage message = session.createObjectMessage(payload);
// Tell the producer to send the message
producer.send(message);
}