在Message Broker(v8.0.0.0)中,我们使用事件监视框架来驱动我们的流级审计。我们正在研究三种类型的审计 - 启动和回滚;正在使用Message Broker定义的相应transaction.Start / End / Rollback事件。
对于回滚,在每个流中,我们有一个通用异常处理程序,它从输入节点捕获异常终端,进行一些处理,然后再次抛出异常。这意味着我们从代理获得回滚事件,并将原始消息退回到DLQ。
然而,对于这些情况,我们得到四个事件而不是预期的两个事件(即启动和回滚)。有一个额外的Start事件和一个End事件正在生成。
我环顾四周,在MQSeries论坛中可能存在此问题的重复,有人建议这是因为邮件正在被撤消。 (帖子末尾的链接。)
有人可以建议缓解/解决方法吗?我看了一下事件信息本身,没有办法区分它们。
答案 0 :(得分:0)
额外的开始和结束是因为它实际上是MQ输入节点,它将消息发送到DLQ,而不是MQ本身。
由于在节点知道它需要DLQ消息之前引发了事务启动消息,我们还需要一个事务事件来关闭打开的事务。
实际上我们在它自己的MQ事务下完成这项工作,所以事件与实际的事务边界相对应,只是在你的情况下,消息永远不会在最后一次迭代中产生流。
区分成功的事务和我们执行后退的事务会很好,就像我们处理回滚事件一样,但IIB目前不允许这样做。
我建议将其作为以下URI的要求提出: