개요

본 장에서는 리소스 정의를 소개하고, 리소스 정의를 관리하는 기본 개념인 Group/List에 대하여 설명한다. 그리고 PLT(Program List Table) 및 XLT(Transaction List Table) 등 리소스 컨트롤 테이블 형태로 관리되는 리소스에 대해 설명한다.

1. 리소스 정의

OpenFrame/OSC(이하 OSC) 시스템은 애플리케이션 프로그램이 시스템에서 제공하는 기능들을 사용하고, 기존 IBM CICS Transaction Server(이하 CICS)에서 작동하던 애플리케이션 프로그램을 리호스팅 할 수 있도록 다양한 리소스를 제공한다.

리소스 정의(Resource Definition)는 OSC 시스템에서 어떤 리소스를 사용할 것인지, 리소스의 특징은 무엇인지 그리고 리소스는 어떻게 사용하는지에 대한 정보를 기술한다. 사용자는 OSC 시스템이 제공하는 기능을 사용하기 위해서 프로그램, 트랜잭션 및 터미널 등 시스템 리소스에 대한 정보를 제공해야 한다. 각 리소스는 특징에 따라 설정 항목을 가지기 때문에 사용자는 사용하려는 리소스를 운영 환경에 맞춰 항목을 설정하고, 리소스 정의를 등록하도록 한다.

리소스 정의는 사용자가 제공하는 매크로 스크립트 형식으로 작성된 파일을 oscsdgen 툴을 사용하여 OSC SD(OSC System Definition) 테이블에 등록하는 과정을 거친다. 이렇게 등록된 각 리소스들은 OSC가 기동될 때 RTSD(Runtime System Definition) 테이블에 로딩된다.

OSC 애플리케이션 서버들은 RTSD 테이블에 로딩된 리소스 정의를 바탕으로 운영된다. OSC는 리소스 정의를 OSC SD 테이블에 등록/백업하는 oscsdgen, oscsddump 툴과 RTSD에 로딩된 리소스의 내용을 백업/변경하는 oscrtsddump, oscrtsdupdate 툴을 제공한다. 그리고 OpenFrame Manager[OSC] 메뉴를 통해서 OSC SD, RTSD 테이블 관리가 가능하다.

figure 1 1
리소스 정의 등록 및 관리 구조

OpenFrame Manager[OSC] 메뉴의 자세한 사항은 OpenFrame Manager "사용자 안내서"를 참고한다.

OSC SD 테이블

OSC SD(OSC System Definition)는 OSC 시스템에서 사용하는 리소스 정의들을 저장하는 테이블이다. 운영자는 oscsdgen 툴을 이용하여 리소스 정의 매크로 파일의 내용을 OSC SD 테이블에 저장할 수 있고, OpenFrame Manager[OSC] 메뉴를 이용하여 GUI 기반으로 각 리소스 정의들을 등록할 수도 있다.

OSC는 운영 환경에 따라 애플리케이션 서버마다 서로 다른 OSC SD 테이블을 사용하거나, 여러 애플리케이션 서버에서 하나의 OSC SD 테이블을 사용할 수 있다. 공통으로 OSC SD 테이블을 사용하는 경우 각 애플리케이션 서버에서 사용하는 리소스들은 Group 및 List를 다르게 설정하여 OSC가 기동할 때 해당 리소스들만 RTSD 테이블에 로딩할 수 있다.

OSC SD 테이블 생성에 대한 자세한 정보는 OpenFrame OSC "운영자 안내서"를 참고한다.

RTSD 테이블

RTSD(Runtime System Definition) 테이블에는 OSC 시스템을 기동하면서 OSC SD 테이블에 등록된 리소스 정의를 로딩한다. 애플리케이션 서버는 운영 중에 리소스 정의에 대한 참조를 RTSD 테이블에서 하고, OSC SD 테이블은 애플리케이션 서버가 운영 중에 직접 참조하지 않는다.

멀티노드클러스터링 기능 지원을 위해 RTSD 정보를 DB 테이블에 관리하고 있는데, update가 자주 발생하지 않는 리소스는 Tcache를 사용하여 성능저하를 최소화하도록 설계되었다.

운영자는 OSC에서 제공하는 RTSD 툴 또는 OpenFrame Manager[OSC] 메뉴를 이용하여 RTSD 데이터를 관리할 수 있으며 변경 사항을 실시간으로 애플리케이션 서버에 반영할 수 있다. RTSD에 대한 변경은 시스템에 직접적인 영향을 미치므로 주의해야 한다. 그리고 RTSD의 데이터는 OSC가 종료될 때 리소스 정의가 삭제되기 때문에 이를 영구적으로 반영하기 위해서는 OSC SD 테이블 리소스 정의를 수정해야 한다.

2. Group과 List

OSC SD 테이블에 등록되는 리소스 정의는 GroupList로 구성된다. Group과 List는 애플리케이션 서버가 리소스 정의를 관리하는 단위로 OSC 운영 목적에 맞춰 신중하게 리소스 정의를 작성하도록 한다.

2.1. Group과 List 정의

Group은 관련된 리소스를 편리하게 관리하기 위해서 제공하는 리소스들의 집합이다. 각 리소스들은 Group에 대한 정의없이 OSC SD 테이블에 등록될 수 없으며, 반드시 Group을 정의해야 한다. Group에 포함되는 리소스들의 항목은 사용자가 자유롭게 설정할 수 있으며 같은 리소스들을 한 Group에 정의할 수도 있고, 한 업무에서 사용하는 리소스들을 한 Group에 정의할 수도 있다. OSC 시스템 운영자는 리소스 정의를 관리하기 쉽도록 적절하게 Group을 설정하도록 한다.

List는 OSC 시스템이 기동할 때 RTSD 테이블에 로딩할 Group들의 이름을 포함하고 있다. 따라서 OSC를 기동할 때 운영에 필요한 리소스 정의가 속한 Group들을 List에 설정하도록 한다. Group은 반드시 List에 속할 필요는 없으며 독립적으로 설정할 수 있다.

2.2. Group/List와 리소스 관계

Group은 List에 포함되는 하위 항목으로 관련된 리소스들의 집합을 표현한다. Group을 직접적으로 생성하는 방법은 없으며, 리소스 정의를 할 때 GROUP 옵션을 통해서 생성된다. List는 애플리케이션 서버가 리소스 정의를 관리하는 단위로 목적에 따라 여러 List를 생성할 수 있고, Group들은 여러 List들에 속할 수 있다.

다음은 Group과 리소스의 관계에 대한 예이다. DFHFILE은 OIVPFILE과 TESTFILE을 포함하는 리소스의 집합체이다. 각 리소스는 Group을 단위로 관리된다.

figure 1 2
리소스와 Group의 관계

다음은 DFHLIST, INITLIST, OSCLIST 3개의 List와 그 안에 포함된 Group의 관계에 대한 예이다.

figure 1 3
Group과 List의 관계

왼쪽은 각 List의 관점에서 List에 등록된 Group을 나타낸 것이고, 오른쪽은 각 Group의 관점에서 Group이 등록된 List를 나타낸 것이다. 리소스와 Group의 관계와 함께 리소스, Group, List의 관계를 파악해보면 상위의 List에 여러 Group이 등록되어 있고, Group에 여러 리소스들이 등록된 계층 구조를 가지는 것을 알 수 있다. 예를 들어 OIVPFILE의 경우 DFHLIST-DFHFILE-OIVPFILE의 계층 구조를 가진다.

  1. DFH로 시작하는 Group과 List는 OSC에서 제공하는 것이므로 Group과 List의 이름을 지정할 때 사용하지 않도록 한다.

  2. Group과 List는 동일한 이름을 가질 수 없으므로 다른 이름을 지정하도록 한다.

2.3. GRPLIST

애플리케이션 서버는 환경 설정의 GRPLIST 항목을 참조하여 기동할 때 적절한 List들을 RTSD 테이블에 로딩한다. 운영자는 여러 개의 List를 설정할 수 있으며, 최대 4개까지 가능하다. 이때 각 List에 설정한 Group에 속한 리소스가 중복으로 등록될 경우 나중에 등록되는 리소스가 RTSD 테이블에 로딩된다. 가급적이면 중복되지 않도록 주의하고 만약 이중 등록할 경우 운영자는 원하는 리소스가 순서대로 RTSD 테이블에 로딩될 수 있도록 Group과 List의 순서를 조정한다.

GRPLIST 설정에 대한 자세한 설명은 OpenFrame OSC "환경설정 안내서"의 "SD"를 참고한다.

다음은 GRPLIST에 DFHLIST와 INITLIST, OSCLIST를 순차적으로 설정한 예이다.

GRPLIST=DFHLIST,INITLIST,OSCLIST

다음은 위와 같이 GRPLIST를 설정하였을 때 Group이 구성되는 순서에 대한 예이다.

  1. DFHLIST에 속한 Group의 순서이다.

    DFHFILE
    DFHTDQ
    DFHTSQ
    ...
  2. INITLIST에 속한 Group의 순서이다.

    OIVP
    INITFILE
    INITTDQ
  3. OSCLIST에 속한 Group의 순서이다.

    OIVP
    OSCFILE
  4. GRPLIST에 속한 Group의 순서이다. OSC 애플리케이션 서버가 기동될 때는 DFHFILE에 속한 리소스부터 OSCFILE에 속한 리소스까지 순차적으로 RTSD 테이블에 로딩된다.

    DFHFILE
    DFHTDQ
    DFHTSQ
    ...
    OIVP
    INITFILE
    INITTDQ
    OIVP
    OSCFILE

GRPLIST는 운영자에게 애플리케이션 서버에 사용할 리소스 정의를 설정하는 관리적인 편의를 제공한다. 예를 들어 하나의 OSC SD를 애플리케이션 서버가 사용하는 경우 각 서버마다 개별 List를 생성하여 GRPLIST를 설정하면 해당 리소스를 사용할 수 있고, 번거롭게 애플리케이션 서버마다 OSC SD 리소스 정의를 등록하는 과정을 거치지 않아도 된다. 또한 하나의 List에 모든 리소스들을 관리하는 것이 아니라 OSC 운영 목적에 맞춰 리소스들을 나누어 관리함으로써 유지보수도 효율적으로 할 수 있도록 한다.

3. 리소스 컨트롤 테이블

리소스 컨트롤 테이블(Resource Control Table)은 CICS에서 사용하던 일부 리소스에 대해서 컨트롤 테이블 형태로 기술한 매크로 정의이다.

사용자는 PLT(Program List Table) 매크로 및 XLT(Transaction List Table) 매크로에 대한 정보를 기술할 수 있으며, 각 매크로는 컴파일러를 통해 컴파일된 정보를 OSC 시스템이 로딩하여 고유의 기능을 제공한다. OSC는 리소스 PLT 매크로를 컴파일할 수 있는 oscpltc 툴 및 XLT 매크로를 컴파일할 수 있는 oscxltc 툴을 제공한다.

  • PLT

    PLT(Program List Table)는 프로그램의 리스트를 정리하는 테이블로, OSC Region의 부팅 및 다운 과정에서 실행될 프로그램을 지정하는 데 쓰인다. 각 테이블은 SUFFIX 값으로 구분되며, OpenFrame 환경설정에 osc.{servername} 서브젝트, GENERAL 섹션의 PLTPIPLTSD 항목에 SUFFIX 값으로 테이블을 각각 설정하여 부팅 및 다운 과정에 관여하게 된다.

  • XLT

    XLT(Transaction List Table)는 논리적으로 관련된 트랜잭션들의 목록을 기술한 테이블이다. XLT는 OSC Region의 다운 과정 중 PLT 프로그램의 첫째 stage가 실행되다가 터미널로부터 발생할 수 있는 트랜잭션의 리스트를 설정하는 데 쓰인다. 각 테이블은 SUFFIX 값으로 구분되며, OpenFrame 환경설정에 osc.{servername} 서브젝트, GENERAL 섹션의 XLT 항목에 SUFFIX 값을 지정할 수 있다.

    리소스 컨트롤 테이블의 자세한 내용은 리소스 컨트롤 테이블을 참고한다.