JMS Connection постоянно "сессия закрыта" в наших очередях оракула - PullRequest
0 голосов
/ 20 ноября 2018

Мы используем весеннюю загрузку для запуска нашей программы опроса очереди.

Очередь опрашивается примерно каждые 2 минуты, и каждые 2 минуты сеанс закрывается, а затем обновляется.

соединение является общим соединением от внешнего tomcat, это соединение используется совместно с дюжиной других приложений.

    2018-11-20 11:59:21.263 WARN [serviceRequestAdapter.container-3] org.springframework.jms.listener.DefaultMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'NPP.SERVICE_REQUEST' - 
      trying to recover. Cause: JMS-131: Session is closed
    2018-11-20 11:59:21.265 INFO [serviceRequestAdapter.container-3] org.springframework.jms.listener.DefaultMessageListenerContainer - 
      Successfully refreshed JMS Connection
    2018-11-20 12:01:21.781 WARN [serviceRequestAdapter.container-4] org.springframework.jms.listener.DefaultMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'NPP.SERVICE_REQUEST' - 
      trying to recover. Cause: JMS-131: Session is closed
    2018-11-20 12:01:21.823 INFO [serviceRequestAdapter.container-4] org.springframework.jms.listener.DefaultMessageListenerContainer - 
      Successfully refreshed JMS Connection

На самом деле это не влияет на функциональность, так как отправленные сообщения потребляются и обрабатываются.

Действительно ли это проблема, если да, то как мне ее исправить?

Если это не проблема, как мне скрыть эти сообщения без уменьшения журнала?уровень до ошибки?

наш jms-context.xml

    <context:annotation-config/>

    <tx:annotation-driven/>

    <int:message-history/>

    <int:channel id="jms-inbound"/>
    <int:channel id="voucher-create-inbound"/>
    <int:channel id="voucher-update-inbound"/>
    <int:channel id="default-inbound"/>

    <orcl:aq-jms-connection-factory id="connectionFactory"
                                    connection-factory-type="QUEUE_CONNECTION"
                                    use-local-data-source-transaction="true"/>

    <int:recipient-list-router input-channel="jms-inbound" default-output-channel="default-inbound"
                               id="action-type-router">
        <int:recipient channel="voucher-create-inbound"
                       selector-expression="headers.actionType == 'CREATE VOUCHER'"/>
        <int:recipient channel="voucher-update-inbound"
                       selector-expression="headers.actionType == 'UPDATE VOUCHER'"/>
    </int:recipient-list-router>

    <int-jms:message-driven-channel-adapter
            id="serviceRequestAdapter"
            channel="jms-inbound"
            cache-level="3"
            connection-factory="connectionFactory"
            destination-name="${oracle.rqst-q-name}"/>

    <int:service-activator id="createVoucherActivator"
                           input-channel="voucher-create-inbound"
                           requires-reply="false"
                           method="onMessage">
        <beans:bean class="VoucherRequestConsumer"/>
    </int:service-activator>

    <int:service-activator id="updateVoucherActivator"
                           input-channel="voucher-update-inbound"
                           requires-reply="false"
                           method="onMessage">
        <beans:bean class="VoucherRequestConsumer"/>
    </int:service-activator>

    <beans:bean id="defaultRequestConsumer"
                class="DefaultRequestConsumer"/>
    <int:service-activator id="defaultActivator"
                           input-channel="default-inbound"
                           requires-reply="false"
                           ref="defaultRequestConsumer"
                           method="onMessage">
    </int:service-activator>
</beans:beans>

1 Ответ

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

Я немного озадачен.,,что ты спрашиваешь?Я имею в виду, я не вижу вопроса.Вы просто ищете подтверждение, что все в порядке?

В любом случае рассмотрите этот документ - https://docs.spring.io/spring-data/jdbc/old-docs/2.0.0.M1/reference/html/orcl.streamsaq.html, специально Раздел 4.3 Настройка фабрики соединений для использования той же локальной транзакции, что и для доступа к данным.код. , который конкретно говорит о последствиях для JMS-сессии, когда use-local-data-source-transaction установлен на true.

...