Article - CS393825

"Workflow" is getting stuck with the error: "java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource" in Windchill PDMLink

Modified: 01-Dec-2025   


Applies To

  • Windchill PDMLink 11.2 to 13.1

Description

  • Workflow is getting stuck with a deadlock error
  • For Oracle DB, the following will be the deadlock error
Nested exception is: wt.pom.DatastoreException: A SQL error has occurred for the statement "SELECT A0.idA2A2,A0.updateCountA2 
FROM ApplicationData A0
 WHERE ((A0.idA2A2 IN (SELECT /*+ CARDINALITY(wtot 800) */ * FROM TABLE(cast(? as PDMLINK.TABLE_OF_NUMBER)) wtot WHERE (ROWNUM > 0) AND (column_value IS NOT NULL)))) FOR UPDATE; 
Bind Parameters=[wt.query.ArrayExpression{[xxxx, xxxxx, xxxxx, ....., xxxxx, xxxxx, xxxxx, xxxxxx, xxxxxx, xxxxxx, xxxxxx, xxxxx, xxxxxxx, xxxxx, xxxxxx]}]". Database system message follows:
Nested exception is: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource

	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:553)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
	at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
	at wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:577)
	at wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:544)
	at wt.pds.BasicResultCursor.getNextResultSet(BasicResultCursor.java:282)
	at wt.pds.BasicResultCursor.advance(BasicResultCursor.java:234)
	at wt.pds.BasicResultCursor.next(BasicResultCursor.java:82)
	at wt.pds.SQLDatabasePds.query(SQLDatabasePds.java:880)
	at wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:1077)
	at wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:986)
	at wt.fc.StandardPersistenceManager._query(StandardPersistenceManager.java:1972)
	at wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1465)
	at wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1123)
	at wt.fc.collections.RefreshHelper$LockRefresh.doFirstPass(RefreshHelper.java:1364)
	at wt.fc.collections.RefreshHelper$Refresh.refresh(RefreshHelper.java:661)
	at wt.fc.collections.RefreshHelper$LockRefresh.refresh(RefreshHelper.java:1307)
	at wt.fc.collections.RefreshHelper.refresh(RefreshHelper.java:144)
	at wt.fc.collections.StandardCollectionsManager.refresh(StandardCollectionsManager.java:80)
	at jdk.internal.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
	at com.sun.proxy.$Proxy64.refresh(Unknown Source)
	at wt.fc.StandardPersistenceManager.validateCollection(StandardPersistenceManager.java:3288)
	at wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1842)
	at wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1941)
	at com.ptc.wvs.server.util.RepUpdateUtils.updateRepresentationsOf(RepUpdateUtils.java:1344)
	at com.ptc.wvs.server.publish.StandardPublishService.processRepresentationUpdateForTargets(StandardPublishService.java:2102)
	at com.ptc.wvs.server.publish.StandardPublishService.processRepresentationUpdate(StandardPublishService.java:1881)
	at com.ptc.wvs.server.publish.StandardPublishService$RepresentableEventListener.notifyVetoableMultiObjectEvent(StandardPublishService.java:773)
	at wt.events.StandardKeyedEventBranch.intDispatchEvent(StandardKeyedEventBranch.java:306)
	at wt.events.StandardKeyedEventBranch.dispatchVetoableMultiObjectEvent(StandardKeyedEventBranch.java:268)
	at wt.events.StandardKeyedEventDispatcher.intDispatchEvent(StandardKeyedEventDispatcher.java:306)
	at wt.events.StandardKeyedEventDispatcher.dispatchVetoableMultiObjectEvent(StandardKeyedEventDispatcher.java:244)
	at wt.services.StandardManagerService.intDispatchVetoableEvent(StandardManagerService.java:412)
	at wt.services.StandardManagerService.dispatchVetoableMultiObjectEvent(StandardManagerService.java:314)
	at wt.lifecycle.StandardLifeCycleService.dispatchVetoableMultiObjectEvent(StandardLifeCycleService.java:623)
	at wt.lifecycle.StandardLifeCycleService.doSetState(StandardLifeCycleService.java:16114)
	at wt.lifecycle.StandardLifeCycleService.setState(StandardLifeCycleService.java:8159)
	at wt.maturity.AbstractTransitionHandler.transitionTargets(AbstractTransitionHandler.java:104)
	at wt.maturity.TransitionHandlerFactory.transitionTargets(TransitionHandlerFactory.java:81)
	at wt.workflow.expr.WfExpression58124093387.executemethod_1(WfExpression58124093387.java:75)
	at jdk.internal.reflect.GeneratedMethodAccessor1434.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at wt.workflow.definer.WfExpression.invokeByReflection(WfExpression.java:1464)
	at wt.workflow.definer.WfExpression.executeTransition(WfExpression.java:1407)
	at wt.workflow.definer.WfExpression.execute(WfExpression.java:523)
	at wt.workflow.robots.WfExpressionRobot.run(WfExpressionRobot.java:162)
	at wt.workflow.engine.StandardWfEngineService.runRobot(StandardWfEngineService.java:1184)
	at jdk.internal.reflect.GeneratedMethodAccessor324.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at wt.queue.QueueEntry.execute(QueueEntry.java:231)
	at wt.queue.ProcessingQueue.execEntry(ProcessingQueue.java:312)
	at wt.queue.ProcessingQueue.execEntries(ProcessingQueue.java:898)
	at wt.queue.PollingQueueThread.run(PollingQueueThread.java:102)
Caused by: Error : 60, Position : 39, 
Sql = SELECT A0.idA2A2,A0.updateCountA2 
FROM ApplicationData A0 
WHERE ((A0.idA2A2 IN (SELECT /*+ CARDINALITY(wtot 800) */ * FROM TABLE(cast(:1  as PDMLINK.TABLE_OF_NUMBER)) wtot WHERE (ROWNUM > 0) AND (column_value IS NOT NULL)))) FOR UPDATE, 
OriginalSql = SELECT A0.idA2A2,A0.updateCountA2 
FROM ApplicationData A0 
WHERE ((A0.idA2A2 IN (SELECT /*+ CARDINALITY(wtot 800) */ * FROM TABLE(cast(? as PDMLINK.TABLE_OF_NUMBER)) wtot WHERE (ROWNUM > 0) AND (column_value IS NOT NULL)))) FOR UPDATE, 
Error Msg = ORA-00060: deadlock detected while waiting for resource

	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
	... 69 more
  • For SQL Server DB, , the following will be the deadlock error
Nested exception is: com.microsoft.sqlserver.jdbc.SQLServerException: An error occurred during the current command (Done status 0). Transaction (Process ID XXXX) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer$FetchBufferTokenHandler.onDone(SQLServerResultSet.java:5456)
	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:103)
	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:42)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:5559)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1821)
	at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:1079)
	at wt.pds.BasicResultCursor.getNextResultSet(BasicResultCursor.java:299)
	at wt.pds.BasicResultCursor.advance(BasicResultCursor.java:235)
	at wt.pds.BasicResultCursor.next(BasicResultCursor.java:83)
	at wt.pds.SQLDatabasePds.query(SQLDatabasePds.java:880)
	at wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:1077)
	at wt.fc.StandardPersistenceManager._query(StandardPersistenceManager.java:2052)
	at wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:2004)
	at wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1514)
	at wt.fc.collections.RefreshHelper$LockRefresh.doLockPass(RefreshHelper.java:1343)
	at wt.fc.collections.RefreshHelper$LockRefresh.refresh(RefreshHelper.java:1304)
	at wt.fc.collections.RefreshHelper.refresh(RefreshHelper.java:144)
	at wt.fc.collections.StandardCollectionsManager.refresh(StandardCollectionsManager.java:81)
	at jdk.internal.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
	at jdk.proxy2/jdk.proxy2.$Proxy82.refresh(Unknown Source)
	at wt.fc.StandardPersistenceManager.validateCollection(StandardPersistenceManager.java:3363)
	at wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1912)
	at wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:2016)
	at com.ptc.wvs.server.util.RepUpdateUtils.updateRepresentationsOf(RepUpdateUtils.java:1373)
	at com.ptc.wvs.server.publish.StandardPublishService.processRepresentationUpdateForTargets(StandardPublishService.java:2128)
	at com.ptc.wvs.server.publish.StandardPublishService.processRepresentationUpdate(StandardPublishService.java:1907)
	at com.ptc.wvs.server.publish.StandardPublishService$RepresentableEventListener.notifyVetoableMultiObjectEvent(StandardPublishService.java:776)
	at wt.events.StandardKeyedEventBranch.intDispatchEvent(StandardKeyedEventBranch.java:306)
	at wt.events.StandardKeyedEventBranch.dispatchVetoableMultiObjectEvent(StandardKeyedEventBranch.java:268)
	at wt.events.StandardKeyedEventDispatcher.intDispatchEvent(StandardKeyedEventDispatcher.java:306)
	at wt.events.StandardKeyedEventDispatcher.dispatchVetoableMultiObjectEvent(StandardKeyedEventDispatcher.java:244)
	at wt.services.StandardManagerService.intDispatchVetoableEvent(StandardManagerService.java:413)
	at wt.services.StandardManagerService.dispatchVetoableMultiObjectEvent(StandardManagerService.java:315)
	at wt.lifecycle.StandardLifeCycleService.dispatchVetoableMultiObjectEvent(StandardLifeCycleService.java:624)
	at wt.lifecycle.StandardLifeCycleService.doSetState(StandardLifeCycleService.java:16178)
	at wt.lifecycle.StandardLifeCycleService.setState(StandardLifeCycleService.java:8144)
	at wt.maturity.StandardMaturityService.setState(StandardMaturityService.java:1210)
	at wt.maturity.StandardMaturityService.promoteTargets(StandardMaturityService.java:1128)
	at wt.workflow.expr.WfExpression270174284.executemethod_1(WfExpression270174284.java:67)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at wt.workflow.definer.WfExpression.invokeByReflection(WfExpression.java:1464)
	at wt.workflow.definer.WfExpression.executeRouter(WfExpression.java:1621)
	at wt.workflow.definer.WfExpression.execute(WfExpression.java:520)
	at wt.workflow.engine.WfConnector.evaluateRouterExpression(WfConnector.java:647)
	at wt.workflow.engine.WfConnector.fire(WfConnector.java:377)
	at wt.workflow.engine.WfConnector.fireInput(WfConnector.java:341)
	at wt.workflow.engine.ActivityConnectorLink.receiveEvent(ActivityConnectorLink.java:152)
	at wt.workflow.engine.StandardWfEngineService.propagateEvent(StandardWfEngineService.java:1137)
	at jdk.internal.reflect.GeneratedMethodAccessor765.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at wt.queue.QueueEntry.execute(QueueEntry.java:267)
	at wt.queue.QueueRunnable.run(QueueRunnable.java:184)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

 


 

This is a printer-friendly version of Article 393825 and may be out of date. For the latest version click CS393825