Weblogic Native IO问题

简介:

Weblogic Native IO问题总结(转载)

在网上有不少关于WebLogic Native IO问题的文章,我挑选了3个最典型的例子做一下总结说明:以下的3个案例,虽然都跟Native IO有关,但实际情况不太相同,有相应平台32位跟64位的问题,也有执行权限的问题,希望读者能仔细去辨别。

3.11 典型案例一

a) 平台信息:

OS:AIX5308

JDK:java5_64

WLS:BEA Weblogic Server 10.0

b) 故障现象:

1.启动Weblogic时,服务器启动日志中报如下错误:

<unable to="" load="" performance="" pack.="" using="" java="" i="" o="" instead.="" <="" p="" style="word-wrap: break-word;">

Please ensure that libmuxer library is in :’

/usr/java5_64/jre/bin:/usr/java5_64/jre/bin:/usr/java5_64/jre/bin/classic:/usr

/java5_64/jre/bin

:/weblogic/bea/wlserver_10.0/server/native/aix/ppc:/usr/java5_64/jre/bin/j9vm

:/usr/lib’

2. 同时,在系统使用过程中,报如下错误:

<there are:="" 5="" active="" sockets,="" but="" the="" maximum="" number="" of="" socket="" reader="" threads="" allowed="" by="" configuration="" is:="" 4.<="" p="" style="word-wrap: break-word;">

You may want to alter your configuration.>

c) 故障分析:

根据经验,以上报错信息表明Weblogic Native IO启动失败。

d) 故障解决:

1. Weblogic Native IO 启用失败,通常是由于系统没有使用与Weblogic 相对应的的JDK版本所致。

2. AIX Weblogic 支持32位和64位的JDK,如果使用64位版本的JDK,需在启动脚本中加指向64位对应的目录,

同时在 commEnv.sh 配置文件中,/weblogic/bea/wlserver_10.0/common/bin|commEnv.sh

AIX)

  if [ -n "${LIBPATH}" ]; then

    LIBPATH=${LIBPATH}:${WL_HOME}/server/native/aix/ppc64

  else

    LIBPATH=${WL_HOME}/server/native/aix/ppc64

  fi

  LIBPATH=${PATCH_LIBPATH}:${LIBPATH}

  export LIBPATH

WEBLOGIC 默认的指向是ppc目录,不是ppc64目录,当时为了下载64位的libmuxer.so浪费了很长的时间,后来发现weblogic的目录下面已经存 在64位的。

3. 使用 Weblogic Native IO 对系统性能至少有30%的提升,在生产环境中,注意检查 Native IO 是否可用。同时在安装Weblogic时,注意使用与之相对于版本的JDK。

3.12 典型案例二

a) 平台信息:

HP-UX

Weblogic923

b) 故障现象:

1.当Weblogic Native IO 启用失败时,通常会在服务器启动日志中报如下错误:

#### <[ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1238504969950><network configuration="" detail="" for="" channel="" "managered_server1"<="" p="" style="word-wrap: break-word;">

Channel Weight   50

Accept Backlog   50

Login Timeout   5000ms

Max Message Size  10000000

Message Timeout  60s

Idle Timeout   65s

Tunneling Timeout  40s

Tunneling Ping   45s>

#### <[ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1238504969974>

#### <[ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1238504969989> <unable to="" load="" performance="" pack.="" using="" <="" strong="" style="word-wrap: break-word;">Java I/O instead. Please ensure that a nativeperformance library is in: ‘/weblogic/opt/java1.5/jre/lib/IA64N:/weblogic/opt/java1.5/jre/lib/IA64N/server:

/weblogic/opt/java1.5/jre/../lib/IA64N:/weblogic/bea/patch_weblogic920/profiles

/default/native:

/weblogic/bea/weblogic92/server/native/hpux11/IPF32:/weblogic

/bea/weblogic92

/server/native/hpux11/IPF32/oci920_8:/usr/lib’

>

2. 同时,在系统使用过程中,常见报如下错误:

#### <> <> <> <1238588718157>[default]>

####<2009-4-3 下午09时25分55秒 GMT+08:00> <[ACTIVE] ExecuteThread: ’4′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1238765155550><[weblogic.servlet.internal.WebAppServletContext@1f5acd0 - appName: 'ODSWeb', name: 'ODSWeb', context-path: ''] Servlet failed with IOException

java.net.SocketException: 管道断开 (errno:32)

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:97)

at java.net.SocketOutputStream.write(SocketOutputStream.java:141)

at weblogic.utils.io.ChunkedOutputStream.writeTo(ChunkedOutputStream.java:185)

at weblogic.servlet.internal.ResponseHeaders.writeHeaders(ResponseHeaders.java:348)

at weblogic.servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseImpl.

#### <[ACTIVE] ExecuteThread: ’10′ for queue: ‘weblogic.kernel.Default (self-tuning)’> <> <> <> <1238728309518><[weblogic.servlet.internal.WebAppServletContext@b9614d - appName: 'ODSWeb', name: 'ODSWeb', context-path: ''] Root cause of ServletException.

java.lang.OutOfMemoryError: unable to create new native thread

at java.lang.Thread.start0(Native Method)

at java.lang.Thread.start(Thread.java:574)

at javelin.client.ThreadPool.(ThreadPool.java:49)

at javelin.client.ClientUtilsImpl.(ClientUtilsImpl.java:92)

at javelin.client.ClientUtilsImpl.get(ClientUtilsImpl.java:106)

at com.bea.compiler.client.ClientUtils.get(ClientUtils.java:36)

c) 故障分析:

该故障很明显是在HP-UX上WebLogic Native IO启动失败。

d) 故障解决:

1. Weblogic Native IO 启用失败,通常是由于系统没有使用与Weblogic 相对应的的JDK版本所致。

2. 应当值得注意的是,在HP-UX中,通常存在 PA-RISC和Itanium两个版本的Weblogic,如果在PA-RISC平台安装Itanium平台版本的Weblogic,或者在 Itanium平台安装PA-RISC平台版本的Weblogic,同样会导致 Native IO 不可用。

3. HP-UX Weblogic 9.2 支持32位和64位的JDK,如果使用64位版本的JDK,需在启动脚本中加 -d64 参数,同时在commEnv.sh 配置文件中,注意修改“/weblogic/bea /weblogic92/server/native/hpux11 /IPF32”,使其指向“/weblogic/bea/weblogic92/server/native/hpux11/IPF64”,否则会也会导致 Native IO 启用失败 。

4. 使用 Weblogic Native IO 对系统性能至少有30%的提升(这个BEA 工程师说的),在生产环境中,注意检查 Native IO 是否可用。同时在安装Weblogic时,注意使用与之相对于版本的JDK。

3.13 典型案例三

a) 平台信息:

HP-UX

Weblogic90

b) 故障现象:

启动过程中发现

<BEA-000438> <Unable to loa

d performance pack. Using Java I/O instead. Please ensure that a native performa

nce library is in: ‘/opt/java1.5/jre/lib/IA64N:/opt/java1.5/jre/lib/IA64N/server

:/opt/java1.5/jre/../lib/IA64N::/opt/weblogic/bea/weblogic90/server/native/hpux1

1/IPF64:/opt/weblogic/bea/weblogic90/server/native/hpux11/PA_RISC:/opt/

weblogic/ bea/weblogic90/server/native/hpux11/PA_RISC/oci920_8:/usr/lib’

没有启动native io,导致系统性能低下(这里要注意HP-UX里IA64N下的是32位JDK,IA64W下的才是64位JDK),而且java io配置的值较小,产生如下报错

<BEA-000402><there are:="" <="" p="" style="word-wrap: break-word;">

5 active sockets, but the maximum number of socket reader threads allowed by the

configuration is: 4. You may want to alter your configuration.>

在应用使用过程中从而出现

<console enco="" <="" p="" style="word-wrap: break-word;">

untered the following error javax.servlet.jsp.JspException: Broken pipe (errno:3

2)

        at com.bea.console.taglib.html.tree.TreeTag.print(TreeTag.java:231)

        at com.bea.console.taglib.html.tree.TreeTag.doEndTag(TreeTag.java:192)

观察控制台的thread信息

Self-Tuning Thread Pool    

Active Execute Threads    Execute Thread Total Count    Execute Thread Idle Count    Queue Length    Pending User Request Count    Completed Request Count    Hogging Thread Count    Standby Thread Count    Throughput    Health

16    58    15    6048    0    144840    4    38    4.577865205875421    OK

排队的请求数多达6000个,导致了OutOfMemory,在JAVA堆还很空的情况下

c) 故障解决:

观察发现/opt/weblogic/bea/weblogic90/server/native/hpux11/IPF32下面和native io相关的libmuxer.so没有执行权限,chmod +x 后再次启动错误信息不再出现。










本文转自 赵大鑫 51CTO博客,原文链接:http://blog.51cto.com/xinzong/1696053,如需转载请自行联系原作者
目录
相关文章
|
Java Unix 应用服务中间件
使用Tomcat Native提升Tomcat IO效率
使用Tomcat Native提升Tomcat IO效率
|
4月前
|
Java 应用服务中间件 Linux
centos7安装weblogic
centos7安装weblogic
111 1
|
负载均衡 Java 应用服务中间件
Weblogic的了解、安装及其使用(三)
Weblogic的了解、安装及其使用
1453 0
|
Oracle Java 关系型数据库
Weblogic的了解、安装及其使用(二)
Weblogic的了解、安装及其使用
1053 0
|
开发框架 Kubernetes 监控
Weblogic的了解、安装及其使用(一)
Weblogic的了解、安装及其使用
2681 0
|
安全 Oracle Java
Oracle Weblogic--CentOS Linux 8.5.2安装weblogic11G
Weblogic在centos上详细安装步骤及安装过程中可能遇到的问题
346 0
Oracle Weblogic--CentOS Linux 8.5.2安装weblogic11G
|
Oracle 关系型数据库 Java
EOS Platform 7.2下安装weblogic插件
在实际工作中,需要用到EOS Platform,这是一个基于Eclipse的开发工具,自带了Tomcat,可以满足大部分需要,但是有时候需要使用Weblogic,这就得手动安装Weblogic插件了。这个过程与Eclipse相同(Eclipse下安装weblogic插件),本文中在EOS Platform 7.2中安装Weblogic插件。
198 0
EOS Platform 7.2下安装weblogic插件
|
Oracle 关系型数据库 Java
Eclipse下安装weblogic插件
安装好weblogic dev版本(Windows下安装weblogic dev版本),可以在Eclipse中安装weblogic server tools插件,直接连接到weblogic server,发布、部署、调试都变得简单些。
703 0
Eclipse下安装weblogic插件
|
Oracle 关系型数据库 Java
Windows下安装weblogic dev版本
在开发过程中,有一种情况是比较尴尬的:需要用到某个软件,但是只需要用到这个软件中的一小部分功能,这样既浪费的磁盘空间,又浪费了CPU空间。比如Weblogic,完整版包括很多功能,但是开发过程中,只是需要创建数据源、部署项目,然后进行测试即可。所以开发过程中,需要一款简化的Weblogic(Weblogic开发版)是挺有必要的(如果电脑配置比较壕,也可以任性的使用完整版)。
335 0
Windows下安装weblogic dev版本
|
XML SQL 开发框架
Weblogic安装与配置详解
Weblogic安装与配置用Eclipse MyEclipse WebLogic8.1开发第一个Web程序1.安装jreEclipse虽然由java开发,但本身并不自带jre。所以你必须先自己安装,去http://java.sun.com/downloads下载最新J2SE1.4.2_03的jre安装文件j2re-1_4_2_03-windows-i586-p.exe。安装成功后,重启机器,并将jre的bin文件夹路径添加到系统环境变量PATH中,如:C:\Program Files\Java\j2re1.4.2_03\bin。
457 0