问题现象
经过顾问反馈,发现系统现在出现卡顿,NCC一直在转圈。
问题分析
远程排查,发现在服务器从机上defalut-7发生了内存溢出,宕机。
生成了宕机日志。分析结果如下:
销售订单相关操作,vo太多了导致内存占用过多。
使用MAT抓取相关线程信息
at java.util.regex.Pattern$BmpCharProperty.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:3799)
at java.util.regex.Pattern$Curly.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4229)
at java.util.regex.Pattern$GroupHead.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4660)
at java.util.regex.Pattern$Branch.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4606)
at java.util.regex.Pattern$BranchConn.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4570)
at java.util.regex.Pattern$GroupTail.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4719)
at java.util.regex.Pattern$Curly.match0(Ljava/util/regex/Matcher;IILjava/lang/CharSequence;)Z (Pattern.java:4281)
at java.util.regex.Pattern$Curly.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4236)
at java.util.regex.Pattern$GroupHead.match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z (Pattern.java:4660)
... ..
nccloud.web.so.saleorder.action.SaleOrderBillReferQueryFor30.doAction(Lnccloud/framework/web/container/IRequest;)Ljava/lang/Object; (SaleOrderBillReferQueryFor30.java:62)
at nccloud.framework.web.action.excutor.CommonActionExcutor.excute(Ljava/lang/Object;Lnccloud/framework/web/container/IHttpOperator;)Ljava/lang/Object; (CommonActionExcutor.java:18)
at nccloud.framework.web.action.entry.ActionExcutor.excute(Ljava/lang/Object;Lnccloud/framework/web/container/IHttpOperator;)Ljava/lang/Object; (ActionExcutor.java:93)
at nccloud.framework.web.action.entry.Dispatcher.excute(Lnccloud/framework/web/container/IHttpOperator;)Lnccloud/framework/web/action/entry/Result; (Dispatcher.java:84)
at nccloud.framework.web.action.entry.Dispatcher.doAction(Lnccloud/framework/web/container/IHttpOperator;)V (Dispatcher.java:41)
at nccloud.framework.web.action.entry.EntryController.doPost(Ljavax/servlet/http/HttpServletRequ
... ...
解决建议
应该是在查询销售订单,表体量太大,又走了公式,显示公式:handleBodyLoadFormula。目前看是显示公式导致的。
是订单参照订单时,订单表体存在很多数据,但是又执行大量显示公式导致,建议转单模板
别加显示公式,会有效率问题
nccloud.framework.web.convert.formula.AbstractFormulaHandler.getBodyResult(Lnccloud/framework/web/ui/model/row/Row;[Lnccloud/framework/web/ui/model/row/Row;Ljava/lang/String;Ljava/util/Map;)Ljava/util/Map; (AbstractFormulaHandler.java:745)