후행 처리 개요
본 장에서는 후행 처리의 개요와 아키텍처 등에 대하여 소개한다.
1. 후행 처리란?
온라인 서비스가 종료된 후에 따로 처리하는 시스템을 말한다. 신속한 응답이 요구되는 실시간 온라인 업무서비스의 부담을 줄이기 위하여 온라인 서비스에서 발생한 업무의 데이터 및 로그(업무로그)를 이용하여 온라인 서비스가 종료된 후 처리하는 시스템을 말한다. 예를 들면, 계정반영 업무, 타 시스템 전달 업무, 상시 감시 등 이 있다.
4. 후행 처리 흐름 설명.
후행 처리 흐름은 다음과 같다.
-
거래호출
-
타겟 테이블 Insert(등록)*
후행 처리를 위한 데이터를 등록한다.(예 : 업무로그)
일련번호 채번 은 별도의 프로세스를 통해서 처리한다.(예 : 상주배치, 혹은 타겟 테이블 등록 시 일련번호 채번하여 등록.)
-
타겟 테이블 넘버링
후행 처리를 수행하기 위해서는 타겟 테이블의 데이터에 넘버링이 되어 있어야 한다.
넘버링을 하는 방법은 타겟 테이블에 데이터 등록 시, 혹은 데몬 등을 이용한 후처리, 후행 처리에서 제공하는 넘버링 기능을 이용하여 처리 할 수 있다.
-
Deferred Main 호출
Deferred Main Launcher 가 일정 주기마다 Deferred Main 을 호출한다. Deferred Main Launcher 의 설정은 Framework Instance(bxm-management-instance.xml) 파일에 정의한다.
-
후행 처리 대상 Load
후행 처리 대상에 대한 정보를 Load 한다. (BXM_DEFERRED_MAIN 및 BXM_DEFERRED_STATUS 테이블 읽기)
-
Deferred Processor 호출
후행 처리 대상이 존재하면 Deferred Processor 를 호출한다.
Deferred Processor 는 후행 처리 시스템의 전반적인 기능들을 수행하는 Thread 이다. 후행 처리를 수행하기 위한 상태 체크 및 타켓 테이블 일련번호 Fetch, 후행 처리 선/후처리, 서비스 실행 등이 있다.
-
BXM_DEFERRED_WORK 테이블 Lock 설정
다음 그림은 후행 처리 서비스 수행 시 타켓 테이블에 대해서 일련번호를 조회 하기 위한 과정을 나타내는 그림이다. (7~9)
후행 처리 작업 중 중복 처리를 방지하기 위해서 BXM_DEFERRED_WORK(후행
처리 Main 작업진행상황) 테이블을 Lock을 설정한다. -
타겟 테이블 처리 일련번호 조회
BXM_DEFERRED_WORK 테이블에서 가져온 Max + 1 ~ Max + Fetch Count 만큼 일련번호를 조회한다.
-
BXM_DEFERRED_WORK(후행 처리 Main 작업진행상황) 테이블 Unlock 설정
타켓 테이블에서 조회한 일련번호를 BXM_DEFERRED_WORK(후행 처리 Main 작업진행상황) 테이블에 반영 (Update) 하고, unlock 처리한다. 데이터가 없을 경우 Deferred Processor 종료
-
후행 처리 실행정보 등록
타겟 테이블에서 조회한 일련번호를 BXM_DEFERRED_EXEC(후행 처리 실행프로세스 처리현황) 테이블에 등록한다.
만일, 처리할 데이터가 존재하지 않은 경우에는 Deferred Processor 를 종료한다.
-
후행 처리 서비스 선처리 호출
후행 처리 서비스를 호출하기 직전에 호출 된다.
후행 처리 서비스 선처리에서는 후행 처리를 수행하기 위한 Header설정, 후행 처리 서비스 입력데이터 처리 등 이와 관련된 작업을 수행한다.
또한, 거래파라미터(서비스파라미터) 를 조회하여 서비스 제어 및 로그레벨 등을 설정할 수 있다.
-
후행 처리 서비스 호출
후행 처리 메인에 정의 되어 있는 서비스처리코드(SVC_PROC_CD), 후행처리트랜잭션코드(DEFERRED_TRAN_CD)의 설정 값에 따라 후행 처리 서비스를 호출한다.
-
후행 처리 서비스 후처리 호출
후행 처리 서비스 수행 후에 호출 된다.
-
후행 처리 결과 저장
후행 처리 서비스 수행 이력 저장 또는 에러가 발생하였을 경우 해당 정보를 저장한다.
-
후행 처리 실행정보 삭제
후행 처리 서비스 수행이 완료가 되었으면 다음 처리를 위하여 실행 정보를 삭제 처리한다.
처리 할 데이터가 존재하는 경우에는 7~15 의 작업이 계속 반복 처리가 된다.