Symptômes
Lorsque vous émettez plusieurs des requêtes SQL ou des appels de procédure stockée dans un bloc unique < synchronisation > dans Host Integration Server 2013, les appels sont traités dans l’ordre inverse de celui que vous attendiez. Par exemple, l’exemple de code XML suivant inclut plusieurs appels de procédure stockée dans un bloc unique < synchronisation > :
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
Dans cet exemple, le dernier appel de la procédure stockée dans le bloc < synchronisation > est la première qui est exécuté.
Cause
Adaptateur BizTalk pour DB2 stocke les enregistrements dans une synchronisation < > bloquent une pile qui est exécuté dans l’ordre inverse. Ce comportement fait partie de l’adaptateur BizTalk pour DB2 depuis Host Integration Server 2006.
Résolution
Informations de mise à jour cumulative
Le correctif qui résout ce problème est inclus dans la mise à jour Cumulative, 2 pour Host Integration Server 2013.
Solution de contournement
Exécuter SQL, requêtes ou une procédure stockée appelle dans l’ordre répertorié, placez chaque requête ou l’appel dans son propre bloc < sync >, comme dans l’exemple suivant de procédure stockée :
<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>
Remarque Lorsque vous placez chaque requête ou dans son propre bloc < sync > l’appel de procédure stockée et une des requêtes ou une procédure stockée appelle échoue pour une raison quelconque, vous recevez des mises à jour incomplètes dans la base de données DB2, car chaque instruction est gérée dans sa propre transaction.
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Plus d'informations
Après avoir appliqué cette mise à jour, adaptateur BizTalk pour DB2 traite chaque requête SQL et un appel de procédure stockée qui est contenue dans un bloc < sync > dans l’ordre dans lequel il est répertorié dans le fichier XML.