技术文章 - CS315408

在 Windchill PDMLink 11.0 中使用 JMeter 进行负载测试时出现 Oracle 死锁

已修改: 27-Dec-2022   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • Windchill PDMLink 11.0

说明

  • 使用 JMeter 进行负载测试时出现 Oracle 死锁
  • 第一届会议查询:
SELECT 'wt.shadowLink.ShadowLink' classnameA2A2,A0.idA2A2 FROM ShadowLink A0 WHERE (((idA3A5 = :1 ) AND (idA3B5 = :2 ))) 进行更新
  • 第一个会话堆栈:
“PublisherQueueCREOAQ3.PollingThread”Id=80 prio=5 RUNNABLE(本机)
封锁 (cnt): 1900;等待 (cnt): 1635
CPU 纳米:172652704548;用户纳米:159450000000;分配的字节数:272475464888
方法上下文:4eihxx7k;k1qmv1wl;42680;98bw3f;135053;数据库会话:164
上下文使用的 1 个 CPU 的百分比:3.7154696021089366 (156385017/4209024262);按上下文分配的字节数:341933408
在 java.net.SocketInputStream.socketRead0(本机方法)
在 java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
在 java.net.SocketInputStream.read(SocketInputStream.java:171)
在 java.net.SocketInputStream.read(SocketInputStream.java:141)
在 oracle.net.ns.Packet.receive(Packet.java:311)
在 oracle.net.ns.DataPacket.receive(DataPacket.java:105)
在 oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:305)
在 oracle.net.ns.NetInputStream.read(NetInputStream.java:249)
在 oracle.net.ns.NetInputStream.read(NetInputStream.java:171)
在 oracle.net.ns.NetInputStream.read(NetInputStream.java:89)
在 oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
在 oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
在 oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:426)
在 oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:390)
在 oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
在 oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
在 oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
在 oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
在 oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe (T4CPreparedStatement.java:776)
在 oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
在 oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
在 oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
在 oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
- 锁定 oracle.jdbc.driver.T4CConnection@6b461bd1
在 oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
在 wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:582)
在 wt.pds.AbstractResultCursor.executeQuery(AbstractResultCursor.java:540)
在 wt.pds.BasicResultCursor.getNextResultSet(BasicResultCursor.java:282)
在 wt.pds.BasicResultCursor.advance(BasicResultCursor.java:234)
在 wt.pds.BasicResultCursor.next(BasicResultCursor.java:82)
在 wt.pds.SQLDatabasePds.query(SQLDatabasePds.java:837)
在 wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:1076)
在 wt.fc.StandardPersistenceManager._query(StandardPersistenceManager.java:1977)
在 wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1929)
在 wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1459)
在 wt.fc.batch.BatchSpecificationUtilities.queryTargetKeys(BatchSpecificationUtilities.java:89)
在 wt.fc.StandardPersistenceManager.execute(StandardPersistenceManager.java:1605)
在 wt.shadowLink.ShadowLinkHelper.deleteSecondaryChunk(ShadowLinkHelper.java:679)
在 wt.shadowLink.ShadowLinkHelper.deleteSecondary(ShadowLinkHelper.java:626)
在 wt.shadow.StandardShadowCacheManager.deleteSecondary(StandardShadowCacheManager.java:2212)
在 sun.reflect.GeneratedMethodAccessor477.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
在 com.sun.proxy.$Proxy98.deleteSecondary(未知来源)
在 wt.synch.ShadowServiceUtility.deleteSecondary(ShadowServiceUtility.java:196)
在 wt.synch.UwgmChangeTrackerDelegate.processTrackingObjects (UwgmChangeTrackerDelegate.java:90)
在 wt.synch.StandardCacheSynchronizationService$CacheSynchServiceTransactionListener.finishTransaction(StandardCacheSynchronizationService.java:438)
在 wt.pom.TransactionManager$FinishTransactionListener.fire(TransactionManager.java:1566)
在 wt.pom.TransactionManager.fireTransactionListener(TransactionManager.java:1526)
在 wt.pom.TransactionManager.finishTransaction(TransactionManager.java:488)
在 wt.pom.TransactionManager.commitTransaction(TransactionManager.java:436)
在 wt.pom.BasicTransactionMonitor.commitTransaction(BasicTransactionMonitor.java:64)
在 wt.pom.PersistentObjectManager.commitTransaction(PersistentObjectManager.java:404)
在 wt.pom.Transaction.commit(Transaction.java:725)
在 wt.vc.baseline.BaselineOperation.executeTransaction(BaselineOperation.java:102)
在 wt.vc.baseline.BaselineOperation.executeLockingTransaction (BaselineOperation.java:55)
在 wt.vc.baseline.StandardBaselineService.removeFromBaseline(StandardBaselineService.java:698)
在 sun.reflect.GeneratedMethodAccessor476.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
在 com.sun.proxy.$Proxy103.removeFromBaseline(未知来源)
在 wt.epm.workspaces.EPMStandardWorkspaceManager.removeFromWorkspace(EPMStandardWorkspaceManager.java:624)
在 sun.reflect.GeneratedMethodAccessor475.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
在 com.sun.proxy.$Proxy93.removeFromWorkspace(未知来源)
在 com.ptc.wvs.server.publish.WildfireDownload.removeObjectsFromWorkspace(WildfireDownload.java:1859)
在 com.ptc.wvs.server.publish.WildfireDownload.removeUnassociatedObjectsFromWorkspace (WildfireDownload.java:1767)
在 com.ptc.wvs.server.publish.WildfireDownload.destroyWorkspace(WildfireDownload.java:1718)
在 com.ptc.wvs.server.publish.WildfireDownload.destroyWorkspace(WildfireDownload.java:1567)
在 com.ptc.wvs.server.publish.WindchillAccessibleCadConvert.deleteTempWorkspace(WindchillAccessibleCadConvert.java:827)
在 com.ptc.wvs.server.publish.CadConvertPROE.doComponentConversion(CadConvertPROE.java:639)
在 com.ptc.wvs.server.publish.PublishJob.publishComponent(PublishJob.java:1505)
在 com.ptc.wvs.server.publish.PublishJob.publishObject(PublishJob.java:1323)
在 com.ptc.wvs.server.publish.PublishJob.executePublishJob(PublishJob.java:1113)
在 com.ptc.wvs.server.publish.PublishJob.processJob(PublishJob.java:838)
在 com.ptc.wvs.server.publish.WVSProcessingJob.doMyJob(WVSProcessingJob.java:564)
在 com.ptc.wvs.server.publish.WVSProcessingJob.doJobInternal(WVSProcessingJob.java:525)
在 com.ptc.wvs.server.publish.WVSProcessingJob.doJob(WVSProcessingJob.java:495)
在 sun.reflect.GeneratedMethodAccessor428.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.queue.QueueEntry.execute(QueueEntry.java:231)
在 wt.queue.ProcessingQueue.execEntry(ProcessingQueue.java:306)
在 wt.queue.ProcessingQueue.execEntries(ProcessingQueue.java:892)
在 wt.queue.PollingQueueThread.run(PollingQueueThread.java:99)
  • 第二届会议查询:
SELECT A0.idA2A2,A0.updateCountA2 FROM EPMCheckpoint A0 WHERE ((A0.idA2A2 = :1 )) FOR UPDATE
  • 第二个会话堆栈:
“ajp-nio-127.0.0.1-8011-exec-13” Id=1632 daemon prio=5 RUNNABLE(本机)
阻止 (cnt): 1472;等待 (cnt): 8269
CPU 纳米:104327307687;用户纳米:97500000000;分配的字节数:97490922088
Servlet请求:4eihxx7k;k1qmxch5;44729;ag2nhz;175470;方法上下文:4eihxx7k;k1qmxch5;44729;ag2nhz;175471;数据库会话:49
请求使用的 1 个 CPU 的百分比:5.693742581695625 (305174009/5359813947);按请求分配的字节数:225394664
在 java.net.SocketInputStream.socketRead0(本机方法)
在 java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
在 java.net.SocketInputStream.read(SocketInputStream.java:171)
在 java.net.SocketInputStream.read(SocketInputStream.java:141)
在 wt.util.WrappedSocket$Input.read(WrappedSocket.java:379)
在 java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
在 java.io.BufferedInputStream.read(BufferedInputStream.java:265)
- 锁定 java.io.BufferedInputStream@46812b6f
在 java.io.DataInputStream.readByte(DataInputStream.java:265)
在 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:222)
在 sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
在 com.sun.jmx.remote.internal.PRef.invoke(未知来源)
在 javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(未知来源)
在 javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1020)
在 javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:298)
在 com.sun.proxy.$Proxy342.getAttributesFromAllClusterMethodServers(未知来源)
在 wt.util.jmx.GetClusterStacks.outputClusterStacks(GetClusterStacks.java:75)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.pds.SQLDatabasePds.handleSQLException (SQLDatabasePds.java:1222)
在 wt.pds.SQLDatabasePds.handleException(SQLDatabasePds.java:1016)
在 wt.pds.SQLDatabasePds.query(SQLDatabasePds.java:874)
在 wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:1076)
在 wt.pom.PersistentObjectManager.query(PersistentObjectManager.java:985)
在 wt.fc.StandardPersistenceManager._query(StandardPersistenceManager.java:1972)
在 wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1465)
在 wt.fc.StandardPersistenceManager.query(StandardPersistenceManager.java:1123)
在 wt.fc.collections.RefreshHelper$LockRefresh.doFirstPass(RefreshHelper.java:1285)
在 wt.fc.collections.RefreshHelper$Refresh.refresh(RefreshHelper.java:589)
在 wt.fc.collections.RefreshHelper$LockRefresh.refresh(RefreshHelper.java:1228)
在 wt.fc.collections.RefreshHelper.refresh(RefreshHelper.java:146)
在 wt.fc.collections.StandardCollectionsManager.refresh(StandardCollectionsManager.java:80)
在 sun.reflect.GeneratedMethodAccessor229.invoke(未知来源)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 wt.services.ServiceFactory$ServerInvocationHandler.invoke(ServiceFactory.java:399)
在 com.sun.proxy.$Proxy54.refresh(未知来源)
在 wt.fc.StandardPersistenceManager.validateCollection(StandardPersistenceManager.java:3288)
在 wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1842)
在 wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1941)
在 wt.fc.StandardPersistenceManager.update(StandardPersistenceManager.java:1729)
在 wt.vc.baseline.StandardBaselineService$PostDeleteListener.finishTransaction(StandardBaselineService.java:232)
在 wt.pom.TransactionManager$FinishTransactionListener.fire(TransactionManager.java:1566)
在 wt.pom.TransactionManager.fireTransactionListener(TransactionManager.java:1526)
在 wt.pom.TransactionManager.finishTransaction(TransactionManager.java:488)
在 wt.pom.TransactionManager.commitTransaction(TransactionManager.java:436)
在 wt.pom.BasicTransactionMonitor.commitTransaction(BasicTransactionMonitor.java:64)
在 wt.pom.PersistentObjectManager.commitTransaction(PersistentObjectManager.java:404)
在 wt.pom.Transaction.commit(Transaction.java:725)
在 wt.dataops.delete.DeleteTask._run(DeleteTask.java:293)
在 com.ptc.core.task.AtomicTask.run(AtomicTask.java:58)
在 com.ptc.core.task.Task.execute(Task.java:262)
在 com.ptc.core.task.StandardTaskManager.runTask(StandardTaskManager.java:183)

这是文章 315408 的 PDF 版本,可能已过期。最新版本 CS315408