我有一个示例应用程序演示使用:
4.2.5
5.13.3
我有以下内容:
@Bean(name="connectionFactory")
public CachingConnectionFactory cachingConnectionFactory(ActiveMQConnectionFactory selectedActiveMQConnectionFactory) throws JMSException{
CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();
cachingConnectionFactory.setClientId("ManolitoActiveMQ");
cachingConnectionFactory.setTargetConnectionFactory(selectedActiveMQConnectionFactory);
cachingConnectionFactory.setSessionCacheSize(10);
cachingConnectionFactory.createConnection().start();
return cachingConnectionFactory;
}
当我使用cachingConnectionFactory.createConnection().start();
行时
我可以看到,当我的应用程序启动时,它会显示:
3370 [main] INFO o.s.j.c.CachingConnectionFactory - 已建立的共享JMS连接: ActiveMQConnection {id = ID:sometext,clientId = ManolitoActiveMQ,started = false}
有意识地期待应用启动时的消息并阅读Established shared JMS Connection
,但为什么显示started=false
?我认为应该是真的。
如果我评论cachingConnectionFactory.createConnection().start();
并启动应用,则上面显示的消息不会出现,好的,是预期的。但是当我开始发送消息时,我会在JMX
之后再次看到
3370 [main] INFO o.s.j.c.CachingConnectionFactory - 已建立的共享JMS连接: ActiveMQConnection {id = ID:sometext,clientId = ManolitoActiveMQ,started = false}
好的预计,但started=false
再次出现
在某些方面会让人感到困惑,因为cachingConnectionFactory.createConnection().start()
行以start()
结尾,用于连接
started=false
?started
属性与true
一起显示的时间或方式答案 0 :(得分:2)
请注意started=false
位于连接的toString()
中 - 它与连接工厂无关;它与刚创建的连接有关。
logger.info("Established shared JMS Connection: " + this.connection);
如果需要,连接本身将在稍后启动。