插入和預存程序呼叫處理以相反順序當您使用 db2 的 BizTalk 配接器

狀況

當您發出多個 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 配接器以反向順序執行堆疊中封鎖 < 同步 > 中的記錄。這個行為自從主機整合 Server 2006 一直到 DB2 的 BizTalk 配接器的組件。

解決方案

累積更新資訊

主機整合伺服器 2013年是累積的更新 2中包含的修正程式可解決這個問題。

因應措施

若要執行 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 產品的問題。

更多的資訊

套用此更新之後,每個 SQL 查詢和預存程序呼叫,它會列出與伴隨的 XML 檔案中的順序 < sync > 區塊中所包含,也會處理 DB2 的 BizTalk 配接器。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×