배치 파일 인터페이스

개요

서비스 유형의 정의는 송신 시스템을 기준으로 한다. 파일 배치 서비스는 송신 시스템이 파일 방식으로 데이터를 보낼 때를 의미한다. 파일 배치 서비스는 파일-파일, 파일-DB, 파일-기타(파일기준) 세 가지가 있다.

전송 가능한 데이터

파일로 전송 가능한 내용은 다음과 같다. 아래의 방식들은 커스텀 방식을 제외하고는 ISM이 지원하는 FTP을 사용한다.

카테고리 설명 비고
파일의 수 전송가능한 파일의 수는 1개 이상 여러개의 파일인 경우 와일드카드 문자를 사용
파일 위치 FTP로 접속한 후 이동해야 하는 경우 파일경로는 절대경로를 지원한다.
파일 유형 텍스트 혹은 바이너리 데이터 시스템별로 ascii/binary 여부를 지정한다. 파일 단위로는 사용하지 못한다.
파일 크기 FTP가 전송가능한 파일 크기 FTP가 허용하는 범위 내에서 파일 전송이 가능하다. 파일이 큰 경우 파일 전송 시간보다 더 큰 타임아웃을 설정해 주어야 한다.

FTP 연결 방법

아래와 같은 두 가지 방식을 지원한다.

방식 내용
수동(Passive) FTP 클라이언트가 데이터를 주고 받을 때 서버 역할을 하지 않는 방식
능동(Active) FTP 클라이언트가 데이터를 주고 받을 때 서버 역할을 수행하는 방식.

지원되는 FTP 플랫폼

  • Unix
  • Windows
  • OS/2
  • OS/400
  • MVS
  • VOS
  • VMS

지원되는 인코딩 방식

유니코드 타입만을 지원한다. 다른 한글 인코딩 방식의 경우에는 큐 핸들러를 통한 고정 길이의 데이터 처리가 보장되지 않는다.

  • 이에 대해선 AIX 5.3에서 MS949를 사용한 예가 있다.

중복 파일 전송 처리 옵션

  • 에러 발생 - 같은 이름을 가진 파일이 있으면, 에러를 발생시킨다.
  • 파일 덮어쓰기 - 같은 이름을 가진 파일이 있으면, 파일을 덮어씌운다.
  • 파일 추가하기 - 중복되는 파일이 있는 경우, 해당 파일을 이전 파일에 덧붙인다.
  • 다시 불러오기 - 파일 전송이 에러에 의해 중지되는 경우, 이를 다시 불러와 중단된 지점부터 다시 전송한다.

파일 전송 후 송신 파일 처리 옵션

  • 이동 - 파일 전송 후 송신 파일을 지정한 다른 디렉토리로 이동한다.
  • 삭제 - 파일 전송 후 송신 파일을 삭제한다.

파일 - 파일 배치 서비스

개요

송신 시스템에서 배치 에이전트를 통해 파일 전송을 요청하였을 때 ISM에 정의된 룰 혹은 배치 에이전트에서 전달된 파라미터에 해당 하는 파일을 수신 시스템으로 전송하는 서비스이다.

서비스 요청 방법

배치 에이전트를 통해 배치 서비스를 요청할 때 송신, 수신 파일을 지정하여 호출한다. 송신, 수신 파일 모두 지정하지 않으면 룰에 등록된 전송 규칙을 따른다. 서비스 요청 방법은 배치 에이전트 설치 가이드를 참조한다.

FTP 접속 방법

송신, 수신 모두 룰에 등록된 각 서버에 FTP로 접속한다. 여러 대의 서버가 등록된 경우, 첫번째 서버 연결에 실패하면 기본 5회 연결 재시도 후 다음 서버로 연결한다. 만약 모든 서버 연결에 실패하면 접속 시도를 중지한다.

FTP 연결 방식 - Active/Passive

파일 어플리케이션 단위로 지정한다. 기본값은 Active 방식이다.

파일 전송 모드 - binary/ascii

통합서비스 단위로 지정한다. 런타임시에 아무 값도 설정되어 있지 않으면 ascii모드로 동작한다.

파일 크기 확인

송신 시스템의 전송 대상 파일과 수신 시스템에 실제 전송된 파일의 크기를 비교한다. 파일의 크기를 확인하기 위해서는 해당 FTP 계정에 dir 권한이 있어야 한다. 파일 크기 정보는 FTP 의 list 명령을 수행한 결과를 FTP Parser를 통해 분석하여 추출된다. Dir 권한이 없으면 파일 목록 조회도 할 수 없다. 파일 크기 확인이 안될 경우 ism.xml에 다음의 값을 지정하여야 한다.

<batch>
<file checkSize=”false”/>
</batch>
일자 출력 형식

파일 어플리케이션 단위로 지정한다. 일자 출력 형식은 FTP parser에서 파일 정보를 추출하기 위해 사용한다. FTP parser는 FTP 서버로부터 되돌아 온 문자열들을 줄 단위로 분석하는데, parser가 문자열을 분석할 때의 구분자는 빈 칸(space)이다. 이 빈 칸의 갯수가 일자 출력 형식에 따라 달라지므로 그 형식을 알맞게 설정해야 한다

  • ftp 출력 일자 형식 확인 방법
  • 송수신 시스템으로 직접 FTP 접속.
  • 룰에 지정된 루트 디렉토리로 이동.
  • 해당 디렉토리에서 dir 명령 수행.
$>ftp deai
Connected to deai.
220 deai FTP server (Version 4.2 Thu Jul 12 13:39:06 CDT 2007) ready.
User (deai:(none)): bwadmin
331 Password required for bwadmin.
Password:
230-Last unsuccessful login: Tue Jul 22 10:32:54 KORST 2008 on /dev/pts/57 from 192.7.106.176
230-Last login: Tue Jul 22 13:30:04 KORST 2008 on ftp from ::ffff:192.7.105.13
230 User bwadmin logged in.
ftp> cd ISM1.1
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 265384
-rw-r-----   1 bwadmin  bwadmin     8552836 Jul 02 17:21 BWMonitorPatch.jar
-rw-r--r--   1 bwadmin  bwadmin          35 May 12 2007  Licence.txt
drwxr-xr-x   2 bwadmin  bwadmin         256 Feb 25 19:40 Uninstaller
drwxr-xr-x   6 bwadmin  bwadmin         256 Apr 22 10:02 ba
drwxr-xr-x   6 bwadmin  bwadmin         256 Apr 22 10:02 batch_agent
drwxr-xr-x   4 bwadmin  bwadmin        4096 Jun 17 20:47 bin
drwxr-xr-x   3 bwadmin  bwadmin         256 Jul 02 16:41 bwmonitor
drwxr-xr-x   3 bwadmin  bwadmin         256 Jul 02 16:41 bwmonitor.backip
drwxr-xr-x   5 bwadmin  bwadmin        4096 Jul 15 13:30 data

==> 굵은 글씨로 밑줄 쳐진 부분이 일자 출력 형식. 여기 표현된 형식은 default FTP 일자 출력 형식이다.

ftp의 default 일자 표현 형식은 MMM dd HH:mm이다.
출력 형식 예)

drwxr-xr-x   5 bwadmin  bwadmin        4096 7월 2일 13:30 data

출력 형식 format : M월 d일 HH:mm

Custom Handler 지정

파일 데이터 송수신을 위한 커스텀 핸들러를 지정한다. FTP 이외의 방법을 사용하여 파일을 전송할 경우 커스텀 핸들러를 사용한다. 커스텀 핸들러는 시스템 단위로 지정한다.

<batch>
<file system_id handler=””/>
</batch>

파일 전송 시 파일 전송 규칙

절대 경로 허용 여부

절대경로를 통해 파일 송수신에 사용되는 경로를 설정하는 경우 FTP 계정의 권한에 따라 시스템의 루트 디렉토리를 접근할 수도 있다. 시스템의 루트 디렉토리에 대한 접근은 시스템 보안에 영향을 줄 수 있으므로 절대 경로 사용 여부를 설정하도록 한다.

<batch>
<path absolute=”true”/>
</batch>

True 이면 절대 경로를 허용하고 false이면 절대 경로를 허용하지 않는다. 등록된 송신 또는 수신 파일의 경로가 ‘/snd/input’이고 입력된 송신 파일명이 ‘/root/input.dat’이라고 가정하였을 때 처리 방식은 다음과 같다.

절대 경로 허용 절대 경로 허용하지 않음
/root/input.dat /snd/input/root/input.dat
절대 경로를 허용하면 등록된 경로를 무시하고 입력된 경로를 사용하며, 허용하지 않을 경우는 입력된 경로를 등록된 경로에 덧붙여 파일을 처리한다.
송신 파일 전송 규칙
규칙 항목 설명 처리 여부 처리 방식
전송 완료 후 송신 파일 삭제 전송이 완료된 후 송신 시스템의 파일을 삭제 허용 전송이 성공한 후 송신 시스템의 파일을 삭제한다.
요청 시의 송신 파일이 와일드카드를 포함하고 있으면 와일드카드에 해당하는 모든 파일을 삭제한다.
수신 파일 전송 규칙
규칙 항목 설명 처리 여부 처리 방식
송신 파일 명으로 전송 송신 파일명을 수신 시스템의 파일명으로 전송한다. 허용 수신 파일에 생성되는 파일명은 송신 파일명과 동일하지만 송신 파일의 디렉토리 정보는 사용하지 않는다. 송신 파일명으로 사용하게 되면 요청 시 입력한 파일명이나 룰에 등록된 수신 파일명을 사용하지 않는다.
수신 파일 명 지정하여 전송 요청 시 수신 파일명을 지정하여 전송한다. 허용 요청에서 지정한 수신 파일명을 사용하여 전송한다.
요청에서 지정한 수신 디렉토리 정보를 사용한다.
수신 디렉토리가 지정되지 않으면 룰에 등록된 수신 디렉토리를 사용한다.
수신 파일 덮어쓰기 수신 파일이 이미 존재하면 기존 파일에 덮어쓴다. 허용
수신 파일 추가하기 수신 파일이 이미 존재하면 기존 파일에 추가한다. 허용
수신 파일 권한(mask) 지정 수신 파일의 권한을 지정한다. 권한 정보는 숫자로 지정한다. 예) rw-rw-rw : 666 허용 수신 파일을 전송 후 권한 정보를 지정한 값으로 변경한다.
송신 파일 지정 방식

송신 파일을 지정하는 규칙은 다음과 같다. 송신 파일 지정 규칙은 파일-DB 배치에서도 동일하게 적용된다.
아래 지정 규칙을 설명하기 위해 편의상 디렉토리와 파일명은 아래와 같이 고정한다.

  • 파일 위치 - /snd/biz/
  • 입력 파일명 – in.dat
  • 룰 등록 파일명 – in_r.txt
입력 허용 여부 처리 방식
파일명 디렉토리 파일명
/snd/biz/in.dat /snd in_r.txt 허용 입력 파일을 기준으로 처리 FTP 접속하여 입력된 파일명으로 파일을 가져온다. get /snd/biz/in.dat
snd/biz/in.dat /snd in_r.txt 불가 동일한 디렉토리가 반복되지만 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도. 해당 디렉토리가 존재하지 않으므로 처리 실패 get /snd/snd/biz/in.dat
biz/in.dat /snd inpu_r.txt 허용 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도. get /snd/biz/in.dat
in.dat /snd in_r.txt 불가 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도.. 파일이 실재하지 않으므로 처리 실패 get /snd/in.dat
/snd/biz/in.dat /snd/biz in_r.txt 허용 절대 경로 허용 시 get /snd/biz/in.dat 절대 경로 미허용 시 get /snd/biz/snd/biz/in.dat
미입력 /snd/biz in_r.txt 불가 절대 경로와 룰에 등록된 파일명을 조합하여 처리 시도 파일이 실재하지 않으므로 처리 실패 get /snd/biz/in_r.txt
*.dat /snd/biz in_r.txt 허용 절대 경로와 입력 파일을 조합하여 처리 시도 get /snd/biz/*.dat
미입력 /snd/biz *.dat 허용 절대 경로와 룰에 등록된 파일명을 조합하여 처리 시도 get /snd/biz/*.dat
수신 파일 지정 방식

아래 지정 방식은 송신파일명을 사용하지 않는 전송 규칙에만 적용된다.
아래 지정 규칙을 설명하기 위해 편의상 디렉토리와 파일명은 아래와 같이 고정한다.

  • 파일 위치 - /rcv/biz/
  • 입력 파일명 – in.dat
  • 룰 등록 파일명 – in_r.txt
입력 허용 여부 처리 방식
파일명 디렉토리 파일명
/rcv/biz/in.dat /rcv in_r.txt 허용 입력 파일을 기준으로 처리 FTP 접속하여 입력된 파일명으로 파일을 전송한다. put /rcv/biz/in.dat
rcv/biz/in.dat / rcv in_r.txt 불가 동일한 디렉토리가 반복되지만 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도. 해당 디렉토리가 존재하지 않으므로 처리 실패 put /rcv/rcv/biz/in.dat
biz/in.dat / rcv inpu_r.txt 허용 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도. put /rcv/biz/in.dat
in.dat / rcv in_r.txt 허용 입력 파일에 절대 경로가 없으므로 룰에 등록된 경로와 붙여서 처리시도. put /rcv/in.datt
/rcv/biz/in.dat /rcv/biz in_r.txt 허용 절대 경로 허용시 put /rcv/biz/in.dat 절대 경로 미허용시 put /rcv/biz/rcv/biz/in.dat
미입력 /rcv/biz in_r.txt 허용 절대 경로와 룰에 등록된 파일명을 조합하여 처리 시도 put /rcv/biz/in_r.txt
*.dat /rcv/biz in_r.txt 불가 입력 파일이 와일드카드인 경우는 송신 파일명 사용만 가능하다.
미입력 /rcv/biz *.dat 불가 입력 파일이 와일드카드인 경우는 송신 파일명 사용만 가능하다.

서비스 정의

송신 파일 서비스 정의

송신 파일을 가져올 디렉토리를 반드시 지정해야 한다. 설정할 값이 없을 경우에는 현재 디렉토리(./)를 지정한다. 송신 파일명을 지정한다. 송신 파일명을 지정하지 않으면 배치 서비스 요청 시 배치 에이전트의 파라메터로 송신 파일명을 입력해야 한다. 전송이 완료된 후 송신 파일을 삭제할 것인지 여부를 지정한다.

수신 파일 서비스 정의

전송 대상 파일을 저장할 디렉토리를 반드시 지정한다. 설정할 값이 없을 경우에는 현재 디렉토리(./)를 지정한다. 수신 파일명을 지정한다. 수신 파일명이 지정되어 있지 않은 경우에는 배치 서비스 요청 시 배치 에이전트의 파라메터로 수신 파일명을 지정하거나 송신파일명 사용여부 = 사용 으로 지정해야 한다. 송신 파일명 사용 여부를 지정한다. 송신 파일명 사용으로 지정되면 서비스 요청 시 수신 파일명을 지정해도 송신 파일명으로 전송한다. 수신 파일이 수신 지정 디렉토리에 존재할 때의 처리 방법을 지정한다.

처리 유형은 다음의 3 가지이다.

  • 존재하면 오류 발생.
  • 존재하면 덮어쓰기
  • 추가하기
  • 이어쓰기

파일 데이터 구조 정의

입력 파일 데이터에 대한 변환이 필요한 경우 데이터 파싱을 위한 정보를 등록한다. 입력 파일 데이터 구조는 여러 개의 필드 그룹을 가질 수 없다. 입력 파일 데이터의 파싱이 필요한 경우는 아래 정보들을 지정한다.

입력 데이터 유형 필드 구분자 레코드 구분자
고정 길이 데이터 X O
구분자 데이터 O O

규칙 설명의 편의상 구분자는 다음과 같이 고정한다.

  • 필드 구분자 - ‘|’
  • 레코드 구분자 - ‘\n’
필드 구분자 레코드 구분자 필드 길이 정의 허용여부 처리 방식
미입력 미입력 0과 고정 길이 혼재 불가 필드 구분자가 없음으로 길이에 의해 데이터 파싱을 시도하지만 필드 길이값이 정확하지 않음으로 인해 처리 실패
미입력 미입력 고정길이 허용 필드 길이를 기준으로 데이터 파싱.
레코드 구분자가 없으므로 데이터 갯수 * 필드 그룹 길이(고정길이) 가 파일의 실제 크기가 된다.
미입력 \n 고정길이 허용 필드길이를 기준으로 데이터 파싱
레코드 구분자가 있으므로 데이터갯수 * (필드그룹 길이 + 레코드구분자) 가 파일의 실제 크기가 된다.
| 미입력 고정길이 허용 필드 구분자를 기준으로 데이터 파싱
레코드 구분자가 없으므로 필드 구분자 갯수 / 필드 그룹 내 필드 갯수 가 실제 처리 대상 데이터 건수가 된다.
| \n 고정길이 허용 필드 구분자를 기준으로 데이터 파싱
레코드 구분자가 있으므로 레코드 구분자 갯수 가 실제 처리 대상 데이터 건수가 된다.
| \n 0과 고정 길이 혼재 허용 필드 구분자를 기준으로 데이터 파싱
레코드 구분자가 있으므로 레코드 구분자 갯수 가 실제 처리 대상 데이터 건수가 된다.
수신 파일명 관리 클래스

ISM은 파일을 전송할 때 사용되는 수신 파일명을 특정한 규칙에 의해 성생할 수 있다. 파일 서비스를 정의할 때 설정하는 파일명 관리 클래스는 파일명을 배치 서비스 수행 시에 동적으로 파일명을 생성하기 위해 사용된다. 파일명 관리 클래스는 TargetFileNameGenerator를 상속받아서 구현한다. 파일명 관리 클래스는 파일명에 포함된 파라미터들을 사용하여 동적으로 파일명을 생성하도록 구현해야 한다. 파일명에 파라미터로 사용하고자 하는 값은 값의 앞뒤에 ‘#’을 붙여서 파라미터로 선언한다. 다음은 DATE와 COUNT를 파라미터로 사용하여 파일을 생성하도록 하는 예시이다.

  • 예: TGT_FILE.#DATE#.#COUNT#

파일명 관리 클래스는 각 파라미터에 대해 적절한 값을 리턴하도록 구현한다. 파일명 관리 클래스의 convert() 메서드는 각 파라미터 단위로 호출되며 예에서는 파라미터가 2개 이므로 convert()메서드가 두 번 호출된다.

convert(“DATE”);
convert(“COUNT”)

파일명 관리 클래스는 아래 형태로 구현한다.

import com.ism.common.file.TargetFilenameGenerator;

public class FileNameGenerator extends TargetFilenameGenerator {

	public String convert(String exp) {
                      return “XXX”;
	}
}

구현된 클래스는 실행 프로세스들이 참조할 수 있도록 클래스 경로에 포함시키거나 ism_custom.jar에 포함시켜야 한다.

서비스 모델 정의

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

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

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

기타

배치 서비스는 병렬 처리를 지원하지 않는다.

통합 서비스 정의

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

  • 2PC 여부
    • 2PC 거래가 아니면 송신 인터페이스 프로세스와 수신 인터페이스 프로세스 사이의 트랜잭션이 분리된다.
  • 메시지 검증 여부
    • 입력 메시지를 필드 단위로 분석하고 검증 조건을 적용하여 검증한다. 검증 조건이 없으면 길이와 유형을 검사한다.
  • 선처리
    • 파일 전송 전에 수행해야 하는 작업
  • 후처리
    • 파일 전송 후에 수행해야 하는 작업
  • 1회 조회건수
    • 파일 – 파일 변환없는 경우는 0
  • 전송방식
    • Agent 직접
      • 변환없는 파일 전송 시 Agent 직접을 설정한다.
    • 직접 전송
      • 변환이 없으나 방화벽 구간등에 보안 관리 이유로 Agent에서 접근이 어려울 때는 ISM 직접 전송을 설정한다.
    • 간접 전송
  • 롤백유형
    • 전체 – 한 건이라도 실패하면 전체 롤백
      • 전체의 범위는 1회 조회건수만큼의 데이터를 의미한다.
    • 실패한 데이터 – 실패한 데이터가 있더라도 계속 진행.
  • 대기 타임아웃
    • 송신 인터페이스 프로세스에서 데이터 조회 결과 파일을 생성할 때까지 배치 매니저가 대기하는 시간.
  • 전송파일 유형
    • Binary
    • Ascii
      • ascii로 설정하면 carriage return(\r)이 운영체제에 따라 삭제되거나 보존된다.
  • 파일 구분자 클래스
    • 파일 – DB 서비스에서 파일을 1회 조회건수 단위로 분할할 때 사용할 커스텀 클래스.
      • 변환없는 파일 – 파일 서비스에서는 사용하지 않는다.
      • 기본 분할 클래스로 처리하지 못할 때 지정한다.

서비스 모델에 정의된 송수신 인터페이스 서비스를 수행할 대상 시스템을 지정하고 해당 시스템들과의 인터페이스 시 사용할 타임아웃 값을 정의한다. 타임아웃 값은 파일 인터페이스에서만 사용된다.

파일 – DB 배치 서비스

파일에서 DB로 데이터를 전송하는 경우는 DB에 데이터를 넣을 때의 트랜잭션 처리를 위해 트랜잭션 단위를 지정해야 한다. 트랜잭션 단위는 데이터 조회 단위 건수(fetch count)와 동일하다. 파일 데이터의 크기(건수)가 트랜잭션 단위보다 클 경우, 파일 데이터는 트랜잭션 단위로 분할한다.

File Separator

파일을 가져오는 시점에서는 DB에 입력할 파일 데이터의 크기가 트랜잭션 단위보다 큰 지 혹은 작은 지 알 수 없으므로 파일을 가져온 후에 파일 분할 작업을 수행한다. 파일 분할 작업 수행 시 룰에 등록된 파일의 레코드 크기(Row)에 따라 파일을 분할한다.

파일 분할 방법
필드 구분자 레코드 구분자 지원 여부 비고
사용 사용 지원 필드 구분자의 길이 제한 없음. 레코드 구분자의 길이 제한 없음.
사용 없음 지원
없음(길이) 사용 지원
없음(길이) 없음 지원 파일에 레코드 구분자가 없으므로 파일의 내용이 에디터로 볼 때 한 줄로 기록된 파일.

룰에 등록된 데이터 구조와 실제 파일의 데이터 구조가 다른 경우는 커스텀 분할 클래스를 지정하여 파일을 분할한다. 커스텀 분할 클래스는 통합 서비스 단위로 지정한다.

수신 DB 지원 연산

  • insert
  • update
  • upsert1(update and not exist, then insert)
  • upsert2(insert and duplicated, then update)

트랜잭션은 트랜잭션 단위로만 지원한다. 건별 트랜잭션 처리는 지원하지 않는다.

수신 DB 쿼리 생성

수신 DB에 데이터를 입력하기 위한 SQL 쿼리는 ISM에서 생성한다. ISM에서 쿼리 생성을 위해 사용하는 입력 데이터는 다음의 세 가지이다.

  • 테이블 명
  • 데이터 구조
  • 연산 유형

ISM에서 생성하는 또는 지원하는 SQL 쿼리의 형식은 다음과 같다.

  • 사용자 지정 쿼리
  • SQL Function
    • 매핑의 기본값으로 지정하여 처리
    • SQL function 내에서 입력 데이터가 치환되어야 하는 경우는 변환함수를 사용하여야 한다.
    • 필드 그룹 정의시 해당 필드가 SQL Function임을 지정하여야 한다.
  • NULL 데이터
    • 입력 데이터가 null인 경우 null 데이터 입력
    • 입력은 null인데, null 데이터가 허용되지 않는 경우는 변환함수를 사용하여 기본 데이터를 생성해야 한다.
  • 테이블명 동적 변경
    • 테이블명이 동적으로 변경되는 경우는 커스텀 테이블명 관리 클래스를 이용하여 테이블명을 생성해 주어야 한다.
    • ISM에서는 생성된 커스텀 클래스를 통해 생성된 테이블명을 SQL문에서 치환한다.
    • 테이블명에는 치환할 테이블명(#TABLE_NAME#)을 지정해야 한다.

지원 데이터 타입

  • Number
  • Date.
  • Timestamp
  • Char
  • Varchar
  • Long
  • Float
  • Double
  • CLOB
  • BLOB

Date 타입 처리 규칙

아래의 경우에 date 타입 처리를 위한 일자 형식이 지정되어야 한다. 포맷에서 지정하는 형식은 자바에서 지원하는 일자 형식이다. 아래 설명에서 일자 형식은 'yyyyMMdd'를 사용한다.

송신 데이터 수신 데이터 처리 방식
유형 포맷 유형 포맷
Character(Char, Varchar 포함) Date yyyyMMdd 조회결과 데이터가 yyyyMMdd 형식에 맞다고 가정하고 Date로 변환하여 처리한다.
Date yyyyMMdd Date yyyyMMdd 조회한 데이터의 결과는 String으로 처리되며 결과 String은 yyyyMMdd 형식을 갖추어야 한다. 수신에 입력할 때는 yyyyMMdd 형식으로 Date 타입으로 변환한다.
Date yyyMMdd Chracter 조회한 데이터의 결과는 String으로 처리되며 결과 String은 yyyyMMdd 형식을 갖추어야 한다.

서비스 정의

송신 서비스 정의

파일-파일 배치 서비스에서 사용하는 송신 서비스와 동일하게 사용한다.

수신 서비스 정의

수신 서비스에는 데이터 반영 시 수행할 DB 연산을 지정한다. 데이터 반영 SQL 쿼리는 자동으로 생성되므로 반영 대상 테이블명만 지정한다. 데이터 반영 대상 테이블이 작업 수행 시점에 동적으로 변경되어야 할 경우, 테이블명관리 클래스를 지정한다. ISM에 자동으로 생성하는 SQL 쿼리로 원하는 반영 작업을 수행할 수 없을 경우 Custom Query Handler를 사용한다.

데이터 구조 정의

송신 데이터 구조 정의

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

수신 DB 데이터 구조 정의

수신 DB 전송 데이터 구조는 여러 개의 필드 그룹을 가질 수 없다. 수신 DB 전송 데이터는 무조건 구분자 길이 데이터이다. 필드 구분자, 레코드 구분자 모두 입력할 필요 없다. date 타입에 대한 구조 정의는 파일 -DB 배치의 Date타입 처리 규칙을 따른다. 수신 SQL 쿼리 생성 시 SQL Function 사용이 필요한 경우 필드 그룹에 SQL Function 여부를 지정한다. update 쿼리 생성이 필요한 경우 필드 그룹 정의 시 key 필드를 지정해야 한다.

서비스 모델 정의

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

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

통합 서비스 정의

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

  • 2PC 여부
    • 2PC 거래가 아니면 송신 인터페이스 프로세스와 수신 인터페이스 프로세스 사이는 트랜잭션이 분리된다.
  • 메시지 검증 여부
    • 입력 메시지를 필드 단위로 분석하고 검증 조건을 적용하여 검증한다. 검증 조건이 없으면 길이와 유형을 검사한다.
  • 선처리
    • 파일 전송 전에 수행해야 하는 작업
  • 후처리
    • 파일 전송 후에 수행해야 하는 작업
  • 1회 조회건수
    • 기본값은 0.
    • 지정하면 10000건 단위로 처리
  • 전송방식
    • 간접 전송
      • 간접 전송만 가능
  • 롤백유형
    • 전체 – 한 건이라도 실패하면 전체 롤백
      • 전체의 범위는 1회 조회건수만큼의 데이터를 의미한다.
    • 실패한 데이터 – 실패한 데이터가 있더라도 계속 진행.
  • 대기 타임아웃
    • 송신 인터페이스 프로세스에서 데이터 조회 결과 파일을 생성할 때까지 배치 매니저가 대기하는 시간.
  • 대기 타임아웃
    • 송신 인터페이스 프로세스에서 데이터 조회 결과 파일을 생성할 때까지 배치 매니저가 대기하는 시간.
  • 전송파일 유형
    • Binary
    • Ascii
      • ascii로 설정하면 carriage return(\r)이 운영체제에 따라 삭제되거나 보존된다.
      • 송신 서버의 OS와 ISM 서버의 OS가 각각 윈도우/유닉스로 다를 때는 레코드 구분자에 이를 반영하여야 한다.
  • 파일 구분자 클래스
    • 파일 – DB 서비스에서 파일을 1회 조회건수 단위로 분할할 때 사용할 커스텀 클래스.
      • 변환없는 파일 – 파일 서비스에서는 사용하지 않는다.
      • 기본 분할 클래스로 처리하지 못할 때 지정한다.

서비스 모델에 정의된 송수신 인터페이스 서비스를 수행할 대상 시스템을 지정하고 해당 시스템들과의 인터페이스 시 사용할 타임아웃 값을 정의한다. 타임아웃 값은 파일 인터페이스에서만 사용된다.