欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata

【问题】

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