采用了JDBC超时机制后,总会出现内存益出.
因为系统采用web service , 所以传输都是基于http.
在链接数据库时,里面有采用jdbc提供了超时机制,即超过一定时间,这个conn链接会自动断开,可是为何接下来就出现因数组在内存中分配不够,因为内存益出了.因为这个时候我是取(oracle9i )表里面有一个Blob的值,这个字段存放的是图像信息.
[ConnectionLocator.java:60] 2008-05-05 14:13:14 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnectionLocator.java:60] 2008-05-05 14:13:14 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnFactory.java:272] 2008-05-05 14:13:19 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
[ConnectionLocator.java:60] 2008-05-05 14:13:14 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnectionLocator.java:60] 2008-05-05 14:13:14 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnectionLocator.java:60] 2008-05-05 14:13:14 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnFactory.java:272] 2008-05-05 14:13:19 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
[ConnFactory.java:272] 2008-05-05 14:13:19 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
[ConnectionLocator.java:60] 2008-05-05 14:18:01 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnFactory.java:272] 2008-05-05 14:18:01 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
[ConnectionLocator.java:60] 2008-05-05 14:18:22 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnFactory.java:272] 2008-05-05 14:18:22 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
[ConnectionLocator.java:60] 2008-05-05 14:19:35 WARN com.doone.data.ConnectionLocator - connection login timeout.
[ConnFactory.java:272] 2008-05-05 14:19:58 WARN com.doone.data.ConnFactory - ConnectionLocator.getConnection(default)'result is null.
<2008-5-5 下午02时20分22秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '152' for queue: 'weblogic.kernel.Default' has been busy for "884" seconds working on the request "Http Request: /application/Service", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
<2008-5-5 下午02时20分24秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '166' for queue: 'weblogic.kernel.Default' has been busy for "938" seconds working on the request "Http Request: /application/Service", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
<2008-5-5 下午02时20分24秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '178' for queue: 'weblogic.kernel.Default' has been busy for "933" seconds working on the request "Http Request: /application/Service", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
<2008-5-5 下午02时20分24秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '181' for queue: 'weblogic.kernel.Default' has been busy for "872" seconds working on the request "Http Request: /application/Service", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
[AdLinkContent.java:33] 2008-05-05 14:21:00 WARN com.doone.wskfapp.business.page.AdLinkContent - 程序执行异常,栏目ID为:1681
com.doone.data.DacException: java.lang.OutOfMemoryError: allocLargeArray - Object size: 65072, Num elements: 32528
at com.doone.data.DacClient.executeQuery(DacClient.java:610)
at com.doone.data.DacClient.executeQuery(DacClient.java:480)
at com.doone.wskfapp.business.page.AdLinkContent.readContent(AdLinkContent.java:31)
at com.doone.wskfapp.remoteservice.PageService.readAdLinkContent(PageService.java:49)
at sun.reflect.GeneratedMethodAccessor2752.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.doone.reflect.SrvFactory.invokeMethod(SrvFactory.java:225)
at com.doone.reflect.SrvFactory.invoke(SrvFactory.java:102)
at com.doone.iossp.impl.QueueServ.procMessage(QueueServ.java:203)
at com.doone.iossp.impl.SynQueue.push(SynQueue.java:85)
at com.doone.iossp.impl.QueueServ.append(QueueServ.java:274)
at com.doone.iossp.Receive.fetch(Receive.java:84)
at com.doone.iossp.impl.HttpReceive.processRequest(HttpReceive.java:38)
at com.doone.iossp.impl.MessageServlet.service(MessageServlet.java:55)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: java.lang.OutOfMemoryError: allocLargeArray - Object size: 65072, Num elements: 32528
at oracle.jdbc.driver.OracleClobReader.<init>(OracleClobReader.java:100)
at oracle.jdbc.driver.OracleClobReader.<init>(OracleClobReader.java:66)
at oracle.jdbc.driver.T4CConnection.newReader(T4CConnection.java:3101)
at oracle.sql.CLOB.getCharacterStream(CLOB.java:278)
at com.doone.data.DataRow.getDataValue(DataRow.java:284)
at com.doone.data.DataRow.setValue(DataRow.java:214)
at com.doone.data.DacClient.executeQuery(DacClient.java:564)
... 24 more
|