Ознаки
Якщо в сервері Host Integration Server 2013 надіслати кілька запитів SQL або збережених викликів процедур в одному <блоці синхронізації> , виклики оброблятимуться не так, як очікувалося. Наприклад, наведений нижче зразок коду XML включає кілька збережених викликів процедур в одному <блоці синхронізації> :
<синхронізація>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
У цьому прикладі першим виконується останній збережений виклик процедури в <блоці синхронізації> .
Причина
BizTalk Adapter for DB2 зберігає записи в <блоці синхронізації> в стеку, який виконується у зворотному порядку. Ця поведінка присутня в BizTalk Adapter для DB2 починаючи з Host Integration Server 2006.
Спосіб усунення проблеми
Сукупні відомості про оновлення
Виправлення, яке усуває цю проблему, входить у сукупний пакет оновлень 2 для Host Integration Server 2013.
Спосіб вирішення
Щоб виконувати запити SQL або збережені виклики процедур у наведеному порядку, помістіть кожен запит або збережений виклик процедури в окремий <блок синхронізації> , як у прикладі нижче.
<синхронізація>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
</sync>
<синхронізація>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
</sync>
<синхронізація>
<StoredProcedure (Збережена процедура)>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
Примітка Якщо ви розміщуєте кожен запит або збережений виклик процедури в окремому блоці <синхронізації> , і один із запитів або збережених викликів процедур з якоїсь причини завершується помилкою, ви отримуєте неповні оновлення в базі даних DB2, оскільки кожен оператор обробляється в своїй транзакції.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Додаткові відомості
Після застосування цього оновлення BizTalk Adapter for DB2 обробляє кожен SQL-запит і збережений виклик процедури, що містяться в блоці <синхронізації> , у тому порядку, у якому вони вказані в супровідному XML-файлі.