환경설정

TJES를 실행시키기 위해서는 Tmax 환경과 TJES 환경을 사전에 설정해야 한다. 본 절에서는 TJES에서 필요로 하는 각종 환경파일에 대해 기술한다.

1. Tmax 설정

Tmax 서버로 운영되는 OpenFrame에서 TJES를 실행하기 위해서는 Tmax의 설치 및 환경설정은 필수적이다. OpenFrame을 최초 설치하는 경우 Tmax 환경은 자동으로 기본값으로 등록되며, 기본값을 변경하고자 할 경우 다음의 단계로 다시 설정할 수 있다.

  1. Tmax 서버의 구동을 중지한다.

    $ tmdown
  2. "$TMAXDIR/config/XXX.m"의 파일을 열어서 환경을 재설정한다.

  3. 변경한 환경을 적용한다.

    $ cfl -i $TMAXDIR/config/XXX.m
  4. Tmax 서버를 재구동한다.

    $ tmboot

상기 예제에서 XXX.m 환경파일의 변경 방법에 대해서는 "Tmax 설치 안내서"를 참고한다.

1.1. Tmax 서버

TJES의 운영을 위해서 다음의 서버들이 구동되어 있어야 한다.

  • TJES 서버

    서버명 역할

    obmjschd

    JOB 스케줄러

    obmjinit

    JOB Initiator

    obmjmsvr

    JOB 매니저

    obmjhist

    JOB 히스토리

    obmjspbk

    JOB SPOOL 백업

    ofrpmsvr

    프린터 매니저

    obmtsmgr

    TSO 업무 처리

  • TJES 관련 서버

    서버명 역할

    ofrsasvr

    보안 관리

    ofrlhsvr

    Lock handle 할당

    ofruisvr

    사용자 인터페이스 담당 서버

    ofrcmsvr

    콘솔 관리

OpenFrame을 설치하는 경우 TJES 서버와 TJES 관련 서버들은 자동으로 등록된다.

다음은 Tmax 환경에 등록된 TJES 서버의 예제이다.

obmjschd    SVGNAME = svg_domain,MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

obmjinit    SVGNAME = svg_node1,MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

obmjmsvr    SVGNAME = svg_node1,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

obmjhist    SVGNAME = svg_domain, MIN = 1, MAX = 1,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

obmjspbk    SVGNAME = svg_domain,   MIN = 1, MAX = 1,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

ofrpmsvr    SVGNAME = svg_domain,
            MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

obmtsmgr    SVGNAME = svg_domain,   MIN = 1, MAX = 1, SVRTYPE=UCS,
            CLOPT="-o $(SVR)$(DATE).out -e $(SVR)$(DATE).err"

위의 내용 중에 SVGNAME=svg_domain은 전체 노드 중에 한 곳에서만 구동되어야 한다는 것을 의미한다. MIN=1, MAX=1로 되어있는 설정은 하나의 서버만이 구동되어야 함을 의미한다. 따라서 obmjschd의 경우는 전체 노드 중에 한 곳에서만 하나의 서버만으로 구동되고, obmjinit의 경우는 노드마다 하나의 서버만으로 구동된다. 또한, obmjmsvr의 경우는 노드마다 여러 개의 서버들이 구동될 수 있다. 사이트 부하 상황에 맞춰 MIN을 설정해서 사용한다. 주어지지 않으면 MIN=1 이다.

TJES 관련 서버의 설정에 관해서는 OpenFrame Base "Base 안내서"를 참고한다.

상기 서버들을 구동시키고 정상적으로 서버가 구동되고 있는지 확인하는 방법은 다음과 같다.

  • Tmax 서버 구동

    $ tmboot
  • Tmax 서버들의 상태 조회

    $ tmadmin
    $$1 node (tmadm): si

    다음은 Tmax 서버가 정상적으로 동작하고 있는지 결과를 보여주는 화면으로 status가 RDY이면 서버가 구동 중인 상태이고, NRDY이면 서버가 다운된 상태를 나타낸다.

    ------------------------------------------------------------------------
      clh   svrname    (svri)   status     count   qcount   qpcount  emcount
    ------------------------------------------------------------------------
        0   obmjmsvr   (  11)     RDY         0        0       0       0
        0   obmjschd   (  12)     RDY         0        0       0       0
        0   obmjinit   (  13)     RDY         1        0       0       0
        0   obmjhist   (  14)     RDY         0        0       0       0
        0   obmjspbk   (  15)     RDY         0        0       0       0
        0   ofrpmsvr   (  16)     RDY         0        0       0       0
        0   obmtsmgr   (  17)     RDY         0        0       0       0
  • Tmax 서버 구동 중지

    $ tmdown

    tmadmin을 통해 Tmax 서버를 조회한 경우 서버가 NRDY 상태인 경우에는 서버 로그를 통해서 원인을 파악할 수 있다. 서버 로그는 Tmax에서 생성되는 파일로 $TMAXDIR/log/ulog 디렉터리에서 찾아볼 수 있다.

Tmax 관련 내용은 “Tmax Administration Guide”를 참고한다.

1.2. 멀티 노드 설정

TJES를 멀티 노드로 운영하기 위해서는 다음과 같은 몇 가지 추가 설정이 필요하다. 참고로 같은 도메인에 속한 모든 노드의 Tmax 설정파일은 동일해야 한다.

다음은 NODE1과 NODE2로 멀티 노드 TJES를 구현하는 경우에 대한 설명이다.

  1. NODE 추가

    멀티 노드로 설정하고자 하는 모든 노드를 추가해야 한다. 예는 다음과 같다.

    *NODE
    DEFAULT:
        DOMAINNAME = "domofb"
    
    NODE1
        HOSTNAME = "tmaxof1",
        IP = "192.168.1.1",
        TMAXHOME = "$OPENFRAME_HOME/tmax",
        TMAXDIR = "$OPENFRAME_HOME/tmax",
        APPDIR = "$OPENFRAME_HOME/server",
        TLOGDIR = "$OPENFRAME_HOME/tmax/log/tlog",
        ULOGDIR = "$OPENFRAME_HOME/tmax/log/ulog",
        SLOGDIR = "$OPENFRAME_HOME/tmax/log/slog",
        CLHOPT  = " -o $OPENFRAME_HOME/tmax/log/clh.log -e /$OPENFRAME_HOME/tmax/log/clh.err",
        TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450
    
    NODE2
        HOSTNAME = "tmaxof2",
        IP = "192.168.1.2",
        TMAXHOME = "$OPENFRAME_HOME/tmax",
        TMAXDIR = "$OPENFRAME_HOME/tmax",
        APPDIR = "$OPENFRAME_HOME/server",
        TLOGDIR = "$OPENFRAME_HOME/tmax/log/tlog",
        ULOGDIR = "$OPENFRAME_HOME/tmax/log/ulog",
        SLOGDIR = "$OPENFRAME_HOME/tmax/log/slog",
        CLHOPT  = " -o $OPENFRAME_HOME/tmax/log/clh.log -e /$OPENFRAME_HOME/tmax/log/clh.err",
        TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450
  2. SVRGROUP 절 수정

    SVRGROUP 절에 새로운 노드에 해당하는 서버 그룹 추가와 동일한 서버를 구동하기 위한 COUSIN 설정, fail-over를 위한 svg_domain의 BACKUP 설정이 필요하다.

    svg_domain
        NODENAME = "NODE1",BACKUP="svg_domain2"
    svg_domain2
        NODENAME = "NODE2"
    svg_node1
        NODENAME = "NODE1",COUSIN="svg_node2"
    svg_node2
        NODENAME = "NODE2"
  3. ROUTING 절 추가 및 서비스에 ROUTING 명시

    멀티 노드 구성을 위해 몇몇 서비스는 Tmax의 Data-Driven-Routing 기능을 사용한다. 이때 라우팅에 사용하는 데이터는 노드이름이다. SERVICE 절은 전체가 아닌 수정되어야 하는 서비스만 나열한다.

    *ROUTING
    rt_nodename FIELD = "FIELD/FB_NODENAME",
                RANGES = "'NODE1':svg_node1,'NODE2':svg_node2,*:svg_node1"
    
    *SERVICE
    OBMJMSVRJDETAIL SVRNAME = obmjmsvr, 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
    OBMJINITCHECK   SVRNAME = obmjinit, ROUTING = rt_nodename