Article - CS331829

Slow to delete WTPart with Date Effectivity in Windchill PDMLink

Modified: 09-Mar-2022   


Applies To

  • Windchill PDMLink 11.0 to 12.0

Description

  • Performance issue to delete a part
  • SQL below takes 40 seconds to execute every time
SELECT 'wt.effectivity.WTDatedEffectivity',A0.administrativeLockIsNull,A0.typeadministrativeLock,A0.classnamekeycreationReferenc,A0.idA3creationReference,A0.classnamekeydeletionReferenc,A0.idA3deletionReference,A0.classnamekeyeffContextRefere,A0.idA3effContextReference,A0.effTypeModifier,TO_CHAR(A0.endrange,'dd mm yyyy hh24:mi:ss'),TO_CHAR(A0.startrange,'dd mm yyyy hh24:mi:ss'),A0.classnamekeystandardTargetRe,A0.idA3standardTargetReference,A0.branchIdA3targetReference,A0.classnamekeytargetReference,TO_CHAR(A0.createStampA2,'dd mm yyyy hh24:mi:ss'),A0.markForDeleteA2,TO_CHAR(A0.modifyStampA2,'dd mm yyyy hh24:mi:ss'),A0.idA2A2,A0.updateCountA2,TO_CHAR(A0.updateStampA2,'dd mm yyyy hh24:mi:ss') 
FROM WTDatedEffectivity A0 
  WHERE ((A0.idA3effContextReference = :1 ))
  • Stack trace for above query:
"ajp-nio-127.0.0.1-8010-exec-237" Id=312176 RUNNABLE (in native)
      Blocked (cnt): 8113; Waited (cnt): 20694
  at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
  at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
  at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
  at sun.nio.ch.IOUtil.read(IOUtil.java:197)
  at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
  at oracle.net.nt.TimeoutSocketChannel.read(TimeoutSocketChannel.java:178)
  at oracle.net.ns.NSProtocolNIO.doSocketRead(NSProtocolNIO.java:544)
  at oracle.net.ns.NIOPacket.readHeader(NIOPacket.java:234)
  at oracle.net.ns.NIOPacket.readPacketFromSocketChannel(NIOPacket.java:174)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:122)
  at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:100)
  at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:86)
  at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:762)
  at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:427)
  at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:394)
  at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
  at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:253)
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:86)
  at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:765)
  at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:921)
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1099)
  at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
  at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1384)
  at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3687)
  at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
  at wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:582)
  at wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:540)
  at wt.pds.BasicResultCursor.getNextResultSet(BasicResultCursor.java:385)
  at wt.pds.BasicResultCursor.advance(BasicResultCursor.java:337)
  at wt.pds.BasicResultCursor.next(BasicResultCursor.java:132)
  at wt.pds.SQLDatabasePds.query(SQLDatabasePds.java:810)
  at wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:1076)
  at wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:985)
  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.eff.StandardEffService.expandFKs(StandardEffService.java:1807)
  at wt.eff.StandardEffService.checkIfEffFormExistForEffContext(StandardEffService.java:1599)
  at wt.eff.StandardEffService.access$200(StandardEffService.java:195)
  at wt.eff.StandardEffService$1.notifyVetoableMultiObjectEvent(StandardEffService.java:1417)
  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.fc.StandardPersistenceManager.dispatchVetoableEvent(StandardPersistenceManager.java:2976)
  at wt.fc.StandardPersistenceManager.dispatchVetoableEvent(StandardPersistenceManager.java:2959)
  at wt.fc.StandardPersistenceManager.remove(StandardPersistenceManager.java:2266)
  at wt.fc.StandardPersistenceManager.remove(StandardPersistenceManager.java:1764)
  at wt.fc.StandardPersistenceManager.delete(StandardPersistenceManager.java:851)
This is a printer-friendly version of Article 331829 and may be out of date. For the latest version click CS331829