Sintomi
Quando si emettono più query SQL o chiamate a stored procedure in un singolo <blocco di sincronizzazione> in Host Integration Server 2013, le chiamate vengono elaborate in ordine inverso rispetto a quello previsto. Ad esempio, l'esempio di codice XML seguente include più chiamate a stored procedure in un singolo <blocco di sincronizzazione> :
<Sincronizzazione>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</Storedprocedure>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</Storedprocedure>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</Storedprocedure>
</Sincronizzazione>
In questo esempio, l'ultima chiamata di stored procedure nel <blocco di sincronizzazione> è la prima che viene eseguita.
Causa
BizTalk Adapter per DB2 archivia i record in un <blocco di sincronizzazione> in uno stack eseguito in ordine inverso. Questo comportamento fa parte di BizTalk Adapter per DB2 da quando Host Integration Server 2006.
Risoluzione
Informazioni sugli aggiornamenti cumulativi
La correzione che risolve questo problema è inclusa nell'aggiornamento cumulativo 2 per Host Integration Server 2013.
Soluzione alternativa
Per eseguire query SQL o chiamate a stored procedure nell'ordine elencato, inserire ogni chiamata di query o stored procedure nel proprio <blocco di sincronizzazione> , come nell'esempio seguente:
<Sincronizzazione>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</Storedprocedure>
</Sincronizzazione>
<Sincronizzazione>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</Storedprocedure>
</Sincronizzazione>
<Sincronizzazione>
<Storedprocedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</Storedprocedure>
</Sincronizzazione>
Nota Quando si inserisce ogni chiamata di query o stored procedure nel proprio <blocco di sincronizzazione> e una delle query o delle chiamate di stored procedure non riesce per qualsiasi motivo, si ricevono aggiornamenti incompleti nel database DB2 perché ogni istruzione viene gestita nella propria transazione.
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Altre informazioni
Dopo aver applicato questo aggiornamento, BizTalk Adapter per DB2 elabora ogni chiamata di query SQL e stored procedure contenuta in un <blocco di sincronizzazione> nell'ordine in cui è elencata nel file XML corrispondente.