Sintomas
Quando emitir várias consultas de SQL ou chamadas de procedimento armazenado num bloco único < sincronização > no Host Integration Server 2013, as chamadas são processadas pela ordem inversa do previsto. Por exemplo, o seguinte exemplo de código XML inclui várias chamadas de procedimento armazenado num 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 de < sincronização > é o primeiro que é executado.Causa
BizTalk Adapter para DB2 armazena os registos na < sincronização > bloqueiam numa pilha que é executada pela ordem inversa. Este comportamento tem sido uma parte do BizTalk Adapter para DB2 desde o Host Integration Server 2006.
Resolução
Informações de actualização cumulativa
A correcção que resolve este problema está incluída em 2 de actualização cumulativa para o Host Integration Server 2013.
Solução alternativa
Para executar SQL consultas ou procedimento armazenado chama pela ordem listada, coloque cada consulta ou armazenados chamada de procedimento no seu próprio bloco < sincronização >, conforme o exemplo seguinte:
<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> Nota Quando colocar cada consulta ou chamada de procedimento no seu próprio bloco < sincronização > armazenado e uma das consultas ou procedimento armazenado chama falhar por qualquer razão, receber actualizações incompletas na base de dados DB2 porque cada instrução é processada na sua própria transacção.Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais informações
Depois de aplicar esta actualização, o BizTalk Adapter para DB2 processa cada consulta SQL e chamada de procedimento armazenado que está contida num bloco < sincronização > pela ordem em que está listado no ficheiro XML de acompanhamento.