技术文章 - 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
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)
- 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