Communication Problem with Oracle Adapter (ODBC)


A long time ago I was registered in this blog, but as you could see I’ve never posted anything here. Often because of the total lack of time to do that.
It’s my intention from now on, to blog about unusual situations that we have as BizTalk consultants both in Portuguese and English.
As I act as a BizTalk consultant, beyond developing solutions, I found a lot of situations that for my experience I can solve, but some situations are so hard to solve, mainly when there’s a lack of documentation about.
Before last week, I was called to solve a problem in one of ITGROUP’s client, that I will omit the name for obvious reasons, with the old Oracle adapter (ODBC).
This adapter is really, really old. It exists since BizTalk 2004 and has a lot of problems. For some reason this client didn’t make the upgrade to a new and better adapter (WCF LOB Adapter), despite already having installed BizTalk 2006 R2 in your production environment.
What happened was that the BizTalk machines couldn’t establish any kind of communication with the Oracle through the adapter. The only thing that was logged in the Event Viewer was “RuntimeAgent: Error trapped in constructor: No connection could be made because the target machine actively refused it”.
We tried everything, ping, telnet, SQL Plus, etc… All the communication tests worked, but the adapter couldn’t communicate with Oracle.
We found an KB at the Microsoft site that detailed a procedure to alter the registry of the BizTalk machines that could be the cause of the problem. We also made some modifications on the folder of Oracle’s driver accord to some info that we had obtained in some forums, but nothing solved the problem.
We have to open a support at Microsoft to help us to solve this mistery.
After a few hours working with the Microsoft Enginner, he told us to add a key to the register of the Biztalk machines through some internal documentation:
The name of key is StartAgentSleep (DWORD) and the value proposed by him was 5000 (decimal).
This key causes a delay in the activation of the component RemotingService.exe. This component is used by the adapter and guarantees that it can be up before the communication attempt with Oracle.
Follow above the text extrated from the explanation of the Microsoft Engineer:
“BTS communicates with the runtimeagent through .Net remoting. The problem is that the default time sometime is not enough for the runtimeagent.exe to come online. This is why the error says the failure is in the constructor. Since runtimeagent could not come online, BTS throws the “No connection can be made….” error.
The registry value is for BTS to wait sometime for runtimeagent to come online before determining it is bad.”
After that, all the pending communications with Oracle were solved and we didn’t have any problem anymore.
I hope that you have enjoyed my first participation in this blog and case there’s somebody around there that still uses this adapter be benefited by.

See you.

4 Comentários:

Ruth Resende disse...

Parabens pelo post. Muito bom! Vc é o cara! E eu acredito que tenha muito para compartilhar com o resto de nós, pobres mortais... :P

Alessandro disse...

opa... obrigado, mas eu sou um reles mortal no blog de uma MVP não :)...

Edu Gomes disse...

Parabens mesmo. Acho importante até uma versao do post em ingles ja que não encontramos nada a respeito em lugar algum.

Alessandro disse...

opa... boa idéia mano... vou ver se consigo traduzir isto hoje.

Postar um comentário

BizTalk 360


Arquivo do blog