NC6.3业务预警监控节点打开慢问题问题描述:业务预警监控节点打开慢,估计会耗费时间3分钟-5分钟左右。业务预警执行效率问题:1.业务预警监控打开节点耗时:2.58分钟2.业务预警条目修改后保存耗时:2.58分钟3.业务预警条目修改后保存不生效后台任务执行效率问题:1.后台任务监控打开节点耗时:3.01分钟2.后台任务部署修改后保存耗时:5.54分钟3.后台任务部署修改后保存不生效问题分析及解决:1398153617711-564<服务>ncMem02服务><线程名称>WebContainer:1线程名称><业务动作>打开节点-业务预警监控业务动作><线程状态>RUNNABLE线程状态><当前事件>begincrosscallservermethodname=nc.bs.uap.scheduler.ITaskAdmin.listTasks(),targeturl=http://ghncapp04:9115/ServiceDispatcherServlet,callid=1398153617711-564当前事件><远程调用方法>nc.itf.uap.pa.IPreAlertConfigService.listPreAlertTasks远程调用方法><耗时>35225耗时>3522500000003570050<客户端地址>10.28.25.119:49434客户端地址><操作员>1002A11000000009TWA9操作员><调试模式>是调试模式>1398153617711-564<服务>ncMem02服务><线程名称>WebContainer:1线程名称><业务动作>打开节点-业务预警监控业务动作><线程状态>RUNNABLE线程状态><当前事件>begincrosscallservermethodname=nc.bs.uap.scheduler.ITaskAdmin.listTasks(),targeturl=http://ghncapp04:9119/ServiceDispatcherServlet,callid=1398153617711-564当前事件><远程调用方法>nc.itf.uap.pa.IPreAlertConfigService.listPreAlertTasks远程调用方法><耗时>122744耗时>122744000000035700120<客户端地址>10.28.25.119:49434客户端地址><操作员>1002A11000000009TWA9操作员><调试模式>是调试模式>经过观察业务预警监控节点打开时,会逐个调用集群中的每个SERVER,项目环境中有很多SERVER(40多个SERVER),这样调用一遍,估计会耗费时间3分钟-5分钟左右。因为预警或任务的监控是需要遍历所有的服务器节点,找到加入调度引擎中的预警或任务列到界面供监控,由于用户服务器节点较多,所以遍历较耗时。解决方案:1、调度引擎提供根据传入的服务器信息,列出这些服务器节点上的任务的接口2、预警根据预警加载持久化到数据库的信息,取出预警加载到哪些结点上,并调用1中提供的方法遍历特定的n个服务器节点而不是所有的服务器节点,提高遍历速度。nc.itf.uap.pa.IPreAlertConfigService.listPreAlertTasks打开节点-业务预警监控nc.itf.uap.pa.IPreAlertConfigService.listBgTasks打开节点-后台任务监控nc.itf.uap.pa.IPreAlertConfigService.updateAlertRegistries打开节点-后台任务部署nc.itf.uap.pa.IPreAlertConfigService.updateAlertRegistries打开节点-预警条目配置后台部署任务日志如下:1398153617711-564<服务>ncMem02服务><线程名称>WebContainer:1线程名称><业务动作>打开节点-业务预警监控业务动作><线程状态>RUNNABLE线程状态><当前事件>begincrosscallservermethodname=nc.bs.uap.scheduler.ITaskAdmin.listTasks(),targeturl=http://ghncapp04:9115/ServiceDispatcherServlet,callid=1398153617711-564当前事件><远程调用方法>nc.itf.uap.pa.IPreAlertConfigService.listPreAlertTasks远程调用方法><耗时>35225耗时>3522500000003570050<客户端地址>10.28.25.119:49434客户端地址><操作员>1002A11000000009TWA9操作员><调试模式>是调试模式>1398153617711-564<服务>ncMem02服务><线程名称>WebContainer:1线程名称><业务动作>打开节点-业务预警监控业务动作><线程状态>RUNNABLE线程状态><当前事件>begincrosscallservermethodname=nc.bs.uap.scheduler.ITaskAdmin.listTasks(),targeturl=http://ghncapp04:9119/ServiceDispatcherServlet,callid=1398153617711-564当前事件><远程调用方法>nc.itf.uap.pa.IPreAlertConfigService.listPreAlertTasks远程调用方法><耗时>122744耗时>122744000000035700120<客户端地址>10.28.25.119:49434客户端地址><操作员>1002A11000000009TWA9操作员><调试模式>是调试模式>堆栈信息:java.net.PlainSocketImpl.socketConnect(NativeMethod)java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381)java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:243)java.net.PlainSocketImpl.connect(PlainSocketImpl.java:230)java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377)java.net.Socket.connect(Socket.java:539)java.net.Socket.connect(Socket.java:488)sun.net.NetworkClient.doConnect(NetworkClient.java:175)sun.net.www.http.HttpClient.openServer(HttpClient.java:401)sun.net.www.http.HttpClient.openServer(HttpClient.java:536)sun.net.www.http.HttpClient.(HttpClient.java:240)sun.net.www.http.HttpClient.New(HttpClient.java:313)sun.net.www.http.HttpClient.New(HttpClient.java:330)sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:982)sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:848)sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1026)nc.bs.framework.rmi.HttpRemoteChannel$RCOutputStream.writePrepare(HttpRemoteChannel.java:251)nc.bs.framework.rmi.HttpRemoteChannel$RCOutputStream.(HttpRemoteChannel.java:206)nc.bs.framework.rmi.HttpRemoteChannel.init(HttpRemoteChannel.java:95)nc.bs.framework.rmi.RemoteInvocationHandler.sendRequest(RemoteInvocationHandler.java:237)nc.bs.framework.rmi.RemoteInvocationHandler.sendRequest(RemoteInvocationHandler.java:114)nc.bs.framework.rmi.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:84)$Proxy72.listTasks(UnknownSource)nc.bs.uap.scheduler.impl.DistributedTaskAdmin$1.list(DistributedTaskAdmin.java:55)nc.bs.uap.scheduler.impl.DistributedTaskAdmin$ListTaskCommand.run(DistributedTaskAdmin.java:217)nc.bs.uap.scheduler.impl.DistributedTaskAdmin.listTasks(DistributedTaskAdmin.java:52)nc.bs.pub.pa.ScheduleTaskManager.listTasks(ScheduleTaskManager.java:102)nc.bs.pub.taskcenter.TaskCenterManager.listTasks(TaskCenterManager.java:431)nc.bs.pub.taskcenter.TaskCenterManager.listTaskOfRegistry(TaskCenterManager.java:494)nc.bs.pub.taskcenter.WorkingLogger.getTaskId(WorkingLogger.java:97)nc.bs.pub.taskcenter.WorkingLogger.saveTaskLog(WorkingLogger.java:119)nc.bs.pub.taskcenter.WorkingLogger.insertLog(WorkingLogger.java:66)nc.impl.uap.pa.PreAlertDBImpl.insertTaskLog_RequiresNew(PreAlertDBImpl.java:457)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.aop.rt.MethodProceedingJoinpoint$3.invoke(MethodProceedingJoinpoint.java:74)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:184)nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:188)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)nc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)$Proxy225.insertTaskLog_RequiresNew(UnknownSource)nc.itf.uap.pa.PreAlertEJBEjbBean.insertTaskLog_RequiresNew(PreAlertEJBEjbBean.java:667)nc.itf.uap.pa.EJSLocal0SLnc_itf_uap_pa_PreAlertEJB_6f427a41.insertTaskLog_RequiresNew(EJSLocal0SLnc_itf_uap_pa_PreAlertEJB_6f427a41.java)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:57)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:36)$Proxy222.insertTaskLog_RequiresNew(UnknownSource)uap.bs.prealert.engine.logger.ExecutionLoggerImpl.log(ExecutionLoggerImpl.java:16)uap.bs.prealert.engine.EngineImplDelegator.execute(EngineImplDelegator.java:131)uap.bs.prealert.engine.PreAlertEngineImpl.execute(PreAlertEngineImpl.java:31)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.aop.rt.MethodProceedingJoinpoint$3.invoke(MethodProceedingJoinpoint.java:74)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:184)nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:188)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)nc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)$Proxy49.execute(UnknownSource)nc.gejb.uap.cmt.UapEjbBean.execute(UapEjbBean.java:2783)nc.gejb.uap.cmt.EJSLocal0SLnc_gejb_uap_cmt_Uap_84fdcd76.execute(EJSLocal0SLnc_gejb_uap_cmt_Uap_84fdcd76.java)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:57)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:36)$Proxy36.execute(UnknownSource)nc.bs.pub.pa.DealImmediatelyMsg.dealImmMsg(DealImmediatelyMsg.java:90)nc.bs.pub.pa.service.ShowPreAlertInfo.findImmediateMsgs(ShowPreAlertInfo.java:185)nc.bs.pub.pa.service.ShowPreAlertInfo.findMessageFileAddress(ShowPreAlertInfo.java:136)nc.bs.pub.pa.service.ShowPreAlertInfo.showMessageAlertFileNameByLogin(ShowPreAlertInfo.java:89)nc.impl.uap.pa.PreAlertServiceImpl.showMessageAlertFileNameByLogin(PreAlertServiceImpl.java:109)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.aop.rt.MethodProceedingJoinpoint$3.invoke(MethodProceedingJoinpoint.java:74)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:184)nc.bs.framework.server.SecurityAspect.aroundMethod1(SecurityAspect.java:45)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:182)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)nc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)$Proxy223.showMessageAlertFileNameByLogin(UnknownSource)nc.itf.uap.pa.PreAlertEJBEjbBean.showMessageAlertFileNameByLogin(PreAlertEJBEjbBean.java:116)nc.itf.uap.pa.EJSLocal0SLnc_itf_uap_pa_PreAlertEJB_6f427a41.showMessageAlertFileNameByLogin(EJSLocal0SLnc_itf_uap_pa_PreAlertEJB_6f427a41.java)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:57)nc.bs.framework.ejb.AbstractEJBServiceHandler.invoke(AbstractEJBServiceHandler.java:36)$Proxy222.showMessageAlertFileNameByLogin(UnknownSource)sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)java.lang.reflect.Method.invoke(Method.java:611)nc.bs.framework.rmi.server.RMIHandlerImpl.invokeBeanMethod(RMIHandlerImpl.java:282)nc.bs.framework.rmi.server.RMIHandlerImpl.doHandle(RMIHandlerImpl.java:142)nc.bs.framework.rmi.server.RMIHandlerImpl.handle(RMIHandlerImpl.java:68)nc.bs.framework.comn.serv.CommonServletDispatcher.doPost(CommonServletDispatcher.java:45)javax.servlet.http.HttpServlet.service(HttpServlet.java:738)javax.servlet.http.HttpServlet.service(HttpServlet.java:831)com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1658)com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1598)com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:149)nc.bs.framework.server.LoggerServletFilter.doFilter(LoggerServletFilter.java:35)com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:935)com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:503)com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:875)com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:557)com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:607)com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:984)com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1069)com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)