Sintomas
Quando você executa várias consultas SQL ou chamadas de procedimento armazenado em um bloco único < sincronização > no Host Integration Server 2013, as chamadas são processadas na ordem inversa da esperada. Por exemplo, o seguinte exemplo de código XML inclui várias chamadas de procedimento armazenado em um bloco único < sincronização >:
<sync>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="ABCDEFGHIJ" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="BCDEFGHIJK" />
</StoredProcedure>
<StoredProcedure>
<SP_CHAR_INOUT INOUTVAL1 ="CDEFGHIJKL" />
</StoredProcedure>
</sync>
Neste exemplo, a última chamada de procedimento armazenado no bloco < sincronização > é o primeiro que é executado.
Causa
O adaptador BizTalk para DB2 armazena os registros de uma sincronização de < > bloqueiam em uma pilha que é executada na ordem inversa. Este comportamento tem sido parte do adaptador do BizTalk para DB2 desde o Host Integration Server 2006.
Resolução
Informações da atualização cumulativa
A correção que resolve esse problema está incluída na atualização cumulativa 2 para o Host Integration Server 2013.
Solução alternativa
Para executar o SQL consultas ou procedimento armazenado chama na ordem listada, coloque cada consulta ou chamada em seu próprio bloco < sincronização >, como no exemplo a seguir do procedimento armazenado:
<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>
Observação: Quando você coloca cada consulta ou armazenados chamada de procedimento em seu próprio bloco < sincronização > e uma das consultas ou procedimento armazenado chama falhar por qualquer motivo, você receberá atualizações incompletas no banco de dados DB2 porque cada instrução é tratada em sua própria transação.
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Mais informações
Depois de aplicar essa atualização, o adaptador BizTalk para DB2 processa cada consulta SQL e chamadas de procedimento armazenado que está contida em um bloco < sincronização > na ordem em que ele está listado no arquivo XML que acompanha este artigo.