アーティクル - CS393825
Windchill PDMLink で「ワークフロー」がエラー「java.sql.SQLException: ORA-00060: リソース待機中にデッドロックが検出されました」で停止します
修正日: 01-Dec-2025
適用対象
- Windchill PDMLink 11.2 to 13.1
説明
- ワークフローがデッドロックエラーで停止する
- Oracle DBの場合、デッドロックエラーは次のようになります。
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- SQL Server DBの場合、次のようなデッドロックエラーが発生します。
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)
最新バージョンはこちらを参照ください CS393825