症状
当发出多个 SQL 查询或存储的过程调用中主机集成服务器 2013年单 < 同步 > 块中时,会与所期望的相反顺序处理调用。例如,下面的 XML 代码示例包括一个 < 同步 > 块中多个存储的过程调用︰
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
在此示例中,< 同步 > 块中的最后一个存储的过程调用时执行的第一个。
原因
DB2 存储 BizTalk 适配器中按相反的顺序执行堆栈块 < 同步 > 中的记录。这种现象以往自主机集成服务器 2006 年以来已 BizTalk 适配器用于 DB2 的一部分。
解决方案
累积更新信息
累积更新 2中情况下,主机集成服务器 2013年会包含的修复程序可以解决此问题。
解决方法
执行 SQL 查询或存储的过程调用中的列出顺序、 放入每个查询或存储过程调用到自己 < 同步 > 块中,如以下示例所示︰
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
</sync>
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
</sync>
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
注意:当您将每个查询或存储过程调用到自己 < 同步 > 块,和一个查询或存储的过程的调用由于某种原因失败时,您收到完整更新 DB2 数据库中因为每个语句处理自己的事务中。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
应用此更新之后,DB2 的 BizTalk 适配器处理每个 SQL 查询和存储的过程调用包含在 < 同步 > 块中将其列出相关的 XML 文件的顺序。