开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
关于weblogic配置pg和sqlserver数据源的注意事项
生产环境配置两种数据源时,因为一些细节问题,踩了一些坑。
1459 0
weblogic配置pg数据源
weblogic配置pg数据源
2226 0
weblogic配置sqlserver数据源
weblogic配置sqlserver数据源
8630 0
WLS_Oracle Weblogic创建数据源(案例)
2014-01-01 Created By BaoXinjianERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
639 0
weblogic中设置数据源的注意点
一、基本概念进入weblogic的管理页面,点击服务——>数据源,可以进行数据源的配置。通过新建,输入地址,用户名,密码等信息可以新建一个数据源。   二、发现问题建立好数据源之后,跑项目,发现项目中数据源名字也没错,可是总是报错:数据源找不到。   三、解决问题仅仅建立好数据源是不够的,还要指定部署此JDBC数据源的服务器或集群。在数据源页面,点击数据源名,进入该数据源的管
977 0
Weblogic起步(一) - 配置数据源
1. In the my_domain domain structure, expandthe Services tab and select the Data Sources node. In the Data Sources table, clickon New and select Gener...
767 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载