我了解到CachingConnectionFactory能够缓存JMS会话。但是,我不明白如何以编程方式检索缓存的会话。
My Spring配置如下所示:
<bean id="jmsConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<construction-arg index="0" ref="connectionFactory"/>
<property name="sessionCacheSize" value="50" />
</bean>
其中connectionFactory
是由JNDI创建的连接工厂。
我创建会话的方式是:
QueueConnection connection = jmsConnectionFactory.createQueueConnection();
queueConnection.createQueueSession(false, Session.DUP_OK_ACKNOWLEDGE);
但是,看起来createQueueSession创建的会话始终是新会话而不是缓存会话。创建一个会话大约需要1.5毫秒,而这个会话听不到缓存的会话。
有人可以告诉我如何才能使会话缓存正常工作?