首页 > IT基础架构 > 服务器/存储 > hp 64位jdk问题
1 HP JDK支持双位模式
java -version 时,显示IA64N就是32位进程,显示IA64W就是64位模式运行的进程 。这两种位模式可以切换,
切换方式为:假如目前你的为32位JDK,有两种方式可以转换成立64位,一种是修改setDomainEnv.sh,在
MEM_ARGS="-Xms市场3072m -Xmx3072m"中加入-d64,即MEM_ARGS="-d64 -Xms3072m -Xmx3072m";另一种是在
启动时添加-d64,如/opt/weblogic/user_projects/domains/base_domain/bin/startManagedWebLogic.sh server1 http://172.16.28.191:7001 -d64,
这种启动方式只限于本次启动,节点重新启动后,又以默认的32位启动,所以,建议以第一种方式启动。
从64位切回32位可以依据上面的方法加-d32来实现,但需要注意JVM参数的设置;
2 启用Native IO
完成第一步切换操作后,JVM启动时,仍然会按原来32位JDK的路径去寻找Native .so包,这些32位的包是不能用作用于64位的,这样就会导致启动Native IO失败,
日志中表现为:####<Sep 23, 2014 9:02:41 AM GMT+08:00> <Error> <Socket> <host2> <Server7> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1411434161638> <BEA-000438> <Unable to load performance pack. Using Java I/O instead. Please ensure that a native performance library is in: '/opt/java1.5/jre/lib/IA64W:/opt/java1.5/jre/lib/IA64W/server:/opt/java1.5/jre/../lib/IA64W:/weblogic/bea/patch_weblogic923/profiles/default/native:/weblogic/bea/weblogic92/server/native/hpux11/IPF32:/weblogic/bea/weblogic92/server/native/hpux11/IPF32/oci920_8:/usr/lib'
####<Sep 23, 2014 9:02:41 AM GMT+08:00> <Info> <Socket> <host2> <Server7> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1411434161640> <BEA-000447> <Native IO Disabled. Using Java IO.>
此时只需要在提示的任何一个路径中放入64位Native .so包即可。在河南我们选择的是/bea/weblogic92/server/native/hpux11/IPF32这个路径,先备份这个目录下的所有文件,然后删除,再将
/bea/weblogic92/server/native/hpux11/IPF64里面的.so文件全部复制到/bea/weblogic92/server/native/hpux11/IPF32/,重启节点,注意观察日志中是否出现Native IO Enable,如果出现,表示
Native IO 启动成功。
另一方面,我们也可以避免JVM去寻找32位JDK依赖的Native .so包,即对bea/weblogic92/common/commEnv.sh的SHLIB_PATH修改或者加上含有关64位JDK依赖的Native .so包的路径(这个是
河南这边以第一种方式操作完之后,观察时发现的,未经测试,如果你检修时间多,可以测试一下)
注意:从WEBLOGIC控制台上看Native IO 是不准确的,一定要从后台启动日志中查看是否出现Native IO Enable
3 Too many open files
升级后,后台日志可能会出现Too many open files的报错,此报错出现后,节点仍是RUNNING,但是已不能提供服务,这时需要修改HP内核心参数,方法有两种,可供参考:
uname -sN 4096 soft
或者
kctune -h nfile="(15*nproc+2048)" 这种需要重启操作系统才能生效。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25462274/viewspace-2745147/ ,如需转载,请注明出处,否则将追究法律责任。