디퍼드 DB 인터페이스

개요

송신 시스템의 일련번호가 지정된 테이블(join 포함)에서 주기적으로 데이터를 조회하여 수신 DB에 반영하는 서비스이다. 데이터 처리 단위는 룰에 지정된 fetch 건수를 따른다. 반영해야 할 수신 DB가 여러 개인 경우 전체 수신 DB에 대해 2PC 트랜잭션으로 처리한다. 트랜잭션은 트랜잭션 단위로만 지원한다. 건별 트랜잭션 처리는 지원하지 않는다.

전송 가능 데이터

DB 배치 방식으로 전송 가능한 데이터는 다음과 같다.

항목 설명 비고
데이터 조회 방법 한 번의 쿼리로 조회할 수 있는 데이터 여러 개의 테이블에서 데이터를 조회해야 할 경우 join이 되지 않는 경우는 처리 할 수 없음.
처리 대상 데이터 타입 처리 가능한 데이터 타입 ascii/binary 데이터 모두 가능 임시 파일 저장 모드를 binary로 해야만 처리 가능.
처리 대상 데이터 크기 한 번의 작업으로 처리 가능한 데이터 건수 제한 없음. 건수가 큰 경우 룰에 지정한 처리단위(fetch건수)로 트랜잭션 처리.

DB 접속 방법

송신 DB 접근 방법

JDBC에서 지원하는 방식으로 접근하며 룰에서 JDBC Type을 지정하여 접근 방법을 지정한다. 송신은 데이터 조회 시에만 사용하므로 트랜잭션 관리가 필요없다.

수신 DB 접근 방법

XA 트랜잭션으로 처리할 경우 플랫폼에서 제공하는 Adapter/Datasource를 사용하여 접근한다.

  • JBoss
    • XA Datasource
  • BW
    • RDBMS Connector

(*) XA 트랜잭션이 아닌 경우, ISM에 등록된 정보를 이용하여 송신과 동일한 방식으로 접근한다.

지원하는 데이터베이스

ISM에서 송신 DB로서 지원하는 데이터베이스는 다음과 같다.

  • 오라클
  • DB2
  • MS-SQL
  • Informix
  • Sybase
  • Mysql
  • Teradata

송신 DB에 접근할 때 지원하는 JDBC 타입은 다음과 같다.

JDBC TYPE 설명 오라클 MS-SQL Infomix DB2 Others
1 JDBC-ODBC Bridge O(4로 전환) O(4로 전환) O(4로 전환) O(4로전환) O(4로전환)
2 Native-API Driver specification O(OCI) O(app)
3 Network-Protocol Driver
4 Native-Protocol Driver O(Thin) O O O(net) O

DB-DB 디퍼드 서비스

서비스 정의

송신 서비스 정의

송신 서비스에는 데이터 조회에 사용할 SQL 쿼리를 등록한다.

데이터 조회 쿼리

조회 Query는 다음의 요건을 갖추어야 한다.

  • 조회 대상 컬럼 중 일련번호 필드가 존재해야 한다.
    • 일련번호 필드가 없으면 동일한 일련번호(0)에서 계속 반복한다.
  • 조회 Query에 일련번호를 기준으로 조회하는 조건
    • where seq_no > #STARTSEQ#
  • 조회 결과의 순서가 일련번호 순이 되도록 하는 조건
    • order by seq_no
  • 일자가 쿼리에 포함될 경우 일자를 나타내는 변수는 #DATE# 를 사용한다.
  • 조회 대상에서 제외할 값(처리대상 제외값)을 나타내는 변수는 #EXCLUDEVALUE#를 사용한다.
데이터 조회 쿼리 예
select col1, col2, seq_no, proc_dt
from source_table_#TABLE_NAME#
where seq_no > #STARTSEQ# and proc_dt = #DATE#
order by ser_no
송신 처리 규칙

데이터 조회 대상 테이블이 일련번호 초기화 조건에 의해 변경되어야 할 경우, 테이블명관리 클래스를 지정한다. 데이터 처리 단위를 지정한다. 조회된 데이터 건수만큼 데이터를 처리하며 처리 대상 데이터가 처리 단위보다 많더라도 처리 단위 만큼씩만 처리한다. 데이터 조회 주기를 지정한다. 데이터 조회 주기 단위로 작업이 수행되며 처리 대상 데이터가 처리 단위보다 많은 경우 조회 주기는 1초로 자동 조정된다. 처리 대상 데이터가 처리 단위보다 적은 경우 원래의 조회 주기로 되돌아간다. 조회 주기가 지정되어 있지 않으면 30초를 기본 주기로 사용한다.

수신 서비스 정의

수신 서비스에는 데이터 반영 시 수행할 DB 연산을 지정한다. 데이터 반영 SQL 쿼리는 자동으로 생성되므로 반영 대상 테이블명만 지정한다. 데이터 반영 대상 테이블이 일련번호 초기화 조건에 의해 변경되어야 할 경우, 테이블명 관리 클래스를 지정한다.

데이터 구조 정의

송신 DB 데이터 구조 정의

DB-DB 배치 서비스의 송신 DB 데이터 구조 정의를 따른다.

송신 DB 데이터 구조 정의 시 배치와 다른 점은 Key 필드를 하나만 지정해야 하고, 그 하나의 필드는 일련번호 필드여야 한다는 점이다. 키 필드의 이름은 쿼리에 의해 조회된 결과 컬럼 명과 동일해야 한다.

예를 들어

조회 쿼리)

select key_col1, key_col2, data_col1, data_col2, sequence_col from table1 where sequence_col > #STARTSEQ# order by sequence_col

필드 그룹)

필드번호 필드명 키여부
0 key_col1 No
1 key_col2 No
2 data_col1 No
3 data_col2 No
4 sequence_col Yes

테이블의 key 여부와 관계없이 일련번호로 사용해야 할 컬럼이 다섯번째 컬럼이므로 다섯번째 컬럼을 Key 필드로 지정하여야 한다.

수신 DB 데이터 구조 정의

DB-DB 배치 서비스의 수신 DB 데이터 구조 정의를 따른다.

수신 DB 지원 연산

DB – DB 배치 서비스의 수신 DB 지원 연산을 따른다.

서비스 모델 정의

인터페이스 서비스들을 송신과 수신으로 구성하고 송신에서 수신으로 요청을 전달할 때의 라우팅 규칙, 매핑 규칙 등을 정의한다. 서비스 모델을 통해 송신 서비스에서 수신 서비스(들)에 이르는 서비스 흐름을 정의한다. 서비스 흐름 정의 시 순차 처리인지 병렬 처리인지 여부를 설정한다. 병렬 처리는 비동기 방식의 병렬 처리에서만 설정한다.

송신 서비스

속성 설명
패턴 시스템 인터페이스 패턴 ACK 전송을 설정한다. 병렬 처리인 경우 비동기 전송을 설정한다.

라우팅

속성 설명 허용값
라우팅 결정 방식 수신 서비스를 찾기 위한 방법을 결정한다. All
라우팅 입력 필드 라우팅 결정 방식이 All이 아닐 때 입력 필드를 지정한다.  
라우팅 패턴 값 지정된 입력 필드의 값, 패턴, 또는 연산의 결과 값을 지정한다. 동일한 값이 설정된 수신 서비스로 요청을 전달한다.  
서비스 매핑 송신 서비스와 수신 서비스 사이의 변환 규칙을 정의한다. 매핑 규칙.
오류 매핑 수신 서비스로 부터 오류 응답이 되돌아왔을 때의 변환 규칙을 정의한다.  
수신 서비스 라우팅 패턴값 별로 요청을 전달할 수신 서비스를 지정한다. 수신 서비스

수신 서비스

속성 설명
패턴 시스템 인터페이스 패턴 ACK 전송을 설정한다. 병렬 처리인 경우 비동기 전송을 설정한다.

통합 서비스 정의

통합 서비스는 서비스 모델 결과에 송신 수신 시스템을 지정하며 기타 서비스 수행 시의 규칙을 정의한다. 통합 서비스로서 처리 흐름 외에 설정해야 할 정보는 다음과 같다.

속성 설명 기본값
2PC 여부 2PC 거래가 아니면 송신 인터페이스 프로세스와 수신 인터페이스 프로세스 사이는 트랜잭션이 분리된다.
메시지 검증 여부 입력 메시지를 필드 단위로 분석하고 검증 조건을 적용하여 검증한다. 검증 조건이 없으면 길이와 유형을 검사한다. 아니오
후처리 디퍼드 서비스 1회 수행 완료 후 처리해야 하는 후처리 작업 없음
롤백 유형 전체 – 한 건이라도 실패하면 전체 롤백
실패한 데이터 – 실패한 데이터가 있더라도 계속 진행. (*) 전체의 범위는 1회 조회건수만큼의 데이터를 의미한다.
전체
조회 주기 디퍼드 서비스 수행 주기. 기본 60초 60
최대일련번호 일련번호를 초기화하기 위한 조건으로서의 최대 일련번호 (*)일련번호 초기화 조건이 최대일련번호인 경우에 사용 1000000000
1회 조회건수 디퍼드 서비스 1회 수행 시 조회 최대 건수
(*) 기본 1000건 (*) 조회된 데이터가 1회 조회건수와 같으면 데이터가 더 있는 것으로 간주하여 조회 주기를 1초로 자동 조정
1000
일련번호 초기화 조건 일련번호 초기화 조건 설정 사용안함(무조건 증가)
일마감 필드명 일마감 필드값에 의한 일련번호 초기화 시 설정. 없음
일마감 필드값 일마감 필드값에 의한 일련번호 초기화 시 설정. 없음
마지막값 전송여부 최대일련번호에 의한 초기화 시 마지막 값 수신 전송 여부 (*) 최대 일련번호가 데이터가 아닌 마지막으로서의 의미만 가질 때 전송안함 설정. 전송안함
일련번호 자동생성 송신 시스템의 조회 대상 테이블의 일련번호 자동 생성 여부 (*) 자동 생성 시 일련번호, 일자 정보 용도로 사용할 필드 추가 필요 미생성
일련번호필드 일련번호 필드 없음
일자필드 시스템 일자 필드 – yyyyMMdd 형식 없음
마지막값 조회클래스 최대 일련번호인 경우, 마지막 값이 조회 대상 테이블에 존재하지 않고 별도의 테이블에 있을 때 사용. 없음

DB-파일 디퍼드 서비스

송신 DB에서 조회한 데이터를 수신 시스템에 파일로 저장한다. 처리하는 방법은 DB – DB 디퍼드 서비스와 동일하다. 다만 파일 데이터의 생성 규칙이 반드시 지정되어야 한다. 수신 시스템에 파일 저장 시 동일한 이름으로 파일을 생성하게 되면 기존 파일을 덮어쓰게 되므로 파일을 저장할 때는 항상 새로운 파일로 저장하거나 이어쓰기 형태로 저장할 수 있도록 지정해야 한다. 이어쓰기로 처리할 때는 동일한 파일이 계속 커질 수 있으므로 최소한 일자 또는 시간 정보를 파일명에 포함하도록 하여 중복이나 동일한 파일이 무한하게 커지지 않도록 한다. 수신 파일명은 파일명 관리 클래스를 통해 생성한다. 파일명 관리 클래스를 사용하는 방법은 배치 파일 서비스의 수신 파일명 관리 클래스(ISM:BatchFile#수신 파일명 관리 클래스)를 참조한다.

전송 가능 데이터

DB – DB 디퍼드 서비스와 동일하다.

DB 접속 방법

DB – DB 디퍼드 서비스와 동일하다.

서비스 정의

송신 서비스 정의

DB – DB 디퍼드 서비스의 송신 서비스 정의 방법과 동일하다.

송신 처리 규칙

DB – DB 디퍼드 서비스의 송신 처리 규칙과 동일하다.

수신 서비스 정의

수신 서비스에는 데이터를 저장할 디렉토리, 파일명을 지정한다. 파일명은 가능한 작업 수행 시마다 다른 이름으로 생성되도록 파일명 관리 클래스를 지정한다.

데이터 구조 정의

송신 DB 데이터 구조 정의

DB-DB 디퍼드 서비스의 송신 DB 데이터 구조 정의를 따른다.

수신 파일 데이터 구조 정의

파일 배치 서비스의 수신 파일 데이터 구조 정의를 따른다.

결과 반영 데이터 구조 정의

DB-DB 디퍼드 서비스의 결과 반영 데이터 구조 정의를 따른다.

수신 파일 지원 연산

파일 배치 서비스의 수신 파일 작업 정의를 따른다.

서비스 모델 정의

설정하는 내용은 DB – DB 디퍼드 서비스와 동일하다.

통합 서비스 정의

설정하는 내용은 DB – DB 디퍼드 서비스와 동일하다.