技术文章 - CS221886

Windchill PDMLink 10.1 M040 中,在自定义代码中调用 wt.occurrence.StandardOccurrenceService.saveUsesOccurrenceAndData(UsesOccurrence occurrence, Vector occurrenceData) 以后方法服务器无响应

已修改: 03-Nov-2015   


适用于

  • Windchill PDMLink 10.1 M040

说明

  • 在自定义代码中调用 wt.occurrence.StandardOccurrenceService.saveUsesOccurrenceAndData(UsesOccurrence occurrence, Vector occurrenceData) 以后方法服务器无响应
  • 执行 jstat -gcutil 可以观察到有问题的方法服务器的 Eden Space 使用率为100%,但是 Survivor Space Old Gen 仍然有很多可用空间。例如
$ jstat -gcutil <pid> 1s
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
 11.44   8.12 100.00  55.07  82.55    103    3.042     0    0.000    3.042
 11.44   8.12 100.00  55.07  82.55    103    3.042     0    0.000    3.042
 11.44   8.12 100.00  55.07  82.55    103    3.042     0    0.000    3.042
  • ​jstack -F <pid> 有如下输出信息:
Thread 29396: (state = BLOCKED)
 - oracle.jdbc.driver.OracleSql.<init>(oracle.jdbc.driver.DBConversion) @bci=107, line=79 (Compiled frame)
 - oracle.jdbc.driver.OracleStatement.<init>(oracle.jdbc.driver.PhysicalConnection, int, int, int, int) @bci=321, line=810 (Compiled frame)
 - oracle.jdbc.driver.T4CStatement.<init>(oracle.jdbc.driver.PhysicalConnection, int, int) @bci=9, line=1314 (Compiled frame)
 - oracle.jdbc.driver.T4CDriverExtension.allocateStatement(oracle.jdbc.driver.PhysicalConnection, int, int) @bci=7, line=48 (Interpreted frame)
 - oracle.jdbc.driver.PhysicalConnection.createStatement(int, int) @bci=34, line=3433 (Interpreted frame)
 - oracle.jdbc.driver.PhysicalConnection.createStatement() @bci=3, line=3398 (Interpreted frame)
 - wt.pds.OraclePds.getNextSequence(wt.pom.WTConnection, java.lang.String) @bci=77, line=100 (Interpreted frame)
 - wt.pom.PersistentObjectManager.getNextSequence(java.lang.String) @bci=16, line=2230 (Interpreted frame)
 - wt.fc.StandardPersistenceManager.getNextSequence(java.lang.String) @bci=8, line=634 (Interpreted frame)
 - sun.reflect.GeneratedMethodAccessor189.invoke(java.lang.Object, java.lang.Object[]) @bci=40 (Interpreted frame)
 - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
 - java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=161, line=597 (Compiled frame)
 - wt.services.ServiceFactory$ServerInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) @bci=11, line=399 (Compiled frame)
 - com.sun.proxy.$Proxy10.getNextSequence(java.lang.String) @bci=16 (Compiled frame)
 - wt.fc.SequencePool.fillPool() @bci=7, line=99 (Compiled frame)
 - wt.fc.SequencePool.next() @bci=13, line=63 (Interpreted frame)
 - wt.occurrence.StandardOccurrenceService.getNextSequence(boolean) @bci=11, line=3671 (Interpreted frame)
 - wt.occurrence.StandardOccurrenceService.saveUsesOccurrenceAndData(wt.occurrence.UsesOccurrence, java.util.Vector, java.util.Vector) @bci=308, line=2277 (Interpreted frame)
 - wt.occurrence.StandardOccurrenceService.saveUsesOccurrenceAndData(wt.occurrence.UsesOccurrence, java.util.Vector) @bci=8, line=2209 (Interpreted frame)
 - sun.reflect.GeneratedMethodAccessor247.invoke(java.lang.Object, java.lang.Object[]) @bci=48 (Interpreted frame)
 - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
 - java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=161, line=597 (Compiled frame)
 - wt.services.ServiceFactory$ServerInvocationHandler.invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) @bci=11, line=399 (Compiled frame)
 - com.sun.proxy.$Proxy67.saveUsesOccurrenceAndData(wt.occurrence.UsesOccurrence, java.util.Vector) @bci=20 (Interpreted frame)
  • 应用 CS141928 中的操作以后问题仍然存在
  • 修改 -Xmx-Xmn 或 -XX:NewRatio 以后问题仍然存在
  • 切换垃圾收集器Garbage Collector)以后问题仍然存在
这是文章 221886 的 PDF 版本,可能已过期。最新版本 CS221886