我想使用报告操作记录OSB中代理服务的重试尝试。
我创建了一个JMS传输代理服务,它将从IN_QUEUE中选择消息并将消息路由到业务服务,该业务服务将消息推送到OUT_QUEUE并报告状态(成功或失败)。
但是,如果处理时出错,代理服务应该在失败前重试5次。为了实现这一点,我已经配置了路由选项,并将重试次数设置为5,并且运行良好。
我现在想要的是记录代理服务的重试尝试(使用报告操作)。请建议我如何做到这一点。
答案 0 :(得分:0)
记录业务服务的重试尝试很困难,因为它是在代理范围之外处理的。关于最接近的是设置SLA警报以在bizref失败时通知您,但不会在每条消息上触发 - 只要它在聚合间隔期间检测到错误。
记录代理的重试尝试要容易得多,尤其是因为它是JMS代理。处理失败会将消息放回队列(启用XA的资源,您可能希望启用Same Transaction For Response),重试将增加JMS传输头内的计数器,代理可以提取并决定是否报告是不是。
请记住,除非您在发布/报告中将QoS设置为尽力而为,否则如果发生故障,发布自己将被回滚,这可能不是您想要的。