목차

요소기술 - 프로세스모니터링

개요

프로세스모니터링은 특정 프로세스가 기동 중인지 주기적으로 점검을 수행하고, 문제 발생시 해당 정보를 관리자에게 통보하는 기능을 제공한다.

설명

  ① 프로세스모니터링목록조회 : 프로세스모니터링으로 정의된 정보를 최근 등록 순서대로 조회하고, 그 결과 목록을 화면에 반영한다.
  ② 프로세스모니터링등록 : 프로세스모니터링정보를 등록하고, 등록 결과를 조회한다.
  ③ 프로세스모니터링수정 : 기 등록된 프로세스모니터링정보의 항목들을 수정한다.
  ④ 프로세스모니터링삭제 : 기 등록된 프로세스모니터링정보를 삭제한다.
  ⑤ 프로세스모니터링조회 : 등록된 프로세스모니터링정보를 조회한다. 
  ⑥ 프로세스모니터링로그목록조회 : 프로세스모니터링로그로 정의된 정보를 최근 등록 순서대로 조회하고, 그 결과 목록을 화면에 반영한다.
  ⑦ 프로세스모니터링조회 : 등록된 프로세스모니터링로그정보를 조회한다. 

관련소스

유형대상소스명비고
Controlleregovframework.com.utl.sys.prm.web.EgovProcessMonController.java프로세스모니터링을 위한 컨트롤러 클래스
Serviceegovframework.com.utl.sys.prm.service.EgovProcessMonService.java프로세스모니터링을 위한 서비스 인터페이스
ServiceImplegovframework.com.utl.sys.prm.service.impl.EgovProcessMonServiceImpl.java프로세스모니터링을 위한 서비스 구현 클래스
DAOegovframework.com.utl.sys.prm.service.impl.ProcessMonDAO.java프로세스모니터링을 위한 데이터처리 클래스
Modelegovframework.com.utl.sys.prm.service.ProcessMon.java프로세스모니터링을 위한 Model 클래스
Modelegovframework.com.utl.sys.prm.service.ProcessMonLog.java프로세스모니터링로그정보를 위한 Model 클래스
VOegovframework.com.utl.sys.prm.service.ProcessMonVO.java프로세스모니터링로그정보를 위한 VO 클래스
VOegovframework.com.utl.sys.prm.service.ProcessMonLogVO.java프로세스모니터링로그정보를 위한 VO 클래스
스케쥴링egovframework.com.utl.sys.prm.service.EgovProcessMonScheduling.java프로세스모니터링로그정보를 위한 스케쥴링 클래스
스케쥴링egovframework.com.utl.sys.prm.service.ProcessMonChecker.java프로세스모니터링로그정보를 위한 스케쥴링 클래스
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonList.jsp프로세스모니터링목록조회를 위한 jsp페이지
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonRegist.jsp프로세스모니터링 등록을 위한 jsp페이지
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonUpdt.jsp프로세스모니터링 수정을 위한 jsp페이지
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonDetail.jsp등록된 프로세스모니터링을 조회하기 위한 jsp페이지
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonLogList.jsp프로세스모니터링로그목록조회를 위한 jsp페이지
JSP/WEB-INF/jsp/egovframework/utl/sys/prm/EgovProcessMonLogDetail.jsp등록된 프로세스모니터링로그을 조회하기 위한 jsp페이지
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_altibase.xml프로세스모니터링을 위한 Altibase용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_cubrid.xml프로세스모니터링을 위한 Cubrid용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_maria.xml프로세스모니터링을 위한 MariaDB용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_mysql.xml프로세스모니터링을 위한 MySQL용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_oracle.xml프로세스모니터링을 위한 Oracle용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_postgres.xml프로세스모니터링을 위한 PostgreSQL용 Query XML
Query XMLresources/egovframework/mapper/com/utl/sys/prm/EgovUtlSysProcessMon_SQL_tibero.xml프로세스모니터링을 위한 Tibero용 Query XML
Validator Rule XMLresources/egovframework/validator/validator-rules.xmlValidator Rule을 정의한 XML
Validator XMLresources/egovframework/validator/com/utl/sys/prm/EgovProcessMon.xml프로세스모니터링을 위한 Validator XML
Message propertiesresources/egovframework/message/com/utl/sys/prm/message_en.properties프로세스모니터링을 위한 Message properties(영문)
Message propertiesresources/egovframework/message/com/utl/sys/prm/message_ko.properties프로세스모니터링을 위한 Message properties(한글)
Idgen XMLresources/egovframework/spring/com/idgn/context-idgn-ProcessMon.xml프로세스모니터링을 위한 Id생성 Idgen XML

클래스 다이어그램

관련테이블

테이블명테이블명(영문)비고
프로세스모니터링COMTNPROCESSMON프로세스모니터링정보를 관리하기 위한 속성정보를 정의하고, 관리한다.
프로세스모니터링로그정보COMTNPROCESSMONLOGINFO프로세스모니터링로그정보를 관리하기 위한 속성정보를 정의하고, 관리한다.

ID Generation 관련 DDL 및 DML

    CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL, 
                               next_id DECIMAL(30) NOT NULL,
                               PRIMARY KEY (table_name)
    );
 
    INSERT INTO COMTECOPSEQ VALUES ('PROC_ID','0');
    INSERT INTO COMTECOPSEQ VALUES ('PROL_ID','0');

ID Generation 환경설정(context-idgn-ProcessMon.xml)

    <!-- 프로세스모니터링 -->
    <bean name="egovProcessMonIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="procManageStrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="PROC_ID"/>
    </bean>
    <bean name="procManageStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"   value="PROC_" />
        <property name="cipers"   value="15" />
        <property name="fillChar" value="0" />
    </bean>     
 
    <!-- 프로세스모니터링 로그 -->          
    <bean name="egovProcessMonLogIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="prolManageStrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="PROL_ID"/>
    </bean>
    <bean name="prolManageStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix"   value="PROL_" />
        <property name="cipers"   value="15" />
        <property name="fillChar" value="0" />
    </bean>

프로퍼티 파일 설정

globals.properties

시스템 환경에 대한 정보를 지정하기 위해서는 globals.properties 속성 파일에 추가 속성을 설정하여야 한다.

globals.properties에 관련된 내용은 요소기술 프로퍼티 및 명령어 쉘스크립트 부분을 참조한다.

UNIX인 경우

...
Globals.OsType = UNIX
...

WINDOWS인 경우

...
Globals.OsType = WINDOWS
...

스케줄러 등록

	<!-- 프로세스모니터링   -->
	<bean id="processMntrng"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="egovProcessMonScheduling" />
		<property name="targetMethod" value="monitorProcess" />
		<property name="concurrent" value="false" />
	</bean>
 
	<!-- 프로세스모니터링  트리거-->
	<bean id="processMntrngTrigger"
		class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="jobDetail" ref="processMntrng" />
		<property name="startDelay" value="60000" />
		<property name="repeatInterval" value="600000" />
	</bean>
  startDelay는 서버 시작후 몇초 뒤에 시작할지를 설정한다.(ms 단위 : 현재 1분)
  repeatInterval는 몇 초에 한번씩 실행될지를 설정한다.(ms 단위 : 현재 10분)
	<!-- 모니터링 스케줄러 -->
	<bean id="mntrngScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="processMntrngTrigger" />
			</list>
		</property>
	</bean>

관련화면 및 수행메뉴얼

프로세스모니터링 목록조회
ActionURLController methodQueryID
조회/utl/sys/prm/selectProcessMonList.doselectProcessMonList“ProcessMonDAO.selectProcessMonList”
조회/utl/sys/prm/selectProcessMonList.doselectProcessMonList“ProcessMonDAO.selectProcessMonListCnt”

프로세스모니터링 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 상태,관리자명에 대해서 수행된다.

조회 : 기 등록된 프로세스모니터링의 목록을 조회한다.
등록 : 신규 프로세스모니터링를 등록하기 위해서는 상단의 등록 버튼을 통해서 프로세스모니터링 등록 화면으로 이동한다.
로그 : 프로세스모니터링로그 확인하기 위해서는 상단의 로그 버튼을 통해서 프로세스모니터링 로그목록 화면으로 이동한다.
이메일전송 : 프로세스모니터링 상태가 비정상일때 관리자에게 이메일을 발송한다.


프로세스모니터링 등록

ActionURLController methodQueryID
등록/utl/sys/prm/addProcessMon.doinsertProcessMon“ProcessMonDAO.insertProcessMon”

프로세스모니터링의 속성정보를 입력한 뒤 등록한다.

저장 : 신규 프로세스모니터링를 등록하기 위해서는 프로세스모니터링 속성을 입력한 뒤 상단의 저장 버튼을 통해서 프로세스모니터링를 등록한다.
목록 : 프로세스모니터링 목록조회 화면으로 이동한다.
프로세스명 : 공통컴퍼넌트가 설치된 서버의 프로세스명을 의미한다.


프로세스모니터링 수정

ActionURLController methodQueryID
수정/utl/sys/prm/updateProcessMonupdateProcessMon“ProcessMonDAO.updateProcessMon”

프로세스모니터링의 속성정보를 변경한 후 저장한다.

저장 : 기 등록된 프로세스모니터링 속성을 수정한 뒤 상단의 저장 버튼을 통해서 프로세스모니터링정보를 수정한다.
목록 : 프로세스모니터링 목록조회 화면으로 이동한다.


프로세스모니터링 상세조회

ActionURLController methodQueryID
상세조회/utl/sys/prm/getProcessMon.doselectProcessMon“ProcessMonDAO.selectProcessMon”
삭제/utl/sys/prm/deleteProcessMon.dodeleteProcessMon“ProcessMonDAO.deleteProcessMon”

프로세스모니터링의 속성정보를 조회한다.

수정 : 기 등록된 프로세스모니터링 속성을 수정한 뒤 상단의 수정 버튼을 통해서 프로세스모니터링수정화면으로 이동한다.
삭제 : 기 등록된 프로세스모니터링정보를 삭제한다.
목록 : 프로세스모니터링 목록조회 화면으로 이동한다.


프로세스모니터링로그 목록조회

ActionURLController methodQueryID
조회/utl/sys/prm/selectProcessMonLogList.doselectProcessMonLogList“ProcessMonDAO.selectProcessMonLogList”
조회/utl/sys/prm/selectProcessMonLogList.doselectProcessMonLogList“ProcessMonDAO.selectProcessMonLogListCnt”

프로세스모니터링로그 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 상태,관리자명, 모니터링시각에 대해서 수행된다.

조회 : 기 등록된 프로세스모니터링로그의 목록을 조회한다.


프로세스모니터링로그 상세조회

ActionURLController methodQueryID
상세조회/utl/sys/prm/getProcessMonLog.doselectProcessMonLog“ProcessMonDAO.selectProcessMonLog”

프로세스모니터링로그의 속성정보를 조회한다.

목록 : 프로세스모니터링로그 목록조회 화면으로 이동한다.