websphere启动后java heap space

*

一,背景

在window7平台,安装完websphere v8.5后,配置完jdbc提供程序,数据源等,就直接部署了程序130多M的war包,没有配置jvm等参数---这是问题根源

二,问题描述

启动部署的程序后,就开始了一系列问题

1,访问http://servername:9060/ibm/console/控制台页面,一直进不去,或者进去后,右侧也是空白,或者报空;

2,注册成windows服务的ibm websphere会自动关闭,或者手动都不能关闭,一直处于Stopping的状态,关闭了又不能重启;

三,解决思路

1,查看日志

${was_home}/appserver/profiles/{***}/logs/server1/下面的log,大都是java heap space,

猜测是部署的程序太占内存,查找设置was jvm的方法

1)bin/wsadmin.bat: set PERF JAVAOPTION=-Xms512m -Xmx512m -Xquickstart,这是ibm官网推荐,不过设置后好像没有作用

2) 发现另外一个问题,我的数据源设置的classpath下面,有几个db2的驱动jar,删掉类似的后,好像控制台好点了(至少有时能打开),但是还是反应慢

3)设置websphere的java虚拟机的堆大小

因为控制台页面不能打开,只好找到配置文件所在的位置,手动进行修改:

${was_home}/appserver/profiles/{***}/config/cells/{***cell}/nodes/{**node}/servers/server1/server.xml

找到<jvmEntries 节点,加上

initialHeapSize="512" maximumHeapSize="2048"就可以了,对比正常的xml,他们还多了disableJIT="false",不知是否有用,也加上了,

然后一直都正常了,控制台反应很快,程序也可以访问了

对于第3)点,在控制台页面是这样设置的:

应用程序服务器/server1/进程定义/java 虚拟机

初始堆大小

521

最大堆大小

2048

四,总结

工欲善其事,必先利其器,我安装完websphere后,应该先关注常见的性能的设置,否则急于部署了war包,反而控制台也打不开了,又不能再卸载,想再配置参数也很难了

*