【问题标题】:BizTalk error : Unable to process exec messageBizTalk 错误:无法处理执行消息
【发布时间】: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


【解决方案1】:

我自己收到的。不知道当你开始收到它时你在做什么。对我来说,我有一个工作编排,然后添加了一个相关集。我使用 BTDF,因此仅在我真的应该进行完整的重新部署(我知道,懒惰)时才使用新的编排来简单地更新 GAC。

无论如何,一旦我完全重新部署,循环主机并重新测试它就可以正常工作。

可能无法回答您正在寻找的问题,但它帮助了我。这是我的堆栈跟踪:

异常类型:BTXMessageDeliveryException 来源:Microsoft.XLANGs.BizTalk.Engine 目标站点:Void DeliverMessage(System.Guid, Microsoft.BizTalk.Agent.Interop.IBTMessage, Boolean ByRef) 以下是标识异常发生位置的堆栈跟踪

在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean& loggedError, Guid& instanceId, IBTMessage currMsg) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId,Guid& serviceId,IBTMessage currentMsg) 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] 消息,Int32 firstIdx,Int32 计数) 在 Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(对象 objMsg) 在 Microsoft.XLANGs.BizTalk.CrossProcess.AppDomainStubProxy.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(对象消息)

附加错误信息:

    Index was outside the bounds of the array.

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多