Solving “javax.naming.NameNotFoundException: Unable to resolve ‘jdbc.SOAAppUserDataSource’ “ with Oracle SOA Suite 11g Adapter Services

I ran into this rather “stupid user error” a couple of times already. It’s very easy to solve, however it’s also very easy to do it wrong when configuring Oracle SOA Suite 11g Adapter services through the WebLogic Console.

I hope this blog entry will help new users when running into this problem:

You get the following error in the SOA Server Log when testing your Adapter service:

Exception occured when binding was invoked.
Exception occured during invocation of JCA binding: “JCA Binding execute of Reference operation ‘insert’ failed due to: Could not create/access the TopLink Session.
This session is used to connect to the datastore.
Caused by Exception [TOPLINK-7060] (Oracle TopLink – 11g Release 1 (11.1.1.2.0) (Build 091016)): oracle.toplink.exceptions.ValidationException
Exception Description: Cannot acquire data source [jdbc/SOAAppUserDataSource].
Internal Exception: javax.naming.NameNotFoundException: Unable to resolve ‘jdbc.SOAAppUserDataSource’. Resolved ‘jdbc’; remaining name ‘SOAAppUserDataSource’.

The invoked JCA adapter raised a resource exception.

 

The setup of the Adapter Connection Factory configuration

tmp

as well as the corresponding DataSource (i.e. jdbc/SoaAppUserDataSource) seems to be correct at first sight.

tmp[13] 

But you might have forgotten to select the server, on which the JDBC data source should be deployed when adding the DataSource in the first place. This is possible when clicking the Finish button too early, before the last step which would ask to select a target server!

The missing target information for the SoaAppUserDataSource is clearly shown in the summary page of the JDBC Data Sources.

tmp[9]

To fix that, just edit the Data Source, click on the Targets tab and select the servers or cluster it should be deployed on (i.e. soa_server1 in my case):

tmp[11]

After that the error should disappear!

I think it would be good to get an error/warning on the console when trying to add a DataSource without selecting a target server!