Maximo入站MIF自动化脚本如何将失败消息放入错误队列供重处理
解答
存在对应内置配置,无需额外开发消息投递逻辑即可将异常消息转发至Message Reprocessing模块,避免消息丢失。
你已知的errorgroup+errorkey的配置方式本身就是平台控制消息流转的标准入口,目前用的SKIP_TRANSACTION是直接终止事务丢弃消息的预置key,要转发到重处理队列,只需要把errorkey赋值为预置值REPROCESS_MESSAGE即可,errorgroup保持iface不变。
平台识别到这组配置后会自动执行以下操作:
- 回滚当前External Exit脚本的所有事务操作,避免产生脏数据
- 将原始消息的全量内容(payload、消息头、扩展属性)、当前报错堆栈完整投递到Message Reprocessing模块
- 流程不会被标记为直接失败,消息会持久化存储在重处理队列中,支持后续手动重试、按规则自动重试
如果需要标记异常原因,可以额外给errorMsg变量赋值,该内容会直接展示在重处理队列的消息备注栏,方便后续排查。
参考代码:
try: # 原有业务处理逻辑 process_message(raw_msg) except Exception as e: errorgroup = "iface" errorkey = "REPROCESS_MESSAGE" errorMsg = f"脚本执行异常: {str(e)}"
注意:配置该errorkey后不要自行调用消息回滚、重投递接口,平台内置逻辑会自动完成流转,重复调用可能导致重处理队列出现重复消息。
内容的提问来源于stack exchange,提问作者BoydDensmore
相关产品推荐
相关产品推荐

