壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4358|回复: 5

maximo在WAS上的奇怪的OutOfMemoryError问题

[复制链接]
发表于 2007/11/19 20:55:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
星期天加班,下午在修改用户需求的时候突然客户打来电话说发现maximo登录不了了。我登录WAS控制台查看maximo服务,显示的是运行的箭头标志,应该可以登录的,sqlplus连数据库也能连上的。当时也没多想,只以为是系统运行太久了,重启一下服务就行,所以在websphere中将服务停止后再启动。操作中发现停止服务的时提示了服务未启动,但界面上maximo服务还是显示的是运行的箭头标志而非停止的*标志。但我并未对这个引起重视,而是又选择了启动服务操作。maximo服务很快启动好了,登录速度也很快,ok,问题解决了,我又忙其他的了。
     但很快客户又打电话来说服务又等不上去了,这下我有点晕了。自己尝试登录maximo不行,再次登录WAS控制台查看maximo服务,还是显示运行的箭头标志。我又一次重启maximo服务以后,又可以登录maximo。但很快我就发现maximo又使用不了。
查看c$\\IBM\\WebSphere\\AppServer\\profiles\\Custom01\\logs\\MAXIMOSERVER\\SystemErr.log,提示下面错误:
[07-11-18 13:37:21:688 CST] 0000003b SystemErrR java.lang.OutOfMemoryError
at oracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.java(Compiled Code))
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java(Compiled Code))
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java(Compiled Code))
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java(Compiled Code))
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java(Compiled Code))
at psdi.mbo.MboSet.getNextRecordData(MboSet.java(Compiled Code))
at psdi.mbo.MboSet.fetchMbos(MboSet.java(Compiled Code))
at psdi.mbo.MboSet.getMbo(MboSet.java(Compiled Code))
at psdi.app.workorder.virtual.ChildrenSet.fetchMbosOriginal(ChildrenSet.java(Compiled Code))
at psdi.app.workorder.virtual.ChildrenSet.fetchMbos(ChildrenSet.java(Compiled Code))
at psdi.mbo.FauxMboSet.getMbo(FauxMboSet.java(Compiled Code))
at psdi.mbo.FauxMboSet.count(FauxMboSet.java(Inlined Compiled Code))
at psdi.mbo.FauxMboSet.count(FauxMboSet.java(Compiled Code))
at psdi.webclient.beans.pssolutions.primavera.PVWOAppBean.getDescendant(PVWOAppBean.java(Compiled Code))
at psdi.webclient.beans.pssolutions.primavera.PVWOAppBean.getDescendant(PVWOAppBean.java(Compiled Code))
at psdi.webclient.beans.pssolutions.primavera.PVWOAppBean.getDescendant(PVWOAppBean.java(Compiled Code))
at psdi.webclient.beans.pssolutions.primavera.PVWOAppBean.filterWOForGoupExport(PVWOAppBean.java:2912)
at psdi.webclient.beans.pssolutions.primavera.PVWOAppBean.pvupdate(PVWOAppBean.java:1203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
at psdi.webclient.system.tags.DefaultHandlerTag.doStartTag(DefaultHandlerTag.java(Compiled Code))
at com.ibm._jsp._control._jspx_meth_mro_defaulthandler_0(_control.java:2771)
at com.ibm._jsp._control._jspService(_control.java:2079)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java(Inlined Compiled Code))
at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java(Compiled Code))
at psdi.webclient.system.controller.ControlHandler.handleEvent(ControlHandler.java(Compiled Code))
at psdi.webclient.system.controller.RequestHandler.handleEvent(RequestHandler.java:668)
at psdi.webclient.system.controller.RequestHandler.handleRequest(RequestHandler.java:243)
at psdi.webclient.servlet.WebClientServlet.handleRequest(WebClientServlet.java:81)
at psdi.webclient.servlet.WebClientServlet.doPost(WebClientServlet.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:89)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1924)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:98)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:411)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
查看maximov.log,什么错误也没报,但发现maximo在短时间里启动了好几次。见鬼了,我上午还好好的,也没做什么修改,就调整了一下界面而已。同时WAS生成n多heapdump和javacore文件(c$\\IBM\\WebSphere\\AppServer\\profiles\\Custom01)
      我终于感觉到不妙了。我试着将应用服务器重启,问题依旧存在。因为公司其他几个项目也碰到过OutOfMemoryError问题都是通过调整优化中间件或数据库参数处理的或打maximo补丁,所以我也没想过其他方面,先试着从调整优化参数上着手。
      先试着调整WAS 应用程序服务器 > MAXIMOSERVER > 进程定义 > Java 虚拟机  的初始堆大小 为1024,最大堆大小 1024。然后重启WAS。问题依旧。然后又调整了数据库的一些参数,还是一样的问题。
      我终于有点崩溃了,难不成我得向客户提出提升服务器硬件性能?不行,我还得再试试。我将maximo应用程序连接测试数据库,运行一段时间,没有问题。恩,看来还是数据库应用服务器问题。
      然后我又拿测试应用程序连接数据库服务器,果然发生同样的问题。好,总算找到问题所在了。我试着重启了数据库服务,然后用再试,还是有问题,然道是服务器性能的问题?可是客户这边是最近几个月刚换的数据库服务器,性能非常好,而且已经用了这么久,一直也没发生什么问题啊。所以我开始一步一步清除今天修改的东西,终于发现了,原来是我在工单跟踪中,在计划页面的物料列表中加了个可用数量显示,就是显示当前物料的可用数量(INVENTORY.AVBLBALANCE),将这个字段在界面删除就没问题了。
      真晕,竟然会因为在界面上的修改而引起OutOfMemoryError,真不明白,我在测试应用程序中增加这个显示都没问题。
发表于 2007/11/20 08:30:43 | 显示全部楼层

回复 1# 的帖子

不错,我的OutOfMemoryError错误折腾我好久,不过我的问题和你的不一样,我的是由于MAXIMO本身程序的BUG,哈哈
 楼主| 发表于 2007/11/20 09:30:30 | 显示全部楼层
我的也是MAXIMO本身程序的BUG,没道理改界面也会OutOfMemoryError
发表于 2008/4/11 18:41:18 | 显示全部楼层

博客群发軟件www.ab114.cn

[群发软件156万论坛地址库,2分钟看效果www.ab666.cn
博客动网群发软件是专在大型动态博客和论坛里建立自己的博客和论坛网站,一年可以建立自己的博客网站400万个www.ab222.cn  www.ab110.cn
魔电Oblog博客群建是自动注册、自动识别验证码,群建博客。(每天可以建立自己的博客5000多个www.ab998.cn
www.ab555.cn   www.ab114.cn           电话0411-87849696
发表于 2010/1/25 21:31:58 | 显示全部楼层
我改工作流都出现过这种错误,MAXIMO有时候很“雷”啊
发表于 2012/3/26 11:21:31 | 显示全部楼层
这个是个不错的经验,记住了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备12025635号 京ICP证120590号 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2020/5/30 22:48 , Processed in 0.024984 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表