現象
複数の SQL クエリまたはストアド プロシージャの呼び出しで Host Integration Server 2013 内の 1 つの < 同期 > ブロックを実行するときに何を期待するから逆の順序で呼び出しが処理されます。たとえば、次の XML コードのサンプルには、< 同期 > 1 つのブロックに複数のストアド プロシージャの呼び出しが含まれています。
<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 アダプター < 同期 > 内のレコードは、逆の順序で実行されるスタックでブロックします。この現象は、Host Integration Server 2006 から DB2 用の BizTalk アダプターの一部をしました。
解決策
累積的な更新プログラムの情報
Host Integration Server 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>