Erro ao receber dados do WCF-Oracle: COMMIT is not allowed in a subordinate session
Depois dos artigos anteriores sobre WCF-Oracle, conseguimos configurar corretamente e estamos preparados para receber os dados.
Porém ao ligar a porta, a orchestration não sobe e descobrimos esse Warning no Event Viewer:
The adapter "WCF-ORACLE" raised an error message. Details "Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-02089: COMMIT is not allowed in a subordinate session.
ORA-06512: at "Usuário.Package", line 182
Se você sentir a necessidade de arrancar os cabelos, como eu, levante-se da cadeira e vá tomar um café, rs.
Causa:
Provavelmente na procedure, existe um COMMIT, alterando o status de uma tabela por exemplo, e a porta do Biztalk está habilitada para usar a transação do adaptador, que é o valor default.
Solução:
Existem duas, na minha opnião a segunda é a mais fácil e é a que estou de fato usando:
- Tire o COMMIT da procedure e na coloque o update na propriedade PostPollStatement, que fica na aba Binding na categoria PollingReceive.
- Altere a propriedade UseAmbienteTransaction para False, essa propriedade fica na aba Binding na categoria Transaction.
Então nesse artigo, vimos como resolver o erro, de receber dados quando se tem um COMMIT dentro da procedure do ORACLE.
Até a próxima.
Seja o primeiro a comentar ;)
Postar um comentário