NutzCN Logo
问答 后台返回的数据大会造成这个问题吗
发布于 2933天前 作者 yahtob 4618 次浏览 复制 上一个帖子 下一个帖子
标签:

兽兽哥,系统总是报这个然后内存溢出了,weblogic.rjvm.PeerGoneException: ; nested exception is:
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '10000080' bytes exceeds the configured maximum of: '10000000' bytes for protocol: 't3',我分析最近的更新可能是因为综合查询select字段里加了内容等字段的查询。这个综合查询用户操作比较频繁。综合查询返回的是分页的JSONObject
Pager pager = dao.createPager(curPage, pageSize);
pager.setRecordCount((int)Daos.queryCount(dao, sql.toString()));// 记录数需手动设置
sql.setPager(pager);
sql.setCallback(Sqls.callback.records());
dao.execute(sql);
JSONObject jsonobj = new JSONObject();
jsonobj.put("total", pager.getRecordCount());
jsonobj.put("rows", JSONArray.fromObject(sql.getList(Map.class)));
return jsonobj;
我不知道是不是这个原因,帮我分析一下,还有我的方法和类头部没有定义视图返回类型,会不会有问题

21 回复

我试过调大这个参数,但是几个星期后又不行了。我想知道我上面的是不是造成这个问题的根本原因呀

贴完整报错信息

<2016-10-28 下午09时25分20秒 CST> <[ACTIVE] ExecuteThread: '273' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <Error looking up session with id:2WZYYTLMpLP4xXXG3SzKlPhJ21vkKlP3nlqqGHppxNn33NmN1XLv!1758393151!NONE

weblogic.rjvm.PeerGoneException: ; nested exception is:
weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
at weblogic.cluster.replication.ReplicationManager_1036_WLStub.fetch(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
at com.sun.proxy.$Proxy114.fetch(Unknown Source)
at weblogic.cluster.replication.ReplicationManager.registerLocally(ReplicationManager.java:459)
at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupRO(ReplicatedSessionContext.java:177)
at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupSession(ReplicatedSessionContext.java:362)
at weblogic.servlet.internal.session.ReplicatedSessionContext.getSessionInternal(ReplicatedSessionContext.java:244)
at weblogic.servlet.internal.session.ReplicatedSessionContext.getSessionInternal(ReplicatedSessionContext.java:237)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getValidSession(ServletRequestImpl.java:2949)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(ServletRequestImpl.java:2489)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2456)
at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1330)
at weblogic.servlet.security.internal.SecurityModule$SessionRetrievalAction.run(SecurityModule.java:630)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.security.internal.SecurityModule.getUserSession(SecurityModule.java:516)
at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:81)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2209)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '20000160' bytes exceeds the configured maximum of: '20000000' bytes for protocol: 't3'
at weblogic.socket.BaseAbstractMuxableSocket.incrementBufferOffset(BaseAbstractMuxableSocket.java:230)
at weblogic.rjvm.t3.MuxableSocketT3.incrementBufferOffset(MuxableSocketT3.java:351)
at weblogic.socket.NTSocketMuxer.copyDataFromNativeBuffer(NTSocketMuxer.java:152)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:99)
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:42)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

然后29日又有报错。

<2016-10-29 下午03时58分17秒 CST> <[ACTIVE] ExecuteThread: '1077' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <An unexpected error occurred while doing a batched update of last accessed time attribute of updated sessions in application /szrx

weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
at weblogic.servlet.internal.ROIDLookupImpl_1036_WLStub.updateLastAccessTimes(Unknown Source)
at weblogic.servlet.internal.HttpServer$Replicator.updateROIDLastAccessTimes(HttpServer.java:531)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.sendBatchJob(ReplicatedSessionContext.java:722)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.runTrigger(ReplicatedSessionContext.java:685)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.access$300(ReplicatedSessionContext.java:557)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger$1.run(ReplicatedSessionContext.java:661)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.timerExpired(ReplicatedSessionContext.java:657)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.net.SocketException: Connection reset by peer: socket write error
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
at weblogic.servlet.internal.ROIDLookupImpl_1036_WLStub.updateLastAccessTimes(Unknown Source)
at weblogic.servlet.internal.HttpServer$Replicator.updateROIDLastAccessTimes(HttpServer.java:531)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.sendBatchJob(ReplicatedSessionContext.java:722)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.runTrigger(ReplicatedSessionContext.java:685)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.access$300(ReplicatedSessionContext.java:557)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger$1.run(ReplicatedSessionContext.java:661)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.session.ReplicatedSessionContext$LATUpdateTrigger.timerExpired(ReplicatedSessionContext.java:657)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at weblogic.socket.SocketMuxer.internalWrite(SocketMuxer.java:1013)
at weblogic.socket.SocketMuxer.write(SocketMuxer.java:1005)
at weblogic.rjvm.t3.MuxableSocketT3$T3MsgAbbrevJVMConnection.sendMsg(MuxableSocketT3.java:462)
at weblogic.rjvm.MsgAbbrevJVMConnection.sendOutMsg(MsgAbbrevJVMConnection.java:336)
at weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:194)
at weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:144)
at weblogic.rjvm.ConnectionManager.sendMsg(ConnectionManager.java:599)
at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:903)
at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStream.java:394)
at weblogic.rjvm.MsgAbbrevOutputStream.sendRecv(MsgAbbrevOutputStream.java:404)
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
at weblogic.cluster.replication.ReplicationManager_1036_WLStub.create(Unknown Source)
at sun.reflect.GeneratedMethodAccessor265.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
at com.sun.proxy.$Proxy114.create(Unknown Source)
at weblogic.cluster.replication.ReplicationManager.trySecondary(ReplicationManager.java:937)
at weblogic.cluster.replication.ReplicationManager.createSecondary(ReplicationManager.java:890)
at weblogic.cluster.replication.ReplicationManager.updateSecondary(ReplicationManager.java:704)
at weblogic.servlet.internal.session.ReplicatedSessionData.syncSession(ReplicatedSessionData.java:641)
at weblogic.servlet.internal.session.ReplicatedSessionContext.sync(ReplicatedSessionContext.java:83)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2913)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2888)
at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1504)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1498)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1498)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

<2016-10-29 下午04时07分54秒 CST> <[ACTIVE] ExecuteThread: '639' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <An unexpected error occurred while retrieving the session for Web application: ServletContext@593242515[app:10086 module:10086 path:/szrx spec-version:2.5].

java.lang.OutOfMemoryError: Java heap space
at java.io.ObjectOutputStream$HandleTable.growEntries(ObjectOutputStream.java:2350)
at java.io.ObjectOutputStream$HandleTable.assign(ObjectOutputStream.java:2275)
at java.io.ObjectOutputStream.writeString(ObjectOutputStream.java:1301)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1171)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.HashMap.writeObject(HashMap.java:1133)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.LinkedList.writeObject(LinkedList.java:1118)
at sun.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at java.util.Hashtable.writeObject(Hashtable.java:960)

信息里面并没有nutz字样的东西,所以报错的并非dao操作?

我认为和dao操作没关系。是不是后台传给前端的数据量过大了。因为自从更新了查询内容等字段就开始挂了,内容是clob字段,数据量大,而这个方法调用的又比较频繁,会不会是这个原因

java.lang.OutOfMemoryError: Java heap space 这都爆内存了...

是啊。我不明白后台给前端返回的数据量大会爆掉内存吗

没有定义@OK视图有没有影响?

方法没有定义@Ok,则使用类上的@Ok,如果类上也没有,则使用MainModule的@Ok.

mainMdoule是@Ok("raw")返回的是jsonobj

我不明白后台给前端返回的数据量大会爆掉内存吗

但报错信息里面并没有nutz字样,也就是这个爆内存的操作, 并不在NutFilter的作用域内呢, 所以跟nutz dao / nutz mvc的关系不大

也就是说可能与系统无关嘛?

weblogic跑了3个程序,总是那一个程序爆内存挂掉。另外2个还是跑的好好地。一共3台服务器,有2个weblogic服务器是跑系统的,有一个weblogic代理来分发

是时候申请更彪悍的服务器了

我想我知道问题了,新人写的代码好坑,每次综合查询。他都把结果放到session里了

哈哈,原来如此

添加回复
请先登陆
回到顶部