【发布时间】:2011-07-11 16:03:57
【问题描述】:
我正在开发一个托管在 JBoss 4.2.3 服务器内并连接到托管在另一台服务器上的 JMS 队列的 Web 服务解决方案。
到目前为止,每次调用 Web 服务时,我都会创建一个到 JMS 队列的新连接,这意味着,每当打开一个新会话时,都会创建一个到 JMS 队列的新连接。
例如,我使用下面的代码来创建Producer:
InitialContext jmsContext;
ConnectionFactory connectionFactory;
Properties properties;
Queue queue;
properties = JMSProperties.getJNDIProperties();
jmsContext = new InitialContext(properties);
connectionFactory = (ConnectionFactory) jmsContext.lookup("ConnectionFactory");
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
queue = (Queue) jmsContext.lookup(queueName);
producer = session.createProducer(queue);
connection.start();
我知道这种实现效率不是很高,我正在考虑创建一个连接池,这样我就不必在每次 Web 服务收到新请求时都创建新连接。
如何配置 JBoss 以便它创建一个到 JMS 队列的连接池? ConnectionFactory 类会自动为我创建连接池吗?如果是这样,我该如何配置池的大小?
谢谢, 费利佩
【问题讨论】:
标签: java jboss jms connection-pooling