Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用ActiveMQ NMS处理事务和事件驱动的使用者_.net_Activemq_Messaging_Message Driven Bean_Nms - Fatal编程技术网

.net 使用ActiveMQ NMS处理事务和事件驱动的使用者

.net 使用ActiveMQ NMS处理事务和事件驱动的使用者,.net,activemq,messaging,message-driven-bean,nms,.net,Activemq,Messaging,Message Driven Bean,Nms,引用Hohpe G.和Woolf B.的EIP模式手册: 注意,在JMS中,事件驱动的使用者也是 事务客户端将无法按预期工作。通常是一笔交易 事务中的代码引发异常时回滚, 但是MessageListener.onMessage符号不提供 引发的异常(如JMSException)和运行时异常 被认为是程序员错误。如果发生运行时异常,JMS 提供者通过传递下一条消息进行响应,因此 导致异常丢失。要成功完成事务, 事件驱动的行为,使用消息驱动的EJB 我明白这一点,但如果我从.Net客户端使用Apac

引用Hohpe G.和Woolf B.的EIP模式手册:

注意,在JMS中,事件驱动的使用者也是 事务客户端将无法按预期工作。通常是一笔交易 事务中的代码引发异常时回滚, 但是MessageListener.onMessage符号不提供 引发的异常(如JMSException)和运行时异常 被认为是程序员错误。如果发生运行时异常,JMS 提供者通过传递下一条消息进行响应,因此 导致异常丢失。要成功完成事务, 事件驱动的行为,使用消息驱动的EJB


我明白这一点,但如果我从.Net客户端使用Apache NMS(ActiveMQ),该怎么办?我没有MDB,所以应该如何解决这个问题?

ActiveMQ NMS客户端异步使用者的功能与Java版本基本相同。您应该在回调中处理异常,因为它们在NMS中也被视为程序员错误,并且下一条消息在事务中传递

我不知道你在说什么。你能举个例子吗?要得到更具体的答案,你需要问一个更具体的问题。您正在尝试完成什么,哪些目前不适合您。我希望通过实现事务,特别是关于请求/回复的事务,来拥有一个可靠的消息传递基础架构。现在没有什么是一成不变的,只是考虑实施。例如,在回复部分,我可以将try/catch与Begin/Commit一起使用,对吗?在处理程序中没有Begin,您可以提交,也可以回滚,或者您可以在更高的级别执行此操作,会话是TX Commit/rollback的仲裁器。由您决定这是每条消息还是绑定到正在接收的某批消息。