거래제어

BX Framework은 Client에서 요청한 거래가 수행가능한 상태인지 거래제어를 통해 확인한다. 거래제어의 기능구현은 시스템 선처리를 통해 구현하며 거래제어시 사용되는 속성은 거래파라미터를 통해 관리한다. 이번장에서는 거래파라미터를 설명하고 시스템 선처리는 "시스템 선/후처리"에서 설명한다.

BX Framework은 거래에 대한 기본정보, 거래제어를 위해 거래파라미터(DefaultControlParameter)를 제공한다. Framework을 사용하게 될 사용자환경에 기본제공 거래파라미터를 적용할 수 없는 경우 거래파라미터를 사용자환경에 적합하게 커스터마이징할 수 있다.

1. 기본 거래파라미터(DefaultControlParameter)

기본거래파라미터는 기본속성, 거래제어 속성, 동적제어 속성으로 나눌 수 있다.

기본거래파라미터 항목 - 기본속성
데이터타입 길이 이름 설명

String

40

BXM_APP_ID

BXM어플리케이션ID

String

512

SVC_NM

서비스명

String

512

OP_NM

오퍼레이션명

String

12

TRX_CD

거래코드

String

256

TRX_NM

거래명

String

1

FRCD_TRAN_YN

강제트랜잭션여부. 허용값 ("Y", "N")

int

10

FRCD_TIMEOUT_MILLS

강제타임아웃(단위:ms). 최대값 2147483647.

int

8

OUTPUT_MSG_MAX_LEN

출력전문최대길이(단위:bytes). FLD전문인
경우에만 의미있음.

String

10

SYS_LOG_LV_NM

시스템로그레벨명. 빈문자열이거나 null이면
"DEFAULT"로 처리함. 로그레벨이 DEFAULT이면 bxm-application.xml,
log4j.xml에 정의된 로그레벨을 사용한다.

String

10

BIZ_LOG_LV_NM

업무로그레벨명. 빈문자열이거나 null이면
"DEFAULT"로 처리함. 로그레벨이 DEFAULT이면 bxm-application.xml,
log4j.xml에 정의된 로그레벨을 사용한다.

String

10

DB_LOG_LV_NM

DB로그레벨명. 빈문자열이거나 null이면
"DEFAULT"로 처리함. 로그레벨이 DEFAULT이면 bxm-application.xml,
log4j.xml에 정의된 로그레벨을 사용한다.

기본거래파라미터 항목 - 거래제어속성
데이터타입 길이 이름 설명

String

1

CHL_CTRL_LIST_TYPE_CD

채널 제어목록 구분코드. 허용값 ("0" :
미사용, "1" : 허용목록, "2" : 불가목록)

String

1024

CHL_CTRL_LIST

채널 제어목록. 채널코드를 CSV형태로
사용한다.

String

1

BRANCH_CTRL_LIST_TYPE_CD

지점 제어목록 구분코드. 허용값
("0" : 미사용, "1" : 허용목록, "2" : 불가목록)

String

1024

BRANCH_CTRL_LIST

지점 제어목록. 지점코드를 CSV형태로
사용한다.

String

1

USER_CTRL_LIST_TYPE_CD

조작자 제어목록 구분코드. 허용값
("0" : 미사용, "1" : 허용목록, "2" : 불가목록)

String

1024

USER_CTRL_LIST

조작자 제어목록. 조작자코드를 CSV형태로
사용한다.

String

1

HDAY_TRX_USE_YN

휴일거래허용여부. 허용값 ("Y" : 허용, "N" :
불가)

String

1

EDAY_TRX_USE_YN

마감후 거래허용여부. 허용값 ("Y" : 허용,
"N" : 불가)

String

1

LINK_TRX_USE_YN

연동거래허용여부. 허용값 ("Y" : 허용, "N" :
불가) 서비스연동시 callee 거래로 호출될 수 있는지 여부

String

6

DAY_SUSP_START_TIME

일별 중단시작시간. 형태는 DateFormat의
"HHmmss"이다. ex) 19시 45분 25초 : 194525 일별 중단시간을 설정하면
시작시간~종료시간 사이에는 거래를 수행할 수 없다.

String

6

DAY_SUSP_END_TIME

일별 중단종료시간. 형태는 DateFormat의
"HHmmss"이다. ex) 19시 45분 25초 : 194525

기본거래파라미터 항목 - 동적제어속성
데이터타입 길이 이름 설명

String

1

TRX_CTRL_CD

거래제어코드

"0" : 미사용

"1" : 시스템장애

"2" : 거래량폭주

"3" : 시스템점검

"4" : 인터페이스장애

"5" : 응답시간장애

"7" : 업무점검

"8" : 지정기간거래불가.

String

14

TRX_CTRL_START_DTTM

거래제어시작일시. 형태는 DateFormat의
"yyyyMMddHHmmss"이다. 거래제어코드가 지정기간거래불가("8")인 경우 입력할
수 있다.

String

14

TRX_CTRL_END_DTTM

거래제어종료일시. 형태는 DateFormat의
"yyyyMMddHHmmss"이다. 거래제어코드가 지정기간거래불가("8")인 경우 입력할
수 있다.

String

1

LOGF_TYPE_CD

로그강제변경타입코드. 허용값 ("0" : 미사용,
"1" : IP제어사용, "2" : 지점,단말번호 제어사용)

String

10

SYS_LOGF_LOG_LV_NM

시스템로그강제변경로그레벨명

String

10

BIZ_LOGF_LOG_LV_NM

업무로그강제변경로그레벨명

String

10

DB_LOGF_LOG_LV_NM

DB로그강제변경로그레벨명

String

30

LOGF_IP

로그강제변경IP. 로그강제변경타입코드가
"IP제어사용"일 때 로그강제변경로그레벨을 적용할 거래요청 Client의
IP이다. ex) 199.199.199.29 또는 188.188.188.*

String

4

LOGF_BRANCH_NO

로그강제변경지점번호. 로그강제변경타입코드가
"지점,단말번호 제어사용"일 때 로그강제변경로그레벨을 적용할 거래요청
Client의 지점번호이다.

String

4

LOGF_TERMINAL_NO

로그강제변경단말번호.
로그강제변경타입코드가 "지점,단말번호 제어사용"일 때
로그강제변경로그레벨을 적용할 거래요청 Client의 단말번호이다.

2. 거래파라미터 구현

거래파라미터는 bxm.instance.context.control.ControlParameters, bxm.instance.context.control.CachedControlParameters 인터페이스를 구현한다. (Cache를 사용하지 않는 경우는 CachedControlParameters를 구현하지 않는다.)

2.1. bxm.instance.context.control.ControlParameters

거래파라미터의 기본기능을 정의한 인터페이스이다.

…
    void loadControlParameters( DataSource datasource, String applicatioName, String serviceName, String operationName);

    String getApplicationName();

    String getServiceName();

    String getOperationName();

    boolean isTrLock();

    Date getTranAvailalbeBegin();

    Date getTranAvailableEnd();

    Date getTranSuspendBegin();

    Date getTranSuspendEnd();

    boolean isAuthCheck();

    String getAuditLevelString();

    boolean isBranSuspend();

    ApplicationLogLevel getAppliedLogLevel(String remoteAddr);

    ApplicationLogLevel getAppliedLogLevel(ContextHeader header);

    boolean isForcedTransactional();

    int getForcedTimeout();

2.1.1. loadControlParameters

거래파라미터를 Database에서 읽어들여 거래파라미터 객체에 파라미터 값을 저장한다. 거래 파라미터 조회에 사용되는 거래 Key값으로 거래코드를 단독으로 사용하는 방법과 application, service, operation 조합하는 방법 두가지가 존재한다.

resolveXmlRequest메소드 파라미터
입력/출력구분 파라미터 설명

입력파라미터

DataSource datasource

거래파라미터 테이블을 조회하기 위한 Datasource

String applicatioName

거래의 applicaton 이름

(거래코드사용시 거래코드를 지정.)

String serviceName

거래의 service이름

(거래코드사용시 빈 문자열("")을 지정.)

String operationName

거래의 operation이름

(거래코드사용시 빈 문자열("")을 지정.)

반환값

void

조회한 거래파라미터는 현재객체에 값이 지정된다.

2.1.2. 로그레벨 제어 method

거래수행시 적용될 로그레벨을 동적으로 제어하기위해 로그레벨 접근 메소드를 구현한다.

거래파라미터 로그레벨 제어 method
메소드 이름 반환 값 설명

getSysAppliedLogLevel(String remoteAddr)

ApplicationLogLevel

지정된
IP에 적용될 시스템로그레벨을 반환한다.

getSysAppliedLogLevel(ContextHeader header)

ApplicationLogLevel

지정된 ContextHeader값에 적용될 시스템로그레벨을 반환한다. IP가 아닌
시스템헤더의 값을 이용하여 로그레벨을 얻을 때 사용한다.

getBizAppliedLogLevel(String remoteAddr)

ApplicationLogLevel

지정된
IP에 적용될 업무로그레벨을 반환한다.

getBizAppliedLogLevel(ContextHeader header)

ApplicationLogLevel

지정된 ContextHeader값에 적용될 업무로그레벨을 반환한다. IP가 아닌
시스템헤더의 값을 이용하여 로그레벨을 얻을 때 사용한다.

getDBAppliedLogLevel(String remoteAddr)

ApplicationLogLevel

지정된
IP에 적용될 DB로그레벨을 반환한다.

getDBAppliedLogLevel(ContextHeader header)

ApplicationLogLevel

지정된
ContextHeader값에 적용될 DB로그레벨을 반환한다. IP가 아닌 시스템헤더의
값을 이용하여 로그레벨을 얻을 때 사용한다.

2.1.3. 거래파라미터 getter method

ControlParameters에 정의된 getter method를 구현한다.

거래파라미터 getter method
메소드 이름 반환 값 설명

getApplicationName()

String

어플리케이션 이름

getServiceName()

String

서비스 이름

getOperationName()

String

오퍼레이션이름

String operationName

String

거래의 operation이름

(거래코드사용시 빈 문자열("")을 지정.)

isForcedTransactional()

boolean

강제트랜잭션 시작여부. true이면 Framework @TransactionalOperation이 오퍼레이션에 지정되지 않아도 ServiceExecutor에서 트랜잭션을 시작한다.

getForcedTimeout()

int

강제타임아웃 시간 . 단위는 ms.

거래를 시작한 후 타임아웃값만큼 시간이 흐르면 Exception을 발생시켜 거래를 중단시킨다.

0 또는 -1이면 타임아웃처리를 하지 않는다.

isTrLock()

boolean

더 이상 사용하지 않음.

getTranAvailalbeBegin()

Date

getTranAvailableEnd()

Date

getTranSuspendBegin()

Date

getTranSuspendEnd()

Date

isAuthCheck()

boolean

getAuditLevelString()

String

isBranSuspend()

boolean

2.2. bxm.instance.context.control.CachedControlParameters

거래파라미터의 캐시기능을 사용할 때 필요한 기능을 정의한 인터페이스이다. 거래파라미터정보를 캐시에 등록하는 기능은 거래파라미터의 loadControlParameters메소드에서 구현한다.

…
    void clearCache( String applicationName, String serviceName, String operationName);

    void clearCache();

2.2.1. 캐시 clear method

거래파라미터 캐시를 레코드 하나 또는 전체를 삭제한다.

거래파라미터 캐시 clear method
메소드 이름 설명

void clearCache( String applicationName, String serviceName, String
operationName)

(applicationName, serviceName, operationName)에 해당하는 거래파라미터를
캐시에서 삭제한다.

거래코드를 사용하는 경우 applicationName에 거래코드를 지정하고
serviceName, operationName에는 빈 문자열을 지정한다.

void clearCache()

전체 거래파라미터를 캐시에서 삭제한다.

Copyright© Bankwareglobal All Rights Reserved.