환경설정
본 장에서는 AnyLink TCP 어댑터의 환경설정 방법과 아웃바운드 룰을 설정하는 방법에 대해서 설명한다.
1. 어댑터 설정
TCP 어댑터는 WebAdmin을 이용하여 설정한다.
AnyLink WebAdmin의 접속 및 사용법에 관한 자세한 내용은 AnyLink WebAdmin 안내서를 참고한다. |
웹 브라우저를 이용해 AnyLink WebAdmin에 로그인한 후 초기 화면에서 [구성관리] > [어댑터]를 선택하면 다음과 같이 어댑터 목록이 나타난다.
어댑터 목록 화면의 [Add] 버튼을 클릭하면 어댑터를 추가할 수 있다. 어댑터 등록 화면에서 생성할 TCP 어댑터에 대한 정보를 입력하고 [저장] 버튼을 클릭한다. 정상적으로 등록되었을 경우 “저장되었습니다.”라는 결과 메시지가 나타난다.
-
기본정보 (* : 필수 입력항목)
항목 설명 어댑터 아이디 *
생성할 리소스 어댑터의 아이디를 입력한다.
3~30자리 영문자 또는 숫자 조합, 특수문자(-, _) 입력이 가능하다. 해당 값은 동일 업무시스템에서 유일한 값이다.
어댑터 이름 *
생성할 리소스 어댑터의 이름을 입력한다.
3~30자리 영문자, 한글 또는 숫자 조합, 특수문자(-, _) 입력이 가능하다.
어댑터 종류 *
어댑터의 종류를 선택한다. 리스트에서 TCP를 선택한다.
-
TCP
-
HTTP
-
Tmax
-
WebService
-
DB
-
FILE
-
FTP
-
MQ
-
SAP
-
UDP
-
SMTP
-
WEBDAV
-
Tuxedo
-
JMS
-
ebXML
-
ISO8583
-
ProObject
설명
생성하는 어댑터에 대한 설명을 입력한다. 입력하지 않아도 무관하다.
업무시스템 이름 *
어댑터가 포함될 업무시스템을 리스트에서 선택한다.
배포 사유
배포 사유를 작성한다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있다.
-
-
[상세설정 ] 탭
항목 설명 아웃바운드 스레드 풀 아이디
아웃바운드 시에 사용될 스레드 풀 아이디를 설정한다. 엔진에서 수행된 스레드 풀과 다른 아이디가 지정될 경우 아웃바운드 시에 해당 스레드 풀로 스레드를 변경한다.
어댑터별로 스레드 풀을 분리하여 서로 다른 어댑터 간에 영향이 없게 하려는 경우에 설정한다.
-
[접속 제어 ] 탭
항목 설명 IP Control
엔드포인트에 연결을 시도하는 Client를 제어한다. 어댑터에 지정한 설정은 하위 엔드포인트 그룹, 엔드포인트에서 사용할 수 있다.
-
OFF : 기본값으로, 모든 Client의 연결을 허용한다.
-
Allow : 지정한 IP Rule에 해당하는 Client의 연결만을 허용한다.
-
Deny : 지정한 IP Rule에 해당하는 Client의 연결을 차단한다.
어댑터 등록 화면 - [접속 제어] -
2. 엔드포인트 설정
WebAdmin의 [구성관리] > [어댑터] 메뉴를 선택하면 왼쪽에 등록된 어댑터 트리가 조회된다. 트리에서 엔드포인트를 추가할 어댑터를 클릭하면 오른쪽에 어댑터 상세정보를 조회할 수 있다.
어댑터 상세정보 화면의 [엔드포인트 목록] 탭을 클릭하면 해당 어댑터 하위에 있는 엔드포인트 목록이 조회된다.
[엔드포인트 목록] 탭 아래 [Add] 버튼을 클릭하면 엔드포인트 등록 화면이 나타난다. 각 항목의 정보를 입력하고 [저장] 버튼을 클릭하여 엔드포인트를 등록한다. 엔드포인트가 등록되면 WebAdmin의 왼쪽 트리에서 등록된 어댑터와 엔드포인트를 확인할 수 있다.
엔드포인트 등록 화면은 기본 정보와 [연결정보], [상세설정], [메시지/장애처리], [메시지 변경 송신], [SSL], [TCP 소켓 옵션], [접속 제어] 탭으로 구성된다. [연결정보] 탭의 '연결방식' 항목에 따라서 각 탭의 구성이 달라진다. 각 탭의 자세한 설명은 해당 절의 설명을 참고한다.
-
기본 정보 (* : 필수 입력항목)
항목 설명 엔드포인트 아이디 *
엔드포인트 아이디를 입력한다.
3~30자리 영문자 또는 숫자 조합, 특수문자(-, _) 입력이 가능하다. 해당 값은 동일 어댑터 또는 엔드포인트 그룹에서 유일한 값이다.
엔드포인트 이름 *
엔드포인트 이름을 입력한다.
3~30자리 영문자, 한글 또는 숫자 조합, 특수문자(-, _) 입력이 가능하다.
엔드포인트 그룹
엔드포인트의 그룹 이름이다.
엔드포인트 상태
생성할 때 상태 초기값을 선택한다.
-
Running : Running 상태이면 엔드포인트가 시작된 상태가 된다.
-
Stopped : Stopped 상태이면 엔드포인트가 중지된 상태가 된다.
부팅 초기값
부팅할 때 상태 초기값을 선택한다.
-
Running : 부팅할 때 엔드포인트가 시작(Running)된 상태가 된다.
-
Stopped : 부팅할 때 엔드포인트가 중지(Stopped)된 상태가 된다.
통신 방향
엔드포인트의 통신 방향을 설정한다.
-
Inbound : 외부로부터 메시지를 받기위한 엔드포인트이다.
-
Outbound : 외부로 메시지를 전달하기 위한 엔드포인트이다.
-
Both : 외부와 메시지를 주고받기 위한 엔드포인트이다.
설명
생성하는 엔드포인트에 대한 설명을 입력한다. 입력하지 않아도 무관하다.
배포 사유
배포 사유를 작성한다. 작성한 사유는 [배포관리] > [배포이력] 메뉴에서 조회하면 확인할 수 있다.
-
2.1. 서버 모드 엔드포인트
다음은 엔드포인트 등록 화면의 각 탭 화면에 대한 설명이다.
'연결방식' 항목을 'Server’로 선택한 경우 [상세설정], [메시지/장애처리], [메시지 변경 송신], [SSL], [TCP 소켓 옵션], [접속 제어] 탭으로 구성된다.
-
[연결정보] 탭 (* : 필수 입력항목)
엔드포인트 등록 화면 - [연결정보] - 서버 모드-
연결방식
항목 설명 연결 방식
엔드포인트가 동작하는 연결 방식을 설정한다.
-
Server : 엔드포인트가 서버 모드로 동작한다.
-
Client : 엔드포인트가 클라이언트 모드로 동작한다.
기본 인코딩
엔드포인트에서 사용할 기본 인코딩을 설정한다.
메시지에 설정된 인코딩이 우선 적용되고 메시지에 설정되지 않았을 경우에 적용된다. 메시지와 엔드포인트 모두 설정이 되지 않은 경우에는 시스템 기본 인코딩으로 적용된다.
Java 표준 Charset과 EBCDIC 타입을 설정할 수 있다.
서버연결유지
-
No : 연결 중 오류가 발생하면 Client와의 연결을 끊는다. (기본값)
-
Yes : 거래를 찾지 못하였을 경우에 연결을 유지하도록 한다.
Agent 사용 여부
Agent 사용 여부를 선택한다.
-
사용 : AnyLink 리모트 에이전트가 설치된 서버의 엔드포인트로 지정한다. Agent를 '사용’으로 설정하였을 경우 리모트 에이전트가 다운되어 있을 때는 수정이 불가하다. 리모트 에이전트 설정은 AnyLink WebAdmin 안내서의 리모트 에이전트를 참고한다.
-
미사용 : 로컬 서버의 엔드포인트로 지정한다.
Agent 아이디
엔드포인트의 'Agent 사용여부' 항목이 '사용’인 경우에 연결할 리모트 에이전트 아이디를 설정한다.
-
-
TCP EP 연결정보
TCP 오류시 연결유지 설정이 yes인 경우의 발생 조건에 ADT_00001 에러코드를 추가하였다.
-
TCP EP > 연결정보 > 오류시 연결유지: yes 를 설정한 경우 ADT_00001 에러 발생시 세션을 유지한다.
[ADT_00001] biztx not found in endpointConnection
엔드포인트 등록 화면 - [연결정보] - 연결방식 - 오류시 연결 유지 -
-
주소
항목 설명 IP/호스트 (*)
노드의 IP/호스트를 설정한다.
포트 (*)
Listen할 포트 번호를 설정한다.
-
타임아웃/연결수
항목 설명 Idle 타임아웃 (ms)
Idle 타임아웃을 설정한다. 커넥션이 아무런 동작을 하고 있지 않을 때 해당 설정된 값이 지나면 타임아웃이 발생한다.
기본값은 0이고 0으로 설정할 경우에는 타임아웃이 발생하지 않는다.
(단위: ms)
동기/비동기 여부
동기/비동기 여부를 설정한다.
-
동기 : 메시지를 송신하면 응답이 들어오기 전까지 사용할 수 없게 하고, 메시지를 수신하면 응답을 줄때까지 사용할 수 없도록 한다.
-
비동기 : 메시지 송수신 여부와 상관없이 항상 사용 가능하도록 한다.
아웃바운드 엔드포인트 설정
엔드포인트가 'Inbound'이면서 '비동기'인 경우에 아웃바운드 엔드포인트를 설정할 수 있다.
인바운드 엔드포인트로 응답을 송신하려 할 경우 지정한 아웃바운드 엔드포인트로 응답을 보낸다. 지정할 아웃바운드 엔드포인트는 인바운드 엔드포인트와 동일한 어댑터 내에 있어야 한다.
최대 연결수 *
최대 연결 수를 설정한다.
서버 모드의 경우 연결이 최대 연결 수를 넘어가면 신규 연결을 받지 않는다.
새 연결 허용
엔트포인트에 최대 연결수만큼 연결되어 있을 때 신규 연결이 요청되면 연결 중 가장 오래된 연결을 끊고 신규 연결을 허용한다.
-
-
Agent 연결정보
항목 설명 재시도 간격
엔드포인트의 'Agent 사용여부' 항목이 '사용’인 경우에 재시도 간격을 설정할 수 있다. 재시도 간격에 따라 리모트 에이전트가 상대 서버에 연결한다.
-
TCP 연결 핸들러
항목 설명 연결 플로우 사용 유무
커넥션이 연결되었을 때 플로우 호출 여부를 설정한다.
연결 플로우 아이디
커넥션이 연결되었을 때 호출할 플로우 아이디를 설정한다.
연결 플로우는 로그인 전문같이 커넥션이 연결되면 주고받아야 하는 전문이 있을 경우 사용한다.
-
형식
거래 SYSID:FlowID:Start event ID
-
예시
com.tmax.al7.flow.test:al7_flow_Id:flow_start_event_Id
연결 종료 플로우 사용 유무
커넥션의 연결이 종료되었을 경우 플로우 호출 여부를 설정한다.
연결 종료 플로우 아이디
커넥션의 연결이 종료되었을 경우 호출할 플로우 아이디를 설정한다.
연결 종료 플로우는 로그아웃같이 커넥션을 종료할 때 주고받아야 하는 전문이 있을 경우 사용한다.
-
형식
거래 SYSID:FlowID:Start event ID
-
예시
com.tmax.al7.flow.test:al7_flow_Id:flow_start_event_Id
룰 타임아웃시 연결유지
비동기 거래에서 아웃바운드 룰 타임아웃이 발생하는 경우 연결을 끊지 않고 유지하고 싶을 때 설정한다.
'통신 방향' 항목이 'Outbound’나 'Both’이며, 클라이언트 모드인 경우 '연결 관리' 항목 'Yes’이거나 '연결 유지' 항목이 'Yes’일 때 설정 가능하다.
-
-
TCP 타임아웃
-
헬스체크 메시지
헬스체크 메시지는 메시지/장애처리의 설정만 적용된다. 메시지 변경 옵션은 적용되지 않는다.
항목 설명 별도 메시지 길이지정
수신시 헬스체크 메시지에만 적용되는 통신헤더를 설정하고 싶을 경우 설정한다.
'헤더 사이즈 포함 유무', '오프셋', '길이'만 설정 가능하며 '헤더 길이'는 메시지/장애처리의 설정값을 사용한다. 그 외 메시지/장애처리의 통신헤더 설정값은 무시한다.
-
헤더 사이즈 포함 유무 : 헤더 길이가 헤더에 포함될 때 설정한다.
-
오프셋 위치 : 헤더의 시작 위치를 설정한다.
-
오프셋 길이 : 헤더의 시작 위치로부터의 길이를 설정한다.
헬스체크 식별오프셋
헬스체크 메시지인지를 검증하는 값에 대해 설정한다.
-
오프셋 위치 : 식별값이 있는 곳의 시작 위치를 설정한다.
-
오프셋 길이 : 식별값이 있는 곳의 시작 위치로부터의 길이를 설정한다.
-
식별값 : 식별값을 설정한다. '?' expression을 사용하여 메시지의 특정 부분만을 식별값으로 설정할 수 있다.
예) 식별값 설정 : AA??CC 수신 메시지 : AABBCC 일 경우 헬스체크 메시지로 판정
-
-
헬스체크 응답
항목 설명 응답 메시지
헬스체크 메시지가 일치할 때 응답으로 보낼 메시지를 설정한다.
문자 형식으로 입력하며, 제공되는 함수를 함께 사용할 수 있다. 메시지 설정에 대한 자세한 내용은 TCP 타임아웃 영역의 '요청 메시지' 항목을 참고한다.
응답 메시지를 선택하는 경우 추가적으로 응답 엔드포인트를 설정할 수 있다. 미선택하는 경우 요청받은 엔드포인트로 응답을 보낸다.
-
응답 엔드포인트 : 해당 엔드포인트 외에 다른 엔드포인트로 응답을 보내고자 할 때 설정한다.
-
아웃바운드 엔드포인트 설정 : 응답으로 보낼 엔드포인트르 설정한다. 엔드포인트는 해당 엔드포인트와 동일한 어댑터 내의 엔드포인트만을 설정할 수 있다.
거래그룹/거래
헬스체크 메시지가 일치할 때 호출할 거래그룹/거래를 선택한다.
요청 메시지 변환
헬스체크 메시지가 일치할 때 수신한 헬스체크 메시지의 일부분을 변환하여 응답한다.
-
오프셋 위치 : 변환할 시작 위치를 설정한다.
-
오프셋 길이 : 변환할 시작 위치로 부터의 길이를 설정한다.
-
변환값 : 변환값을 설정한다. 변환값 설정에 대한 자세한 설명은 TCP 타임아웃 영역의 '요청 메시지' 항목을 참고한다.
-
-
헬스체크 수신모드
항목 설명 헬스체크 식별오프셋
헬스체크 메시지인지를 검증하는 값에 대해 설정한다.
-
오프셋 위치 : 식별값이 있는 곳의 시작 위치를 설정한다.
-
오프셋 길이 : 식별값이 있는 곳의 시작 위치로부터의 길이를 설정한다.
-
식별값 : 식별값을 설정한다. '?' expression을 사용하여 메시지의 특정 부분만을 식별값으로 설정할 수 있다.
-
예
식별값 설정 : AA??CC 수신 메시지 : AABBCC일 경우 헬스체크 메시지로 판정
-
-
응답 Ack 사용
클러스터 환경에서 요청에 대한 응답이 다른 서버로 들어올 경우 요청을 보낸 서버로 응답을 전달하기 전 응답을 보낸 서버에 ACK을 송신할 때 사용한다. '통신 방향' 항목이 'Inbound' 또는 'Both’일 때 사용할 수 있다.
항목 설명 응답 메시지
수신한 메시지에 대한 응답 메시지를 정의한다. 응답 메시지를 송신하고 설정한 거래를 시작한다.
-
-
[상세설정] 탭
엔드포인트 등록 화면 - [상세설정]항목 설명 메시지 핸들러
[핸들러] 버튼을 클릭한 후 메시지 핸들러 선택 화면(엔드포인트 등록 화면 - [상세설정] - 메시지 핸들러 선택 화면)에서 메시지를 선택한다.
거래그룹/거래/룰
메시지를 수신할 때 엔드포인트가 받아서 처리해야 할 메시지에 대한 거래를 리스트에서 선택한다.
메시지 분할 거래
TCP 메시지 분할 유틸리티가 동작한 플로우에서 Intermediate 이벤트로 호출될 거래를 설정한다. 호출된 거래에서는 TCP 메시지 분할 유틸리티의 분할 길이만큼씩 메시지를 읽는다.
호출되기 전 거래에서는 메시지 길이지정 방식에 따라 메시지를 읽는다.
배치모드
대화형 모드로 거래를 수행할 때 선택한다. 일반적으로 배치 스타일로 거래를 만들 경우 선택한다.
배치 모드를 선택하면 거래를 호출할 때나 응답 처리할 때에 스레드를 변경하지 않고 거래가 수행된다.
'통신 방향' 항목이 'Inbound' 또는 'Both’일 때 설정할 수 있다.
멀티 셀렉터 모드
'배치모드'일 때 사용 가능하다.
한 스레드가 거래를 실행 중일 때 새로운 요청이 들어오면 다른 스레드가 거래를 잡아 수행할 수 있도록 한다.
복수거래설정
수신한 메시지의 특정 값에 따라 거래그룹/거래/룰을 선택하고자 할 때 사용한다. '복수거래설정'을 선택하면 '복수헤더사용’과 '헤더 추가’를 할 수 있다.
복수헤더사용
헤더 값에 따라 다른 거래그룹/거래/룰을 사용하고자 할 때 선택한다. 헤더 구분필드를 입력해야 한다.
-
오프셋 : 비교할 헤더 값의 시작 위치를 설정한다.
-
길이 : 비교할 헤더 값의 시작 위치로부터의 길이를 설정한다.
헤더 추가
'복수거래설정'을 선택한 경우 추가할 수 있다.
복수 헤더를 사용하는 경우 [추가] 버튼을 클릭하면 헤더의 정보를 추가하거나 [삭제] 버튼을 클릭해서 삭제할 수 있다(엔드포인트 등록 화면 - [상세설정] - 복수거래설정 - 헤더 추가 참고).
다음은 '메시지 핸들러' 항목에 입력할 메시지를 선택한 후 [선택] 버튼을 클릭한다.
엔드포인트 등록 화면 - [상세설정] - 메시지 핸들러 선택 화면'복수거래설정'을 선택한 후 '헤더 추가' 항목에 [추가] 버튼을 클릭하면 다음의 화면에서 헤더 정보를 추가할 수 있다.
엔드포인트 등록 화면 - [상세설정] - 복수거래설정 - 헤더 추가항목 설명 헤더 값
복수헤더를 사용하는 경우 헤더 값에 따라 다른 거래그룹/거래/룰을 설정한다.
식별필드 설정
특정 거래를 선택하기 위해 메시지의 식별필드를 설정한다.
-
오프셋길이 : 메시지의 특정 부분으로 식별한다. 오프셋 길이를 추가할 수 있고, 메시지에서 비교할 값의 위치와 길이를 설정한다.
-
파싱핸들러 : 파싱핸들러를 호출하여 식별한다.
아웃바운드 룰 키 사용
TCP 아웃바운드 룰의 서비스 키 설정에 따라 거래그룹/거래/룰을 호출한다.
거래룰식별리스트
메시지 핸들러나 파싱 핸들러를 통해 추출된 값과 식별값을 비교하여 거래그룹/거래/룰을 지정한다. 아웃바운드 룰 키를 사용하지 않았을 때 설정 가능하다.
-
식별값 : 지정한 거래그룹/거래/룰을 타기 위한 식별값을 설정한다.
-
거래그룹/거래/룰 : 식별값이 일치할 경우 해당 거래그룹/거래/룰을 호출한다.
'복수거래설정'의 '식별필드 설정' 항목을 '파싱핸들러' 선택한 경우 다음의 화면에서 파싱 핸들러를 선택한 후 [선택] 버튼을 클릭한다.
엔드포인트 등록 화면 - [상세설정] - 파싱 핸들러 선택 화면 -
-
[메시지/장애처리] 탭
엔드포인트 등록 화면 - [메시지/장애처리]항목 설명 메시지 길이지정 방식
메시지 길이 지정 방식을 설정한다.
-
헤더에 길이정보 포함 : 메시지의 헤더에 길이정보가 있는 경우
-
고정길이 : 전체 메시지 길이가 고정으로 지정되어 있는 경우
-
End 문자 지정 : 메시지의 끝에 특정 예약된 문자가 있는 경우
-
VO : VO Agent를 사용하는 경우
-
TCP Agent : TCP Agent를 사용하는 경우
-
EOD : End of Data로 한 번에 메시지가 들어오는 경우 (TCP 특성상 네크워크가 느릴 경우 오류 발생 소지가 높으므로 사용에 주의한다.)
-
StxEtxChar : 메시지의 시작과 끝에 특정 예약된 문자가 있는 경우
-
EOR : 메가박스와 통신하는 메시지의 끝에 '0xffef’의 특정 예약된 문자가 있는 경우
Outbound 별도 설정
인바운드와 아웃바운드의 메시지 길이 지정 방식이 상이할 경우 선택한다.
다음은 '메시지 길이지정 방식'에 따라 등록하는 항목에 대한 설명이다.
-
헤더에 길이 정보 포함
항목 설명 헤더 종류
헤더 종류를 선택한다.
-
통신헤더 : 통신 만을 위한 헤더로 메시지로 길이 만을 위한 정보로 헤더 메시지를 어댑터로 전달하지 않는다.
-
공통헤더 : 길이 정보가 포함된 공통헤더로 헤더 메시지를 어댑터로 전달한다.
헤더 길이
해더 길이를 설정한다.
Trim 기능 설정 사용 여부
길이 정보가 일반 적인 문자가 아닌 공백이 포함되어 올 경우 선택한다. 공통헤더의 경우만 선택이 가능하다. (예: __10)
Primitive 사용 유무
길이 정보가 일반적인 문자(예: 0010) 이 아닌 Primitive 타입(예: int)으로 들어올 경우 선택한다.
Primitive 종류
Primitive 타입의 종류를 선택한다.
-
int : int 타입으로 설정된 경우
헤더 사이즈 포함 유무
헤더에서 메시지 길이 정보를 추출하였을 때 헤더의 사이즈가 길이 정보에 포함되어 있는지 여부를 설정한다.
-
예)
헤더 사이즈 포함 Yes : 0014AAAAABBBBB 헤더 사이즈 포함 No : 0010AAAAABBBBB
전문 길이 설정
아웃바운드, 공통헤더일 경우에만 사용가능하다. 전문 길이를 계산하여 공통 헤더 위치에 사이즈를 넣어준다. 헤더 사이즈 포함 유무에 따라 길이 정보가 다르게 설정된다.
-
예)
다음은 오프셋이 2, 길이가 4, 헤더 사이즈 포함 유무는 false, 전문 길이는 14일 경우 예제이다.
원본 메시지 : KB____AAAAABBBBB --> 변환된 메시지 : KB0014AAAAABBBBB
오프셋
메시지의 길이 정보의 시작 위치를 설정한다.
길이
메시지 길이 정보의 시작 위치로부터의 길이를 설정한다.
메시지 정합성 검사
메시지의 정합성을 검사한다. 헤더 길이로부터 설정한 식별값의 위치만큼 읽은 후 메시지와 일치하는지 검증한다. 식별값과 같을 경우 헤더 처리 후의 메시지를 어댑터로 전달한다. 정합성이 맞지 않을 경우 연결을 끊는다.
-
식별값 : 헤더와 비교할 값을 설정한다.
-
오프셋 : 식별값의 시작 위치를 설정한다.
-
길이 : 식별값의 시작 위치로부터의 길이를 설정한다.
-
예)
헤더 길이 : 4, 식별값 : AA, 오프셋 : 4, 길이 : 2 수신한 메시지 : 0010AABBCCDD 1. 헤더 길이로부터 설정한 식별값의 위치(오프셋 4, 길이 2)까지인 '0010AA'를 읽음 2. 오프셋과 길이로 AA 추출 3. 식별값 AA와 일치하므로 어댑터로 AABBCCDD 전달
길이 정보 키 사용 유무
길이 정보 키 사용 유무를 설정한다.
길이 정보 키란 헤더에서 길이 정보를 추출하였을 때 해당 정보가 길이 정보가 아닌 특정한 키 값일 경우에 사용된다. "?" 기호는 모든 글자를 의미한다. 매칭되는 것이 여러 개일 경우 제일 처음 매칭되는 값을 사용한다. Key에 '${default-key}' 예약어를 사용하면 매칭되는 값이 없을 때 선택된다.
-
Key : 헤더값에 매칭되는 Key를 설정한다.
-
길이 : 메시지 길이를 설정한다.
-
예)
헤더 종류 : 통신헤더, 헤더 길이 : 10, 오프셋 : 0, 길이 : 4 Key : 0001, 길이 : 10 Key : 0002, 길이 : 30 수신한 메시지 : 0001ABCDEF1234567890 1. 헤더 길이만큼 읽은 후 오프셋, 길이에 맞는 0001을 추출 2. 0001이 Key의 첫번째와 같으므로 다음에 읽어야할 길이는 10으로 설정 3. 남은 길이인 10만큼 메시지를 모두 읽음
길이에 표현식을 사용할 수 있다. 사칙연산을 사용할 수 있으며 정수로만 계산되고 괄호는 사용할 수 없다. 사칙연산의 우선순위는 무시된다.
-
${offset(N)} : 메시지의 N번째 위치의 값 추출
-
${offset(N-M)} : 메시지의 N번째 위치부터 M번째 위치까지의 값 추출
-
사칙연산 예)
수신한 메시지 : 0010100ABCD001 길이 : ${offset(0-2)}*${offset(7-9)} 결과 : 100*001 = 100
StxEtx 사용유무
헤더에 시작 문자(Stx), 끝 문자(Etx)가 있을 경우 사용한다.
-
Stx 문자 : 헤더의 시작 문자를 설정한다.
-
Etx 문자 : 헤더의 끝 문자를 설정한다.
-
StxEtx 문자 포함유무 : Stx, Etx 문자를 헤더에 포함할지 여부를 설정한다. 설정 시 헤더길이는 StxEtx가 포함된 길이여야 하며, 미설정시 StxEtx 길이만큼 헤더 길이를 늘려 읽는다.
-
HEX 타입 유무 : Stx, Etx 문자를 HEX 형식으로 지정하는 경우 사용한다. 예를 들면 '0A'(new line)으로 설정한다.
TCP 에이전트 사용
리모트 에이전트와 내부 Hub간의 통신을 위해 설정한다.
-
-
고정 길이
항목 설명 고정 길이
메시지의 길이를 설정한다.
-
End 문자 지정
항목 설명 End문자
End 문자를 설정한다.
End Char 포함 유무
End 문자를 메시지에 포함할지 여부를 설정한다.
HEX 모드
End 문자를 HEX 형식으로 지정하는 경우 사용한다.
예를 들면 '0A'(new line)으로 설정한다.
-
StxEtxChar
항목 설명 Stx 문자
시작 문자를 설정한다.
Etx 문자
끝 문자를 메시지에 포함할지 여부를 설정한다.
StxEtx 문자 포함유무
Stx, Etx 문자를 메시지에 포함할지 여부를 설정한다.
HEX 타입 유무
Stx, Etx 문자를 HEX 형식으로 지정하는 경우 사용한다.
예를 들면 '0A'(new line)으로 설정한다.
-
-
[메시지 변경 송신] 탭
엔드포인트 등록 화면 - [메시지 변경 옵션]-
메시지 송신시
메시지를 변환하여 송신한다.
항목 설명 메시지 추가 위치
메시지에 추가할 문자열의 위치를 설정한다.
메시지 추가 문자열
메시지에 추가할 문자열을 설정한다.
메시지 삭제 위치
메시지 내의 삭제할 시작 위치를 설정한다.
메시지 삭제 길이
메시지의 삭제 시작 위치로부터의 길이를 설정한다.
EBCDIC 코드 변환
메시지의 특정 부분을 EBCDIC에서 ASCII로 변환하거나 ASCII에서 EBCDIC으로 변환할 때 설정한다.
코드 변환 종류
-
ASCII to EBCDIC : ASCII에서 EBCDIC으로 변환할 경우
-
EBCDIC to ASCII : EBCDIC에서 ASCII로 변환할 경우
오프셋
EBCDIC 코드 변환이 적용될 메시지의 시작 위치를 설정한다.
길이
EBCDIC 코드 변환이 적용될 메시지의 시작 위치로부터의 길이를 설정한다.
-
-
메시지 수신시
수신한 메시지를 변환하여 어댑터에 넘긴다. 설명되지 않은 항목은 메시지 송신시 영역의 설명을 참고한다.
항목 설명 치환 이전 문자
메시지에서 변환할 문자를 설정한다.
개행문자(\n)나 탭(\r), 특수문자(\u) 또한 설정할 수 있다.
치환 이후 문자
치환 이전 문자를 변환할 문자를 설정한다.
-
-
[SSL] 탭
[연결정보] 탭의 '연결방식' 항목을 'Server’로 선택한 경우 키 스토어를 설정할 수 있으며, 'Client’로 설정한 경우 Trust Store와 키 스토어를 설정할 수 있다.
엔드포인트 등록 화면 - [SSL]-
키 스토어 설정
항목 설명 스토어 위치
Key store의 저장 위치를 설정한다.
스토어 타입
Key store의 저장 형식을 설정한다. (기본값: jks)
Private Key 패스워드
개인 키를 접근하기 위한 암호를 설정한다.
스토어 패스워드
Key store를 접근하기 위한 암호를 설정한다.
-
-
[TCP 소켓 옵션] 탭
엔드포인트 등록 화면 - [TCP 소켓 옵션]-
TCP 소켓 옵션 설정
항목 설명 TCP_NODELAY
Nagle 알고리즘을 무력화하는 소켓 옵션인 TCP_NODELAY을 설정한다.
(기본값: 체크)
SO_LINGER (s)
초기값인 '-1’이 아닌 경우 연결 종료 후 FIN_ACK 패킷을 받을 때까지 대기한다. 소켓 옵션인 SO_LINGER의 타임아웃 시간을 설정한다.
(기본값: -1)
Send Buffer (byte)
송신 TCP 버퍼 사이즈를 설정한다. 소켓 옵션인 SO_SNDBUF을 설정한다. (기본값: 1313280)
Receive Buffer (byte)
수신 TCP 버퍼 사이즈를 설정한다. 소켓 옵션인 SO_RCVBUF을 설정한다. (기본값: 531000)
SO_REUSEADDR
TIME_WAIT 상태에 있는 소켓을 재사용할 수 있도록 한다.
소켓 옵션인 SO_REUSEADDR을 설정한다. (기본값: 체크)
-
-
[접속 제어] 탭
'IP Control' 항목을 'Allow’와 'Deny’로 설정한 경우 여러 개의 IP를 추가할 수 있다.
엔드포인트 등록 화면 - [접속 제어]-
IP Control
항목 설명 IP Control
엔드포인트에 연결을 시도하는 특정 IP의 클라이언트를 제어한다.
-
Parent : 상위 엔드포인트 그룹이나 어댑터의 IP Control을 따른다. (기본값)
-
OFF : 모든 클라이언트의 연결을 허용한다.
-
Allow : 지정한 IP Rule에 해당하는 클라이언트의 연결만을 허용한다.
-
Deny : 지정한 IP Rule에 해당하는 클라이언트의 연결을 차단한다.
-
-
2.2. 클라이언트 모드 엔드포인트
[연결정보] 탭의 '연결방식' 항목을 'Client’로 선택한 경우 엔드포인트 등록 화면의 각 탭 화면에 대한 설명이다. 설명되지 않은 탭의 설명은 서버 모드 엔드포인트를 참고한다.
'연결방식' 항목을 'Client’로 선택한 경우 [상세설정], [메시지/장애처리], [메시지 변경 송신], [SSL], [TCP 소켓 옵션] 탭으로 구성된다.
-
[연결정보] 탭 (* : 필수 입력항목)
엔드포인트 등록 화면 - [연결정보] - 클라이언트 모드-
연결방식
항목 설명 연결 방식
엔드포인트가 동작하는 연결 방식을 설정한다.
-
Server : 엔드포인트가 서버 모드로 동작한다.
-
Client : 엔드포인트가 클라이언트 모드로 동작한다.
기본 인코딩
엔드포인트에서 사용할 기본 인코딩을 설정한다.
메시지에 설정된 인코딩이 우선 적용되고 메시지에 설정되지 않았을 경우에 적용된다. 메시지와 엔드포인트 모두 설정이 되지 않은 경우에는 시스템 기본 인코딩으로 적용된다.
Java 표준 Charset과 EBCDIC 타입을 설정할 수 있다.
연결 관리 여부
엔드포인트가 클라이언트 모드일 때 연결 관리 여부를 설정한다.
-
Yes : 연결을 관리한다. 최소 연결수만큼의 연결을 유지하고 연결이 끊어지면 재시도 간격을 주기로 재연결을 맺는다.
-
No : 연결을 관리하지 않는다.
연결 유지 여부
엔드포인트가 클라이언트에 '연결 관리 여부'가 'No’인 경우에 연결 유지 여부를 설정한다.
-
Yes : 해당 연결로 들어온 거래가 종료 되어도 연결을 끊지 않는다.
-
No : 해당 연결로 들어온 거래가 종료되면 해당 연결을 끊는다.
Agent 사용 여부
Agent 사용 여부를 선택한다.
-
사용 : AnyLink 리모트 에이전트가 설치된 클라이언트의 엔드포인트로 지정한다.
-
미사용 : 로컬 클라이언트의 엔드포인트로 지정한다.
Agent 아이디
엔드포인트의 'Agent 사용여부' 항목이 '사용’인 경우에 연결할 리모트 에이전트 아이디를 설정한다.
-
-
주소
항목 설명 IP/호스트 (*)
연결할 IP/호스트를 설정한다.
포트 (*)
연결할 포트 번호를 설정한다.
로컬 IP/호스트
연결에 사용할 로컬 IP/호스트를 설정한다.
로컬 포트
연결에 사용할 로컬 포트를 설정한다.
-
타임아웃/연결수
항목 설명 연결 타임아웃 (ms)
연결 타임아웃(Connect timeout)을 설정한다.
연결 요청을 해서 연결될 때까지의 타임아웃이다. (단위: ms)
Idle 타임아웃 (ms)
Idle 타임아웃을 설정한다. 커넥션이 아무런 동작을 하고 있지 않을때 해당 설정된 값이 지나면 타임아웃이 발생한다.
기본값은 0이고 0으로 설정할 경우에는 타임아웃이 발생하지 않는다.
(단위: ms)
동기/비동기 여부
동기/비동기 여부를 설정한다.
-
동기 : 메시지를 송신하면 응답이 들어오기 전까지 사용할 수 없게 하고, 메시지를 수신하면 응답을 줄때까지 사용할 수 없도록 한다.
-
비동기 : 메시지 송수신 여부와 상관없이 항상 사용 가능하도록 한다.
최소 연결수 *
최소 연결수를 설정한다.
클라이언트에 '연결 관리 여부' 항목이 'Yes’인 경우에만 설정할 수 있다. 최소 연결수가 설정되면 엔드포인트는 항상 최소 연결을 유지하고 최소 연결수가 설정된 값보다 작으면 재시도 간격을 주기로 하여 재연결을 맺는다.
최대 연결수 *
최대 연결 수를 설정한다.
클라이언트 모드의 경우 연결이 최대 연결수를 넘어가면 거래가 연결을 받을 때까지 대기한다. 아웃바운드 룰의 요청처리 타임아웃 시간만큼 대기하고 해당 시간 내에 연결을 가지지 못하면 타임아웃 처리된다.
-
-
재시도
항목 설명 재시도 간격 (ms)
재시도 간격을 설정한다. (단위: ms)
클라이언트에 '연결 관리 여부' 항목이 'Yes’인 경우에만 설정할 수 있다. 재시도 간격을 주기로 재연결을 맺는다.
서브 재시도 간격 사용 유무
재시도 간격으로 재시도 횟수만큼 시도한 뒤 다른 재시도 간격을 사용하고자 할 때 설정한다.
클라이언트에 '연결 관리 여부' 항목이 'Yes’인 경우에만 설정할 수 있다. 서브 재시도 간격을 주기로 재연결을 맺는다.
재시도 횟수
서브 재시도 전 재시도 횟수를 설정한다. '서브 재시도 간격 사용 유무' 항목을 선택해야 설정할 수 있다.
서브 재시도 간격 (ms)
서브 재시도 간격을 설정한다. (단위: ms)
-
TCP 연결 핸들러
클라이언트에 '연결 관리 여부'가 'Yes’거나 '연결 유지 여부'가 'Yes’인 경우에만 설정할 수 있다. 상세 내용은 서버 모드 엔드포인트를 참고한다.
-
TCP 타임아웃
클라이언트에 '연결 관리 여부'가 'Yes’거나 '연결 유지 여부'가 'Yes’인 경우에만 설정할 수 있다. 상세 내용은 서버 모드 엔드포인트를 참고한다.
-
헬스체크 메시지
상세 내용은 서버 모드 엔드포인트를 참고한다.
-
Backup 주소
항목 설명 IP/호스트
연결에 실패할 때 사용할 백업 IP/호스트를 설정한다. Backup 주소는 하나만 설정 가능하다.
클라이언트에 '연결 관리 여부' 항목이 'Yes’인 경우에만 설정할 수 있다.
포트
연결에 실패할 때 사용할 백업 포트를 설정한다.
클라이언트에 '연결 관리 여부' 항목이 'Yes’인 경우에만 설정할 수 있다.
-
-
[상세설정] 탭
화면에 대한 내용은 서버 모드 엔드포인트를 참고한다.
-
[메시지/장애처리] 탭
화면에 대한 내용은 서버 모드 엔드포인트를 참고한다.
-
[메시지 변경 송신] 탭
화면에 대한 내용은 서버 모드 엔드포인트를 참고한다.
-
[SSL] 탭
[연결정보] 탭의 '연결방식' 항목을 'Server’로 선택한 경우 키 스토어를 설정할 수 있으며, 'Client’로 설정한 경우 Trust Store와 키 스토어를 설정할 수 있다.
엔드포인트 등록 화면 - [SSL]-
Trust Store 설정
항목 설명 스토어 위치
Trust Store의 저장 위치를 설정한다.
스토어 타입
Trust Store의 저장 형식을 설정한다. (기본값: jks)
클라이언트 인증
클라이언트 인증 여부를 선택한다. '예’로 설정하면 Key Store를 설정할 수 있다.
스토어 패스워드
해당 Trust Store를 접근하기 위한 암호를 설정한다.
-
3. 아웃바운드 룰 설정
본 절에서는 아웃바운드 룰 설정방법에 대해서 설명한다. TCP 아웃바운드 룰은 AnyLink 스튜디오를 이용하여 설정한다.
AnyLink 스튜디오의 자세한 사용법은 AnyLink 스튜디오 안내서를 참고한다. |
AnyLink 스튜디오 거래그룹 네비게이터의 거래/거래그룹 항목의 컨텍스트 메뉴에서 [새로만들기] > [아웃바운드 룰] > [TCP 아웃바운드 룰]를 선택하면 다음과 같이 TCP 아웃바운드 룰 생성 화면이 나타난다. 각 항목을 입력하고 [Finish] 버튼을 클릭한다.
항목 | 설명 |
---|---|
아웃바운드 아이디 |
아웃바운드 룰의 아이디를 입력한다. 영어, 숫자, 특수문자(_) 입력이 가능하며 첫 글자는 영어만 가능하다. 해당 값은 동일 거래 노드에 유일한 값이다. |
아웃바운드 이름 |
아웃바운드 룰의 이름을 입력한다. 한글, 영어, 숫자, 특수문자(-, _) 입력이 가능하다. 아웃바운드 룰 이름은 XML Naming Conversion을 따른다. |
아웃바운드 룰을 생성하면 다음과 같은 설정 화면이 나타난다.
-
아웃바운드 룰 정의 (* : 필수 입력항목)
항목 설명 아웃바운드 룰 ID *
아웃바운드 룰 아이디를 입력한다.
영어와 숫자, 특수문자(_) 입력이 가능하다. 해당 값은 동일 거래 노드에 유일한 값이다.
아웃바운드 룰 이름 *
아웃바운드 룰 이름을 입력한다.
한글, 영어, 숫자, 특수문자(-, _) 입력이 가능하다.
요청처리 타임아웃(ms)
요청처리 타임아웃을 입력한다.
요청처리 타임아웃은 아웃바운드 룰이 호출된 시점에서부터 타임아웃 시간 동안 연결을 할당 받지 못하거나 외부로 요청을 보냈지만 응답을 받지 못했을 경우 발생한다.
아웃바운드 룰을 생성할 때 10000으로 설정되어 있고 양의 정수로 입력 가능하다.
Endpoint(Group) *
아웃바운드 룰이 등록될 엔드포인트 또는 엔드포인트 그룹을 선택한다. 해당 프로젝트가 업무시스템에 할당되고 서버에 접속한 상태여야만 선택이 가능하다.
서비스 키 설정
복수거래의 아웃바운드 룰 키를 사용하는 경우 서비스 키에 따라 아웃바운드 룰을 매칭할 때 설정한다.
설명
아웃바운드 룰에 대한 설명을 입력한다.
응답 수신 방식
메시지에 대한 응답 수신 방식을 선택한다.
-
SYNC : 외부로 요청을 보냈던 엔드포인트로 응답이 들어온다.
-
ASYNC : 응답이 요청을 보냈던 엔드포인트가 아닌 다른 엔드포인트로 들어 올 수 있다. 거래의 호출 서비스의 비동기 응답 거래를 설정해서 사용할 수 있다. 어댑터에서 코릴레이션하기 때문에 같은 어댑터를 사용해야 하고 서로 다른 어댑터로는 사용이 불가능하다.
-
ONEWAY : 응답이 없는 ONEWAY이다.
ByPass
메시지 변환(marshal/unmarshal) 없이 요청으로 들어온 전문을 그대로 전송하고 싶을 경우 선택한다.
ByPass가 체크 되면 요청 메시지, 응답 헤더 메시지, 정상 응답 메시지를 설정할 수 없고 요청으로 들어온 전문을 그대로 사용한다.
DynamicInetAddress 사용
수신한 메시지의 특정 필드로 IP, Port를 설정한다.
-
Host : 수신한 메시지의 특정 필드로 Host를 설정한다. 검색을 누르면 메시지 ID와 필드 ID를 선택할 수 있다.
-
Port : 수신한 메시지의 특정 필드로 Port를 설정한다. 검색을 누르면 메시지 ID와 필드 ID를 선택할 수 있다.
-
-
아웃바운드 룰 메시지 정의
아웃바운드 룰에서는 아웃바운드 룰에서는 요청 메시지, 정상 응답 메시지, 업무 오류 응답 메시지를 설정할 수 있다.
항목 설명 요청 메시지
아웃바운드 룰에서 사용될 요청 메시지를 선택한다.
-
코릴레이션 : 응답 수신 방식이 ASYNC일 때 사용될 요청 메시지의 코릴레이션 필드를 선택한다.
정상 응답 메시지
아웃바운드 룰에서 사용될 응답 메시지를 선택한다.
-
코릴레이션 : 응답 메시지로 아웃바운드 룰을 찾을 때 응답 메시지의 코릴레이션 필드를 선택한다.
응답 헤더 메시지
응답 헤더 메시지를 선택한다.
응답 헤더 메시지는 응답 메시지가 정상과 업무 오류로 나누어져 있을 경우 사용된다(일반적인 에러가 아닌 정상 메시지 형태로 업무 오류 메시지를 수신할 경우 사용).
-
응답 종류 확인 : 응답 헤더 메시지를 사용할 경우에 정상 응답 메시지와 업무 오류 응답 메시지를 구분하가 위한 메시지 필드와 해당 값에 따른 정상 또는 업무 오류를 입력한다.
-
-
TCP 아웃바운드 룰 타임아웃
TCP 동기방식(Request 전송모드)이고 아웃바운드 룰 '요청처리 타임아웃' ADT_00028 에러가 발생한 경우 요청 재시도 기능이 추가되었다.
-
TCP 아웃바운드 룰의 응답 수신 방식이 SYNC인 경우 재시도 횟수 항목이 활성화된다. (기본값: 0)
<ns0:tcpOutboundRuleInfo>
<ns0:callType>Sync</ns0:callType>
<ns0:retryNum>3</ns0:retryNum>
</ns0:tcpOutboundRuleInfo>
-
'요청처리 타임아웃' ADT_00028 에러가 발생한 경우 '재시도 횟수' 만큼 재시도를 요청하며 기존 연결과 동일한 세션으로 요청한다.
-
재시도 시 WARNING 레벨 로그로 로깅한다.
|WARNING|1040|anylink.adapter.framework.SharedThreadAdapter|||||||Tcp Outbound Retry - Remaining: 1|#]
TCP 아웃바운드 룰 타임아웃 -