환경설정 및 TACF 리소스
OpenFrame Manager 사용을 위한 환경설정과 TACF 리소스에 대해서 설명한다.
1. 환경설정
OpenFrame Manager를 사용하기 위해서 다음의 파일에 필요한 설정을 해야한다.
1.1. ofmanager.properties
OpenFrame Manager의 환경에 대한 정보와 설치 과정에서 선택한 정보가 아래 파일에 저장된다.
$OFMANAGER_HOME/conf/ofmanager.properties
설정 파일의 항목 값을 변경하는 경우 애플리케이션이 디플로이되어 있는 JEUS MS(Managed Server)의 재기동이 필요하다. |
다음은 ofmanager.properties의 형식과 각 설정 항목에 대한 설명이다.
################################################################################ ##### ##### ##### OpenFrame Manager CONFIGURATIONS ##### ##### ##### ################################################################################ # DB Property ofmanager.datasource=<datasource-name> # OpenFrame GW Property openframe.webterminal.url=<webterminal-ip>:<ofgw-luport>/<webterminal-name> openframe.webterminal.name=<ofgw-name> # Tmax Property openframe.tmax.ip=<tmax-ip> openframe.tmax.port=<tmax-port> openframe.tmax.connection.groupname=<tmax-connection-groupanme> openframe.tmax.connection.init=<tmax-connection-init> openframe.tmax.connection.max=<tmax-connection-max> openframe.tmax.connection.inc=<tmax-connection-inc> # OS Property openframe.os = {mvs|msp|xsp} # CPM Name openframe.cpm.name=<cpm-name> # Encoding encoding = <encoding-name> # Menus Property ofmanager.module = [BM|TM|OSC|AIM|NDB|OSI|HIDB] # Node Information openframe.defaultNode=<node-name> openframe.nodelist=<node-list> # Domain Property domain.name = <domain-name> domain.type = {Dev|Prod|Test} # textarea font change ofmanager.language={english|japanese} # Auto Refresh Interval in CM > Console > Reply ofmanager.consoleReplyRefreshInterval = ( 0(default) ~ 4 : not using auto-refresh, 5 and over : using auto-refresh) # Allow editing jcl ofmanager.jclSave = {yes|no} ofmanager.userSpool = {true|false}#Using UserSpool # OFManager font # recommendation # japanese = MS Gothic # english = HACK, monospace, sans-serif, serif ofmanager.userFont = MS Gothic
항목 | 설명 |
---|---|
ofmanager.datasource |
OpenFrame Manager에서 데이터베이스 테이블을 생성 및 사용하기 위해 데이터소스 이름을 지정한다. 이 값은 JEUS의 도메인 설정에 존재하는 <data-source> 항목의 <data-source-id> 값을 설정해야 한다. |
openframe.webterminal.url |
OpenFrame Manager의 [OSC] 메뉴에서 터미널 정보를 확인하기 위해 지정한다.
|
openframe.webterminal.name |
OpenFrame Manager의 [OSC] 메뉴에서 온라인 트랜잭션 상태를 확인하기 위해 지정한다. OpenFrame GW의 Gateway name을 지정한다. OpenFrame GW 설정 파일 ofgw.properties에서 gw.name 항목으로 확인할 수 있다. |
openframe.tmax.ip |
OpenFrame Manager에서 접속할 OpenFrame의 Tmax 서버에 대한 IP를 지정한다. |
openframe.tmax.port |
OpenFrame Manager에서 접속할 OpenFrame의 Tmax 서버에 대한 포트 번호를 지정한다. OpenFrame이 설치되어 있는 환경에서 $TMAX_HOST_PORT로 확인 가능하다. |
openframe.tmax.connection.groupname |
Tmax와 커넥션을 수행하기 위한 WebT를 이용한다. 지정한 groupname의 이름으로 WebtConnectionPool이 생성되어 통신한다. (기본값: tmax1) |
openframe.tmax.connection.init |
Tmax와 커넥션을 수행하기 위한 WebtConnectionPool의 최초 갯수를 설정한다. (기본값: 10) |
openframe.tmax.connection.max |
Tmax와 커넥션을 수행하기 위한 WebtConnectionPool의 최대 갯수를 설정한다. (기본값: 100) |
openframe.tmax.connection.inc |
Tmax와 커넥션이 부족할 경우 증가시키는 갯수의 단위를 설정한다. (기본값: 10) |
openframe.os |
설치될 OpenFrame의 OS를 입력한다. (기본값: mvs)
|
openframe.cpm.name |
OpenFrame Manager의 [Base] 메뉴의 Dataset view에서 보여지는 데이터 문자형식에 따라 CPM을 지정한다. (기본값: EBCASCUS.cpm) 설정 가능한 CPM 테이블들은 $OFMANAGER_HOME/data/cpm 디렉터리에 존재한다. |
encoding |
OpenFrame Manager의 [Base] 메뉴에서 SPOOL, JCL, Log 등의 파일들을 읽어들여 변환할 때 사용하는 문자 케릭터셋 이름이다. 입력 가능한 값은 Oracle JDK에서 지원하는 인코딩 값과 동일하다. OpenFrame이 설치된 환경과 동일하게 지정한다. 지원하는 인코딩은 'https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html'를 참고한다. (기본값: iso-8859-15) |
ofmanager.module |
OpenFrame Manager에서 사용할 메뉴들을 선택하여 설정한다. 각 메뉴들은 아래 약어로 설정이 가능하고 세미콜론(;)으로 구분하여 여러 개를 설정할 수 있다. 설정된 메뉴는 OpenFrame Manager에서 사용할 수 있도록 보여진다. [Base] 메뉴는 설정과 무관하게 항상 보여진다.
|
NodeList |
Openframe 환경의 노드명을 입력한다. 노드가 복수 개일 경우 각 노드는 세미콜론(;)으로 구분되어야 한다. (기본값: NODE1;NODE2) |
DefaultNode |
OFManager에서 기본으로 사용할 노드를 기재한다. (기본값: NODE1) |
domain.name |
OpenFrame Manager의 도메인 이름을 설정한다. 사이트 환경 등의 이름을 사용자가 자유롭게 설정할 수 있고 메인 화면의 "인포메이션 영역"에 보여진다. |
domain.type |
OpenFrame Manager의 도메인 타입을 설정한다. 애플리케이션을 사용하는 운영 목적에 맞게 이름을 아래 항목 중 선택하여 설정할 수 있고 메인 화면의 왼쪽 상단 타이틀명 영역에 해당 설정명이 보여진다. 단, Prod을 설정할 때에는 타이틀에 Prod가 보이지 않고, OpenFrame Manager만 보여진다.
|
ofmanager.language |
화면의 Textarea의 폰트를 설정한다(예: JCLs 상세 화면). 지정하지 않거나 해당 항목이 없을 경우 기본값으로 출력된다.
|
ofmanager.consoleReplyRefreshInterval |
사용자가 원하는 Interval 기반으로 Console Reply가 Auto-Refresh되는 기능이다.
|
ofmanager.jclSave |
OpenFrame Manager의 [Batch] > [JCLs] > [JCL Details] 에서 JCL을 편집 후 저장을 하기 위한 기능이다.
|
ofmanager.userSpool |
OpenFrame Manager의 [Batch] > [User Spool] 메뉴 사용 여부를 설정한다. [User Spool] 메뉴는 Output class가 W인 Spool 조회가 가능하다. 해당 항목을 설정하지 않은 경우 기본값으로 false가 설정된다. |
ofmanager.userFont |
OpenFrame Manager의 Tmax로부터 전달 되는 text에 대해서 지정한 font 로 출력되도록 설정한다. |
OpenFrame GW의 웹 터미널 설정에 대한 자세한 내용은 OpenFrame GW "운영자 안내서"의 "OpenFrame GW 설정 파일"을 참고한다. |
다음은 설정 예이다.
################################################################################ ##### ##### ##### OpenFrame Manager CONFIGURATIONS ##### ##### ##### ################################################################################ # DB Property ofmanager.datasource = ds_ofm1 # OpenFrame GW Property openframe.webterminal.url = 192.168.105.191:5699/webterminal7 openframe.webterminal.name= ofgw7 # TMAX WebT Property # Tmax Property openframe.tmax.ip=192.168.105.207 openframe.tmax.port=4394 openframe.tmax.connection.groupname=tmax1 openframe.tmax.connection.init=10 openframe.tmax.connection.max=100 openframe.tmax.connection.inc=10 # OS Property openframe.os = msp # CPM Name openframe.cpm.name=EBCASCUS.cpm # Encoding encoding = iso-8859-15 # Menus Property ofmanager.module = BM;TM;OSC; # Node Information openframe.defaultNode=NODE1 openframe.nodelist=NODE1;NODE2; # Domain Property domain.name = OPENFRAME Env. domain.type = development # textarea MS gothic font ofmanager.language=japanese # Auto Refresh Interval in CM > Console > Reply ofmanager.consoleReplyRefreshInterval = 5 # Using UserSpool ofmanager.userSpool=true # Menu Authority Check ofmanager.menuAuthChk=true # OFManager font # recommendation # japanese = MS Gothic # english = HACK, monospace, sans-serif, serif ofmanager.userFont = HACK
1.2. logback.xml
logback.xml에 로그 파일의 파일 포맷 및 로그 레벨을 정의한다.
다음은 속성 파일의 설정 예이다.
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern> [%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSSS}] [OFMANAGER|%-24logger{0}] [%.-1level] %msg%n </pattern> </encoder> </appender> <property name="USER_HOME" value="/home/user/logs" /> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>${USER_HOME}/ofmanager_%d{MM-dd-yyyy}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <!-- or whenever the file size reaches 50MB --> <maxFileSize>300MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- keep 30 days' worth of history --> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern> [%d{yyyy-MM-dd}T%d{HH:mm:ss.SSSSS}] [OFMANAGER|%-24logger{0}] [%.-1level] %msg%n </pattern> </encoder> </appender> <logger name="org.springframework" level="OFF"> </logger> <logger name="com.tmax.ofmanager" additivity="false" level="DEBUG"> <appender-ref ref="ROLLING" /> </logger> <root level="WARN"> <appender-ref ref="ROLLING" /> </root> </configuration>
다음은 속성 파일의 항목에 대한 설명이다.
항목 | 설명 |
---|---|
<configuration> |
scan, scanperiod 항목을 설정하면 동적으로 로그 레벨을 변경할 수 있다. |
<appender> |
LogBack에서 제공하는 형태로 로거 형식을 추가할 수 있다(Event 마다 로그를 기록하는 것이 가능하도록 한다).
|
<property> |
property에 설정한 값은 변수처럼 사용이 가능하다. 이 파일에서 USER_HOME은 로그 파일의 경로(Log File Path)로 사용된다. |
<fileNamepatten> |
로그 파일명의 패턴을 정한다. 기본값은 날짜 형식과 인덱스("%i")가 추가된다. |
<maxFileSize> |
파일 하나당 최대 용량을 설정한다. |
<maxHistory> |
파일의 로그를 남기는 최대 일수를 정한다. 값을 넘어가면 가장 오래된 순으로 자동으로 삭제된다. |
<pattern> |
출력되는 로그의 형식을 설정한다. |
<root> |
로그 레벨을 설정하고 <appender>를 추가하여 해당 로거 형식에 로그 레벨로 출력된다. |
해당 항목은 기본으로 제공하는 항목이며, 운영자가 환경에 맞도록 커스터마이징하여 사용해야 한다. 추가 항목에 대해서는 logback 관련 안내서를 참고한다. |
2. TACF 리소스
OpenFrame Manager에서의 일부 기능은 TACF 권한 인증을 받아 권한에 따라 기능 사용에 제한을 둘 수 있다. 각 리소스들은 OFMANAGR 클래스에 정의하게 될 경우 TACF 권한 인증을 통과한 사용자만 해당 기능을 사용할 수 있다.
OFMANAGR 클래스의 해당 리소스를 정의하지 않을 경우 모든 사용자에게 접근 권한을 허용하게 된다.
리소스 프로파일 | 설명 |
---|---|
LOGIN |
OFMANAGR 클래스에 LOGIN 리소스를 정의할 경우 LOGIN 리소스의 READ 권한이 있는 사용자만 OpenFrame Manager에 로그인할 수 있다. |
ST.OFCONFIG |
OFMANAGR 클래스에 ST.OFCONFIG 리소스를 정의할 경우 ST.OFCONFIG 리소스의 READ 권한이 있는 사용자만 [Config] 메뉴 버튼이 표시된다. |
CM.COMMAND |
OFMANAGR 클래스에 CM.COMMAND 리소스를 정의할 경우 CM.COMMAND 리소스의 READ 권한이 있는 사용자만 [Base] > [Command] 메뉴가 표시된다. |
OM.PGMADMIN |
OFMANAGR 클래스에 OM.PGMADMIN 리소스를 정의할 경우 OM.PGMADMIN 리소스의 READ 권한이 있는 사용자만 [OSC] > [Program Deploy] 메뉴에서 [Add], [Import], [Edit], [Delete] 버튼 사용이 가능하다. |
OM.AIM |
OFMANAGR 클래스에 OM.AIM 리소스를 정의할 경우 OM.AIM 리소스의 READ 권한이 있는 사용자만 [AIM] 메뉴가 표시된다. |
TM.USER |
OFMANAGR 클래스에 TM.USER 리소스를 정의할 경우 TM.USER 리소스의 READ 권한이 있는 사용자만 [TACF] > [Users] 메뉴가 표시된다. ofmanager.menuAuthChk를 false로 설정한 경우에는 [Users] 메뉴에 대한 TACF 권한 체크를 수행하지 않는다. |
TM.GROUP |
OFMANAGR 클래스에 TM.GROUP 리소스를 정의할 경우 TM.GROUP 리소스의 READ 권한이 있는 사용자만 [TACF] > [Groups] 메뉴가 표시된다. ofmanager.menuAuthChk를 false로 설정한 경우에는 [Groups] 메뉴에 대한 TACF 권한 체크를 수행하지 않는다. |
TM.RESOURCE |
OFMANAGR 클래스에 TM.RESOURCE 리소스를 정의할 경우 TM.RESOURCE 리소스의 READ 권한이 있는 사용자만 [TACF] > [General Resources] 메뉴가 표시된다. ofmanager.menuAuthChk를 false로 설정한 경우에는 [General Resources] 메뉴에 대한 TACF 권한 체크를 수행하지 않는다. |
TM.DATASET |
OFMANAGR 클래스에 TM.DATASET 리소스를 정의할 경우 TM.DATASET 리소스의 READ 권한이 있는 사용자만 [TACF] > [Datasets] 메뉴가 표시된다. ofmanager.menuAuthChk를 false로 설정한 경우에는 [Datasets] 메뉴에 대한 TACF 권한 체크를 수행하지 않는다. |
BM.USERSPOOL |
OFMANAGR 클래스에 BM.USERSPOOL 리소스를 정의할 경우 BM.USERSPOOL 리소스의 READ 권한이 있는 사용자만 [Batch] > [User Spool] 메뉴가 표시된다. |
NDB |
OFMANAGR 클래스에 NDB 리소스를 정의할 경우 NDB 리소스의 READ 권한이 있는 사용자만 [NDB] 메뉴가 표시된다. |
리소스 프로파일 권한을 가진 사용자의 해당 메뉴 동작에 대한 자세한 설명은 본 안내서에서 각 기능의 설명을 참고한다. |
3. 멀티 노드 설정
멀티 노드 환경에서 OpenFrame Manager를 운영하기 위해서는 몇 가지 추가 설정이 필요하다. 참고로 같은 도메인에 속한 모든 노드의 Tmax 설정 파일은 동일해야 한다.
다음은 NODE1과 NODE2로 멀티 노드를 구현하는 경우에 대한 설명이다. 멀티 노드 환경에서 OpenFrame Manager를 운영하기 위해 몇몇 서비스는 Tmax의 Data-Driven-Routing 기능을 사용한다. 이때 라우팅에 사용하는 데이터는 노드 이름이다. SERVICE 절은 전체가 아닌 수정되어야 하는 서비스만 나열한다. OSCOIVP1_OMC1 서비스는 OpenFrame OSC가 설치되어 있는 환경에서 필요한 서비스이다.
*ROUTING rt_nodename FIELD = "FIELD/FB_NODENAME", RANGES = "'NODE1':svg_node1,'NODE2':svg_node2,*:svg_node1" *SERVICE OFRUISVRCONFIG SVRNAME = ofruisvr, ROUTING = rt_nodename OFRUISVRRDFILE SVRNAME = ofruisvr, ROUTING = rt_nodename OFRUISVRRDDIR SVRNAME = ofruisvr, ROUTING = rt_nodename OBMJMSVRJDETAIL SVRNAME = obmjmsvr, ROUTING = rt_nodename OBMJINITCHECK SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCTLNODE SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCTLJOB SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITCTLINIT SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITRUN SVRNAME = obmjinit, ROUTING = rt_nodename OBMJINITSTATUS SVRNAME = obmjinit, ROUTING = rt_nodename OSCOIVP1_OMC1 SVRNAME = OSCOIVP1OMC, ROUTING = rt_nodename
멀티 노드 환경에서 TJES를 사용하기 위해서 필요한 설정은 OpenFrame Batch "TJES 안내서"의 "멀티 노드 설정"을 참고한다. |