======배치 실행로그 예제 ======
===== 개요 =====
배치 수행 시, 처리되는 배치관련 정보들에 대한 기록(Log)을 Registry 와 DB에 저장되고 이를 확인하는 과정을 보여주는 예제이다.
===== 설명 =====
==== 설정 ====
=== Job 설정 ===
== 배치 실행로그 예제의 Job 설정 파일인 logManagementJob.xml을 확인한다. ==
배치 실행로그 예제를 위해 특별히 Job을 설정하는 내용은 없다. 이 예제에서 제공하는 Job의 상세 내용은 [[egovframework:rte2:brte:batch_example:skip_mgmt|건너뛰기(Skip)기능 예제]]의 Job 설정과 같으므로 이를 참고한다.
==== JunitTest 구성 및 수행 ====
=== JunitTest 구성 ===
== logManagementJob 설정과 관련 클래스들로 Junit Test를 수행한다. 이 때 배치가 수행되고, 관련된 내용을 확인할 수 있다.==
✔ JunitTest 클래스의 구조는 [[egovframework:rte2:brte:batch_example:run_junit_Test|배치실행환경 예제 Junit Test 설명]]을 참고한다.
\\ ✔ assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus()) : 배치수행결과가 COMPLETED 인지 확인한다.
\\ ✔ assertEquals("[logManagementJob]", jobRegistry.getJobNames().toString()) : Registry에 저장된 JobName 확인한다.
\\ ✔ assertEquals("3 records were skipped!", simpleJdbcTemplate.queryForObject("SELECT MESSAGE from ERROR_LOG where JOB_NAME = ?", String.class, "logManagementJob"))
\\ : DB에 저장된 ERROR_LOG 테이블 정보 확인한다.
@ContextConfiguration(locations = {"/egovframework/batch/simple-job-launcher-context.xml",
"/egovframework/batch/jobs/logManagementJob.xml",
"/egovframework/batch/job-runner-context.xml" })
public class EgovLogManagementFunctionalTests {
...
@Test
public void testUpdateCredit() throws Exception {
JobExecution jobExecution = jobLauncherTestUtils.launchJob();
assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
// Registry : Job 정보에 대한 로그기록
assertEquals("[logManagementJob]", jobRegistry.getJobNames().toString());
// DB : ERROR_LOG 테이블의 로그 수
assertEquals(1, SimpleJdbcTestUtils.countRowsInTable( simpleJdbcTemplate, "ERROR_LOG"));
// DB : ERROR_LOG 테이블의 로그 데이터
assertEquals("3 records were skipped!",simpleJdbcTemplate.queryForObject(
"SELECT MESSAGE from ERROR_LOG where JOB_NAME = ?",String.class, "logManagementJob"));
}
}
===JunitTest 수행===
== ==
수행방법은 [[egovframework:dev2:tst:test_case#Test Case 실행| JunitTest 실행]]을 참고한다.
==== 결과확인 ====
=== ===
DB의 ERROR_LOG 테이블을 보면 데이터를 실제로 확인할 수 있다.
{{:egovframework:rte2:brte:batch_example:logmanagement1.png|}}
===== 참고자료 =====
* [[egovframework:rte2:brte:batch_core:job_registry|JobRegsitry]]
* [[egovframework:rte2:brte:batch_core:job_repository|JobRepository]]