%@ 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 모니터링 대시보드