【发布时间】:2016-05-04 03:50:50
【问题描述】:
我在生产环境中遇到以下错误。请参考底部的错误。到目前为止,我能够通过在应用程序数据库调用中强制数据库超时来让编排暂停并恢复实例来重新创建问题。在同一个实例上重复该动作 2 轮后,第三次实例将暂停并出现以下错误。 这种行为的原因可能是什么?
BizTalk 错误
未捕获的异常(请参阅下面的“内部异常”)已暂停 服务实例'{ORCHESTRATION 名称}(57adc083-7423-2bff-bd2d-ca813b8c0f4e)'。服务实例 将保持暂停状态,直到行政恢复或终止。 如果恢复,实例将从其上次持久状态继续 并可能重新抛出相同的意外异常。实例编号: 1bca1f03-7780-4f45-af2e-020724c8a92d 形状名称:ShapeId:异常 抛出自:段 -1,进度 -1 内部异常:无法 处理执行消息。 异常类型:异常源:Microsoft.XLANGs.BizTalk.Engine 目标站点:System.Object[] get_Args() 以下是标识位置的堆栈跟踪 发生异常的地方
在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.get_Args() 在 {ORCHESTRATION NAME}.segment1(StopConditions stopOn) 在 Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
堆栈跟踪
xlang/s 引擎事件日志条目:向 服务实例。留言详情如下。消息编号: 61eaa7fc-ac85-42d9-bf3e-1bed258b82be 服务实例 ID: 1bca1f03-7780-4f45-af2e-020724c8a92d 服务类型 ID: 57adc083-7423-2bff-bd2d-ca813b8c0f4e 订阅 ID: 00000000-0000-0000-0000-000000000000 正文部分名称: 服务类型: {ORCHESTRATION NAME},{大会详情}
异常类型:BTXMessageDeliveryException 下面是堆栈 标识异常发生位置的跟踪
在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] 消息,Int32 firstIdx,Int32 计数)在 Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(对象 objMsg)
附加错误信息:
Failed while delivering a message to a service instance. Message details follow. Message ID:61eaa7fc-ac85-42d9-bf3e-1bed258b82be 服务实例 ID: 1bca1f03-7780-4f45-af2e-020724c8a92d 服务类型 ID: 57adc083-7423-2bff-bd2d-ca813b8c0f4e 订阅 ID: 00000000-0000-0000-0000-000000000000 正文部分名称: 服务类型: {ORCHESTRATION NAME},{大会详情}
异常类型:BTXMessageDeliveryException 来源: Microsoft.XLANGs.BizTalk.Engine 目标站点:无效 DeliverMessage(System.Guid, Microsoft.BizTalk.Agent.Interop.IBTMessage, Boolean ByRef) 下面是一个堆栈跟踪,它标识了 发生异常
在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(布尔值& 记录错误,Guid& instanceId,IBTMessage currMsg)在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] 消息,Int32 firstIdx,Int32 计数)在 Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(对象 objMsg)
附加错误信息:
The XLANG/s message has no part at index '0'. The total number of parts found in the message is '0'. If you expect a multipart消息,检查管道是否支持多部分消息,例如 哑剧。
异常类型:MissingPartException 来源: Microsoft.XLANGs.BizTalk.Engine 目标站点:无效 ReadMessageState(Microsoft.XLANGs.Core.Envelope, Microsoft.XLANGs.BaseTypes.XLANGMessage) 下面是一个堆栈 标识异常发生位置的跟踪
在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXXlangStore.ReadMessageState(信封 env,XLANGMessage 消息)在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.ArgsFromExecEnvelope(IBTMessage 味精)在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.DeliverMessageImpl2(Guid subscriptionId, IBTMessage msg, Boolean&receiveCompleted) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.DeliverMessage(Guid subscriptionId, IBTMessage msg, Boolean&receiveCompleted)
【问题讨论】:
-
您在事件日志中看到了什么?那里可能有更多关于异常和完整堆栈跟踪的详细信息。在此错误之前可能还会有更多有用的事件日志消息。
-
嗨,Dan,我已将堆栈跟踪添加到描述中。感谢您的关注。
-
错误消息通常表示传入消息存在问题。您使用的是自定义管道还是管道组件?如果是这样,请在那里检查您的逻辑。管道组件需要确保返回有效的 XLANG 消息。
-
此业务流程是从另一个业务流程从起始业务流程形状启动的。我怀疑消息有问题。因为根据我在开发 PC 中重新创建异常的方式,只有在我让实例暂停并恢复几次后才会出现问题。
-
异常提示消息为空。打开跟踪并查看您跟踪的消息事件。
标签: biztalk biztalk-2010