Problem in invoking the Adapter service from the Java servic

Hello Friends,

We are having a weird problem which is taking a lot of our time.

We have a simple Adapter service which has been configured for a Store Procedure. When I test the Adapter service passing hard coded parameters OR by passing values in the POP up IData doc , I am able to get the desired result.

My problem starts when I am invoking the Adapter service from the Java Class (Java service ). In the Java service I am filling up the pipeline with the relevant IData document and then I invoke the Adapter service.The adapter service just does not function!!!

What I have observed is that if I let the Adapter service have the hard coded data than there is ‘No issue’. i.e in other words if I invoke the adapter service from the java service with hard coded input parameters ALREADY existing in the adapter service than everything is fine. But the moment I try to pass the values from the Java client, it Fail!!!

I have checked my PIPELINE just before invoking the Adapter service and it does contain the relevant IData doc which will act as an input for the adapter service.

Am i missing something?

The error that I get is :

com.wm.pkg.art.error.DetailedServiceException: [ART.117.4002] Adapter Runtime (A
dapter Service): Unable to invoke adapter service view.wfContacts:getWFContactsF
orSORJDBC.
[ART.114.505] Error while invoking adapter service com.wm.adapter.wmjdbc.service
s.StoredProcedure.
java.lang.String
at com.wm.pkg.art.ns.AdapterServiceNode.invokeService(AdapterServiceNode

However this error is misleading !!!

I am able to invoke the Adapter service from the java Client if I have the hard coded data in the Adapter service. So the problem seems to be somewhere in passing the data from Java Service to the Adapter service OR maybe in the way I am invoking the Adapter service (Service.doInvoke(
“abc.highland”, “getAlldetails”, TheIDataObj ) )

Any clue…?

Thanks in advance,

Milan

I bet something in the pipeline you are passing to the adapters service is wrong.

Why don’t you try invoking a flow service instead of the adapter service, and record the pipeline in the flow service (i.e. savePipelineToFile). Then play the pileline back and make sure it looks right (i.e. restorePipelineFromFile). Call the adapter service from the flow service.

Once you get the pipeline straightened change the Java service to call the adapter directly again…

-Chris.

Hello, i have a question about adapters and database:
I have an operation to do on a line in my table in a database, and i wanna be sure that no other application have access to that line before im done with it, like blocking it, is start/commit transaction allow me to do that, or there is another way??
Thank you

Go for Local Txn if this operation is on one DB. Refer JDBC Adapter Guide and look for Transaction Management sections.