繁体   English   中英

Spring Integration入站JMS适配器错误通道未调用

[英]Spring integration inbound jms adapter error-channel does not invoke

该方案是入站jms适配器->服务激活器(数据库搜索,业务逻辑,插入或更新)

<int-jms:message-driven-channel-adapter id="swiftAdapterInput" channel="mt950"
        connection-factory="connectionFactory" destination-name="${integration.swift.jms.queue.from}" pub-sub-domain="false"
        auto-startup="false" error-channel="errorChannel" transaction-manager="transactionManager" acknowledge="transacted" />

<int:service-activator input-channel="errorChannel" ref="errorHandler" />

<bean id="errorHandler" class="nest.integration.utils.error.ErrorHandler" />


<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

当在我的服务激活器中引发异常时,我的errorHandler可以正常工作,但异常是在结束时(提交后),例如db unique constrat异常,该消息不会进入错误通道,而是仅回滚到jms队列。

但在这种情况下,我也需要我的errorHander,因为我需要发送电子邮件异常等信息。

提前准备好坦克,塔马斯(Tamas)

我认为您必须在errorHandler精简TX的问题,但是不要提交。

这就是为什么从DefaultMessageListenerContainer获得egyediségre vonatkozó megszorítás nem tel的原因,因为该DB错误是在提交时引起的。

参见这里: Spring Integration中的异常:如何记录但不拦截

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM