OpenFrame Batch 시스템 툴

본 장에서는 OpenFrame Batch 시스템에서 사용하는 툴 프로그램 사용법에 대해 기술한다.

1. 개요

다음은 OpenFrame Batch(이하 Batch) 시스템의 운영 편의를 위한 프로그램 목록이다.

프로그램명 설명

dlclean

dlupdate를 한 후에 임시 데이터 셋에 옮겨 놓은 이전 라이브러리들을 삭제한다.

dlupdate

사용자가 만든 라이브러리를 변경할 때 사용한다.

textrun

JOB을 submit하고 JOB의 실행 결과를 보여주는 툴이다.

tjesinit

Batch 시스템에서 JOBQ, OUTPUTQ의 시스템 테이블뿐만 아니라 SPOOL 등을 초기화하기 위해 사용된다.

2. dlclean

dlclean은 dlupdate를 한 후에 임시 데이터 셋에 옮겨 놓은 이전 라이브러리들을 삭제하는 툴이다.

관련 툴 프로그램으로는 dlupdate이 있다.

사용법

dlclean 프로그램을 실행하는 방법은 다음과 같다.

Usage: dlclean datetime(YYYYMMDDHHMISS)
사용예제

OpenFrame 환경설정에 tjes 서브젝트, DYNAMIC_LIBRARY 섹션의 TEMPLIB 키에 기술되어 있는 PDS 항목에 저장되어 있는 이전 라이브러리들 중에 지정한 시간 이전 것들을 모두 삭제한다.

$ dlclean 20191201120000
관련 환경설정

dlclean를 사용할 때 삭제할 라이브러리들이 저장되어 있는 임시 데이터 셋이다.

OpenFrame 환경설정의 tjes 서브젝트, DYNAMIC_LIBRARY 섹션의 TEMPLIB 키에 VALUE 항목을 설정하지 않고 dlclean을 수행하면 에러가 발생한다.

$ ofconfig list -n NODE1 -s tjes -sec DYNAMIC_LIBRARY

===================================================================================
  SUBJECT   |     SECTION      |         KEY         |            VALUE
===================================================================================
    tjes    | DYNAMIC_LIBRARY  |       TEMPLIB       |         SYS1.TEMPLIB
===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame Batch "환경설정 안내서"를 참고한다.

3. dlupdate

dlupdate는 사용자가 만든 라이브러리를 변경하고자 할 때 사용하는 툴이다.

라이브러리의 변경이 필요하지만 기존 라이브러리를 없애버릴 경우 그 라이브러리를 사용 중인 프로그램에 문제가 발생하기 때문에, 기존 라이브러리는 이름을 변경하여 환경 설정에 지정된 PDS에 옮겨두고 신규 라이브러리는 기존 라이브러리가 있던 데이터 셋에 복사하여 새로운 프로그램부터는 신규 라이브러리를 이용할 수 있도록 한다.

관련 툴 프로그램으로는 dlclean이 있다.

사용법

dlupdate 프로그램을 실행하는 방법은 다음과 같다.

Usage: dlupdate source_path dataset_name
  • 입력 항목

    항목 설명

    source_path

    신규 라이브러리 파일의 UNIX 절대 경로를 지정한다. 신규 라이브러리 파일의 이름은 바꾸고자 하는 기존 라이브러리의 이름과 같아야 한다.

    dataset_name

    변경하고자 하는 기존 라이브러리가 들어있는 PDS 이름을 지정한다.

사용예제

다음은 /tmp/libtest.so 라이브러리를 USER.LIB 데이터 셋에 update를 하는 예이다.

$ dlupdate /tmp/libtest.so USER.LIB

USER.LIB에 있는 libtest.so 파일은 libtest.so_YYYYMMDD_HHMISS 형식으로 이름이 변경되어 환경 설정에 지정된 PDS에 옮겨지고 /tmp/libtest.so가 USER.LIB에 복사된다. USER.LIB에 libtest.so가 없으면 /tmp/libtest.so가 USER.LIB에 복사만 된다.

관련 환경설정

dlupdate를 사용할 때 삭제할 라이브러리들이 저장되어 있는 임시 데이터 셋이다.

OpenFrame 환경설정의 tjes 서브젝트, DYNAMIC_LIBRARY 섹션의 TEMPLIB 키에 VALUE 항목을 설정하지 않고 dlupdate을 수행하면 에러가 발생한다.

$ ofconfig list -n NODE1 -s tjes -sec DYNAMIC_LIBRARY

===================================================================================
  SUBJECT   |     SECTION      |         KEY         |            VALUE
===================================================================================
    tjes    | DYNAMIC_LIBRARY  |       TEMPLIB       |         SYS1.TEMPLIB
===================================================================================

OpenFrame 환경설정에 대한 자세한 내용은 OpenFrame Batch "환경설정 안내서"를 참고한다.

4. textrun

textrun은 JOB을 submit하고 JOB의 실행 결과를 보여주는 툴이다. 주로 자동으로 JOB을 실행하고 JOB의 결과에 따라서 다음 JOB을 실행할지 여부를 결정하는 Batch Map에서 사용한다.

사용법

textrun 프로그램을 실행하는 방법은 다음과 같다.

Usage: textrun –jJCL  [-nNodename] [-Cusercatalog] [-oDD[,DD]*] [-eDD[,DD]*]
               [-tSECOND] [-r] [-Rrestart_step] [-Nvalue] [-dODATE] [-q]
               [-iUSERID[GROUPNAME]/PASSWORD]
  • 입력 항목

    항목 설명

    -jJCL

    Submit할 JOB이 기술된 JCL을 지정한다.

    기술방법은 아래와 같다.

    • unit filepath (예: /home/openframe/volume/SYS1.JCLLIB/TEST)

    • dataset(member) (예: SYS1.JCLLIB(TEST) )

    • JCL name (예: TEST)

    JCL name만이 지정된 경우는 OpenFrame 환경설정에 tjes 서브젝트, PROCLIB 섹션의 JCLLIB 키의 VALUE를 참조하여 해당 JCL을 찾는다. 자세한 내용은 OpenFrame Batch "환경설정 안내서"를 참고한다.

    [-nNodename]

    JOB이 실행될 노드를 지정한다.

    [-Cusercatalog]

    데이터 셋이 등록되어 있는 사용자 카탈로그를 지정한다.

    [-oDD[,DD]*]

    주어진 DD들을 SPOOL에서 찾아 stdout으로 기록한다. 옵션을 지정하지 않은 경우 SYSOUT DD를 stdout으로 기록한다.

    [-eDD[,DD]*]

    주어진 DD들을 SPOOL에서 찾아 stderr로 기록한다. 옵션을 지정하지 않은 경우 SYSMSG DD를 stderr로 기록한다.

    [-tSECOND]

    JOB을 실행한 후 JOB의 결과가 나올 때까지 모니터링을 하는 간격을 초 단위로 지정한다. 지정하지 않을 경우 기본 10초마다 모니터링을 한다.

    [-r]

    JOB 실행 종료 후 JOB을 제거한다.

    [-Rrestart_step]

    JOB을 재기동하는 경우 재기동할 스텝을 지정한다.

    [-Nvalue]

    JOB의 상대적인 CPU(중앙처리 장치) 점유 우선순위를 지정한다. value값은 0~20까지의 정수이며, 낮을수록 우선 순위가 높다. 이 값은 I/O의 우선순위와는 관련이 없다. (기본값: 10)

    [-dODATE]

    AUTOEDIT를 사용하는 경우 JOB의 스케줄링 날짜를 mmddyy의 형식으로 지정한다. AUTOEDIT 문법을 사용한다면 반드시 지정해야 한다.

    [-q]

    JESMSG, SYSOUT, SYSMSG의 화면 출력을 원하지 않을 때 지정한다. 이 옵션을 지정할 때에는 -o 옵션과 -e 옵션을 같이 사용할 수 없다.

    [-iUSERID[GROUPNAME]/PASSWORD]

    JOB을 실행시키는 사용자를 지정한다.

    다음은 textrun에 로그인 정보를 제공하는 5가지 방식으로 우선순위가 높은 순으로 나열한 것이다.

    1. 사용자가 -i 옵션으로 입력하는 경우

    2. JCL 내에서 호출되는 프로그램이 SACEE의 정보를 이용하는 경우

      (예: JCL 내의 PGM 파라미터에 의해 본 툴이 호출되거나, 쉘 스크립트 등의 간접적인 방법으로 호출될 경우)

    3. tacflogin 정보를 이용하는 경우

    4. OpenFrame 환경설정에서 가져오는 경우

    5. 사용자의 키보드 입력을 받는 경우

사용예제

다음은 JCL을 submit하는 일반적인 예이다.

$ textrun -jTEST.jcl

다음은 DD1과 DD2의 내용을 stdout으로 출력하는 예이다.

$ textrun -jTEST.jcl -oDD1,DD2

다음은 JOB을 실행한 후 결과를 출력할 때까지의 모니터링 간격을 60초로 설정하는 예이다.

$ textrun -jTEST.jcl -t60

다음은 STEP2부터 JCL을 실행하는 예이다.

$ textrun -jTEST.jcl -RSTEP2

다음은 JOB 실행이 끝난 후 JOB을 삭제하는 예이다.

$ textrun -jTEST.jcl -r

5. tjesinit

tjesinit은 Batch 시스템에서 JOBQ, OUTPUTQ의 시스템 테이블뿐만 아니라 SPOOL 등을 초기화하기 위해 사용되는 툴이다. OpenFrame 시스템 초기화 작업을 담당하는 tjesinit은 시스템을 초기화할 때 다음을 수행한다.

  • JESST 초기화

    시스템 테이블(OFM_BATCH_JESST, OFM_BATCH_JCLSST, OFM_BATCH_NODEST)에 등록된 모든 내용을 삭제하고 OpenFrame 환경설정에 tjes 서브젝트로부터 JOBQ 크기, OUTPUTQ 크기, NODELIST, JOB CLASS 설정 등을 읽어 각각의 시스템 테이블들을 초기화한다.

  • JOBQ 초기화

    OFM_BATCH_JOBQ 시스템 테이블에 등록된 모든 내용을 삭제한다.

  • OUTPUTQ 초기화

    OFM_BATCH_OUTPUTQ 시스템 테이블에 등록된 모든 내용을 삭제한다.

  • SPOOL 초기화

    SPOOL 볼륨 내의 JOB SPOOL 디렉터리 및 파일들을 모두 삭제한다.

먼저, 시스템 테이블(OFM_BATCH_JOBQ, OFM_BATCH_OUTPUTQ, OFM_BATCH_JESST, OFM_BATCH_JCLSST, OFM_BATCH_NODEST)의 내용을 모두 삭제하고 OpenFrame 환경설정에 tjes 서브젝트로부터 JOBQ 크기, OUTPUTQ 크기, NODELIST, JOB CLASS 설정 등을 읽어 OFM_BATCH_JESST, OFM_BATCH_JCLSST, OFM_BATCH_NODEST 시스템 테이블을 초기화하는 순서로 실행된다.

시스템 관리자는 다음의 사항을 확인한 후 tjesinit을 수행한다.

  • DBMS는 기동되어 있어야 한다.

  • OpenFrame 엔진(Tmax)은 기동되지 않은 상태이어야 한다.

  • JOB의 수행내역이 백업되지 않고 삭제된다.

  1. Batch 시스템을 완전히 초기화하기 위해서는 tjesinit 툴을 이용하여 시스템 테이블을 초기화해야 한다.

  2. OpenFrame 환경설정에 tjes 서브젝트에 대한 자세한 내용은 OpenFrame Batch "환경설정 안내서"를 참고한다.

사용법

tjesinit 프로그램을 실행하는 방법은 다음과 같다.

Usage: tjesinit [options]
  • [options]

    항목 설명

    -V

    tjesinit 툴의 버전 정보를 출력한다.

    -i

    tjesinit 툴의 수행 여부를 묻는 메세지 출력 없이 바로 수행한다.

사용예제

다음은 tjesinit 프로그램을 수행하는 예이다. 'Y’를 입력하고 <Enter> 키를 입력하면 Batch 시스템이 초기화 된다.

$ tjesinit
Do you want to execute tjesinit? [Y/N] : Y