maandag 9 maart 2009

Endpoint in Oracle ESB shows no more input

Have you ever had that problem where suddenly an deployed ESB shows no more input fields when you go to its endpoint? Well I had!

Perhaps I should first provide you with the setup. And its a very simple one.

I have a database adapter which returns a number of values. Then there is also an Routing Service which provides the adapter with its input and output. All calls to de database adapter must go through this Routing Services.

Now I suddenly ran into the problem that no more values were returned when the service was called with proper input. So I went to check the endpoint of the routing service in the esb console. I found out it specified no input fields. So when I checked the endpoint of the database adapter itself, it did show input fields. Weird... So probably the mapping between the input of the routing service and the adapter is faulty. Right?

Wrong.. 

Turns out someone edited the database table on which I was querying... (talk about governance)

So actually the mapping between the database output and the routing service was wrong. But this doesnt show at first in JDeveloper because its reads from its local wsdl. So i regenerated the wsdl and then the error in the mapping showed up. Of course now it was easily fixable.

The real issue here is that when such a thing happens, no errors of any kind appear. Not in the console and not in the logs. And because the input isn't shown in the routing service one easily jumps to the conclusion something must be wrong with the input.

But what probably happens is that ESB checks all the mappings when you click the endpoint, not just the input mapping.

So it is always a wize thing to regenerate the wsdl before you go on you ESB bugfixing endeavours.

Hopes this helps you identify a problem a bit faster...

Geen opmerkingen:

Een reactie posten