Recently I’m been facing issues inside OSB (Oracle Service Bus) as one of the data sources are constantly filling a log with the following error:


Invoke JCA outbound service failed with application error


Remote JDBC disabled
com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/df67_stock_order_from_RMS/resource/wsdl/df67_swl_sub_stock_order [ df67_swl_sub_stock_order_ptt::insert(ZDf67TransferHeaderStgCollection) ] – WSIF JCA Execute of operation ‘insert’ failed due to: Could not create/access the TopLink Session.
This session is used to connect to the datastore.
Caused by java.lang.UnsupportedOperationException: Remote JDBC disabled.
; nested exception is:
BINDING.JCA-11622
Could not create/access the TopLink Session.
This session is used to connect to the datastore.
Caused by java.lang.UnsupportedOperationException: Remote JDBC disabled.

Quick search on Google will offer the following as a solution for that issue:

edit setDomainEnv.cmd and change “set WLS_JDBC_REMOTE_ENABLED=-Dweblogic.jdbc.remoteEnabled=true”

As is very often a case, without knowing what is going on, and even more importantly how something is working under the hood, it’ll usually won’t work to blindly implement solutions that resolve different issue, but only look like it’s your case, and sometimes it’s very dangerous too implement “solutions” found on the web.

In this case, I have two WebLogic VMs, and clustered domains.

On top of WebLogic, Oracle Service Bus has been installed for integration purposes.

Main purpose of Oracle Service Bus is to provide JMS service for integrating various separate systems/web services.

Problem arise when one of the target databases (Oracle in this case) have been upgraded.

In this case, problem seems to be more complex as some of the messages can reach the target, while some of that were failing.

As connection pool has been defined for that particular database, it’s almost immediately clear for me what is going on.

Although my colleagues attempt to restart one managed server at time, the error still appear in the log file.

Problem is that, due to connection pool in place, not all “dirty” connections have been cleared.

When you have a managed server cluster, it is very important to clear all connections which means either by deleting connections from the database side, or much better, to shutdown and restart all managed servers in cluster at once (not sequentially, one at the time).

After shutting down all managed servers in cluster and starting them up again, there are no more errors in log, and all messages can reach the target.


Comments

There are no comments yet. Why not start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.