Весна. Когда кешируется конечный объект JndiObjectFactoryBean, остается ли он открытым для соединения с JMS-брокером? - PullRequest
0 голосов
/ 21 ноября 2018

Мы настраиваем наши JMS-адреса с помощью поиска JNDI следующим образом:

@Bean
JndiObjectFactoryBean myTopic(@Value("${topic}") String topic,
                              JndiTemplate jndiTemplate) {

    JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
    jndiObjectFactoryBean.setJndiTemplate(jndiTemplate);
    jndiObjectFactoryBean.setJndiName(topic);

    return jndiObjectFactoryBean;
}

При инициализации этого компонента Spring подтверждает, что объект существует, и кэширует его для использования позже.Включает ли кэширование этого назначения постоянную связь с нашим брокером?Или соединение создается только физически, когда создается экземпляр нашего CachingConnectionFactory?

1 Ответ

0 голосов
/ 21 ноября 2018

Соединение (единственное и общее) создается при первом вызове createConnection() в вашем экземпляре CachingConnectionFactory и освобождается при вызове на destroy() или resetConnection(), как указано в контракте (CachingConnectionFactoryнаследовать от SingleConnectionFactory):

Адаптер JMS ConnectionFactory, который возвращает одно и то же соединение от всех вызовов createConnection () и игнорирует вызовы Connection.close ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...