Thursday, May 16, 2013

BINDING.JCA-11624 in WebLogic Server 11g adapters

Problem:

We have an OSB project that polls from an Oracle database table via the JCA DB Adapter. If you enable the project, we receive the following error in the osb_server1.log file:

####<May 16, 2013 6:17:37 AM EDT> <Info> <JCA_FRAMEWORK_AND_ADAPTER> <uslx377> <osb_server2> <[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1368699457572> <BEA-000000> <<oracle.tip.adapter.db.DBResourceAdapter endpointActivation> Activating: oracle.tip.adapter.db.DBActivationSpec@210c76da
>
####<May 16, 2013 6:17:37 AM EDT> <Info> <JCA_FRAMEWORK_AND_ADAPTER> <uslx377> <osb_server2> <[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1368699457572> <BEA-000000> <<oracle.tip.adapter.db.DBResourceAdapter endpointActivation> Creating endpoint with XAResource
>
####<May 16, 2013 6:17:37 AM EDT> <Info> <JCA_FRAMEWORK_AND_ADAPTER> <uslx377> <osb_server2> <[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1368699457574> <BEA-000000> <<oracle.tip.adapter.db.DBEndpoint start> Kicked off 1 threads.
>
####<May 16, 2013 6:17:37 AM EDT> <Info> <JCA_FRAMEWORK_AND_ADAPTER> <uslx377> <osb_server2> <[ACTIVE] ExecuteThread: '32' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1368699457574> <BEA-000000> <<oracle.tip.adapter.db.InboundWork handleException> BINDING.JCA-11624
DBActivationSpec Polling Exception.
Query name: [PollEBSSelect], Descriptor name: [PollEBS.XxInvOnhandp3Batches]. Polling the database for events failed on this iteration.
Caused by javax.resource.spi.IllegalStateException: [Connector:199176]Unable to execute allocateConnection(...) on ConnectionManager. A stale Connection Factory or Connection Handle may be used. The connection pool associated with it has already been destroyed. Try to re-lookup Connection Factory eis/DB/EBS from JNDI and get a new Connection Handle..
  This exception is considered not retriable, likely due to a modelling mistake.  This polling process will shut down, unless the fault is related to processing a particular row, in which case polling will continue but the row will be rejected (faulted).
>

Solution:

I can't explain what the root cause of this, but it's a problem that happens in many adapters - DB Adapter, FTP Adapter, File Adapter, and so forth.

1. Log in to WebLogic Server Administration Console.

2. Navigate to Deployments > DbAdapter > Configuration > Outbound Connection Pools.

3. Expand javax.resource.cci.ConnectionFactory.

4. Lock & Edit your session, and delete the offending connection factory; e.g. eis/DB/EBS

5. Activate your changes, and update your deployment plan.

6. Recreate the connection factory.

7. If this does not work, then recreate the connection factory with a different name.


Application versions:
  • Oracle WebLogic Server 11g (10.3.5+)

No comments: