春季集成中如何回滚从IBM MQ获取的消息

Vidya_85

我有一个像这样的弹簧集成流程:

    1) message-driven-channel-adapter -> 
                 1.1) output-channel connected to -> service-activator -> outbound-channel-adapter (for sending response)
                 1.2) error-channel connected to -> exception-type-router 
                            1.2.1) message is sent to different queues depending on the exception type using outbound-channel-adapter

我已经在message-driven-channel-adapter中设置了accept =“ transacted”。我想在错误通道之后针对特定类型的异常引入回滚。

首先,我尝试将异常类型路由器的输出连接到service-activator。但我得到例外:

   Code: 

     <service-activator id="rollBackActivator" input-channel="RollBackChannel" 
             ref="errorTransformer" method="rollBackMessage"/>

     public void rollBackMessage(MessagingException  message){       
         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
     System.out.println("Message rolled back:"+TransactionAspectSupport.currentTransactionStatus().isRollbackOnly());
 }

   Exception:
   org.springframework.messaging.MessageHandlingException: org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope

然后,我尝试使用outbound-channel-adapter表达式,但是又遇到了另一个异常

Code:
<outbound-channel-adapter id="rollbackOut" channel="RollBackChannel" 
     expression="T(org.springframework.transaction.interceptor.TransactionAspectSupport).currentTransactionStatus().setRollbackOnly()"/>

 Exception:
 org.springframework.messaging.MessageHandlingException: Expression evaluation failed: T(org.springframework.transaction.interceptor.TransactionAspectSupport).currentTransactionStatus().setRollbackOnly()

请建议在这种情况下实施回滚。

加里·罗素

默认情况下,容器在会话上使用本地事务。没有涉及AOP。只需抛出一个异常,容器就会回滚消息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从远程 IBM MQ 不断获取消息

来自分类Dev

无法从IBM Websphere MQ的队列中获取消息

来自分类Dev

在JMS中获取消息类型-IBM MQ

来自分类Dev

部署在JBOSS上的MDB从IBM MQ获取消息

来自分类Dev

MQ服务器停机时如何获取丢失的消息

来自分类Dev

如何在Activemq中回滚消息

来自分类Dev

如何在Activemq中回滚消息

来自分类Dev

从Java类初始化IBM MQ时获取错误消息

来自分类Dev

如何在C#中仅获取具有特定优先级的Websphere MQ消息?

来自分类Dev

如何从IBM MQ集群中另一个队列管理器中托管的队列中获取消息

来自分类Dev

从WebSphere MQ中的集群队列接收消息

来自分类Dev

在 Rabbit MQ 中禁用保留的 MQTT 消息

来自分类Dev

如何使用Spring Batch创建到活动MQ和IBM MQ的通用JMS消息传递

来自分类Dev

IBM MQ-MQ Explorer中可浏览的SSL加密消息

来自分类Dev

如何使用IBM MQ-在Linux中的队列上备份和清除消息?

来自分类Dev

IBM MQ 中如何实现消息交换:推送还是拉取?

来自分类Dev

春季jmstemplate读取消息而不删除(WebSphere MQ)

来自分类Dev

在JMS中一次处理来自IBM MQ的消息

来自分类Dev

从启用了AMS的IBM Web Sphere MQ检索消息

来自分类Dev

C#:使用 Read() 方法时的 IBM MQ“解锁”消息

来自分类Dev

如何从客户端重试Rabbit MQ中的消息?

来自分类Dev

如何在Linux和UNIX中获取IBM MQ的默认安装目录?

来自分类Dev

Git-回滚时如何从将来的提交中获取新文件

来自分类Dev

如何使JMS消息发送到MQ以完全提交?

来自分类Dev

如何强制Rabbit MQ积累并再次发送消息?

来自分类Dev

春季:如何回滚声明式事务

来自分类Dev

春季集成Rabbit-mq json MessagingException

来自分类Dev

在春季如何从RabbitMQ正确获取所有队列消息?

来自分类Dev

针对多线程场景从IBM MQ获取基于corretionID的响应

Related 相关文章

  1. 1

    如何从远程 IBM MQ 不断获取消息

  2. 2

    无法从IBM Websphere MQ的队列中获取消息

  3. 3

    在JMS中获取消息类型-IBM MQ

  4. 4

    部署在JBOSS上的MDB从IBM MQ获取消息

  5. 5

    MQ服务器停机时如何获取丢失的消息

  6. 6

    如何在Activemq中回滚消息

  7. 7

    如何在Activemq中回滚消息

  8. 8

    从Java类初始化IBM MQ时获取错误消息

  9. 9

    如何在C#中仅获取具有特定优先级的Websphere MQ消息?

  10. 10

    如何从IBM MQ集群中另一个队列管理器中托管的队列中获取消息

  11. 11

    从WebSphere MQ中的集群队列接收消息

  12. 12

    在 Rabbit MQ 中禁用保留的 MQTT 消息

  13. 13

    如何使用Spring Batch创建到活动MQ和IBM MQ的通用JMS消息传递

  14. 14

    IBM MQ-MQ Explorer中可浏览的SSL加密消息

  15. 15

    如何使用IBM MQ-在Linux中的队列上备份和清除消息?

  16. 16

    IBM MQ 中如何实现消息交换:推送还是拉取?

  17. 17

    春季jmstemplate读取消息而不删除(WebSphere MQ)

  18. 18

    在JMS中一次处理来自IBM MQ的消息

  19. 19

    从启用了AMS的IBM Web Sphere MQ检索消息

  20. 20

    C#:使用 Read() 方法时的 IBM MQ“解锁”消息

  21. 21

    如何从客户端重试Rabbit MQ中的消息?

  22. 22

    如何在Linux和UNIX中获取IBM MQ的默认安装目录?

  23. 23

    Git-回滚时如何从将来的提交中获取新文件

  24. 24

    如何使JMS消息发送到MQ以完全提交?

  25. 25

    如何强制Rabbit MQ积累并再次发送消息?

  26. 26

    春季:如何回滚声明式事务

  27. 27

    春季集成Rabbit-mq json MessagingException

  28. 28

    在春季如何从RabbitMQ正确获取所有队列消息?

  29. 29

    针对多线程场景从IBM MQ获取基于corretionID的响应

热门标签

归档