NC 后台任务日志不显示问题处理

摘要:NC 后台任务日志数量超过30完时报错导致页面不显示

页面截图信息


抓取到的报错信息

20:44:55 [AWT-EventQueue-0] ERROR - sql:select l.pk_workingtasklog from pub_workingtasklog l join pub_alertregistry r on l.pkregistry=r.pk_alertregistry where l.tasktype in (1, 2) and r.groupid in ('0001A1100000000003DA', 'GLOBLE00000000000000') order by l.endtime desc the resultsetProcessor error!Read too much data from database for one time!!(-1): 300000
nc.bs.dao.DAOException: sql:select l.pk_workingtasklog from pub_workingtasklog l join pub_alertregistry r on l.pkregistry=r.pk_alertregistry where l.tasktype in (1, 2) and r.groupid in ('0001A1100000000003DA', 'GLOBLE00000000000000') order by l.endtime desc the resultsetProcessor error!Read too much data from database for one time!!(-1): 300000
at nc.bs.dao.BaseDAO.executeQuery(BaseDAO.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at nc.bs.framework.aop.rt.MethodProceedingJoinpoint$3.invoke(MethodProceedingJoinpoint.java:74)
at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:184)
at nc.bs.framework.server.SecurityAspect.aroundMethod1(SecurityAspect.java:55)
at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:182)
at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)
at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)
at nc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)
at com.sun.proxy.$Proxy57.executeQuery(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at nc.bs.framework.rmi.server.RMIHandlerImpl.invokeBeanMethod(RMIHandlerImpl.java:410)
at nc.bs.framework.rmi.server.RMIHandlerImpl.doHandle(RMIHandlerImpl.java:177)
at nc.bs.framework.rmi.server.RMIHandlerImpl.handle(RMIHandlerImpl.java:99)
at nc.bs.framework.comn.serv.CommonServletDispatcher.doPost(CommonServletDispatcher.java:45)

分析报错原因及处理

在数据库中查询 pub_workingtasklog 表的数据量,显示数量超过30万

SELECT count(*) FROM pub_workingtasklog

报错原因:

NC的查询语句没有优化,当数据量很大时会报超时查询错误。

处理方法:

增加定时任务,定期删除 pub_workingtasklog 表的数据。