weblogic线程阻塞性能调优(图解)转

声明:出现这个问题有程序方面、网络方面、weblogic设置方面等等原因,此文章主要讲述由于weblogic设置而导致的解决办法。

因为:

1.程序问题,需要项目自己去解决,weblogic在做优化处理也于事无补。

2.网络中断或者认为关闭交互这种情况也不能用weblogic处理.

一、说明:

,”weblogic.kernel.Default”是从客户端提交请求后产生的线程所在的队列名。这个队列的线程数默认是15个。如果超过15个线程堵塞,则部署的应用将不能访问。同时后台报:
<2008-2-27 下午09时37分48秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: ’14’ for queue: ‘weblogic.kernel.Default’ has been busy for “1,720” seconds working on the request “Http Request: /myapp/test/index.jsp”, which is more than the configured time (StuckThreadMaxTime) of “600” seconds.>
2,线程数(Tread Count):指派到weblogic.kernel.Default队列的线程数。如果你不需要使用超过15个线程(默认),就不必更改这个属性值。

如果发送该请求较多,很有可能会导致weblogic的线程阻塞,严重会引起weblogic挂起现象。
可以通过以下几种方法解决:
1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。
2)增大线程数,防止线程阻塞问题。
3)优化程序,减少处理时间。

二、修改办法

—————————————修改办法——————————————————————-

1) 如何修改StuckThreadMaxTime参数值:

启动weblogic服务,进入控制台:

your_domain->Environment->Servers->your_server->Configuration->Tuning->Stuck Thread Max Time

如下图:

阅读更多

Windows下彻底删除 weblogic 域

weblogic主目录路径为:D:\Oracle\Middleware,具体路径根据个人安装路径而定,现在想删除域名为base_domain的域,具体操作步骤如下:

1、删除 D:\Oracle\Middleware\wlserver_10.3\common\nodemanager\nodemanager.domains 里的base_domain域内容

#Domains and directories created by Configuration Wizard
#Tue Dec 17 11:28:34 GMT+08:00 2013
base_domain=D\:\\Oracle\\Middleware\\user_projects\\domains\\base_domain
test_domain=D\:\\Oracle\\Middleware\\user_projects\\domains\\test_domain

文件内容大致如上,删除base_domain这一行内容

2、删除 D:\Oracle\Middleware\domain-registry.xml 里的base_domain域内容

<?xml version=”1.0″ encoding=”UTF-8″?>
<domain-registry xmlns=”http://xmlns.oracle.com/weblogic/domain-registry“>
<domain location=”D:\Oracle\Middleware\user_projects\domains\test_domain”/>
<domain location=”D:\Oracle\Middleware\user_projects\domains\base_domain”/>
</domain-registry>

文件内容大致如上,删除base_domain这一行内容

3、删除 D:\Oracle\Middleware\user_projects\applications 下的域目录(删除base_domain整个文件夹)
4、删除 D:\Oracle\Middleware\user_projects\domains 下的域目录(删除base_domain整个文件夹)
5、删除开始菜单中welogic下的域目录(删除base_domain整个文件夹)

 

关于中间件内存(缓存)溢出的情况分析及解决办法

因为系统运行时间过程中,weblogic内存中积累了过量的垃圾文件,导致jta资源不足、jdbc找不到连接资源,最后系统崩溃,无法运行。

后台会有如下显示:

类似于这样的错误,可以通过修改C:\\bea\\weblogic81\\common\\bin\\commEnv.cmd 这个脚本文件。修改内容如下:

goto continue :bea

if \set JAVA_VM=-jrockit

set MEM_ARGS=-Xms128m -Xmx512m

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none goto continue

:bea_prod_mode

set JAVA_VM=-jrockit

set MEM_ARGS=-Xms256m -Xmx512m goto continue 修改为: goto continue :bea

if \set JAVA_VM=-jrockit

set MEM_ARGS=-Xms768m -Xmx768m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=384m -XX:PermSize=384m -XX:SurvivorRatio=6 -XX:+DisableExplicitGC

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none goto continue :bea_prod_mode

set JAVA_VM=-jrockit

set MEM_ARGS=-Xms768m -Xmx768m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=384m -XX:PermSize=384m -XX:SurvivorRatio=6 -XX:+DisableExplicitGC

goto continue

WebLogic用了一段时间之后,偶尔总是会出现OutOfMemory,这对测试环境来说,还只要Restart Server 就可以解决,但是在正式环境上出现可就麻烦大了,因为一Restart Server 所有User就都无法使用系统,所以MEM_ARGS这个参数的设定就很重要。

阅读更多

weblogic12C install Invalid Central Inventory Location “/opt/app/oraInventory” (cannot read/write/execute)

今天,在RHEL7.4安装weblogic12c时,版本号是:12.1.3, 想着,以专有的 weblogic 用户组来安装weblogic12,就创建weblogic用户组,并且在weblogic用户下,安装 jdk18,并设置好.bashrc里的jdk的属性,确认在weblogic用户终端字符界面下,执行java -version 正常看到jdk的版本。然后,就上传到weblogic用户目录下,执行:java -jar fmw_12.1.3.0.0_wls.jar ,却遇到如下报错:

Invalid Central Inventory Location “/opt/app/oraInventory” (cannot read/write/execute),

考虑到本机在此之前, 用oracle用户安装了oracle12c, 并创建了/opt/app/oraInventory.估计是weblogic用户没有对这个目录有读写权限。就想,如果我将 weblogic用户也加入到oracle相关用户组,相信应可以对这个/opt/app/oraInventory有读写目录权限。但我想着将这个weblogic加入到oracle相关用户属组,略显麻烦,还不如直接用 oracle用户来安装。

于是,切换到oracle用户,并将fmw_12.1.3.0.0_wls.jar,移到/home/oracle目录下,并且赋于这个安装文件oracle:orainstall用户组属性。然后再次执行java -jar fmw_12.1.3.0.0_wls.jar ,就没有报错,并顺利安装,这次安装是首次安装weblogic12c,感觉weblogic12c的安装过程比weblogic11g 有较大差别。