アーティクル - CS393825

Windchill PDMLink で「ワークフロー」がエラー「java.sql.SQLException: ORA-00060: リソース待機中にデッドロックが検出されました」で停止します

修正日: 01-Dec-2025   


注記:ここに記載されている情報は、お客様の利便性向上のため機械翻訳ソフトを使用しています。PTCは、ここに記載されている情報の翻訳の正確性について、一切の責任を負いませんので、ご了承ください。英語の原文を参照するには、こちら。この機械翻訳に関する詳細は、こちら。
お知らせいただき、ありがとうございます。この機械翻訳をレビューします。

適用対象

  • 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