アーティクル - 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 ))) FOR UPDATE
  • 最初のセッション スタック:
"PublisherQueueCROAQ3.PollingThread" Id=80 prio=5 RUNNABLE (ネイティブ)
ブロックされた (cnt): 1900;待機 (連続): 1635
CPU ナノ: 172652704548;ユーザーナノ: 159450000000;割り当てられたバイト: 272475464888
メソッドのコンテキスト: 4eihxx7k;k1qmv1wl;42680;98bw3f;135053; DB セッション: 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) で
  • 2 番目のセッション クエリ:
SELECT A0.idA2A2,A0.updateCountA2 FROM EPMCheckpoint A0 WHERE ((A0.idA2A2 = :1 )) FOR UPDATE
  • 2 番目のセッション スタック:
"ajp-nio-127.0.0.1-8011-exec-13" Id=1632 デーモン prio=5 RUNNABLE (ネイティブ)
ブロック (連続): 1472;待機 (連続): 8269
CPU ナノ: 104327307687;ユーザーナノ: 97500000000;割り当てられたバイト: 97490922088
サーブレット要求: 4eihxx7k;k1qmxch5;44729;ag2nhz;175470;メソッドのコンテキスト: 4eihxx7k;k1qmxch5;44729;ag2nhz;175471; DB セッション: 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) で

最新バージョンはこちらを参照ください CS315408