1.问题描述
将一个在tomcat上运行正常的项目放到websphere中,通过war包的方式进行部署,使用was的dmgr管理台进行上传war时,会在上传界面卡死,找了好久也没有找到问题的所在,最后在,发现了该问题是was的dmgr内存溢出。
2.解决问题
2.1判断问题为内存溢出
如果是Dmgr内存溢出,则可在opt/IBM/WebSphere/AppServer/profiles/Dmgr01/目录下发现以下文件javacore.***.txt 、heapdump.***.phd、core.***.dmp、Snap.***.trc;若有则证明是dmgr内存溢出。
2.2解决办法
解决办法如下:
在was控制台上选择System administration-Nodes,在出现的节点里面选择控制节点(一般带有的Manager为管理节点),点击管理节点-》Local Toplolgy,点击打开出现的节点树,选择名为dmgr的叶子节点,点击java and Process Management-》Process definition,再点击出现的新页面右边的 Java Virtual Machine,设置出现的页面中的 Initial heap size(初始堆)和Maximum heap size(最大堆)设置为256和1024,默认的最大堆是256m,根据需求调大即可。
然后重启Dmgr即可,在opt/IBM/WebSphere/AppServer/profiles/Dmgr01/目录下
先停
./stopManager.sh
再启
./startManager.sh
重新尝试上传war包即可。