WebLogic 调用ejb返回后报out of memory

figoren 2009-03-28 09:11:40
2台服务器 1台放ejb(weblogic部署) 1台放应用(非web)
应用是一个多线程发送邮件的程序现在出现一个问题就是从数据库获取某些运营商如(test.com)数据时

会出现下面的错误

在ejb服务器上可以看到被此处调用的sql语句 返回记录集结果为0 而且后台没有任何报错

而其它运营商(163.com)调用ejb后可以返回最多200条数据 反而没有报这个错
我们一共设置取9个运营商 每个运营商都是一个线程启动单独取对应数据

我们另外还有2台服务器部署和上面2台一样,但对应的数据库中数据比较少,不管什么类型运营商都不会

报这个错

目前查看数据库 各类运营商最多的也就10万条记录 最少的几千条记录 但我们的取数sql是有条数限制的

每次<200条


错误如下:这个错误是从放应用服务器的日志中看到的
ERROR] 2009-03-27 14:18:38 smtp.thread.GetEmailThread - 获取新Mail失败:; nested exception

is:

weblogic.utils.NestedException - with nested exception:

[java.lang.OutOfMemoryError]

weblogic.rjvm.PeerGoneException: ; nested exception is:

weblogic.utils.NestedException - with nested exception:

[java.lang.OutOfMemoryError]

at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:284)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:244)

at core.ejb.gwData_6xfme4_EOImpl_815_WLStub.searchMessage(Unknown Source)

at smtp.ejb.EJBClient.getSendMessage(EJBClient.java:143)

at smtp.thread.GetEmailThread.getEmail(GetEmailThread.java:515)

at smtp.thread.GetEmailThread.doGetEmail(GetEmailThread.java:222)

at smtp.thread.GetEmailThread.run(GetEmailThread.java:174)

Caused by: weblogic.utils.NestedException - with nested exception:

[java.lang.OutOfMemoryError]

at weblogic.rjvm.RJVMImpl.gotExceptionReceiving(RJVMImpl.java:817)

at weblogic.rjvm.ConnectionManager.gotExceptionReceiving(ConnectionManager.java:919)

at weblogic.rjvm.t3.T3JVMConnection.hasException(T3JVMConnection.java:829)

at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:565)

at weblogic.socket.SocketMuxer.deliverHasException(SocketMuxer.java:521)

at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:303)

at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

大家帮忙看看 会是什么原因?
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoushijin5201314 2009-03-30
  • 打赏
  • 举报
回复
内存溢出了,哎!帮顶
liguangwen86 2009-03-30
  • 打赏
  • 举报
回复
你把这个异常处理一下,如果没发成功再发一次就行了!
kokobox 2009-03-29
  • 打赏
  • 举报
回复
在操作大批量数据的时候,数据库分页方面你是如何处理的?

一般在测试环境没有问题的话,在正事环境出现问题,多是因为硬件方面,如果硬件相同的话,就是其他参数没有配置好

对照一下看看。

figoren 2009-03-29
  • 打赏
  • 举报
回复
我们之前在测试环境的机器上做过压力测试 程序连续跑 每天最多发送36万封邮件 没有任何问题 程序导致内存泄漏可能性不大 关键我们这个问题是在正式环境机器上刚开始运行就抛出来的
javaee_ssh 2009-03-28
  • 打赏
  • 举报
回复
内存溢出了,哎!帮顶
fenglingcompany 2009-03-28
  • 打赏
  • 举报
回复
一是,可能是你的对象实例没释放,二是可能你查的数据list列表太大,三是,你的环境设的初始化内存太小

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧