My Oracle Support Banner

JDBC Deadlock in ORACLETIMEOUTTHREADPERVM and T4CCONNECTION when Using JDBC 11.2 with WebLogic 10.3 or 12.1 (Doc ID 1423425.1)

Last updated on FEBRUARY 03, 2019

Applies to:

JDBC - Version 11.2.0.2.0 to 11.2.0.3.0 [Release 11.2]
Oracle WebLogic Server - Version 10.3.4 to 12.1.2.0.0
Information in this document applies to any platform.

Symptoms


When using JDBC 11.2.0.2 from a WebLogic Server 10.3.4 application or JDBC 11.2.0.3 bundled with WebLogic Server 10.3.6.0, 12.1.1.0, and 12.1.2.0 , the following deadlock is generated:


DEADLOCK DETECTED:
==================

[deadlocked thread] [STUCK] ExecuteThread: '115' for queue: 'weblogic.kernel.Default (self-tuning)':
---------------------------------------------------------------------------------------------------
Thread '[STUCK] ExecuteThread: '115' for queue: 'weblogic.kernel.Default (self-tuning)'' is waiting to acquire lock 'oracle.jdbc.driver.OracleTimeoutThreadPerVM@163e11' that is held by thread 'OracleTimeoutPollingThread'

Stack trace:
------------
oracle.jdbc.driver.OracleTimeoutThreadPerVM.cancelTimeout(OracleTimeoutThreadPerVM.java:116)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1354)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657)
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:172)
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2594)
org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2494)
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2821)
org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:113)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:795)
sun.reflect.GeneratedMethodAccessor880.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
$Proxy3191.flush(Unknown Source)
sun.reflect.GeneratedMethodAccessor880.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
$Proxy3191.flush(Unknown Source)
com.att.bbnms.lightspeed.so.dao.AbstractFlowableDaoJpa.flush(AbstractFlowableDaoJpa.java:190)
com.att.bbnms.lightspeed.common.dao.DaoSupport.update(DaoSupport.java:113)
com.att.bbnms.lightspeed.so.dao.AbstractFlowableDaoJpa.update(AbstractFlowableDaoJpa.java:27)
sun.reflect.GeneratedMethodAccessor980.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
$Proxy3263.update(Unknown Source)
com.att.bbnms.lightspeed.workflow.mgr.WorkFlowManagerImpl.processMessage(WorkFlowManagerImpl.java:96)
sun.reflect.GeneratedMethodAccessor981.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
$Proxy3379.processMessage(Unknown Source)
com.att.bbnms.lightspeed.workflow.dispatch.BaseWorkflowRequestAction.execute(BaseWorkflowRequestAction.java:32)
com.att.bbnms.lightspeed.common.dispatch.DispatcherMdbServiceImpl.handleDispatchMessage(DispatcherMdbServiceImpl.java:154)
com.att.bbnms.lightspeed.common.dispatch.DispatcherMdbServiceImpl.executeMessage(DispatcherMdbServiceImpl.java:99)
sun.reflect.GeneratedMethodAccessor976.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
$Proxy3356.executeMessage(Unknown Source)
com.att.bbnms.lightspeed.common.dispatch.CommonDispatcherMdb.onMessage(CommonDispatcherMdb.java:55)
weblogic.ejb.container.internal.MDListener.execute(MDListener.java:519)
weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:424)
weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:326)
weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

[deadlocked thread] OracleTimeoutPollingThread:
----------------------------------------------
Thread 'OracleTimeoutPollingThread' is waiting to acquire lock 'oracle.jdbc.driver.T4CConnection@303d1a' that is held by thread '[STUCK] ExecuteThread: '115' for queue: 'weblogic.kernel.Default (self-tuning)''

Stack trace:
------------
oracle.jdbc.driver.PhysicalConnection.setUsable(PhysicalConnection.java:10908)
oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:121)
oracle.jdbc.driver.DatabaseError.createSqlException(DatabaseError.java:191)
oracle.jdbc.driver.DatabaseError.createSqlException(DatabaseError.java:258)
oracle.jdbc.driver.DatabaseError.createSqlException(DatabaseError.java:482)
oracle.jdbc.driver.T4CConnection.cancelOperationOnServer(T4CConnection.java:886)
oracle.jdbc.driver.OracleStatement.doCancel(OracleStatement.java:3296)
oracle.jdbc.driver.OracleStatement.cancel(OracleStatement.java:3266)
oracle.jdbc.driver.OracleTimeoutThreadPerVM.interruptIfAppropriate(OracleTimeoutThreadPerVM.java:170)
oracle.jdbc.driver.OracleTimeoutPollingThread.pollOnce(OracleTimeoutPollingThread.java:204)
oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.