狀況
當您發出多個 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 配接器。