【发布时间】:2016-02-01 20:40:29
【问题描述】:
我有一个简单的 Biztalk 应用程序 2013-r2,它将文件导入表中,然后执行长时间运行的导入后过程(通过存储过程)。
症状:导入 2 个文件时
- 第一个文件的导入没有问题
- 然后,后处理开始(由于长时间运行的存储过程,如预期的那样缓慢)
- 然后,如果您删除第二个文件,则第一个文件后处理将消失,并进行第二次导入。
- 然后它们开始来回交替(您可以看到后处理字段按预期填充)
- 两个发送端口都处于活动状态,有时您会看到第三个端口脱水
由于没有报告错误,这一定是一个设置,还是我需要将后期处理移出长期运行的事务?
详情:
- 编排事务类型长期运行
- 后处理发送端口的超时时间为 59 分钟
- 后处理存储过程调用子存储过程。
- 任何地方都没有报告错误
- 两个发送端口都已订购交货检查
后处理存储过程:
CREATE PROCEDURE [sync].[MPostProcessing]
@Code NVARCHAR(2)
AS
----
---- 2. Normalize Address
----
IF @Code = '99'
EXEC sync.AElBatch @Code = @Code
CREATE PROCEDURE [sync].[AElBatch ] @Code AS VARCHAR(2)
AS
DECLARE @ID AS INT
WHILE EXISTS ( SELECT ID
FROM sync.[mtable]
WHERE Code = @Code
AND PostProcessingDone = 0 )
BEGIN
SELECT TOP 1
@ID = ID
FROM sync.[mtable]
WHERE Code = @Code
AND PostProcessingDone = 0
EXEC sync.PParse @ID = @ID
UPDATE sync.[mtable]
SET PostProcessingDone = 1
WHERE Code = @Code
AND ID = @ID
END
然后 PParse 存储过程会执行更多操作(所有工作正常,未报告错误)
Biztalk 服务器管理控制台的图像
【问题讨论】:
-
我不太清楚你的问题是什么。你说没有错误,所有处理都成功了——你只是想知道为什么会有水合/脱水循环?
-
然后,如果您删除第二个文件,则第一个文件后处理消失,并进行第二次导入。然后它们开始来回交替(您可以看到后处理字段按预期填充)
-
第一个文件加载没有完成吗?
-
只有文件加载部分完成,后处理进行到一半,删除所有行导入第二个文件。
-
发送端口:导入和后处理都在 Biztalk 服务器管理控制台中处于活动状态