배치 태스크

태스크

배치 작업 수행 전(선처리) 혹은 수행 후(후처리) 처리해야 할 작업이다. 태스크는 여러 개를 등록할 수 있으며 태스크는 등록된 순서대로 처리된다. 태스크는 각 단계의 작업이 성공해야 다음 단계의 작업이 진행된다.

트랜잭션 관리

태스크는 배치 작업과 트랜잭션이 분리되어 있으며 태스크에서 수행하는 작업은 롤백이 불가능하다. 태스크가 실패할 경우 배치 작업은 실패한 것으로 처리한다. 후처리 태스크가 실패하여 배치 작업 전체가 실패하더라도 배치 작업 수행 결과는 롤백되지 않는다.

데이터 치환

태스크에서 수행할 작업 데이터 (예를 들어 테이블 작업인 경우 SQL문)는 작업 요청 시의 파라미터 혹은 작업 수행 결과로 생성되는 파라미터로 값이 치환될 수 있다. 태스크에 정의된 데이터 내용 중 #과 #으로 둘러싸인 부분이 파라미터에 해당하고 선처리 혹은 후처리 수행 시 해당 부분의 파라미터 명과 일치하는 작업 파라미터의 값으로 치환한다. 파라미터는 대소문자를 구별한다.

ISM 기본 파라미터

ISM에서 기본으로 제공하는 파라미터는 다음과 같다.

파라미터 이름 설명
RULE_ID 인터페이스 ID
PROC_DT 처리일자 시스템 일자
TGT_FILE_NAME 수신 파일명
SRC_FILE_NAME 송신 파일명
PROC_START_TIME 작업 시작 시간
PREV_PROC_START_TIME 선처리 작업 시작 시간
PREV_PROC_END_TIME 선처리 작업 완료 시간
PROC_END_TIME 작업 완료 시간

태스크 종류

테이블 태스크

테이블에 대한 연산을 수행한다. 테이블에 대해 수행할 쿼리를 등록하고 등록된 쿼리를 문자열(literal sql)로 수행한다. 처리 결과가 0인 경우도 성공으로 간주한다. 1 Stored Procedure를 테이블 태스크에 지정하여도 처리한다.

텔넷 태스크

대상 시스템에 텔넷으로 접근하여 지정한 스크립트 혹은 명령을 수행하고 그 결과를 리턴한다. 처리 결과는 명령 수행의 결과(exit code)를 사용하며 exit code가 0이 아닌 경우는 오류로 간주한다.

서비스 태스크

대상 시스템의 서비스를 호출한다. 온라인 방식으로 전문을 생성하여 태스크 정의 시 지정한 수신 시스템으로 전문을 전송한다. 전문 전송을 위해서는 온라인 룰을 등록하여야 한다. 서비스 태스크는 온라인 전문 생성을 위해 메시지 핸들러를 사용한다. 메시지 핸들러를 사용하지 않을 경우 태스크 정의 시 지정한 데이터가 수신 시스템으로 그대로 전송된다.

파일 태스크

데이터에 정의된 내용을 파일로 생성하여 수신 시스템으로 전송한다.

Stored procedure 태스크

데이터에 정의된 Stored Procedure 쿼리를 대상 DB에서 수행한다. Stored procedure 태스크는 IN 파라미터만 지원한다. Stored Procedure는 리턴값이 존재하지 않는다. Exception이 발생하지 않는 한 무조건 정상 처리로 간주한다.

커스텀 태스크

사용자가 원하는 작업을 ISM에서 제공하는 태스크로 수행할 수 없을 때 사용한다. 커스텀 태스크는 com.ism.batch.task.MessageHandler를 상속받아야 한다. MessageHandler를 상속받은 클래스는 다음의 메서드를 구현해야 한다.