线程死锁
–对于原因不明的hang或是响应慢,最根本的方法就是获取thread dump信息•对于windows系统,在运行java的窗口按Ctrl+Break•对于unix系统,首先用ps找到运行weblogic的java进程的pid,然后执行kill –3pid•JVM将负责将所有java进程的状态、执行堆栈dump到其标准输出•为了方便获取thread dump信息,在weblogic启动的时候,最好将其标准输出重定向到一个文件•为了反映线程状态的动态变化,需要接连多次做thread dump,每次间隔10-20s对于thread dump信息,主要关注的是线程的状态和其执行堆栈–线程的状态一般为三类•Runnable(R):当前可以运行的线程•Waiting on monitor(CW):线程主动wait•Waiting for monitor entry(MW):线程等锁–一般关注的都是第一和第三种状态的线程•Cpu很忙则关注runnable的线程•Cpu闲则关注waiting for monitor entry的线程–一种典型的死锁是由于在server端应用(比如servlet)中请求由同一weblogic实例serve的资源•解决办法就是将该servlet放到另外的执行队列里去执行可以看我以前给你的帖子weblogic高CPU的分析---就在本论坛
Oracle又hang on了,关注一下: