<%@ page language="java" contentType="text/html; charset=utf-8"%> <%@ page import="java.util.List"%> <%@ page import="java.util.ArrayList"%> <%@ page import="java.util.HashMap"%> <%@ page import="java.util.Map"%> <%@ page import="com.eactive.eai.rms.common.context.MonitoringContext"%> <%@ page import="com.eactive.eai.rms.common.util.CommonUtil"%> <%@ page import="com.eactive.eai.rms.common.datasource.DataSourceType"%> <%@ page import="com.eactive.eai.rms.common.datasource.DataSourceTypeManager"%> <%@ page import="com.eactive.eai.common.util.SystemUtil"%> <%@ page import="javax.persistence.criteria.CriteriaBuilder" %> <%@ page import="java.util.Comparator" %> <%@ include file="/jsp/common/include/localemessage.jsp" %> <% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Expires", "0"); request.setCharacterEncoding("utf-8"); MonitoringContext monitoringContext = (MonitoringContext)CommonUtil.getBean(request, "monitoringContext"); String NEW_TITLE = (String) session.getAttribute(MonitoringContext.NEW_DASHBOARD_TITLE); String fepBatchUrl = monitoringContext.getStringProperty("FEP_BATCH_SERVER", ""); String eaiBatchUrl = monitoringContext.getStringProperty("EAI_BATCH_SERVER", ""); // 온라인 데이터 소스 타입 목록 가져오기 List srvList = DataSourceTypeManager.getOnlineDataSourceTypes(); // GW 추가 if( DataSourceTypeManager.getDataSourceType("FGW") != null ){ srvList.add(DataSourceTypeManager.getDataSourceType("FGW")); } if( DataSourceTypeManager.getDataSourceType("CGW") != null ){ srvList.add(DataSourceTypeManager.getDataSourceType("CGW")); } int srvCnt = srvList.size(); // 서버 타입별 목록을 저장할 맵 생성 Map> serverTypeMap = new HashMap<>(); // 서버타입 맵을 application 스코프에 저장 (모든 컴포넌트에서 접근 가능) application.setAttribute("serverTypeMap", serverTypeMap); // 서버 타입별로 분류 for (DataSourceType server : srvList) { String serverName = server.getName(); // 서버 타입에 해당하는 리스트가 없으면 생성 if (!serverTypeMap.containsKey(serverName)) { serverTypeMap.put(serverName, new ArrayList()); } // 서버를 해당 타입 리스트에 추가 serverTypeMap.get(serverName).add(server); } // BAP(일괄전송) 서버 타입 추가 DataSourceType bapServer = DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.BAP); if (bapServer != null && !serverTypeMap.containsKey(DataSourceTypeManager.BAP)) { List bapList = new ArrayList<>(); bapList.add(bapServer); serverTypeMap.put(DataSourceTypeManager.BAP, bapList); } // 서버 데이터 생성 (JavaScript 용) StringBuilder serverDataJS = new StringBuilder(); serverDataJS.append("var serverDataArray = ["); boolean first = true; for (Map.Entry> entry : serverTypeMap.entrySet()) { String serverType = entry.getKey(); List servers = entry.getValue(); // BAT 서버는 제외 if (DataSourceTypeManager.BAT.equals(serverType)) { continue; } for (DataSourceType server : servers) { if (!first) { serverDataJS.append(","); } String name = server.getName(); String text = server.getText(); serverDataJS.append("{"); serverDataJS.append("type:'").append(serverType).append("',"); serverDataJS.append("name:'").append(name).append("',"); serverDataJS.append("text:'").append(text).append("'"); serverDataJS.append("}"); first = false; } } serverDataJS.append("];"); %> eLink 모니터링 대시보드
<%--
--%>