0

Я использую весну CachingConnectionFactory, как в приведенной ниже конфигурации, для кэширования сеансов MQ. Я могу видеть, что кэширование работает, как ожидалось:Spring CachingConnectionFactory не пожинает при простоя

  • он открывает одно соединения MQ
  • создает новые сессии по мере необходимости и повторное использование их

Моей заявки короткоживущих пик трафика сообщений. Поэтому, когда есть пик, размер сессии вздувается и остается там долго после пика. Я ищу способ пожинать эти праздные сеансы после определенного периода бездействия. В любом случае, для этого?

<jee:jndi-lookup id="mqQueueConnectionFactory" jndi-name="java:comp/env/jms/MyJMSQueueConnectionFactory" /> 

<bean id="userConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"> 
    <property name="targetConnectionFactory" ref="mqQueueConnectionFactory"></property> 
</bean> 
<bean id="queueConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> 
    <property name="targetConnectionFactory" ref="userConnectionFactory"></property> 
    <property name="reconnectOnException" value="${ssa.mq.cachesession}"></property> 
    <property name="cacheProducers" value="${ssa.mq.cacheproducer}"></property> 
    <property name="sessionCacheSize" value="${ssa.mq.producer.sessionsize}"></property> 
    <property name="cacheConsumers" value="${ssa.mq.cacheconsumers}"></property> 
</bean> 

ответ

1

Вы можете уменьшить sessionCacheSize; любые сеансы, закрытые при превышении размера кеша, будут физически закрыты при следующем использовании.

+0

Можете ли вы рассказать об этом? - «любые сеансы, которые закрываются при превышении размера кеша, будут физически закрыты при следующем использовании». Вы говорите, что размер сессии будет увеличиваться до любого числа на пиковой нагрузке, а затем вернуться к sessionCacheSize, когда загрузка будет ниже? – Bharath

+0

Правильно - см. [Создание сессии] (https://github.com/spring-projects/spring-framework/blob/master/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java # L227) и [закрытие сессии (логическое Vs. физическое)] (https://github.com/spring-projects/spring-framework/blob/master/spring-jms/src/main/java/org/springframework/jms /connection/CachingConnectionFactory.java#L307). Регистрация уровня TRACE позволит вам получить полную картину. –

Смежные вопросы