元数据解析导致服务器CPU持续高消耗
1、适用版本
EAS8.2
2、问题描述
服务器CPU维持1110%高消耗,经分析,卡在如下元数据解析线程:
java.lang.Thread.State: RUNNABLE
at com.kingdee.bos.dao.DeleContext.getEntry(DeleContext.java:128)
- locked <0x00000007ff18d0d0> (a java.util.ArrayList)
at com.kingdee.bos.dao.DeleContext.getKey(DeleContext.java:64)
at com.kingdee.bos.dao.DeleContextUtil.put(DeleContextUtil.java:16)
at com.kingdee.bos.metadata.AbstractMDValueDele.<init>(AbstractMDValueDele.java:44)
at com.kingdee.bos.metadata.query.PropertyRefDele.<init>(PropertyRefDele.java:24)
at com.kingdee.bos.metadata.query.PropertyRefDele.getInstance(PropertyRefDele.java:41)
at com.kingdee.bos.metadata.query.PropertyRefCollectionDele.createDelegate(PropertyRefCollectionDele.java:24)
at com.kingdee.bos.dao.AbstractObjectCollectionDele.handleDelegate(AbstractObjectCollectionDele.java:174)
at com.kingdee.bos.dao.AbstractObjectCollectionDele.getObject(AbstractObjectCollectionDele.java:133)
at com.kingdee.bos.metadata.query.token.CollectionFormulaParser.parser(CollectionFormulaParser.java:84)
at com.kingdee.bos.metadata.query.token.CollectionFormulaParser.<init>(CollectionFormulaParser.java:49)
at com.kingdee.bos.metadata.query.util.QueryDeleUtil.getUnitString(QueryDeleUtil.java:710)
at com.kingdee.bos.metadata.query.util.SelectBuilder.buildSelect(SelectBuilder.java:147)
at com.kingdee.bos.metadata.query.util.SelectBuilder.getSql(SelectBuilder.java:44)
at com.kingdee.bos.metadata.query.util.QuerySqlAccessBase.getSql(QuerySqlAccessBase.java:164)
- locked <0x00000007ff397620> (a com.kingdee.bos.metadata.query.QueryDele)
at com.kingdee.bos.dao.query.server.BaseDataAccess.getRuntimeSql(BaseDataAccess.java:187)
at com.kingdee.bos.dao.query.server.QueryDataAccess.innerGetSum(QueryDataAccess.java:729)
at com.kingdee.bos.dao.query.server.QueryDataAccess.sum(QueryDataAccess.java:354)
at rpc_generate._PROXY_com_1_kingdee_1_bos_1_dao_1_query_1_server_1_IQueryDataAccess.pi30(Unknown Source)
at rpc_generate._PROXY_com_1_kingdee_1_bos_1_dao_1_query_1_server_1_IQueryDataAccess.processInvoke(Unknown Source)
at com.kingdee.bos.rpc.impl.ObjectProxy.processInvoke(ObjectProxy.java:177)
at com.kingdee.bos.rpc.impl.RPCService.serviceCreateObjectAndInvoke(RPCService.java:610)
at com.kingdee.bos.rpc.impl.RPCService.service(RPCService.java:125)
at com.kingdee.bos.rpc.impl.ServiceDispatcher.run(ServiceDispatcher.java:153)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
3、解决方案
EAS 82版本中可安装补丁PT168653来解决此问题,请更新至该补丁或最新补丁即可。
4、注意
安装补丁方法请参考补丁说明,并严格按照补丁说明进行补丁安装。必要时可以在测试环境下先验证通过。
元数据解析导致服务器CPU持续高消耗
本文2024-09-22 20:27:56发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-113800.html