引用 Hohpe G. 和 Woolf B. 的 EIP 模式书:
请注意,在 JMS 中,同时也是事务客户端的事件驱动消费者将无法按预期工作。通常,当事务中的代码抛出异常时,事务会回滚,但 MessageListener.onMessage 签名不提供抛出异常(例如 JMSException),并且运行时异常被认为是程序员错误。如果发生运行时异常,JMS 提供者通过传递下一条消息进行响应,因此导致异常的消息丢失。要成功实现事务、事件驱动的行为,请使用消息驱动的 EJB。
我明白这一点,但如果我从 .Net 客户端使用 Apache NMS (ActiveMQ) 怎么办?我没有MDB,所以我应该如何解决这个问题?