【问题标题】:Spring Integration JMS message driven channel adapter stops picking message after certain interval of timeSpring Integration JMS 消息驱动通道适配器在一定时间间隔后停止选择消息
【发布时间】:2015-09-10 15:03:36
【问题描述】:

我正在使用 spring 集成使用 jms-int:message-driven-channel-adapter 从 TIBCO EMS 队列中读取消息。我面临的问题:经过一定的时间间隔,比如 5-10 小时(随机间隔发生),即使 jms 队列中有消息,jms 通道适配器也会停止选择消息

下面是我的 spring 集成上下文:

<bean id="jmsConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <property name="targetConnectionFactory" ref="connectionFactory"/>
    <property name="sessionCacheSize" value="${sessionCacheSize}"/>
    <property name="cacheProducers" value="${cacheProducers}"/>
    <property name="cacheConsumers" value="${cacheConsumers}"/>
</bean>

<bean id="jmsQueue" class="${queueClassName}">
    <constructor-arg value="${jmsQueue}" />
</bean>

<int-jms:message-driven-channel-adapter
    id="jmsMessageDrivenAdapter" connection-factory="jmsConnectionFactory" channel="jmsListenerChannel" destination="jmsQueue"
    error-channel="integrationErrorChannel" max-concurrent-consumers="${maxConcurrentConsumers}" auto-startup="${jms.autostart}"/>

我有启动/停止 jmsMessageDrivenAdapter 的功能,并且适配器可以在选择消息时随时启动/停止,但此时启动/停止功能也不起作用。请推荐!

【问题讨论】:

    标签: spring-integration spring-jms


    【解决方案1】:

    这似乎与Spring Integration jms message driven channel adapter fails 重复(但贡献者不同,所以我会在这里再次回答)...

    这通常是由于下游流中的某些组件不间断地挂起容器线程(例如从没有超时的套接字读取,没有数据到达)。

    要进行诊断,请在发生挂起时进行线程转储(例如 jstack ),以了解侦听器容器线程在做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-29
      • 2021-03-20
      • 2017-09-18
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      • 2018-04-19
      • 2017-09-07
      相关资源
      最近更新 更多