(FAQ)零售模块报表查询结果集过大导致OOM宕机

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

(FAQ)零售模块报表查询结果集过大导致OOM宕机

(FAQ)零售模块报表查询结果集过大导致OOM宕机
原因分析: 判断与零售报表查询相关,查询41万多结果集太大导致内存不足宕机。 旧的报表框架,需要二次开发或行业模块自己实现虚模式取数。 1、418,521个OracleResultSet对象占用约1.3GB。 2、约820M的RptRowSet也是418,521个。加在一起约2.1G。超出JVM堆2048M设置。 3、结合对应的javacore判断问题堆栈如下。与零售报表查询相关,查询结果集太大导致。 "RPC-2" (TID:0x72AF2600, sys_thread_t:0x0AC0B770, state:CW, native ID:0x00007AF0) prio=5 at com/kingdee/eas/framework/report/util/RptRowSet.parse(RptRowSet.java:159) at com/kingdee/eas/framework/report/util/DBUtil$BaseDialect.parseResultSet(DBUtil.java:190) at com/kingdee/eas/framework/report/util/DBUtil.executeQuery(DBUtil.java:150) at com/kingdee/eas/framework/report/util/DBUtil.executeQuery(DBUtil.java:129) at com/kingdee/eas/framework/report/util/DBUtil.executeQuery(DBUtil.java:125) at com/kingdee/eas/rt/report/app/StoreSaleDynamicRptFacadeControllerBean._getReqData(StoreSaleDynamicRptFacadeControllerBean.java:48) at com/kingdee/eas/rt/report/app/AbstractStoreSaleDynamicRptFacadeControllerBean.getReqData(AbstractStoreSaleDynamicRptFacadeControllerBean.java:46) at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method) at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79(Compiled Code)) at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43(Compiled Code)) at java/lang/reflect/Method.invoke(Method.java:618(Compiled Code)) at com/kingdee/bos/transaction/EJBTxFacade/TxInvokerBean.invoke(TxInvokerBean.java:116(Compiled Code)) at com/kingdee/bos/transaction/EJBTxFacade/TxInvokerBean.INVOKE_SUPPORTS(TxInvokerBean.java:61(Compiled Code)) at com/kingdee/bos/transaction/EJBTxFacade/TxInvokerBean_LocalObjectImpl_2.INVOKE_SUPPORTS(Bytecode PC:26(Compiled Code)) at com/kingdee/bos/transaction/EJBTransactionProxy.invoke(EJBTransactionProxy.java:179(Compiled Code)) at com/kingdee/bos/transaction/EJBTransactionProxy.invoke(EJBTransactionProxy.java:324(Compiled Code)) at $Proxy332.getReqData(Bytecode PC:22) at com/kingdee/eas/rt/report/StoreSaleDynamicRptFacade.getReqData(StoreSaleDynamicRptFacade.java:48) at rpc_generate/_PROXY_com_1_kingdee_1_eas_1_rt_1_report_1_IStoreSaleDynamicRptFacade.pi16(Bytecode PC:27) at rpc_generate/_PROXY_com_1_kingdee_1_eas_1_rt_1_report_1_IStoreSaleDynamicRptFacade.processInvoke(Bytecode PC:370) at com/kingdee/bos/rpc/impl/ObjectProxy.processInvoke(ObjectProxy.java:177(Compiled Code)) at com/kingdee/bos/rpc/impl/RPCService.serviceInvoke(RPCService.java:629(Compiled Code)) at com/kingdee/bos/rpc/impl/RPCService.service(RPCService.java:125(Compiled Code)) at com/kingdee/bos/rpc/impl/ServiceDispatcher.run(ServiceDispatcher.java:153(Compiled Code)) at com/kingdee/bos/rpc/impl/ThreadJob.run(ThreadJob.java:24(Compiled Code)) at com/kingdee/bos/rpc/impl/ThreadPool2$Worker.run(ThreadPool2.java:103) 解决方法: 1、零售研发分析报表有进一步性能的优化的空间; 2、客户主机服务器负载很大,经实施顾问和客户沟通,临近春节,暂让客户少用该报表,通过其他报表查看销售数据,后期会再进一步分析报表,并作相关性能优化。 3、参考如下代码类优化: public class CommRptBaseControllerBean extends AbstractCommRptBaseControllerBean { /** * 分页查询数据 在这里查询必要的数据 */ protected RptParams _query(Context ctx, RptParams params, int from, int len) throws BOSException, EASBizException { return null; } 。。。。 } 以下是报表框架接口,第一个方法findData中的参数start、count意思就是取第多少行,取多少条数据。

(FAQ)零售模块报表查询结果集过大导致OOM宕机

(FAQ)零售模块报表查询结果集过大导致OOM宕机原因分析:判断与零售报表查询相关,查询41万多结果集太大导致内存不足宕机。旧的报表框架,需...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息