欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
EOS Platform 7.6 集群环境,Coframe大量线程阻塞,导致应用不可使用,BLOCKED状态的线程有:
"[ACTIVE] ExecuteThread: '126' for queue: 'weblogic.kernel.Default (self-tuning)'" Id=367321 BLOCKED on java.lang.Object@4242bf7d owned by "[ACTIVE] ExecuteThread: '944' for queue: 'weblogic.kernel.Default (self-tuning)'" Id=366738
at com.primeton.cap.auth.manager.AuthRuntimeManager.getAuthResListByRole(AuthRuntimeManager.java:125)
- blocked on java.lang.Object@4242bf7d
at com.primeton.cap.auth.manager.AuthRuntimeManager.getAuthResourceState(AuthRuntimeManager.java:235)
at org.gocom.components.coframe.auth.menu.DefaultMenuAuthService.canAccessFunction(DefaultMenuAuthService.java:402)
at org.gocom.components.coframe.auth.menu.DefaultMenuAuthService.getAuthedMenuList(DefaultMenuAuthService.java:378)
at org.gocom.components.coframe.auth.menu.DefaultMenuAuthService.computeMenuNodes(DefaultMenuAuthService.java:179)
at org.gocom.components.coframe.auth.menu.DefaultMenuAuthService.getAllPartyAuthMenuTree(DefaultMenuAuthService.java:126)
at org.gocom.components.coframe.auth.DefaultAuthManagerService.getUserMenuTree(DefaultAuthManagerService.java:524)
at org.gocom.components.coframe.auth.login.LoginService.getUserMenuTree(LoginService.java:67)
at org.gocom.components.coframe.auth.login.LoginService$$FastClassBySpringCGLIB$$bee54191.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at com.primeton.spring.interceptor.BeanInterceptor.invoke(BeanInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633)
at org.gocom.components.coframe.auth.login.LoginService$$EnhancerBySpringCGLIB$$66827c2b.getUserMenuTree(<generated>)
at sun.reflect.GeneratedMethodAccessor2242.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.primeton.spring.invoker.SpringInvoker.invoke(SpringInvoker.java:74)
at org.gocom.components.coframe.auth.LoginManager.getMenuData_biz.invokeSpring0(getMenuData_biz.java:191)
at org.gocom.components.coframe.auth.LoginManager.getMenuData_biz.__choiceinvokeSpring0(getMenuData_biz.java:397)
at org.gocom.components.coframe.auth.LoginManager.getMenuData_biz.__invokeBiz(getMenuData_biz.java:348)
at org.gocom.components.coframe.auth.LoginManager.getMenuData_biz._invoke(getMenuData_biz.java:264)
at org.gocom.components.coframe.auth.LoginManager.getMenuData_biz.invoke(getMenuData_biz.java:300)
at com.primeton.engine.core.impl.process.BLProxy.invoke(BLProxy.java:223)
......
应用日志中出现了大量异常信息,主要有:
[2018-05-18 09:47:45,757][ERROR][MBeanClusterService:355] Sync message MSG[remoteRemoveValue]_oa_cluster:server_96.8.4.23_6201 failed to send,due to member is not active
五月 18, 2018 9:49:15 上午 ClientCommunicatorAdmin Checker-run 警告: Failed to check connection: java.net.ConnectException: 拒绝连接 <2018-5-18 上午09时49分15秒 CST> <Warning> <javax.management.remote.misc> <BEA-000000> <Failed to check connection: java.net.ConnectException: 拒绝连接>
问题原因:网络异常造成了线程阻塞。
解决方案:将默认的“同步复制”策略改为“异步复制”。
操作方式:
1、在\apps_config\default\config\user-config.xml中<module name="Cache">节点添加如下配置:集群下的每个节点都按此方式配置
<group name="com.primeton.cap.management.resource.cache">
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsClustered">true</configValue>
</group>
<group name="com.primeton.cap.management.resource.xpath.cache">
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsClustered">true</configValue>
</group>
<group name="com.primeton.cap.auth.auth.cache">
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsClustered">true</configValue>
</group>
<group name="RULES_IP_CACHE">
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsClustered">true</configValue>
</group>
<group name="CAP_RULE_CACHE">
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsClustered">true</configValue>
</group>
2、配置完成后,重启server
相似的portal线程堵塞问题及解决方案,可参考:http://doc.primeton.com/pages/viewpage.action?pageId=16820033