系统应用程序 用户名:admin 密码:admin
样本应用程序 用户名:samples 密码:samples
应用程序客户机安装
Version:0.9
StartHTML:-1
EndHTML:-1
StartFragment:0000000111
EndFragment:0000001215
<!---->IBM WebSphere Application Server 应用程序客户机 V6.0 将安装在以下位置:
D:\Program Files\IBM\WebSphere\AppClient
以下功能部件:
J2EE 和 Java 瘦应用程序客户机
IBM Developer Kit, Java 2 Technology Edition
Java 2 Runtime Environment
Developer Kit
样本
Applet 客户机
Applet 客户机样本
ActiveX 到 EJB 网桥
ActiveX 样本
总大小:209.6 MB
主机名:localhost
端口号:2809
WebSphere 6.1
http://192.168.116.170:9060/admin
http://192.168.116.170:9060/ibm/console/
http://192.168.116.170:9060/ibm/console/secure/help_console.jsp
resource
developerworks 中国 > WebSphere > 下载 >
http://www.webspherechina.net/
http://www.verycd.com/search/folders/websphere+application+server
ftp://ftp.software.ibm.com/software/websphere/appserv/support/fixpacks/was51/fixpack1/Linux/was51_fp1_linux.tar.gz
ftp://ftp.software.ibm.com/software/websphere/appserv/support/fixpacks/was51/cumulative/jdk142sr9/Linux/was511_SR9_jdk_linux_i386.zip
ftp://ftp.software.ibm.com/software/websphere/appserv/support/fixpacks/was51/fixpack1/cumulative/cf51116/Linux/was511_cf16_linux.zip
IBM WebSphere 6 培训资料
http://xuzhengjun.blog.ccidnet.com/blog-htm-itemid-303133-uid-15219-type-blog-do-showone.html
附件: LabFiles60-WASv6_PDF2.part2.rar (2001 K)
附件: LabFiles60-WASv6_PDF2.part1.rar (3907 K)
附件: LabFiles60-WASv6_PDF1.part2.rar (2334 K)
附件: LabFiles60-WASv6_PDF1.part1.rar (3907 K)
附件: LabFiles60.part4.rar (1354 K)
附件: LabFiles60.part3.rar (3907 K)
附件: LabFiles60.part2.rar (3907 K)
附件: LabFiles60.part1.rar (3907 K)
WebSphere Integration Developer 指导教程
http://www.ibm.com/developerworks/cn/websphere/techjournal/0602_gregory/0602_gregory.html
WebSphere Application Server Community Edition V2.0
http://www.ibm.com/developerworks/cn/downloads/ws/wasce/
Linux webSphere 5.1
启动: ./startServer.sh server1
停止: ./stopServer.sh server1
WebSpere 数据库连接池配置
http://www.webspherechina.net/club/viewthread.php?tid=1094
WebSphere 中池资源调优 - 线程池、连接池和 ORB
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1106_zhuxl_websphereenhancement/1106_zhuxl_websphereenhancement.html
WebSphere portel Factory
http://www.wsuc.tw/
http://www.webspherechina.net/club/viewthread.php?tid=2095
Linux webSphere setup
http://blog.csdn.net/jk6801251/archive/2007/10/14/1824699.aspx
WebSphere 6.1 上 struts2 程序无法找到Action 解决方法
http://sivyer.iteye.com/blog/257755
WebSphere升级到6.1.0.5 以后所有struts2的程序都会发生Action找不到的情况,解决方法如下,服务器>应用程序服务器>[选择所使用的服务器]>Web 容器设置>Web 容器>定制属性,增加名称为“com.ibm.ws.webcontainer.invokefilterscompatibility”
的定制属性,值为true。
WebSphere 上 多数据源使用若都没有加 commit() 事务方法,很容易造成事务死锁 , 此问题属于开发规范问题
解决方法:为各自数据源增加 commit() 事务方法即可
WebSphere 部署问题收集
http://one23.iteye.com/blog/256016
1,websphere6版本的问题
一开始我用的是websphere6.0.0.1,不过在解析jsp的时候,标签不能解析,原样显示在页面上,后来通过写了个简单的JSP慢慢测试,发现原来这个版本在出来include指令的时候出现了问题,在被include的文件中存放的taglib,在保护include的文件中用,后来一步一步的打补丁解决了,最后打到了websphere6.0.0.25的时候问题没有了,
2. xml中文编码问题
在发布到websphere上之前,xml文件encoding都是utf-8的,但在websphere上就是解析不了,说”找不到beans“,后来经过一步一步测试观察好像有中文的xml有问题,后来把中文的删掉好了,在后来保留中文,把encoding改成GBK,好了
3.c:import的问题
在tomcat下,我通过<c:import url="aa.jsp"/>没问题,但在websphere上出现404错误,后来改成<c:import url="/WEB-INF/jsp/aa.jsp"/>可以
4.jndi的设置
这个还没找到原因,就是在tomcat下我properties中配置了个jndi是加了java:/comp/env的,是可以运行的,但在 websphere中就不行,得把前缀去掉用实际路径才可以,但其他一些应用加了java:/comp/en又可以,配置都差不多,web.xml也配了下,不知道为什么,(知道了,原来我用的portal包,还没更新,更新了,就OK了)
总结websphere还是不好用,看了下,他的配置文件,那是相当的超乱,另外console也不好用,
老是要提示保存,而且一步操作要做几次保存
java虚拟机分析与优化.rar
http://www.iteye.com/topic/147733
http://www.iteye.com/topics/download/77fa509a-377e-46c1-b8dd-f5687cb74c4c
websphere安装说明及集群配置指南.rar
http://www.webspherechina.net/club/attachment.php?aid=667&k=f46cab34e2bf4f80c7f71baa8ff4c883&t=1
Websphere入门篇(三)-建立连接池
1 WebSphere 配置
1.1 通过 http://hostname:9060/admin进入Websphere 管理控制台,并用管理员用户登录
1.2 设置Oracle驱动环境变量(针对Oracle数据库)
1.2.1 将oracle的java驱动ojdbc14.jar复制到…/WebSphere/AppServer/lib/ext目录中。
1.2.2 修改数据库驱动环境变量
Ø 进入”环境àWebSphere变量”
Ø 修改ORACLE JDBC DRIVER PATH,值为1.2.1节中ojdbc14.jar 所在的目录,使用绝对路径。
Ø 确定并保存
1.3 新建J2C认证数据
Ø 进入”安全性——安全管理、应用程序和基础结构—— Java 认证和授权服务(JAAS)——J2C认证数据”
Ø 新建一个认证数据条目
Ø 别名为:取一个容易记住的,假设为bm1
Ø 用户标识为: 数据库连接用户
Ø 密码为: 数据库连接密码
1.4 新建JDBC提供者
Ø 进入”资源——JDBC——JDBC提供程序”
Ø 选择合适的作用域,一般选择server1
Ø 新建JDBC提供程序
Ø 数据库类型为:oracle
Ø 提供者类型为:Oracle JDBC Driver
Ø 实施类型为:连接池数据源
Ø 名称为:oracle92
Ø 点击下一步
Ø 类路径为:${ORACLE JDBC DRIVER PATH}/ojdbc14.jar
Ø 下一步
Ø 完成并保存
1.5 新建数据源
Ø 进入”资源——JDBC——数据源”
Ø 选择合适的作用域,一般选择server1(根据你要发布的Server来)
Ø 新建数据源
Ø 名称为:随便起
Ø JNDI名称为:jdbc/需要使用的jndi name
Ø 组件管理的认证别名为:hostnameNode01/ bm1(还记得之前建立的J2C别名么)
Ø 下一步
Ø 选择刚才建立的JDBC提供程序,
Ø 设置URL:jdbc:oracle:thin:@ip:1521:sid
Ø 下一步
Ø 确定并保存
Ø 选择刚刚建立的数据源,测试连接,看看是否正常
转载本站文章请注明,转载自: 聚沙成塔-小哈的记事薄
本文链接:http://www.hashei.me/2009/04/connect-to-database.html
http://webspherechina.net/
自动重启Webpsphere Application Server
李彧
Websphere Troubshooting用工具分析GC Log
熊志辉
IBM Thread and Monitor Dump Analyzer for Java
http://www.alphaworks.ibm.com/tech/jca/download
<Java Runtime Environment path>java -Xmx500m - jar jca101. jar
https://www6.software.ibm.com/sdfdl/1v2/regs2/awadmin/jca/Xa.2/Xb.NoLf57oB1AR0hluz35wszZ_SUV-xK6jLJmt3BRH-1A/Xc.jca/jca401.zip/Xd./Xf.LPr.U1ay/Xg.5571542/Xi.AW-0N6/XY.regsrvs/XZ.Nhqr862HwwNiSGA5FHnqBX-6Djk/jca401.zip
java -Xmx1500m -jar ha39.jar >>> it's for heapdump*.phd files
download ha39.jar
http://dl.iteye.com/topics/download/47774513-bd9d-361b-b298-0dd8e71bae99
java -Xmx1500m -jar jca396.jar >>> it's for javacore*.txt files
download jca396.jar
http://dl.iteye.com/topics/download/90cf4f1b-0863-30ce-adb4-4d97718df9a6
WebSphere6.0 + Windows 2003 时区问题?
应用服务器:选择你的服务--
java和进程管理:进程定义--
其他属性:java虚拟机--
通用java参数:加入 -dUSER.TIMZONE=GMT+08即可
1.WAS 配置ND集群后重启后服务器不能正常启动(DM、NodeAgent、server三者之间的启停关系)
2.如何备份部署管理器
3.经常有heapdump.***phd和javacore.***txt文件产生
4.应用程序的“类装入和更新检测”
5.was完全卸载问题
6.忘记了WebSphere控制台登陆密码,怎么办?
7.Was6.1集群中有一个节点显示的状态是“未同步”
8.websphere全局安全性设置
9.修改机器名后websphere、db2不可使用
122.96.152.205
AIX 调出主进程号pid及相关子进程号pid
#ps -mp 5046778 -o THREAD
#Kill -3 5046778
对几台服务器用ps -mp ******(进程号) -o THREAD >thread.txt ;kill -3 ******(进程号) 而后,在thread.txt中找到CP最高的若干进程号,转换为十六进制后,在生成的javacore中找到对应的进程的消息。
AIX WebSphere Java应用CPU 异常问题定位
// 通过 WebSphere JAVA 进程查线程号
[root@testServer ~]# ps -ef | grep java
// 得到JAVA PID数字,替换下方PID
[root@testServer ~]# top -H -p PID -b -n1> dump_high_cpu.txt
// 在这个txt文件可以看到占比比较高的线程号,将这个线程号转成16位的
[root@testServer ~]# kill -3 PID
// 这个目录下会生成一个javacore文件
[root@testServer ~]# cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
[root@testServer ~]# ls -l *.txt
-rw-r--r-- 1 wasadmin wasadmin 3807148 Jun 20 14:52 javacore.20120620.145244.1509.0002.txt
// 然后利用占比较高的十进制线程号转换之后的十六进制数在javacore.20120620.145244.1509.0002.txt文件中找这个线程及定位相关操作实现的代码类
http://www.xxx.cn/cachemonitor
连接池原理图.rar
http://dl.iteye.com/topics/download/9f84c62e-20c3-3194-94c6-7dfdc0def9b8
可无限试用的个人版websphere
http://thomas0988.iteye.com/blog/785026
做java web 开发的人基本上都知道WebSphere,所以就不多说了。
个人用WebSphere的时候,都是它的试用版。确实我们也买不起使用版。
网上解决办法搜了一下,总结出自己认为比较简单的方法,贡献出来。
1、安装WebSphere。
2、打开安装文件夹IBM\WebSphere\AppServer\bin,找到startServer.bat,用记事本打开。
3、为了方便且不容易出错就在第一行加入:
del F:\IBM\WebSphere\AppServer\properties\was.license
解释:“F:\IBM\WebSphere\AppServer\properties\was.license ” 是WebSphere 中的was.license文件真实路径,根据你安装目录不同所改变。但一定要正确,这是唯一的关键。
4、保存该文件,完成修改。
好了,WebSphere以后就不会再有过期的问题出现了。
IBM developerWorks 中国:IBM WebSphere Application Server 常见问题及解答(FAQ)
http://www.ibm.com/developerworks/cn/websphere/zones/was/wasfaqs/wasfaqs_0805001.html
IBM WebSphere Application Server常见问题及解答:性能调优的基本步骤是怎样的?
http://www.ibm.com/developerworks/cn/websphere/zones/was/wasfaqs/wasfaqs0602.html
2. 性能调优的基本步骤是怎样的?
答:
部署在WAS上的J2EE应用程序,其性能是由多个因素决定的。例如网络、数据库、内存分配、WAS服务器的配置以及应用程序的设计。对于一个标准的J2EE应用,一个请求到来时,往往需要经过多次转发:网络 > Web服务器Web容器 > EJB容器 > 数据库。而每一次转发,都可能造成请求处理的瓶颈,使得应用程序整体性能下降。 如果我们把每一次转发的待处理资源都看成一个队列,如图3:
图3 待处理资源队列
对于WAS调优,要记住的一个基本原则就是,使得在队列中等待的请求的数量最小化。在实践中我们发现,为了达到这个目的,最有效的配置方式 就是使得队列成为一个“漏斗”。也就是说,越靠近客户端的队列,其容量越大,而后面的队列,其容量要略小于或等于前面的队列。按照这个原则,调优的基本步 骤如下:
- 设置的是Web Server的最大并发用户:
-
- 这个设置是在conf/httpd.conf这个文件里面配置的。在Unix系统中,对应的属性是MaxClient;在Windows系统中,对应的属性是ThreadsPerChild。
- 设置Web Container的最大、最小并发用户:
-
- 在管理控制台中点击应用程序服务器 > server1 > 线程池 >WebContainer,根据观察的性能情况和应用情况输入合适的最小、最大进程数。
- 对象请求代理(ORB)的线程池大小:
-
- 在管理控制台中点击应用程序服务器 > server1 > ORB 服务 > 线程池,根据观察的性能情况和应用情况输入合适的最小、最大进程数。
- 设置数据库的连接池属性:
-
- JDBC 提供者 >数据库JDBC驱动名称 > 数据源 > 数据源名称> 连接池 ,根据观察的性能情况和应用情况输入合适的最小、最大连接数。
- JVM堆参数设置的性能调优:
-
- 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,根据硬件物理内存和应用情况输入合适的初始堆大小、最大堆大小。
- ORB参数调用方式的性能调优:
-
- 应用程序服务器 > server1 > ORB 服务>选中按引用传递。
- 关闭动态加载开关:
-
- 企业应用程序 > 应用名称 > 关闭启动类重新装入开关。
- 关闭会话序列化,应用程序服务器 > server1 > 会话管理 > 分布式环境设置 > 分布式会话选择无即可。
这个调优的步骤只是涉及了利用WAS服务器参数的调整来优化应用程序的性能,实际上性能的好坏很大部分是取决于应用的设计。好的性能源自好的代码设计。一般说来,性能调优大概可以提高10%-40%效率,而糟糕的代码设计却会使得性能几倍的下降。
如何自动杀掉WebSphere JAVA进程:
[wasuser@B2Cmonitor bin]$ ps -ef |grep java
wasuser 22005 1 85 16:36 pts/3 00:00:34 /opt/IBM/WebSphere/AppServer/java/bin/java -Declipse.security -Dwas.status.socket=39623 -Dosgi.install.area=/opt/IBM/WebSphere/AppServer -Dosgi.configuration.area=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/configuration -Djava.awt.headless=true -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev70_%g,groupAccess,nonFatal -Xscmx50M -Xbootclasspath/p:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmorb.jar:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmext.jar -classpath /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar -Dibm.websphere.internalClassAccessMode=allow -Xms50m -Xmx256m -Xcompressedrefs -Dws.ext.dirs=/opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/classes:/opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/IBM/WebSphere/AppServer/derby -Dcom.ibm.itp.location=/opt/IBM/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01 -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dwas.install.root=/opt/IBM/WebSphere/AppServer -Dpython.cachedir=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/temp/cachedir -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.security.auth.login.config=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/wsjaas.conf -Djava.security.policy=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config B2CmonitorCell01 B2CmonitorCellManager01 dmgr
wasuser 22120 19378 0 16:36 pts/3 00:00:00 grep java
[root@B2Cmonitor dmgr]# ps -ef | grep java | grep -v grep | awk '$1~/wasuser/{print $2}' | xargs -I {} kill -9 {}
或
[root@B2Cmonitor dmgr]# linux_processKill.sh
#!/bin/bash
# file:/root/linux_processKill.sh
#Life is like a box of chocalates,you never know what you are going to get.
echo Please input a parameter to search;
read we;
echo $we;
ps -ef|grep $we|grep -v grep |awk -F ' ' '{print $2}'|xargs -I {} -t kill -9 {}
appServer IBM WebSphere Cluster
websphere infocenter doc
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp
启动安装
E:\temp\C88SPML_WAS6.1_win32\launchpad.exe
E:\temp\C88SPML_WAS6.1_win32\version.txt
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE product PUBLIC "productId" "product.dtd">
<product name="IBM WebSphere Application Server Network Deployment">
<id>WASND</id>
<version>6.1</version>
</product>
WebSphere Application Server Network Deployment 解决方案安装架构图
file:///E:/temp/C88SPML_WAS6.1_win32/readme/readme_nd_zh.html#nd
http://dl.iteye.com/topics/download/c5f86243-f829-3979-96b8-191b951c245f
WebSphere Application Server Network Deployment 的安装指南
file:///E:/temp/C88SPML_WAS6.1_win32/WAS/docs/InstallGuide_en.html#install
管理控制台
https://localhost:9043/ibm/console/logon.jsp
集成解决方案控制台, 6.1.0.0
构建号: b0620.14
构建日期: 5/16/06
概要文件管理工具
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=&topic=
WebSphere Application Server 信息中心
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp
"迁移"向导
WASPreUpgrade 和 WASPostUpgrade 迁移命令
将WebSphere Applicatino Server V5 或 V6 迁移到 V6.1
http://publib.boulder.ibm.com/infocenter/ws61help/index.jsp
安全域
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=was-nd-dist&topic=tsec_secsetupenable
websphere uninstall doc
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc
/info/ae/ae/tins_uninstall.html
问题 :
必备软件的检查失败。失败消息如下所示:
检测到可能会干扰当前操作的正在运行的进程。在安装或卸载维护之前,停止所有 WebSphere 和相关进程。确保以下进程未在运行:
e:\Program Files\IBM\WebSphere\AppServer\java\bin\java.exe
e:\Program Files\IBM\WebSphere\AppServer\java\jre\bin\java.exe
解决 :开始--运行--cmd-- 输入 tasklist -- 输入 taskkill -- ok
E:\Program Files\IBM\WebSphere\AppServer\uninstall\version.txt
Name: IBM Common Install Engine for WebSphere Software
Version: 6.1.0.0
Platform: wintel
Architecture: ia32
Build Release: WAS61.IWAS
Build Level: b0620.14
Build Date: 05/16/2006
E:\Program Files\IBM\WebSphere\AppServer\uninstall\uninstall.exe
websphere ininstall doc
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&product=was-nd-dist&topic=install
# cluster member was节点删除/节点移除
方法一: 从 WAS Dmgr中 移除 集群
https://192.168.130.113:9043/admin
0. ibm ihs server 移除pluging-conf.xml 该member的实例配置信息,并重启ihs
1. 停止需要移出集群机器的实例
-- 服务器 -- 应用服务器 -- 停止(选择需要停止的实例)
2. 检查被移除机器的nodeagent进程并保持启动,删除该节点用
-- 系统管理 -- 节点 -- 除去节点(选择单个节点名称移除)
-- 移除后同步所有其他集群成员节点,更新各自的member_list
-- 被移除机器nodeagent进程自动停止,并结束通信
-- Dmgr控制不再显示nodeagent和instance
3. ok
方法二:从was member 向was Dmgr通讯删除自己
0. ibm ihs server 移除pluging-conf.xml 该member的实例配置信息,并重启ihs
1. 停止需要移出集群机器的实例
[root@ ec7svr8]#cd /usr/IBM/WebSphere/AppServer/profiles/emall05/bin/
[root@ bin]#./stopServer WCSCluster_ec7svr8_emall05
2. 向was Dmgr通讯删除自己与dmgr集群信息
[root@ bin]#./removeNode.sh EcsvrCluster 8879 --username configadmin --password youpassword
3. ok
在WAS6.0 ND中实现集群
http://www.blogjava.net/Carter0618/archive/2007/11/02/157696.html
本文通过两个实际场景,介绍如何从头搭建一个WAS ND水平集群环境以及如何将一个已有的单节点(或三节点)Web环境扩展成五节点的集群环境。
1. 介绍
当前,越来越多的企业用户基于WebSphere应用服务器和DB2数据库环境搭建业务系统,实现电子商务。随着业务量的增大,企业对系统的负载量 和高可用性提出了更多的要求,特别是一些关键业务,如金融,通信,交通等,要求确保系统24*7*365的可用性。通过WAS ND集群,可以实现包含多个应用服务器的分布式环境,确保系统的吞吐量和高可用性。本文通过两个实际场景,介绍如何从头搭建一个WAS ND水平集群环境以及如何将一个已有的单节点(或三节点)Web环境扩展成五节点的集群环境。
2. WAS ND集群基本概念及体系结构
什么是集群?WAS集群由一组应用服务器组成,每个服务器上部署了同样的应用程序。通过集群可以实现可扩展性(服务更多客户,提高吞吐量),负载均 衡(平衡负载资源,使资源得以有效利用),高可用性(提供故障恢复和补偿机制,在关键性业务中提供容错功能)。WAS ND提供水平集群和垂直集群两种形式,垂直集群是指同一机器上部署多个服务器,充分利用硬件资源,而水平集群利用多台机器资源,每台机器部署相同的应用。 本文主要侧重水平集群,但是其中的很多概念对于垂直集群也是适用的。
图2.1是ND分布式环境的体系结构,包括单元、节点、服务器等基本概念。每个单元是单一管理域中的一组节点,在基本版和演示版中,一个单元只包含 一个节点,每个节点可以有多个服务器,但是每个服务器的配置文件是单独存储和维护的。每个单元可以包含一个或多个集群,也可以不包含集群。在分布式环境 中,每个单元包含多个节点,这些节点被统一管理,而且它们的配置文件被中心化到单元主配置文件中。配置管理器线程负责管理这些集中配置文件,并且将任何配 置变化同步到每个节点上。节点是服务器线程的逻辑组,每台机器上只能有一个节点,通过节点代理器同配置管理器通信。在ND环境中,WAS plugin起到负载均衡的作用,在plugin-cfg文件中可以定义每个服务器的权重,根据权重值,plugin决定将一个请求定向到哪个服务器。
图2.1WAS 6.0 ND分布式环境的体系结构
3. 搭建WAS ND集群环境
在实际的企业应用中,存在两种不同的集群场景,一种是从头搭建集群环境,然后将应用部署到集群中;另外一种是基于已有的单节点环境(或三节点环境)扩展成集群环境。本文将会覆盖这两种场景的配置和部署,为读者提供切实可行的指导。
图3.1是最终的集群环境,包含五个节点,分布在五台机器上,一台用于部署Deployement Manager,作为集中管理接口管理WAS集群成员;两台作为WAS集群成员,具体处理商业逻辑;一台作为Web服务器,用于接收用户请求,并通过 plugin配置文件将负载均衡到WAS集群成员上。一台作为数据库节点,存储企业数据。此例中, DM节点和Web服务器节点是Window操作系统,其余均为AIX5.2操作系统。对于Web服务器的选择,可以是任何WAS支持的服务器,在此我们选 择IBM HTTP Server(IHS),对于其他Web服务器,其基本原理是一样的,不同的是某些配置和操作需要手工处理。对于数据库服务器,其基本操作完全一致,此例 中我们选择DB2。
图3.1 五节点cluster拓扑
场景1:从头搭建ND集群环境
在这个场景中,企业一开始就有集群环境的需求,这就需要首先搭建集群环境,然后在cluster上部署企业应用程序。以下是详细操作步骤,最后通过部署一个企业应用来测试。
一. 准备WAS 配置管理节点
1. 在silkpc01 服务器上安装WAS6 ND 版本(安装结束后不要立即创建profile).注意安装最新的补丁.
2. 用profile向导创建一个配置管理profile. 首先选择配置管理profile作为profile类型,默认的DM profile名称是Dmgr01.
3. 接下来的步骤选择默认值,记住SOAP连接端口号,默认值是8879.这个端口号会在以后的配置中用到。
4. 运行<profile>/Dmgr01/bin/startManager.bat启动管理服务.
5. 登陆http://silkpc01.cn.ibm.com:9060/admin管理控制台确认安装是否成功.
二. 准备Web Server节点
1. 在silkpc06服务器上安装 IBM IHS6.0(选择典型安装)
2. 确保IHS安装成功. 启动Web server,测试http://silkpc06/返回页
三. 安装配置WAS Plugin
对于静态Web页面请求,Web Server会直接处理并将结果返回给终端用户。而对于动态Web页面,如JSP,Servlet等,需要WAS plugin将请求传递给WAS Web容器或者EJB容器来处理。下面将介绍如何安装和配置WAS plugin应用。
1. 确认IBM IHS6.0安装成功后,安装WAS plugin应用程序,选择"IBM HTTP Server V6"
2. 在接下来的步骤中选择plugin的安装路径,IHS配置文件httpd.conf的位置,指定Web服务名字,缺省是webserver1
3. 然后选择Deployement Manager所在服务器的作为应用服务器,这里是silkpc01
四. 把Web Server节点加入配置管理服务器.
1. 开启IHS的admin管理: 在silkpc06<IHS-install>/bin目录下运行httpasswd -cm <install_dir>"conf"admin.passwd admin(admin 是以后管理IHS的用户名). 接着输入两次密码.
2. 在silkpc06的服务管理面板中启动IBM HTTP Server 和 IBM HTTP Administration Server.
3. 将silkpc06的<plunin-install>/bin/ configurewebserver1.bat文件拷贝到silkpc01的<was-install>/bin目录.
4. 在silkpc01上启动DM服务 < was-install >/profiles/ profiles"Dmgr01"bin" startManager.bat.
5. 在silkpc01打开一个命令行窗口,运行<was-intall/bin/configurewebserver1.bat.
6. 到配置管理控制台确认Web Server被成功加入.
7. 点击webserver1, 进入后在"additional properties"页中点击"remote web server",输入在第1步中生成的用户名和密码。这样Web Server就可以被配置管理器进行集中管理,包括停止/启动,以及plugin文件的生成和部署。
五. 准备应用服务器节点
1. 在psvt12 服务器上安装WAS6,注意安装最新的WAS补丁
2. 执行< was-install >/ bin/ProfileCreator/ pctAIX.bin 启动profile向导.
3. 选择应用服务profile作为profile类型.
4. 其余步骤使用默认值安装.
5. 在另外一个WAS节点psvt07上执行1至5步.
六. 把应用服务器节点加入到集中管理单元
1. 为保持同步,确保silkpc01, psvt12 和psvt07三台机器上的时间差不超过5分钟.
2. 在psvt12上执行< was-install >/ profiles/AppSrv01/bin/startServer.sh server1 启动 server1
3. 在psvt12上执行< was-install >/ profiles/AppSrv01/bin/addNode.sh <DM machineName> <DM soap port>把psvt12节点加入到集中管理单元. 本例中DM机器名是silkpc01, soap端口号 为8879.
4. 在另外一台节点psvt07上重复2至3步将此节点也加入到集中管理单元.
5. 在配置管理控制台确认psvt07和psvt12加入到集中管理单元,如下图:
七. 准备数据库节点
1. 在数据库服务器psvt06上安装DB2 v8.2.
八. 创建cluster
1. 在WAS节点psvt07和psvt12上运行<profile>/bin/startNode命令启动node agent
2. 登录管理控制台,创建Cluster。输入Cluster名字,点击Next.
3. 输入psvt07作为成员名字, 在"Select node"下拉列表中选择psvt07Node01, 点击Apply.
4. 在同一页面输入psvt12作为成员名字, 选择psvt12Node01, 点击Apply.
5. 点击Next查看Cluster信息.
6. 点击finish创建cluster
7. 点击save保存和同步cluster(注意:在Cluster环境中,保存任何修改时都应该选上"与节点同步"的选项)
8. 确认cluster创建成功.从下图可以发现psvt07和psvt12已经作为cluster成员
至此我们已经完成了cluster的创建,接下来需要部署一个企业应用来测试。
九. 创建数据源(Datasource)
为了让将来发布在Cluster上的应用能连接到数据库, 我们需要在psvt07和psvt12节点上创建相同的数据源.
1. 登录管理控制台, Security'Global security->JAAS Configuration->J2C Authentication data , 点击New.
2. 输入数据库节点上的数据库用户及密码,点击Apply保存
3. 进入管理控制台, Resource'Jdbc Provider, 选择psvt07节点.然后点击New创建一个新的Jdbc Provider. 注意此处应该是在节点范围。如果在cluster级别,可能出现问题。
4. 选择Jdbc Provider类型和实现类
5. 点击Apply按钮保存Jdbc Provider, 并点击Data sources.
6. 点击New创建一个新的Data sources.
7. 输入jdbc/sample作为JNDI名字.
8. 输入数据库sample和数据库节点所在的主机名,选择上面新建的J2C认证.
9. 保存和同步新建的内容.
10. 设置psvt07节点的变量. Enviromnet->Wesphere Variables, 选择psvt07节点并设置DB2 JDBC driver路径.
11. 重复5至12步, 在psvt12节点上创建一个相同的DataSource.
12. 在silkpc01上重启DM服务, 在psvt07和psvt12上重启nodeagent服务。可以通过"Test Connection"测试节点的数据源配置是否正确。
十. 部署应用程序,测试集群环境
1. 下载应用程序到本地并解压缩。
2. 在数据库节点创建数据库sample(确保数据库名和第九步中键入的数据库名一致),并创建表(ddl.txt),加载数据(data.txt)。
3. 登录管理控制台发布应用, Applications->Install New Application, 选择Department.ear 作为发布的应用, 点击Next.
4. 选择default_host作为 Virtual host, 点击Next.
5. 输入应用的名字, 点击Next.
6. 在server列表中选择 TestCluster, 在模块(Module)列表中选择DepartmentEJB,点击Apply.
7. 按住Ctr键, 在server列表中选择 TestCluster和WebServer1, 在模块列表中选择DepartmentWeb, 点击Apply.
8. 点击Next.
9. 确认CurrentBackendId 为DB2UDBNT_V82_1,点击Next.
10. 点击Next.
11. 在应用部件列表中, 输入jdbc/sample 作为DepartmentEJB的Data Source 的JNDI名字.
12. 忽略出现的警告,点击Continue.
13. 在应用部件列表中, 输入jdbc/sample 作为DepartmentEJB的Data Source 的JNDI名字.
14. 忽略出现的警告,点击Continue.
15. 点击Next.
16. 确认DepartmentWeb的Virtual host 是default_host, 点击Next.
17. 点击Next.
18. 点击Finish部属应用在Cluster上.
19. 保存和同步新的修改.
20. 重新启动cluster.
21. 确认应用程序启动后,在IE浏览器键入:http://silkpc06/DepartmentWeb/getDepartmentName.html,输入部门号A00并提交,确认系统返回一个正确的页面.
场景2: 拆分WAS 单节点环境为ND集群环境
如果企业的最初应用搭建在单节点之上,即WAS应用服务器、Web服务器和数据库都在同一物理机器上。或者应用搭建在三节点,WAS应用服务器、 Web服务器和数据库分布在三台机器。但是随着业务需求的增加,用户希望在保持现在投资的基础上提供更高的扩展性,容错性和处理性能,这就有了集群环境的 需求。本场景将介绍如何将此单节点(或三节点)扩展成图3-1拓扑的五节点环境。对于单节点环境,您需要从第一步开始操作,而对于已有的三节点环境,则可 以省去第-和第二步的部分操作,免去单节点拆分成三节点的步骤,而进入第三步。
在此我们假设本文提供的应用程序已经发布到psvt12节点,此节点包含WAS, IHS和DB2环境,并且应用系统可以正常的工作。 (http://psvt12/DepartmentWeb/getDepartmentName.html).
一. 准备安装其他各节点
1. 在silkpc01节点上安装WAS6 ND 版本, 并用profile向导创建一个配置管理profile.
2. 在另外一个Cluster成员psvt07 节点上安装WAS6 ND 版本, 并用profile向导创建一个应用服务profile. 并在此节点安装DB2客户端.
3. 在Web服务器 silkpc06上安装IBM IHS 6.0 和WAS Plugin. 安装Plugin时,选择Remote方式, 选择silkpc01为应用服务器。并开启IHS的admin远程管理服务. (请参照场景一)
4. 在数据库节点psvt06节点上安装DB2 8.2服务器
二. 把psvt12上的应用拆分到三节点上
1. 在psvt12节点上备份当前的数据库,并把该数据库备份文件上传到psvt06节点, 然后在psvt06节点上恢复该数据库.
2. 在psvt12的管理控制台(http://psvt12.cn.ibm.com:9060/ibm/console/)修改server1的DataSource: 把DataSource的服务器名指向数据库服务器psvt06. 然后测试连接.
3. 在psvt12的管理控制台把应用系统所映射到的虚拟主机(virtual host)-主机别名(Host Aliases)属性页的Host Name 指向Web服务器silkpc06.
4. 在psvt12的管理控制台重新生成Web server 的plug-in, 然后把psvt12节点生成的plugin-cfg.xml 文件拷贝到silkpc06节点的相对应目录下.
5. 将psvt12节点的httpd.conf 文件文件拷贝到silkpc06节点的相对应目录下, 并把该httpd.conf文件中的所有host name 改为silkpc06.
6. 重启psvt12节点上的 server1和silkpc06 节点上的Web Server.
7. 这样就将psvt12单节点上的应用拆分为silkpc06(Web节点), psvt12(WAS节点), psvt06(DB2节点)三层结构.
8. 访问http://silkpc06/DepartmentWeb/getDepartmentName.html验证三节点拆分成功.
三. 把各节点加入集中管理单元
本部分首先需要修改一些配置参数(1-4步),接着配置Web Server加入到管理单元(6-14步),并将WAS节点加入到管理单元(5,15和16步)
1. 确认silkpc01, psvt12 和psvt07三台机器上的时间差不超过5分钟.
2. 在psvt12节点上修改addNode.sh 命令的JVM参数:
a. 用文本编辑器打开<WAS_installdir>/bin/addNode.sh 文件.
b. 找到下面的命令行
c. 在该命令行下面加入下面的参数
3. 在psvt12节点上修改SOAP的参数:
a. 用文本编辑器打开<profile_dir>/properties/soap.client.props文件.
b. 找到下面的参数
com.ibm.SOAP.requestTimeout
|
c. 把它的值改为6000
注意: 在把psvt12加入到管理单元后,把该参数改回到原来的值.
4. 在DM管理控制台(silkpc01)修改DM的JVM参数: System Administration > Deployment Manager > Java and Process Management > Process Definition > Java Virtual Machine.
a. 把Initial Heap Size 设为: 256
b. 把Maximum Heap Size 设为: 512
5. 在psvt12节点运行下面的命令把psvt12加入到管理单元: < profile_dir >/bin/addNode.sh silkpc01.cn.ibm.com 8879 -includeapps 注意: -includeapps 参数是表示把该节点上的应用一起加入管理单元.
6. 在DM控制台新建一个unmanaged节点,把该节点的hostname指向silkpc06. 通过(System Administration >Nodes>Add Node)命令
7. 在DM控制台新建一个webserver, 并把它放置在刚建的unmanaged节点上. Servers>Web servers>New
8. 点Next, 输入IHS 和Plug-in的安装路径.
9. 点Next, 设置IHS admin的管理员和密码(在第一部分的第3步中已经创建).
注意: 确保在8,9步中输入了正确的值, 否则Plug-in的变化将不能自动发布到Web Server节点.
10. 点Next, 用默认值完成剩余步骤.
11. 在DM控制台新建一个Virtual host, 并把Host Aliases的Host Name 指向silkpc06.
12. 把已有的应用系统映射到Server1和webserver1上, Applications>Enterprise Applications>AppName>Additional Properties>Map modules to servers.
13. 在server列表中选择 Server1, 在应用部件列表中选择DepartmentEJB,点击Apply. 按住Ctr键, 在server列表中选择Server1和WebServer0, 在应用部件列表中选择DepartmentWeb, 点击Apply.
14. 把应用中的web模块映射到新建的virtual host上. Applications>Enterprise Applications>AppName>Additional Properties> Map virtual hosts for Web modules, 把DepartmentWeb映射到刚建的virtual host上.
15. 在psvt7节点运行下面的命令把psvt7加入到管理单元: < profile_dir >/bin/addNode.sh silkpc01.cn.ibm.com 8879
16. 在DM控制台为psvt7节点添加Datasouce所用到的WebSphere变量, Environment> WebSphere Variables >选择psvt07节点并设置下图中被红线框住的变量.
四. 创建cluster
1. 在WAS节点psvt07和psvt12上运行<profile>/bin/startNode命令启动节点代理器.
2. 登录DM管理控制台,Servers>Cluster>New,输入Cluster名字, 并选择psvt12节点上的server1加到cluster,点击Next.
3. 输入psvt12作为成员名字, 选择psvt12节点,点击Apply.
4. 确认server1和psvt12节点已经被加入到Cluster成员列表中, 点击Next.
5. 点击Finish创建cluster.
6. 把psvt07加入到cluster: Servers>Cluster>ClusterName>Additional Properties>Cluster members>New
7. 输入psvt07作为成员名字, 选择psvt07节点,点击Apply,点击Next.
8. 点击Finish把把psvt07加入到cluster.
9. 确认应用程序被正确映射: Applications>Enterprise Applications>AppName>Additional Properties>Map modules to servers.
10. 确认 DepartmentEJB被映射到TestCluster, DepartmentWeb被映射到TestCluster+ WebServer0. 如果映射有误,可以在该页重新映射.
五. 测试集群环境应用程序
同场景1第十步的最后一步操作。
4. 结束语
随着电子商务的广泛应用,越来越多的企业希望搭建WAS集群环境以提高应用的扩展性和性能。本文针对实际需求,详细介绍了如何搭建集群环境以及如何扩展已有的应用环境为WAS集群环境。
5. 下载
样例代码:Department.zip
参考资料
《Websphere6.1试用版无限试用》
http://www.webspherechina.net/club/viewthread.php?tid=12293
http://www.web spherechina.net/club/viewthread.php?tid=8540&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D118&page=1
在WAS V7.0试用版照样适用
http://www.webspherechina.net/club/viewthread.php?tid=12293
补充一下
方法1:
删除这个was.license, 有疑惑,可以剪 切到别处备份一下
C:\IBM \WebSphere \AppServer \properties\was.license
然后随便启动个profiles下的一个AppSrv**,就会自动生成一个 was.license, 60 天到期
方法2:
长远一点,删除was.license后,把系统 时间调到N年后,然后启动服务器 ,生成 was.license 后,关闭服务 器,再把时间调回来,这样就是N年后+60天到期 了
试用版嘛,就是试用的,应该是无限的,到期了不可能再重装,太麻烦了
https://192.168.130.113:9043/admin
环境----虚拟主机----VH-EMALL----主机别名----配置VirualHost别名
使单个主机类似于多个主机的配置。
每个虚拟主机有一个逻辑名和一个或多个域名系统(DNS)别名的列表,通过该列表可识别虚拟主机。
新建was集群应用
如:130.114 9060 端口号(web2was传输链的端口号),可以方便单台应用调试和查找问题
注:功能性调试前先清空temp目录,重新编译生成诸如EJB等classes
测试方法,正常访问web机器,停止其他集群应用即可:
http://web-server:80
https://web-server:443
$ pwd
/usr/IBM/WebSphere/AppServer/profiles/EMALL04/temp/Ecsvr2Node01/WCSCluster_emall02_mbr1/WC_EMALL
$ ls -l
total 16
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 CatalogServicesHTTPInterface.war
drwxr-x--- 4 wcsuser wcs 4096 6月18 09时43 CommerceAccelerator.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 ContentServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 ContractServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 Enablement-BusinessContextWebServicesRouter.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 InfrastructureServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时56 InitializationServlet.war
drwxr-x--- 3 wcsuser wcs 256 6月18 17时36 LOBTools.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 MarketingServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 MemberServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 OrderServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 OrganizationAdministration.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 Preview.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 PriceServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 PromotionServicesHTTPInterface.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 SiteAdministration.war
drwxr-x--- 5 wcsuser wcs 4096 6月18 09时07 Stores.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 Telesales-BaseWebServicesRouter.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 WebServicesRouter.war
drwxr-x--- 2 wcsuser wcs 256 6月18 01时58 WorkspaceAdministration.war
appServer IBM WebSphere Exception / WAS 6.1 Exception / WAS 7 Exception
IBM Support Assistant Data Collector
http://public.dhe.ibm.com/software/isa/isadc/2.0/isacoreweb/2.0.1/isadc/lang/zh/index.html?taxonomy=ApplicationServer
MustGather: Performance, hang, or high CPU issues on Linux (linperf.sh)
http://www-01.ibm.com/support/docview.wss?uid=swg21115785
http://www-01.ibm.com/support/docview.wss?uid=swg21115785&aid=1
http://dl.iteye.com/topics/download/00428b99-871a-310a-a058-9a6ee72dda07
MustGather: Performance, hang, or high CPU issues on AIX (aixperf.sh)
http://www-01.ibm.com/support/docview.wss?uid=swg21052641
用法:
[lindows@Loadrunner19 ~]$ ./linperf.sh 17909 (17909 ---- java进程号)
Question:
三台WAS应用集群,
前两台WAS集群cell1 + cell2压测性能正常,WAS CPU消耗=60%左右,DB=10%左右,
后一台WAS集群cell3 loadrunner 压测性能异常,WAS CPU消耗=40%左右,DB=90%左右。
Answer:
检查cell 3 WAS JDBC 数据源配置环境发现:wc-server.targettable.pre.xml 配置有误,参照cell1或cell2的WAS集群数据源正确配置即可。
Question:
消息
EAR 文件可能是损坏的和/或不完整的。
com.ibm.etools.archive.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml
解决
web.xml 描述循序比较严格
在websphere6中部署应用遇到的struts问题
http://acme1921209.iteye.com/blog/195042
在一个应用程序包部署到websphere6中后,出现一下异常:
[07-1-15 19:18:47:234 CST] 00000027 ActionServlet E Parsing error processing resource path
[07-1-15 19:18:47:250 CST] 00000027 ActionServlet E TRAS0014I: 下列异常已记录 java.net.MalformedURLException: SRVE0238E: 资源路径应该以斜杠开头
at com.ibm.ws.webcontainer.webapp.WebApp.getResource(WebApp.java:1915)
at com.ibm.ws.webcontainer.facade.ServletContextFacade.getResource(ServletContextFacade.java:100)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1002)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
.
java.net.MalformedURLException: SRVE0238E: 资源路径应该以斜杠开头
...
该应用包在websphere5.x中部署正常,后发现websphere使用的struts版本问题.
Struts 1.1 中,获得资源路径时,前面不带斜线 ( / ) ,但在 Servlet 2.4 规范中,要求在获得一个资源路径时,路径必须是相对与当前上下文根并以斜线 ( / ) 开头,在 WebSphere Application Server 5.x中使用的是struts1.1版本规则,而websphere6则使用了Servlet 2.4版本的规则,故导致问题出现.
解决办法是:利用websphere6兼容websphere5.x的方法:
具体为:
在WebSphere6 管理控制台中,进入 服务器 -> 对应的服务器名称 -> WEB 容器设置->WEB容器 -> 其他属性->定制属性 -> 添加
添加下面的属性 :
名称: prependSlashToResource
值: true
重启websphere即可.
===补充,因为上面的问题,后来查了文档:发现还有个注意点:这个不知道会不会出现,这里先急着:
§ JSP useBean tag
4 Tightened conformance to JSP 1.2
4 Old: <jsp:useBean id="pg" class= "exp.ObjExp.exampleTbl" scope="request" />
4 New: <jsp:useBean id="pg" type= "exp.ObjExp.exampleTbl" scope="request" />
4 http://www- 1.ibm.com/support/docview.wss?rs=180&context=SSEQTP&q1=jsp%3ausebean&uid=s wg21163939&loc=en_US&cs=utf-8?=en
IBM WebSphere 6.1兼容性问题
http://203.208.39.132/search?q=cache:BkiCqY9bcQsJ:elasticpath.blogspot.com/2009/02/ibm-websphere-61.html+ibm+ecommerce&cd=38&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy2_zN5h2lGQZHfowPO6d3oIuWFX4vQ
2009年2月10日 星期二
IBM WebSphere 6.1兼容性问题
把应用(基于spring2.x的电子商务软件)从Tomcat移植到WAS6.1时遇到一些兼容性问题,主要集中在JSTL上;
主要问题如下:
jsp头一定要加上isELIgnored="false",否el会不被执行。
例如:
xml文件中带有中文时会出错。
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 8 in XML document from ServletContext resource /WEB-INF/classes/conf/spring-scheduling.xml is invalid; nested exception is org.xml.sax.SAXParseException: cvc-elt.1:找不到元素“beans”的声明。
原因是spring-scheduling.xml中有中文内容,而xml文件本身是utf8的。只要有中文内容就会影响到xml的解释校验。
JSTL的fn:函数支持有问题。
当有或嵌套使用$时会出问题。
例如:${fn:indexOf(pa.strValue,"str")}
javax.servlet.jsp.JspException: No function is mapped to the name "fn:indexOf"
at com.ibm .ws.jsp.tagfile.webinf.content._displayOneAd.doTag(_displayOneAd.java:90 )
at com.ibm ._jsp._adViewMid._jspx_meth_content_displayOneAd_0(_adViewMid.java:261)
at com.ibm ._jsp._adViewMid._jspx_meth_c_when_0(_adViewMid.java:280)
at com.ibm ._jsp._adViewMid._jspx_meth_c_choose_0(_adViewMid.java:342)
at com.ibm ._jsp._adViewMid._jspx_meth_c_forEach_0(_adViewMid.java:389)
at com.ibm ._jsp._adViewMid._jspService(_adViewMid.java:142)
at com.ibm .ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
JSTL的fn函数还是比较常用的,暂时没有解决方法.
Tag File中使用request对象时,会自动转为ServletRequest
getContextPath
getQueryString
getRequestURI
setAttribute
等方法都不支持。
实际上最常用的是HttpServletRequest(至少在Tomcat中,这个request对象就是HttpServletRequest),所以必须在代码中强行转换类型。
如:
Tag file上不支持自动类型转换
如:Integer minOrderQuantity = 1;
会报错,必须改为Integer minOrderQuantity = new Integer("1");
而这个是JDK5已经支持的自动转换类型的用法,WAS6.1是否不支持?
Jsp可能也有类型的情况,未证实.
S8596KI_WebSphere Mainframe Administrator and System Programmer OOM Diagnosis.pdf
http://dl.iteye.com/topics/download/5e6bc7d8-cada-361d-88d0-aaf0c9192d40
IBM虚拟机产生的Snap.20090706.155344.348194.0001.trc
http://tonyxu841106.iteye.com/blog/430132
http://bbs.weblogicfans.net/thread-98-1-1.html
http://bbs.weblogicfans.net/viewthread.php?tid=98
weblogic运行在aix上,发生heapdump时随之还产生了javacore和Snap.20090706.155344.348194.0001.trc文件
trc文件 对跟踪文件进行格式化
跟踪格式化器(trace formatter) 是一个可以在任何平台上运行的 Java 程序,可以对来自任何平台的跟踪文件进行格式化。IBM SDK 在 core.jar 中提供了这个格式化器,它还需要一个称为 TraceFormat.dat 的文件,其中包含格式化模板。这个文件在 jre/lib 中。可以用以下命令行启动跟踪格式化器:
java com.ibm.jvm.format.TraceFormat input_file [output_file]
在这里,com.ibm.jvm.format.TraceFormat 是跟踪格式化器类,input_file 是要进行格式化的二进制跟踪文件的名称,output_file 是可选的输出文件名。如果没有指定输出文件,那么默认的输出文件名是输入文件名加上 .fmt。
IBM的dw网站有详细的说明:
http://www.ibm.com/developerworks/cn/java/j-ibmjava5/index.html
https://www.ibm.com/developerworks/cn/views/java/libraryview.jsp?type_by=%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0&view_by=search&search_by=Java+%E6%8A%80%E6%9C%AF%EF%BC%8CIBM+%E9%A3%8E%E6%A0%BC
Java 技术,IBM 风格: 监视和判断问题
使用 IBM 的诊断工具建立更好的应用程序
Chris Bailey (baileyc@uk.ibm.com), 咨询软件工程师, IBM
Simon Rowland, 软件工程师, IBM Java Technology Centre
简介: Java? 技术 5.0 的 IBM 实现包含许多有用的工具,可以帮助开发人员诊断和解决 Java 开发问题。
在 Java 技术,IBM 风格 系列的本期文章中,您将了解可以从 IBM 跟踪和转储引擎获得的信息。
本文还将介绍 Diagnostic Toolkit and Framework for Java(DTFJ)API,可以用这个 API 编写代码来查询和分析诊断数据。
GPS AppSrv01 / 192.168.134.72 / Snap.20121231.051434.11938.0005.trc 文件分析
[root@app01 AppSrv01]# /opt/IBM/WebSphere/AppServer/java/bin/java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pxa6460sr8fp1ifix-20100924_01(SR8 FP1+IZ81201+IZ80998+IZ83034+IZ83273))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8ifx-20100923_65174 (JIT enabled, AOT enabled)
J9VM - 20100923_065174
JIT - r9_20100401_15339ifx6
GC - 20100308_AA)
JCL - 20100728_01
[root@app01 AppSrv01]# /opt/IBM/WebSphere/AppServer/java/bin/javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files and annotation processors
-cp <path> Specify where to find user class files and annotation processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compilation is done.
-processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
-processorpath <path> Specify where to find annotation processors
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
[root@app01 AppSrv01]# /opt/IBM/WebSphere/AppServer/java/bin/javac -version
javac 1.6.0-internal
[root@app01 AppSrv01]# /opt/IBM/WebSphere/AppServer/java/bin/java com.ibm.jvm.format.TraceFormat /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc
*** Starting data extraction from binary trace file(s)
*** Locating formatting template files
*** Found /opt/IBM/WebSphere/AppServer/java/jre/lib/J9TraceFormat.dat
*** Found /opt/IBM/WebSphere/AppServer/java/jre/lib/TraceFormat.dat
*** Loading further formatting templates from /opt/IBM/WebSphere/AppServer/java/jre/lib/TraceFormat.dat
*** Extracting 2 buffers from /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc
*** Sorting buffers
*** Starting formatting of entries into text file /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc.fmt
*** Number of traced threads = 2
0% 10% 20% 30% 40% 50% 60% 70% 80% ... 100%
*** Number of formatted tracepoints = 9
*** Formatting complete
*** Formatted output written to file: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc.fmt
0 errors were detected during formatting
根据 /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc.fmt文件确认 ThreadsID
Active Threads :
0x235c000 huiTongParser-3
0x3259600 Thread-70
- Trace Summary
-
- Service Level :
- JRE 1.6.0 IBM J9 2.4 build 20100923_065174
-
- JVM Start-up Params :
- -Xjcl:jclscar_24
- -Dcom.ibm.oti.vm.bootstrap.library.path=/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs:/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64
- -Dsun.boot.library.path=/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs:/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64
- -Djava.library.path=/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs:/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64:/opt/IBM/WebSphere/AppServer/bin::/usr/lib
- -Djava.home=/opt/IBM/WebSphere/AppServer/java/jre
- -Djava.ext.dirs=/opt/IBM/WebSphere/AppServer/java/jre/lib/ext
- -Duser.dir=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
- _j2se_j9=1119744
- -Djava.runtime.version=pxa6460sr8fp1-20100924_01 (SR8 FP1)
- -Xdump
- -Djava.class.path=.
- -Declipse.security
- -Dwas.status.socket=33473
- -Dosgi.install.area=/opt/IBM/WebSphere/AppServer
- -Dosgi.configuration.area=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/configuration
- -Djava.awt.headless=true
- -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors
- -Xshareclasses:name=webspherev70_%g,groupAccess,nonFatal
- -Xscmx50M
- -Xbootclasspath/p:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmorb.jar:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmext.jar
- -Djava.class.path=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/properties:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar
- -Dibm.websphere.internalClassAccessMode=allow
- -verbose:gc
- -Xms768m
- -Xmx1536m
- -Xcompressedrefs
- -Dws.ext.dirs=/opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/classes:/opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime
- -Dderby.system.home=/opt/IBM/WebSphere/AppServer/derby
- -Dcom.ibm.itp.location=/opt/IBM/WebSphere/AppServer/bin
- -Djava.util.logging.configureByServer=true
- -Duser.install.root=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
- -Dwas.install.root=/opt/IBM/WebSphere/AppServer
- -Dpython.cachedir=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/temp/cachedir
- -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager
- -Dserver.root=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
- -Dcom.ibm.security.jgss.debug=off
- -Dcom.ibm.security.krb5.Krb5Debug=off
- -Xss1m
- -Xgcpolicy:gencon
- -Xmns256m
- -Xmnx512m
- -Xverbosegclog:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/GPSTestServer3/verbosegc.log,20,50000
- -Ddefault.client.encoding=GBK
- -Dfile.encoding=GBK
- -Duser.language=zh
- -Duser.region=CN
- -Djavax.management.builder.initial=
- -Dcom.sun.management.jmxremote.authenticate=false
- -Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.port=9998
- -Djava.security.auth.login.config=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/properties/wsjaas.conf
- -Djava.security.policy=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/properties/server.policy
- -Dsun.java.command=com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config app01Cell01 app01Node01 GPSTestServer3
- -Dsun.java.launcher=SUN_STANDARD
- -Dsun.java.launcher.pid=11938
- _port_library
- _org.apache.harmony.vmi.portlib
-
-
- Activation Info :
- FORMAT=/opt/IBM/WebSphere/AppServer/java/jre/lib/amd64/compressedrefs;/opt/IBM/WebSphere/AppServer/java/jre/lib;.
- LIBPATH=/opt/IBM/WebSphere/AppServer/java/jre/bin
- MAXIMAL=all{level1}
- EXCEPTION=j9mm{gclogger}
-
- Sys Processor Info :
- Arch family AMD64
- Processor Sub-type Opteron
- Num Processors 4
- Big Endian false
- Word size 64
- Using Trace Counter J9 timer
-
- Active Threads :
- 0x235c000 huiTongParser-3
- 0x3259600 Thread-70
-
- JVM started : 12:55:56.644000000
-
- Last buffer write: 21:14:34.664118000
-
- First tracepoint: 21:14:34.462561000
-
- Last tracepoint : 21:14:34.663469000
-
- 0 errors were detected during formatting
-
-
- Trace Formatted Data
-
- J9 timer(UTC) ThreadID TP id Type TraceEntry
- 21:14:34.462564000 *0x3259600 j9prt.549 Exception * j9file_open returns failure, filename = /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0003.trc, os errno = 2, portable errno = 4294966988
- 21:14:34.462649000 0x3259600 j9prt.422 Exit <j9sig_protect: Exiting after returning from fn, fn=0x2aaaaecf4430, fn_arg=0x2aaabd82d250, handler=0x2aaaaecf4450, handler_arg=0x0, flags=0x7d, result=0x0
- 21:14:34.462649000 0x3259600 j9dmp.4 Event Snap Dump written to filename=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0003.trc
- 21:14:34.462671000 0x3259600 j9vm.364 Event Queue is non-empty (0x14cf500) placing this thread at the tail.
- 21:14:34.462671000 0x3259600 j9vm.362 Event Exclusive Access is held by another thread, placing this thread in the queue.
- 21:14:34.462671000 0x3259600 j9vm.361 Entry >Attempting to acquire exclusive VM access.
- 21:14:34.462673000 0x3259600 j9vm.365 Event Thread is waiting on public flags mutex.
- 21:14:34.663364000 *0x235c000 j9prt.417 Entry >j9sig_protect: Entered, fn=0x2aaaaecf4430, fn_arg=0x2aaabc7cbd10, handler=0x2aaaaecf4450, handler_arg=0x0, flags=0x7d
- 21:14:34.663469000 0x235c000 j9dmp.5 Event JVM requested Snap Dump using filename=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/Snap.20121231.051434.11938.0005.trc
根据 Snap.20121231.051434.11938.0005.trc.fmt里
Active Threads :
0x235c000 huiTongParser-3
0x3259600 Thread-70
确认/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/javacore.20121231.051434.11938.0012.txt文件里这些已开发的打印出来的java性能或功能异常类优化即可
4XESTACKTRACE at com/******/dao/impl/CarInfoDaoImpl.queryCarInfo(CarInfoDaoImpl.java(Compiled Code))
4XESTACKTRACE at com/******/service/impl/CarInfoServiceImpl.queryCarInfo(CarInfoServiceImpl.java(Compiled Code))
、、、
4XESTACKTRACE at $Proxy31.queryCarInfo(Bytecode PC:18(Compiled Code))
4XESTACKTRACE at com/******/parser/car/CarGPSParser.queryCommonData(CarGPSParser.java:220(Compiled Code))
4XESTACKTRACE at com/******/parser/car/CarGPSParser.onMessage(CarGPSParser.java:136(Compiled Code))
、、、
4XESTACKTRACE at $Proxy78.saveCarGPSDataAndSummer(Bytecode PC:18(Compiled Code))
4XESTACKTRACE at com/******/SaveCarData.carGPSDataHandle(SaveCarData.java:79(Compiled Code))
4XESTACKTRACE at com/******/SaveCarData.run(SaveCarData.java:61(Compiled Code))
OOM 问题 要看GC log, heapdump javacore, logs 就这些
Hands-On-Labs for the WebSphere Mainframe Administrator and System Programmer: OOM Diagnosis
Ken Irwin IBM Corporation
February 28, 2011 Session Number 8596
Lots-O-Labs: OOM Diagnosis
下载
http://dl.iteye.com/topics/download/47bf39f4-1cf1-361e-86ab-a3ab18673c5b
WebSphere7部署Web应用注意点
http://itcareerist.iteye.com/blog/845981
WebSphere7部署SSH2本身不需要做特殊处理。直接通过console上传部署Web应用即可。但是WebSphere校验比较严格,需要注意以下两点:
- JSP页面中的“pageEncoding”必须为“UTF-8”全大写,小写或者大小写混合都会报错。
- 路 径问题。JSP中导入的js、css、dwr等路径中,不能带有“//”(http之后的除外)。如:“src='http://ip/proj //path1/path2/xx.js'>”错误,无法正常加载(Tomcat、JBoss、Weblogic都无此问题)。因此,JSP中诸如 “basePath”的根目录,要确定最后是否带有“/”,如果已经带有“/”,则后面跟的子路基不再需要在首字母处带“/”。
在basePaht最后带有“/”的情况下:
正确:src='<%=basePath%>path1/path2/xx.js'
错误:src='<%=basePath%>/path1/path2/xx.js'
以上结论在如下环境中测试得出:Windows2003+JDK1.6+WebSphere+Struts2.1.8+Spring2.5.6+Hibernate3.3.2,其他环境未作测试。
Exception:
http://www-01.ibm.com/support/docview.wss?uid=swg21242197
http://blog.csdn.net/xiedd/archive/2007/04/19/1570455.aspx
1.两root用户同时安装DB2Client冲突问题解决方法 db2_08_01.client 8.1.1.156
# su - root
#/db2client/admcl.dbcs/db2_deinstall卸载后,再安装出现 wcsdbins用户创建失败 DBI1131E
ERROR:An error occurred while initializing the warehouse control database. The
instance "wcsdbins" does not exist or the user is invalid.
or
ERROR:An error occurred while initializing the warehouse control database. The
instance "db2inst1" does not exist or the user is invalid.
Configuring the warehouse control database:.......Failure
WARNING:A minor error occurred while installing "DB2 Universal Database
Enterprise Server Edition" on this computer. Some features may not function
correctly.
db2_08_01 wcsdbins 用户卸载方法
确认 如下文件没有新建的wcsdbins用户
* /etc/passwd
* /etc/security/.profile
* /etc/security/limits
* /etc/security/passwd
* /etc/security/user
* /usr/lib/security/mkuser.default
* /etc/passwd
* /etc/security/.profile
* /etc/security/limits
* /etc/security/passwd
* /etc/security/user
* /usr/lib/security/mkuser.default
进行 wcsdbins 用户卸载步骤
#su - root
#/usr/opt/db2_08_01/instance/db2idrop wcsdbins
or
#/opt/IBM/db2/V9.5/instance/db2idrop db2inst1
3、卸载DB2
#/opt/IBM/db2/V9.5/install/db2_deinstall -a
#cd /opt/IBM/db2 (如果db2下没有任何文件,则卸载成功)
#cd /opt
#rm -rf IBM (强制删除IBM文件夹)
关于8.1补充一句
创建实例的命令如下(root用户下)
/usr/opt/db2_08_01/instance/db2icrt -a SERVER -s ese -u db2fenc -w 64 -p db2c_db2inst db2inst1
尽管这里指定的db2inst1为实例名,但是OS也必须存在同名的OS用户
否则提示:DBI1131E The user ID myinst1 is invalid. 因为db2会在该用户下创建实例,并指定该用户为实例的拥有者(可以db2start,db2stop)
2.http://www-01.ibm.com/support/docview.wss?uid=swg21264522
LikeMindsFilter was found, but is missing another required class
[10-11-27 9:15:45:671 GMT+08:00] 00000090 WebApp E SRVE0026E: [Servlet 错误]-[Stores Request Servlet]:java.lang.NoClassDefFoundError: com/ibm/commerce/likeminds/filter/LikeMindsFilter
[10-11-29 7:00:54:425 GMT+08:00] 00000063 WebApp E SRVE0026E: [Servlet 错误]-[Stores Request Servlet]:java.lang.NoClassDefFoundError: com/ibm/commerce/likeminds/filter/LikeMindsFilter
at java.lang.Class.newInstance1(Class.java(Compiled Code))
at java.lang.Class.newInstance1(Class.java(Compiled Code))
at java.beans.Beans.instantiate(Beans.java(Compiled Code))
at java.beans.Beans.instantiate(Beans.java(Inlined Compiled Code))
at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java(Compiled Code))
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java(Compiled Code))
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java(Inlined Compiled Code))
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java(Compiled Code))
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java(Compiled Code))
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
[10-11-27 9:15:46:594 GMT+08:00] 000000a5 WebApp E SRVE0026E: [Servlet 错误]-[Stores Request Servlet]:java.lang.NoClassDefFoundError: com/ibm/commerce/likeminds/filter/LikeMindsFilter
Answer:
login:https://192.168.1.1:9043/admin
restart The WCS Cluster Exception Instance, OK
AIX 调出主进程号pid及相关子进程号pid
#ps -mp 5046778 -o THREAD
#Kill -3 5046778
对几台服务器用ps -mp ******(进程号) -o THREAD >thread.txt ;kill -3 ******(进程号) 而后,在thread.txt中找到CP最高的若干进程号,转换为十六进制后,在生成的javacore中找到对应的进程的消息。
WebSphere Java应用CPU 异常问题定位
// 通过 WebSphere JAVA 进程查线程号
[root@testServer ~]# ps -ef | grep java
// 得到JAVA PID数字,替换下方PID
[root@testServer ~]# top -H -p PID -b -n1> dump_high_cpu.txt
// 在这个txt文件可以看到占比比较高的线程号,将这个线程号转成16位的
[root@testServer ~]# kill -3 PID
// 这个目录下会生成一个javacore文件
[root@testServer ~]# cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
[root@testServer ~]# ls -l *.txt
-rw-r--r-- 1 wasadmin wasadmin 3807148 Jun 20 14:52 javacore.20120620.145244.1509.0002.txt
// 然后利用占比较高的十进制线程号转换之后的十六进制数在javacore.20120620.145244.1509.0002.txt文件中找这个线程及定位相关操作实现的代码类
用JStack和Top分析Java进程CPU占用率
http://blog.csdn.net/guixunlong/article/details/8450897
在知道哪个Java进程CPU占用率过高以后:
1.使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈,例如jstack 12012 > 12012.txt
2.使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高. 比如:
可以看到,线程号为12025的线程占用cpu很高,接下来就可以在12012.txt中查找该线程,看它为啥这么忙了
或者也可以采用ps命令
ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 来查看繁忙的线程信息
这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,线程号为tid列。
3.在jstack dump出来的文件中查找目录线程,需要注意的是用16进程数来表示线程号,所以我们可以找12025对应的16进程数2EF9
图中黄色文字即为线程id值
nid : 对应的Linux操作系统下的tid线程号,也就是前面转化的16进制数字
tid: 这个应该是jvm的jmm内存规范中的唯一地址定位
rhel 5.5 for websphere 7.0 安装过程无报错,无法正常启动
[lindows@Loadrunner_19 ~]$ /opt/IBM/WebSphere/AppServer/bin/startServer.sh server1
WCMD0002E: Command "startServer.sh" requires a profile. No default profile exists and a profile name was not specified. Ensure that a default profile exists or use the -profileName parameter to specify the name of an existing profile.
aix 5.3 for websphere 6.1安装过程无报错,无法正常启动
http://www.aixchina.net/club/thread-7399-1-1.html
# /opt/IBM/WebSphere/AppServer/bin/startServer.sh
WCMD0002E: Command "startServer.sh" requires a profile. No default profile exists and a profile name was not specified. Ensure that a default profile exists or use the -profileName parameter to specify the name of an existing profile.
解决方法如下:
安装完后,并没有成功创建概要文件,到../WebSphere/AppServer/目录下,看是否有profiles目录,以及下面是否有AppSrv01/Dmgr01或自已命名的概要文件。
一般通过向导很有可能创建不成功,可能通过命令手工创建。
------------------------------------------------------------------------------------------------------------------------------
这个错误我试过,不影响webSphere的正常安装 我觉得还是你的概要文件创建失败了。你可以用以下命令试试
/opt/IBM/WebSphere/AppServer/bin/manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default -profileName profileName -profilePath /opt/IBM/WebSphere/AppServer/profiles/profileName
路径自己看着改一下 profileName改称你要创建的profileName
------------------------------------------------------------------------------------------------------------------------------
我昨天遇到同样的问题,版本问题也是报少5300-04-01,然后安装完后也是报部分成功PARTHIAL SUCCESS。最后也是在APPSERVER目录下找不到PROFILES目录,无法创建新的概要文件。
原因之一,我的主机名是APP_GZ,中间有下划线,估计是这个导致安装部分成功,PROFILES不见。
需要改名后重装。
------------------------------------------------------------------------------------------------------------------------------
run ok!
------------------------------------------------------------------------------------------------------------------------------
[root@B2Cmonitor dmgr]# find /opt/IBM/WebSphere/ -name "*.log" | xargs -I {} -t grep "exception" {}
...
[3/18/11 15:55:21:723 CST] 00000000 WorkSpaceMast E The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/cells/B2CmonitorCell01/.repositoryContext (Permission denied)
[3/18/11 15:55:21:750 CST] 00000000 DMAdapter I com.ibm.ws.ffdc.impl.DMAdapter getAnalysisEngine FFDC1009I: Analysis Engine using data base: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/logbr/ffdc/adv/ffdcdb.xml
[3/18/11 15:55:21:755 CST] 00000000 FfdcProvider I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/ffdc/dmgr_4d5d4d5d_11.03.18_15.55.21.73419376.txt com.ibm.ws.management.configservice.WorkspaceHelper.getWorkspace 47
[3/18/11 15:55:21:978 CST] 00000000 FfdcProvider I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/ffdc/dmgr_4d5d4d5d_11.03.18_15.55.21.76219377.txt com.ibm.ws.management.configservice.ConfigServiceImpl.discard 20n/
[3/18/11 15:55:21:988 CST] 00000000 WorkSpaceMast E WKSP0006E: Error while saving context ""-java.io.IOException: The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/.repositoryContext (Permission denied)
at com.ibm.wsspi.configarchive.DefaultFileAccessor.getOutputStream(DefaultFileAccessor.java:207)
at com.ibm.ws.sm.workspace.impl.WorkSpaceMasterRepositoryAdapter.save(WorkSpaceMasterRepositoryAdapter.java:1176)
at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.save(RepositoryContextImpl.java:1812)
at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.loadContext(RepositoryContextImpl.java:183)
at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.getChildren(RepositoryContextImpl.java:968)
at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.findContext(RepositoryContextImpl.java:693)
at com.ibm.ws.sm.workspace.impl.WorkSpaceImpl.findContext(WorkSpaceImpl.java:226)
at com.ibm.ws.management.configservice.WorkspaceHelper.getScopeContexts(WorkspaceHelper.java:341)
at com.ibm.ws.management.configservice.RootObjectDelegator.getAll(RootObjectDelegator.java:141)
at com.ibm.ws.management.configservice.ConfigServiceImpl.queryConfigObjects(ConfigServiceImpl.java:813)
at com.ibm.ws.management.configservice.ConfigServiceImpl.resolve(ConfigServiceImpl.java:890)
at com.ibm.ws.management.configservice.ConfigServiceImpl.resolve(ConfigServiceImpl.java:850)
at com.ibm.ws.management.configservice.ConfigServiceServerProxy$12.run(ConfigServiceServerProxy.java:489)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.management.configservice.ConfigServiceServerProxy.resolve(ConfigServiceServerProxy.java:480)
at com.ibm.ws.management.wlm.ClusterMgr.loadClusterConfig(ClusterMgr.java:532)
at com.ibm.ws.management.wlm.ClusterMgr.loadRefreshClusters(ClusterMgr.java:719)
at com.ibm.ws.management.wlm.ClusterMgr.loadRefreshClusters(ClusterMgr.java:705)
at com.ibm.ws.management.wlm.ClusterMgr.initialize(ClusterMgr.java:250)
at com.ibm.ws.cluster.runtime.ClusterRuntimeImpl.initializeClusterMgr(ClusterRuntimeImpl.java:155)
at com.ibm.ws.cluster.runtime.ClusterRuntimeImpl.start(ClusterRuntimeImpl.java:146)
at com.ibm.ws.runtime.component.ContainerHelper.startComponents(ContainerHelper.java:515)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:631)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:621)
at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:520)
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:298)
at com.ibm.ws.runtime.WsServerImpl.start(WsServerImpl.java:214)
at com.ibm.ws.runtime.WsServerImpl.main(WsServerImpl.java:666)
at com.ibm.ws.runtime.WsServer.main(WsServer.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:213)
at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:93)
at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:74)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:981)
at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:330)
at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:108)
.
[3/18/11 15:55:21:995 CST] 00000000 WorkSpaceMast E The system cannot find the specified file, either the filename is too long on Windows system or run out of file descriptor on UNIX platform. java.io.FileNotFoundException: /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/com.ibm.ws.wlm.clusterMgr/workspace/.repositoryContext (Permission denied)
[root@B2Cmonitor profiles]# ls -l
total 8
drwxr-xr-x 15 wasuser wasgroup 4096 Mar 17 21:38 AppSrv01
drwxr-xr-x 22 wasuser wasgroup 4096 Mar 18 14:29 Dmgr01
[root@B2Cmonitor workspace]# ls -la
total 24
drwxr-xr-x 4 root root 4096 Mar 18 17:23 .
drwxr-xr-x 3 root root 4096 Mar 18 17:23 ..
drwxr-xr-x 3 root root 4096 Mar 18 17:23 cells
-rw-r--r-- 1 root root 116 Mar 18 17:23 .repositoryContext
drwxr-xr-x 3 root root 4096 Mar 18 17:23 waspolicies
-rw-r--r-- 1 root root 4074 Mar 18 17:23 .workspace_
[root@B2Cmonitor workspace]# ps -ef | grep java
root 24213 1 3 17:23 pts/2 00:00:39 /opt/IBM/WebSphere/AppServer/java/bin/java -Declipse.security -Dwas.status.socket=56029 -Dosgi.install.area=/
opt/IBM/WebSphere/AppServer -Dosgi.configuration.area=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/configuration -Djava.awt.headless=true -Dosgi.framework.ex
tensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev70_%g,groupAccess,nonFatal -Xscmx50M -Xbootclasspath/p:/opt/IBM/WebSphere/AppS
erver/java/jre/lib/ext/ibmorb.jar:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/ibmext.jar -classpath /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties
:/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppSe
rver/lib/jsf-nls.jar:/opt/IBM/WebSphere/AppServer/lib/lmproxy.jar:/opt/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/opt/IBM/WebSphere/AppServer/deploytool/i
tp/batchboot.jar:/opt/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/opt/IBM/WebSphere/AppServer/java/lib/tools.jar -Dibm.websphere.internalClassAccessMo
de=allow -Xms50m -Xmx256m -Xcompressedrefs -Dws.ext.dirs=/opt/IBM/WebSphere/AppServer/java/lib:/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/classes:/opt/IBM/
WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/Web
Sphere/AppServer/web/help:/opt/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/opt/IBM/WebSphere/AppServ
er/derby -Dcom.ibm.itp.location=/opt/IBM/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/opt/IBM/WebSphere/AppServer/
profiles/Dmgr01 -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dwas.install.root=/opt/IBM/WebSphere/AppServer -Dpython.
cachedir=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/temp/cachedir -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/opt/IBM/WebS
phere/AppServer/profiles/Dmgr01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.security.auth.login.config=/opt/IBM/WebSphere/
AppServer/profiles/Dmgr01/properties/wsjaas.conf -Djava.security.policy=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/properties/server.policy com.ibm.wsspi.b
ootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config
B2CmonitorCell01 B2CmonitorCellManager01 dmgr
root 24888 24246 0 17:41 pts/1 00:00:00 grep java
Q:
dmgr 启动用户应为wasuser,隶属wasuser的dmgr profile无法写入 root 用户 启动dmgr后 的 repositoryContext 日志
A:
[root@B2Cmonitor profiles]# chown -R wasuser:wasgroup Dmgr01
[root@B2Cmonitor profiles]# su - wasuser
[wasuser@B2Cmonitor profiles]$ cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
[root@B2Cmonitor profiles]# ./startManager -username admin -password admin
...
run ok !
Question:
如何解决查找HostName引起JVM挂起,或者响应慢的问题?2007-09-07 00:00
http://tech.watchstor.com/backup-and-archiving-113031.htm
websphere默名奇妙宕机的解决 2008-05-02 13:19
http://lengyue.iteye.com/blog/188826
Slow performance or hang in HostName lookup 2009-12-16
http://www-01.ibm.com/support/docview.wss?uid=swg21170467
如何设置-Djava.net.preferIPv4Stack(解决加载ipv6模块的问题) 2013-05-03 09:28:40
http://zhangzhiqiangli.blog.163.com/blog/static/4591838420134392840434/
SFS请求SIS的http服务内部域名解析异常现象及分析 / 编制人:邓晓明、李罡 / 编制时间:2014-05-14
http://wiki.cns*****.com/pages/viewpage.action?pageId=17402504
摘要:在Java 2 SDK 1.4中,JVM在获得HostName的时候会同时进行IPv4和IPv6查询。如果Domain Name System (DNS) 服务没有配置接受IPv6查询,JVM可能返回Unknown Host异常,如果Domain Name System (DNS) 服务没有正确配置接受IPv6查询,JVM需要等待IPv6查询返回结果,直到超时。这就引起了JVM挂起或响应慢。
产品模块:店铺展示系统SFS
关键词:内部域名访问
概述:2014年5月10日开始SFS迁移SIT环境。测试过程发现SFS展示店铺时通过ESB-HTTP(ESB的esbsit.cns*****.com SIT环境域名)请求SIS服务获取店铺数据时,SFS与ESB之间存在“连接断开现象”,导致前台店铺展示报错。
业务场景:前台顾客访问店铺域名,缓存未命中情况下,店铺展示系统通过http请求到店铺中心系统SIS获取店铺数据。
初始现象:顾客前台直接报错,找不到该店铺。
问题追踪过程:通过在本地自行添加代码将原始的堆栈信息输入到was SystemErr文件里面,分析was输出错误信息如下:
java.net.UnknownHostException:esbsit.cns*****.com:esbsit.cns*****.com
不断模拟错误重现,发现间歇出现找不到esbsit.cns*****.com这个主机错误信息,即使在服务器上能够esbsit.cns*****.com解析成功。
同时在服务器中hosts文件加了esbsit.cns*****.com,异常显现消失。初步判断为DNS在解析内网时“不稳定”。
通过tcpdump实时抓取全量网络数据包,查看DNS数据包,每次应用请求域名解析时,都会向域名服务器请求两次,一个是ipv4的(A记录),一个是ipv6的(AAAA记录),ipv4的请求给出了IP地址,ipv6的则没有。
从此问题现象看目前DNS不支持ipv6的域名解析(从此问题现象看不支持)。我们猜测,应用在处理两次dns请求时,有可能先处理到ipv6的响应,从而报错。
解决和总结: 目前SFS采用的解决方案是: 在java启动命令中增加一个属性配置:-Djava.net.preferIPv4Stack=true,即我司was控制台里面增加jvm属性配置,指定ipv4优先解析DNS.
修改的内容为应用程序服务器 > server1 > 进程定义 > Java 虚拟机 > 定制属性 > 中自定制属性java.net.preferIPv4Stack 值为true.记住,在改变这些属性的时候,最好将websphere中node的server.xml做一个备份,如果配置错了,恢复回server.xml将恢复正常,要不websphere启不了就傻diao了
JAVA 解决方案
(1) Tomcat中的设置
检查<Tomcat安装目录>/bin 下的 catalina.bat(Windows平台)或catalina.sh(Linux平台)中的 JAVA_OPTS参数是否设置了 –Dfile.encoding=GBK,若没有则需要在该文件中加上一行。
Windows平台:set JAVA_OPTS=%JAVA_OPTS% –Dfile.encoding=GBK
Linux平台: JAVA_OPTS="$JAVA_OPTS –Dfile.encoding=GBK"
“添加:-Djava.net.preferIPv4Stack=true
tomcat 的bin 目录下
linux 系统则修改catalina.sh文件
window 则修改 catalina.bat文件 ”
(2) Weblogic中的设置
应用服务器为Weblogic,要在 Weblogic目录 /user_projects/domains/mydomain下面的 startWebLogic.sh 文件中,JAVA_HOME = “ ” 下面一行增加:
JAVA_OPTIONS= "${JAVA_OPTIONS} -Dfile.encoding=GBK"
然后重启Weblogic即可。
(3) Websphere中的设置
a.登录管理控制台,打开“服务器 > 应用服务器 > 服务名称 > 进程定义 > JVM虚拟机 > 定制属性” 页面。
b.在页面中添加如下定制属性
名称: java.net.preferIPv4Stack
值: true
c.点击“确定”,并保存配置。
d.重新启动应用服务器 WebSphere,JVM参数才会生效
2.AIX操作系统解决方案
a.安装以下APAR:
AIX V520: IY47908
AIX V510: IY48783
要确认这个补丁是否已经安装,可以用如下命令:
instfix -ik IY#####
b.在确认以上APAR已经安装后,编辑/etc/netsvc.conf文件,在其中加入:
hosts=bind4,local
或者在启动WebSphere Application Server前,设置系统环境变量:
export NSORDER=bind4,local
3.Domain Name System(DNS)解决方案
配置DNS服务器忽略IPv6查询请求
4.Network Information Service (NIS) 解决方案
如果系统使用NIS来解析Hostname,可以通过修改/etc/hosts和/etc/netsvc.conf文件来移除NIS。
Slow performance or hang in HostName lookup 2009-12-16
http://www-01.ibm.com/support/docview.wss?uid=swg21170467
Technote (troubleshooting)
Problem(Abstract)
There is slow performance or a hang during HostName lookup.
Symptom
Thread dumps or javacores taken during the time of the slow response, or "hang threads" will show threads with the following lines at the top of the stack:
at java.net.Inet6AddressImpl.getLocalHostName(Native Method)
at java.net.InetAddress.getLocalHost(InetAddress.java:123)
Cause
The problem could be lookup issues between IPv6 versus IPv4. If the Domain Name System (DNS) server is not configured to handle IPv6 queries, the application may have to wait for the IPv6 query to time out for IPv6 queries.
These threads are waiting for a response for an IPv6 query. It is likely the the DNS server is not responding to the IPv6 query.
Resolving the problem
If your environment only uses IPv4, set the following argument for each process:
-Djava.net.preferIPv4Stack=true
This will disable IPv6 lookup requests and only use IPv4. To set this in the WebSphere Application Server, do the following:
Open the administrative console and navigate to:
Servers > Application Servers > server_name > Process Definition > Java Virtual Machine > Custom Properties(/Environment Entries)
Add the following name and value pair:
Name: java.net.preferIPv4Stack
Value: true
Click Apply, then save all changes.
Restart the application server.
If your environment uses IPv6, please have your network administrator check the DNS set up to ensure that it can respond properly to IPv6 queries.
Answer:
如何解决查找HostName引起JVM挂起,或者响应慢的问题?2007-09-07 00:00
http://tech.watchstor.com/backup-and-archiving-113031.htm
websphere默名奇妙宕机的解决 2008-05-02 13:19
http://lengyue.iteye.com/blog/188826
Slow performance or hang in HostName lookup 2009-12-16
http://www-01.ibm.com/support/docview.wss?uid=swg21170467
如何设置-Djava.net.preferIPv4Stack(解决加载ipv6模块的问题) 2013-05-03 09:28:40
http://zhangzhiqiangli.blog.163.com/blog/static/4591838420134392840434/
SFS请求SIS的http服务内部域名解析异常现象及分析 / 编制人:邓晓明、李罡 / 编制时间:2014-05-14
http://wiki.cns*****.com/pages/viewpage.action?pageId=17402504
websphere集群连接数过高问题解决
http://wiki.cns*****.com/pages/viewpage.action?pageId=19368578 / jingyu 15195980373
2014年10月30日,下午14:17分左右,SEL系统前台WAS,192.168.100.204:9081(sopapp03:9081,sopapp03Node_SELClusterServer02)不能响应请求,通过zabbix监控发现,100.204的9081端口在重启之前,连接数达到1400+。其他WAS的连接数最高只有50,其原因在于当WAS处理请求超时,HIS会会重试到同一台WAS上面。导致当个的WAS服务器连接数过多,为了解决单台服务器连接过高的问题,WebTraffic提供了在应用端控制并发量的功能,当url的并发量超过了所配置的最大支持并发,将丢弃请求,返回503给用户。
附件二:WAS迁移WildFly手册.V1.0.doc.zip
websphere生成heapdump方法
http://blog.csdn.net/w5222949/article/details/8362990
近来由于性能测试环境(Linux version 2.6.18-92.el5)应用跑下来表现不佳,需要对其进行分析,故需要对websphere下的heapdump进行分析。
生成heapdump的操作步骤如下:
1,ps -ef|grep java查询java进程的线程ID。
2,kill -3 线程ID号
3,发现只生成了javacore文件
这个时候需要配置增加下系统的环境变量,继续操作如下:
4,export IBM_HEAPDUMP=true
5,export IBM_HEAP_DUMP=true
6,export IBM_HEAPDUMP_OUTOFMEMORY=true
这些可以直接在命令行输入,但是只会对本次连接操作有效。
也可以选择配置在~/.bash_profile中,当然取决于你的登录shell初始配置文件。
7,重启你的应用进程(这个是让应用重新加载你的配置变量)。
8,kill -3 新的应用启动的线程号
9,文件会产生在你的默认的profiles下:
如:/app/was6/IBM/Webpshere/AppServer/profiles/AppSrv01下
这样就可以利用IBM工具对产生的javacore和heapdump文件进行分析了。
这个后面会介绍操作方法。
websphere如何产生javacore和heapdump
http://blog.sina.com.cn/s/blog_61cd89f60102eeod.html
在生产环境中一旦有内存溢出情况发生,系统会自动生成javacore和heapdump文件,但是有时候我们为解决cpu使用率较高或其它问题时,需要手工生成javacore和heapdump文件,这时我们该如何手动触发生成javacore和heapdump文件呢?
获取javacore和heapdump文件的方法有两种:
第一种:
系统发生内存溢出,在目录下会生产javacore和heapdump文件生成(最常见的一种)
第二种:
手动触发生成javacore和heapdump文件,
1.手工生成javacore文件
ps -ef |grep was --找到pid
kill -3 pid --跟据pid生成javacore文件
2.手工生成heapdump文件
cd /opt/IBM/WebSphere/AppServer/bin/
./wsadmin.sh -lang jython -user wasadmin -password wasadmin
ojbServer = AdminControl.queryNames("WebSphere:type=JVM,process=SampleServer1,node=PrdNode01,*")
AdminControl.invoke(ojbServer, "generateHeapDump")
end
相关推荐
# /opt/IMS/eclipse/tools/imcl installFixes all -repositories /opt/was8.5.5/wasupdate -installationDirectory /opt/IBM/WebSphere/AppServer ``` ##### 14. 静默卸载WAS 如果需要卸载WAS,可以使用以下命令。 ...
/opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/App...
/opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM...
5.执行 ./manageprofiles.sh -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/dmgr/ 命令,设置管理概要模板路径。 6.执行 ./manageprofiles.sh -hostname 主服务器的主机名 命令,设置主机名。 四、...
日志目录位于 `/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1`,这是WebSphere记录系统运行状态、事件、错误和其他诊断信息的地方。日志文件包含的信息对于故障排查、性能调优和安全审计都极其重要...
was@restest2[136.6.177.37][/was]$/was/WebSphere/AppServer/bin/versionInfo.sh ``` 这个命令会显示当前WebSphere的版本号以及系统架构等信息,这些信息对于后续下载正确的升级程序至关重要。 #### 三、下载升级...
./manageprofiles.sh -create -profileName Dmgr01 -profilePath /usr/IBM/WebSphere/AppServer/profiles/Dmgr01 -templatePath /usr/IBM/WebSphere/AppServer/profileTemplates/dmgr -nodeName dmgrnode -cellName...
- `/ufida/ibm/websphere/appserver/bin/manageprofiles.sh -create -templatePath /ufida/ibm/websphere/appserver/profileTemplates/dmgr -profilename Dmgr01 -profilepath /ufida/ibm/websphere/appserver/...
- 执行命令 `/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin managesdk.sh-listAvailable`。 - 如果显示列表中有 `1.8_64`,则表示 JDK1.8 已经成功安装。 #### 六、配置 WAS 使用 JDK1.8 1. **配置 WAS ...
命令为 `./imcl install com.ibm.websphere.ND.v85_8.5.5000.20130514_1044 -repositories /home/soft/was/WAS_ND_V8.5.5/repository.config -installationDirectory /opt/IBM/WebSphere/AppServer -...
本文将详细讲解WebSphere 8.5的安装过程,包括IBM Installation Manager的安装、WebSphere 8.5的安装、IHS(IBM HTTP Server)8.5的安装以及WAS(WebSphere Application Server)插件for IHS的安装。 首先,我们来...
-installationDirectory /opt/IBM/WebSphere/AppServer \ -sharedResourcesDirectory /opt/IBM/IMShared \ -properties cic.selector.nl=zh \ -acceptLicense ``` 其中,`<小版本号>`可以通过`/opt/IMS/...
你可以通过命令行创建Dmgr(管理代理)服务器,例如在`${WAS_Home}/bin`目录下运行`./manageprofiles.sh -create -templatePath /home/IBM/WebSphere/AppServer/profileTemplates/dmgr -profileName Dmgr01`,确保选择...
cd /IBM/WebSphere/AppServer/profiles/AppSrv01/bin startNode.sh ``` - 打开控制台。 ```bash http://localhost:9060/ibm/console ``` - 配置Web服务器。 - 新建Web服务器(例如:webserver1)。 - 输入...
2. **服务器配置**:理解和配置IBM WebSphere Application Server,这是运行Commerce应用的基础,包括部署描述符的修改、服务器环境的调整等。 3. **数据库设计和管理**:Commerce与数据库紧密集成,如DB2,开发者...