Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Weblogic JRockit被卡住了_Weblogic_Jrockit - Fatal编程技术网

Weblogic JRockit被卡住了

Weblogic JRockit被卡住了,weblogic,jrockit,Weblogic,Jrockit,JRockit jvm在使用此堆栈时遇到问题: "[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=45 idx=0x94 tid=9944 prio=1 alive, in native, daemon at jrockit/vm/Allocator.nativeGetNewTLA()V(Native Method) at jrockit/vm/Allocator.

JRockit jvm在使用此堆栈时遇到问题:

"[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=45 idx=0x94 tid=9944 prio=1 alive, in native, daemon
    at jrockit/vm/Allocator.nativeGetNewTLA()V(Native Method)
    at jrockit/vm/Allocator.getNewTLA(Allocator.java:788)[optimized]
    at jrockit/vm/Allocator.allocLargerThanFreeTLA(Allocator.java:816)[inlined]
    at jrockit/vm/Allocator.allocSlowCaseInner(Allocator.java:930)[inlined]
    at jrockit/vm/Allocator.allocSlowCase(Allocator.java:776)[optimized]
    at oracle/jdbc/driver/T4CMAREngine.unmarshalCLRforREFS(T4CMAREngine.java:2024)[optimized]
    at oracle/jdbc/driver/T4CTTIoer.unmarshal(T4CTTIoer.java:160)[optimized]
    at oracle/jdbc/driver/T4C8Oall.receive(T4C8Oall.java:727)[optimized]
    at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)[inlined]
    at oracle/jdbc/driver/T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)[optimized]
    at oracle/jdbc/driver/OracleStatement.executeMaybeDescribe(OracleStatement.java:1060)[optimized]
    at oracle/jdbc/driver/T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)[optimized]
    at oracle/jdbc/driver/OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)[optimized]
    ^-- Holding lock: oracle/jdbc/driver/T4CPreparedStatement@0x1d8f8268[thin lock]
    ^-- Holding lock: oracle/jdbc/driver/T4CConnection@0x14d68fd8[thin lock]
    at weblogic/jdbc/wrapper/PreparedStatement.executeQuery(PreparedStatement.java:97)[optimized]
它似乎被困在分配内存的过程中。根据我们的监控工具,在服务器卡住之前,堆的使用率约为14%,不到20%

这是java版本:

java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
BEA JRockit(R) (build R27.5.0-110_o-99226-1.5.0_14-20080528-1505-linux-x86_64, compiled mode)
这些是我们正在使用的JVM设置

-Xms256m -Xmx3072m -Xverify:none 

你知道是什么导致了这个问题吗?

这个问题很可能与数据库操作有关:
持有锁:oracle/jdbc/driver/T4CPreparedStatement@0x1d8f8268[薄锁]

您是否检查了在服务器遇到上述问题时是否正在执行DB操作

您可以检查以下各项:

  • 长时间运行的查询
  • 与数据库服务器相关的问题导致数据库响应缓慢
  • 尝试从数据库加载大块数据的DB操作

问题很可能与数据库操作有关:
保持锁定:oracle/jdbc/driver/T4CPreparedStatement@0x1d8f8268[薄锁]

您是否检查了在服务器遇到上述问题时是否正在执行DB操作

您可以检查以下各项:

  • 长时间运行的查询
  • 与数据库服务器相关的问题导致数据库响应缓慢
  • 尝试从数据库加载大块数据的DB操作

在尝试分配额外(线程局部区域)空间时,它似乎被卡住了。线程局部区域(TLA)是在堆或托儿所上保留的一块可用空间,并提供给线程以供其独占使用。线程可以在自己的TLA中分配小对象,而无需与其他线程同步。当TLA满时,线程只请求一个新的TLA。 线程被卡住,因为jrockit无法分配内存

在stacktrace中,从数据库读取数据时会发生这种情况,因此这可能意味着没有足够的TLA空间用于读取对象。此查询是否从数据库中读取了大量记录


您可以尝试解决此问题,方法是

在尝试分配额外(线程局部区域)空间时,它看起来像被卡住了。线程局部区域(TLA)是在堆或托儿所上保留的一块可用空间,并提供给线程以供其独占使用。线程可以在自己的TLA中分配小对象,而无需与其他线程同步。当TLA满时,线程只请求一个新的TLA。 线程被卡住,因为jrockit无法分配内存

在stacktrace中,从数据库读取数据时会发生这种情况,因此这可能意味着没有足够的TLA空间用于读取对象。此查询是否从数据库中读取了大量记录


您可以尝试通过

获取hprof堆转储并通过Eclipse内存分析器工具运行来解决此问题-这可能是内存泄漏,因为某些db连接池操作没有释放资源当JVM被卡住时,我甚至无法获取堆转储,只是线程转储,不幸的是,请发布您的JRockit JVM设置获取hprof堆转储并通过Eclipse内存分析器工具运行-这可能是内存泄漏,因为某些db连接池操作没有释放资源当JVM被卡住时,我甚至无法获取堆转储,只是线程转储,不幸的是,请发布您的JRockit JVM设置。这个锁不是只会阻止对数据库的访问吗?现在,当问题发生时,这是唯一一个被困在JDBC代码中的线程,没有其他线程试图访问数据库。甚至连不需要数据库的连接(例如到weblogic控制台的连接)也会被完全卡住。这种锁不是只会阻止对数据库的访问吗?现在,当问题发生时,这是唯一一个被困在JDBC代码中的线程,没有其他线程试图访问数据库。甚至不需要数据库的连接(例如到weblogic控制台的连接)也会完全卡住。