Spring JMS:为什么创建CachingConnectionFactory时总是使用started=false



我有一个使用的示例应用程序演示

  • Spring Framework4.2.5
  • ActiveMQ5.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.MachineConnectionFactory-已建立共享JMS连接:ActiveMQ连接{id=id:sometext,clientId=ManolitoActiveMQ,started=false}

当应用程序启动并读取Established shared JMS Connection时,有没有意识到该消息,但为什么显示started=false?我认为应该是真的。

如果我评论cachingConnectionFactory.createConnection().start();并启动应用程序,则不会出现上面显示的消息,好吧,这是意料之中的事。但稍后通过JMX,当我开始发送消息时,我可以再次看到

3370[main]INFO o.s.j.c.MachineConnectionFactory-已建立共享JMS连接:ActiveMQ连接{id=id:sometext,clientId=ManolitoActiveMQ,started=false}

好的,这是意料之中的事,但started=false再次出现

由于连接cachingConnectionFactory.createConnection().start()行以start()结尾,因此在某些方面会混淆

  1. 所以为什么实际上总是出现started=false
  2. started属性何时或如何与true一起出现

请注意,started=false在连接的toString()中,它与连接工厂无关;它与刚刚创建的连接有关。

logger.info("Established shared JMS Connection: " + this.connection);

如果需要,稍后将启动连接本身。

相关内容

  • 没有找到相关文章