Azure Logic App与Service Bus连接器报错:实体已关闭/中止,重启恢复求根因
以下是几种可能导致该突发错误的原因:
Service Bus客户端连接池失效
Logic App的Service Bus连接器会维护一个长连接池,长时间运行后,可能因为网络波动、Service Bus服务端主动回收超时连接、或者中间网络设备断开连接等情况,导致连接池里的部分连接变为无效状态(已关闭或中止)。当流程尝试复用这些无效连接执行Complete the message in a queue操作时,就会触发这个错误。重启Logic App会强制清空旧连接池并重建新的有效连接,因此能解决问题。消息锁续约的时序或执行异常
虽然你配置了Renew lock on the message in a queue操作,但如果续约请求因为流程卡顿、网络延迟等原因未成功执行,或者执行时消息锁已经过期,Service Bus会将关联的连接实体标记为无效。此时后续的Complete操作就会因为找不到有效连接实体而报错。Service Bus服务端临时故障
Azure Service Bus偶尔会出现节点负载过高、内部维护切换、或者队列级别的临时异常,导致队列的连接实体被意外中止。这种情况下,Logic App连接器持有的现有连接会失效,直到重启Logic App重新建立与Service Bus的连接。Logic App连接器内部状态异常
长时间运行的Logic App实例,其Service Bus连接器可能因为内存泄漏、缓存数据损坏等原因出现内部状态异常,导致无法正确处理与Service Bus的通信。重启Logic App会重置连接器的所有状态,恢复正常的通信逻辑。
内容的提问来源于stack exchange,提问作者Pradeep

