openframe tjes 안내서 - tmaxsoft · 2019. 4. 9. · openframe 시스템의 vos3 jcl의 문법...

156
OpenFrame TJES 안내서 OpenFrame/Batch for VOS3 2.0 Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

Upload: others

Post on 22-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

OpenFrame

TJES 안내서

OpenFrame/Batch for VOS3 2.0

Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

Page 2: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

Copyright Notice

Copyright © 2009 TmaxSoft Co., Ltd. All Rights Reserved.

대한민국 경기도 성남시 분당구 서현동 263 분당스퀘어(AK프라자) 12층 우)463-824

Restricted Rights Legend

All TmaxSoft Software (Tmax OpenFrame®) and documents are protected by copyright laws and the Protection

Act of Computer Programs, and international convention. TmaxSoft software and documents are made available

under the terms of the TmaxSoft License Agreement and may only be used or copied in accordance with the terms

of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or

by any means, electronic, mechanical, or optical, without the prior written consent of TmaxSoft Co., Ltd.

이 소프트웨어(Tmax OpenFrame®) 사용설명서의 내용과 프로그램은 저작권법, 컴퓨터프로그램보호법 및 국제

조약에 의해서 보호받고 있습니다. 사용설명서의 내용과 여기에 설명된 프로그램은 TmaxSoft Co., Ltd.와의 사용

권 계약 하에서만 사용이 가능하며, 사용권 계약을 준수하는 경우에만 사용 또는 복제할 수 있습니다. 이 사용설명

서의 전부 또는 일부분을 Tmaxsoft의 사전 서면 동의 없이 전자, 기계, 녹음 등의 수단을 사용하여 전송, 복제, 배

포, 2차적 저작물작성 등의 행위를 하여서는 안 됩니다.

Trademarks

Tmax® and Tmax OpenFrame®are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services

may be registered trademarks of their respective companies.

Tmax®와 Tmax OpenFrame®은 TmaxSoft Co., Ltd.의 등록 상표입니다. 기타 모든 제품들과 회사 이름은 각각 해

당 소유주의 상표로서 참조용으로만 사용됩니다.

Open Source Software Notice

This product includes open source software developed and/or licensed by "OpenSSL", "RSA Data Security, Inc.",

"Apache Foundation", and "Jean-loup Gailly and Mark Adler". Information about the aforementioned and the related

open source software can be found in the "${INSTALL_PATH}/license/oss_licenses" directory.

본 제품은 “OpenSSL”, “RSA Data Security, Inc.”, “Apache Foundation” 및 “Jean-loup Gailly와 Mark Adler”에 의

해 개발 또는 라이선스된 오픈 소스 소프트웨어를 포함합니다. 관련 상세 정보는 제품의 디렉터리 “${IN

STALL_PATH}/license/oss_licenses”에 기재된 사항을 참고해 주십시오.

안내서 정보

안내서 제목: OpenFrame TJES 안내서

발행일: 2009-10-30

소프트웨어 버전: OpenFrame/Batch for VOS3 2.0

안내서 버전: v2.1.1

Page 3: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

내용 목차

안내서에 대하여 ........................................................................................................................... ix

제1장 TJES 개요 ........................................................................................................................ 1

1.1. 특징 ........................................................................................................................... 16

1.2. 구성요소 ...................................................................................................................... 3

1.3. 멀티 노드 TJES 구성 .................................................................................................... 6

1.4. TJES 부트와 다운 ........................................................................................................ 7

1.4.1. 부트 .................................................................................................................. 7

1.4.2. WarmBoot와 ColdBoot ....................................................................................... 7

1.4.3. Shutdown .......................................................................................................... 8

1.5. TJES 시스템 데이터 셋 ................................................................................................. 9

제2장 JOB의 관리 .................................................................................................................... 13

2.1. JOB 상태 ................................................................................................................... 16

2.1.1. 명령어를 통한 JOB의 상태 변경 ........................................................................ 15

2.2. JCL의 관리 ................................................................................................................ 16

2.3. JOB의 처리단계 ......................................................................................................... 17

2.3.1. Submit 단계 .................................................................................................... 17

2.3.2. Schedule 단계 ................................................................................................. 19

2.3.3. Execution 단계 ................................................................................................ 21

2.3.4. Output 단계 ..................................................................................................... 22

2.3.5. Remove 단계 ................................................................................................... 22

2.4. JOB의 조회 ................................................................................................................ 22

2.5. 로그 ........................................................................................................................... 23

2.5.1. Submit 로그 .................................................................................................... 23

2.5.2. JOB 로그 ........................................................................................................ 23

2.6. JOB의 백업 ................................................................................................................ 26

2.7. JOB EXIT CODE ........................................................................................................ 26

2.7.1. STEP EXIT CODE ........................................................................................... 26

2.7.2. JOB EXIT CODE ............................................................................................. 27

제3장 JOB Execution ............................................................................................................... 29

3.1. JOB 실행 ................................................................................................................... 29

3.1.1. 실행 초기화 ..................................................................................................... 30

3.1.2. 입력 JCL 파싱 ................................................................................................. 32

3.1.3. 실행 과정 ........................................................................................................ 33

3.1.4. 프로그램 실행 .................................................................................................. 34

3.1.5. 프로시저 실행 .................................................................................................. 37

3.1.6. DD 처리 .......................................................................................................... 37

3.1.7. 스페셜 DD ....................................................................................................... 38

3.1.8. JOB SPOOL .................................................................................................... 40

3.1.9. JOB Control .................................................................................................... 43

OpenFrame iii

Page 4: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

3.1.10. JOB Level Report .......................................................................................... 44

3.1.11. STEP Level Report ........................................................................................ 44

3.1.12. 보안 .............................................................................................................. 45

3.1.13. tjclrun 호출 .................................................................................................... 48

3.1.14. NICE를 통한 PERFORM 처리 ......................................................................... 49

제4장 SPOOL ........................................................................................................................... 51

4.1. SPOOL BACKUP ....................................................................................................... 51

4.2. SPOOL 데이터 셋 ....................................................................................................... 51

제5장 OUTPUT Processing ...................................................................................................... 61

5.1. OUTPUT .................................................................................................................... 61

5.2. OUTPUT 처리 ............................................................................................................ 61

5.2.1. OUTPUT CLASS ............................................................................................. 61

5.2.2. OUTPUT DISPOSITION .................................................................................. 62

제6장 TJESMGR 명령어 ........................................................................................................... 65

6.1. JOB 실행 명령어 ...................................................................................................... 126

6.1.1. RUN ............................................................................................................... 66

6.1.2. START ............................................................................................................ 66

6.1.3. HOLD ............................................................................................................. 67

6.1.4. SUSPEND ...................................................................................................... 67

6.1.5. RESUME ........................................................................................................ 67

6.1.6. STOP ............................................................................................................. 67

6.1.7. REMOVE ........................................................................................................ 67

6.1.8. CANCEL ......................................................................................................... 68

6.1.9. NICE .............................................................................................................. 68

6.1.10. OUTQUEUEPURGE ...................................................................................... 68

6.1.11. INQUEUECLASS .......................................................................................... 68

6.2. JOB/OUTPUT 명령어 ................................................................................................. 69

6.2.1. PS (Print Screen) ............................................................................................ 69

6.2.2. PSJOB (Print Screen JOB detail information) .................................................... 69

6.2.3. PSIO (Print Screen Input/Output information) .................................................... 71

6.2.4. PO (Print Output status) ................................................................................... 72

6.2.5. POLIST (Print Output detail LIST) ..................................................................... 72

6.2.6. POJOB (Print Output of JOB) ........................................................................... 73

6.2.7. POSPOOL (Print Output SPOOL of JOB) .......................................................... 74

6.2.8. PODD (Print Output DD Information) ................................................................ 75

6.2.9. PSHISTORY (Print Screen of JOB History) ....................................................... 75

6.3. INITIATOR 명령어 ...................................................................................................... 76

6.3.1. BOOT ............................................................................................................. 76

6.3.2. SHUTDOWN ................................................................................................... 76

6.3.3. NODECLEAR .................................................................................................. 77

6.3.4. NODESTATUS (NODEST) ............................................................................... 77

6.3.5. JCLRUNACTIVE (RA) / JCLRUNINACTIVE (RI) ................................................ 77

iv OpenFrame TJES 안내서

Page 5: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.3.6. JCLRUNCLASS(RC) ....................................................................................... 78

6.3.7. PSCLASS(PSC) .............................................................................................. 79

6.3.8. SHOWCLASS(SC) .......................................................................................... 79

6.3.9. CHANGECLASS(CC) ...................................................................................... 79

6.3.10. PSJCLRUN (PSR) ......................................................................................... 80

6.4. 데이터 셋 명령어 ........................................................................................................ 81

6.4.1. PSCATALOG (PSCAT) ..................................................................................... 81

6.4.2. SETCATALOG (SETCAT) ................................................................................. 82

6.4.3. PSDATASET(PSDS) ........................................................................................ 83

6.4.4. PSENTRY(PSENT) .......................................................................................... 85

6.4.5. DATASETLIST (DSLIST) .................................................................................. 85

6.4.6. DATASETCREATE (DSCREATE) ...................................................................... 86

6.4.7. DATASETCOPY (DSCOPY) ............................................................................. 87

6.4.8. DATASETMOVE (DSMOVE) ............................................................................. 88

6.4.9. DATASETDELETE (DSDELETE) ...................................................................... 88

6.4.10. DATASETRECATALOG (DSRECAT) ................................................................ 89

6.4.11. DATASETUNCATALOG (DSUNCAT) ............................................................... 90

6.4.12. DATASETIMPORT (DSIMPORT) ..................................................................... 90

6.4.13. DATASETEXPORT (DSEXPORT) ................................................................... 91

6.4.14. DATATOUCH (DSTOUCH) .............................................................................. 91

6.4.15. GDGCREATE ................................................................................................ 92

6.4.16. GDGDELETE ................................................................................................ 92

6.4.17. PSLOCK (PSL) .............................................................................................. 93

6.4.18. LOCKCLEAR ................................................................................................ 94

6.4.19. PSVOLUME (PSV) ........................................................................................ 94

6.5. SPOOL 백업 명령어 ................................................................................................... 95

6.5.1. SPOOLBACKUP (SPBA) ................................................................................. 95

6.5.2. SPOOLBACKUPLIST (SPBL) ........................................................................... 96

6.5.3. SPOOLPS (SPPS) .......................................................................................... 96

6.5.4. SPOOLRESTORE (SPRE) ............................................................................... 97

6.5.5. SPOOLCLEAR (SPCL) .................................................................................... 97

6.5.6. SPOOLPSJOB (SPPSJ) .................................................................................. 98

6.5.7. SPOOLPSIO (SPPSIO) ................................................................................... 98

6.5.8. SPOOLPODD (SPPODD) ................................................................................ 98

6.5.9. SPOOLPOSPOOL (SPPOSPOOL) ................................................................... 99

6.6. 기타 명령어 ................................................................................................................ 99

6.6.1. PSPRINT (PSP) .............................................................................................. 99

6.6.2. CLS .............................................................................................................. 100

6.6.3. EDIT ............................................................................................................. 100

6.6.4. VERSION ...................................................................................................... 100

6.6.5. HELP ............................................................................................................ 101

6.6.6. LICENSE ...................................................................................................... 101

6.6.7. ERROR ......................................................................................................... 101

OpenFrame v

Page 6: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.6.8. CURRENTUSER ........................................................................................... 101

6.6.9. SWITCHUSER .............................................................................................. 102

6.7. JSS3 관련 명령어 ..................................................................................................... 102

6.7.1. SETNET (SN) ................................................................................................ 102

6.7.2. DISPLAYNETLIST (DNL) ............................................................................... 104

제7장 환경설정 ....................................................................................................................... 107

7.1. Tmax 설정 ............................................................................................................... 126

7.1.1. Tmax 서버 ..................................................................................................... 107

7.1.2. 멀티 노드 설정 ............................................................................................... 110

7.2. TJES 설정 ................................................................................................................ 112

7.2.1. OpenFrame 환경 파일 형식 ............................................................................ 112

7.2.2. TJES 환경 파일 ............................................................................................. 112

7.3. TJESMGR 설정 ........................................................................................................ 126

7.4. OUTPUT 설정 .......................................................................................................... 126

7.5. TJCLRUN 설정 ......................................................................................................... 127

7.6. Return Code 설정 ..................................................................................................... 135

색인 .......................................................................................................................................... 137

vi OpenFrame TJES 안내서

Page 7: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

그림 목차

[그림 1.1] TJES 구성요소 ............................................................................................................ 3

[그림 1.2] 멀티 노드 환경 ............................................................................................................. 6

[그림 2.1] JOB 상태 흐름도 ........................................................................................................ 13

OpenFrame vii

Page 8: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 9: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

안내서에 대하여

안내서의 대상

본 안내서는 리호스팅 솔루션인 Tmax OpenFrame®(이하 OpenFrame)/Batch 시스템의 엔진 역할을 수행

하는 TJES를 통해 JOB을 실행하고 관리하는 사용자를 대상으로 기술한다. 본 안내서에서는 JOB을 관리

하고 실행하는 단계, SPOOL 관리, OUTPUT 처리단계 등에 대하여 기술하고 TJES를 운영할 때 유용한

명령어와 로그 및 에러 처리방법, TJES 관련 환경설정에 대하여 기술한다.

안내서의 전제 조건본 안내서를 정확히 사용하려면 OpenFrame/Batch의 개념을 이해하고 있어야 한다. OpenFrame/Batch에

대한 이해를 돕기 위해 “OpenFrame Batch 안내서”를 먼저 숙지할 것을 권장한다.

안내서에 대하여 ix

Page 10: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

안내서 구성

TJES 안내서는 총 7개의 장으로 구성되어 있다.

각 장의 주요 내용은 다음과 같다.

● 제1장: TJES 개요

TJES의 특징, 구성요소, 멀티 노드 TJES 구성, TJES 시스템 부트와 다운방식 그리고 TJES 시스템 데

이터 셋에 대해 기술한다.

● 제2장: JOB의 관리

JOB 상태와 상태 변경, Class 개요, JCL 관리, JOB 처리단계, JOB 조회 방법, JOB 로그, JOB 백업방법

및 JOB의 EXIT CODE에 대해 기술한다.

● 제3장: JOB Execution

실제로 JOB을 실행하는 Runner인 tjclrun의 동작방식과 기능에 대해 기술한다. 또한 JCL Parsing, JOB

실행과 JOB 실행의 산출물 등에 대한 설명을 포함한다.

● 제4장: SPOOL

SPOOL 데이터 셋과 SPOOL 백업방법에 대해 기술한다.

● 제5장: OUTPUT Processing

OUTPUT 개요, OUTPUT 처리방식에 대해 기술한다.

● 제6장: TJESMGR 명령어

JOB 실행 명령어, JOB/OUTPUT 명령어, INITIATOR 명령어, 데이터 셋 명령어, SPOOL 백업 명령어와

기타 TJESMGR 명령어에 대해 기술한다.

● 제7장: 환경설정

TJES에서 필요로 하는 각종 환경파일에 대해 기술한다.

x OpenFrame TJES 안내서

Page 11: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

안내서 규약

내용표기

명령어,명령어 수행 후 화면에 출력된 결과물, 예제코드AaBbCc123

참조 또는 주의사항참고

필수 인수 값{ }

옵션 인수 값[ ]

선택 인수 값|

다른 관련 안내서 언급 또는 안내서 내의 다른 장 및 절 언급" "(따옴표)

메일 계정, 웹 사이트, 다른 장 및 절 참고하이퍼링크

강조진하게

프로그램 소스 코드의 파일명, 디렉터리 이름<AaBbCc123>

명령어 프롬프트$

파라미터 구분자; (세미콜론), : (콜론)

사용자 정의 인수값이탤릭체

그림 이름[그림 1.1]

표 이름[표 1.1]

안내서에 대하여 xi

Page 12: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

시스템 사용 환경

요구 사항

IBM AIX 5.xPlatform

HP-UX 11.xx

Solaris 9 (SunOS 5.9)

Linux IA64 2.6.x

최소 120MB 하드디스크 공간Hardware

256MB 이상 메모리 공간

1GB 이상 하드디스크와 512MB 이상 메모리 공간 권장

Tibero 3.0Database

Oracle 9i 또는 10g

COBOL2002Compiler

OpenFrame/BatchOpenFrame 제품군

xii OpenFrame TJES 안내서

Page 13: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

관련 안내서

설명안내서

제품의 설치와 환경 설정에 대한 부분을 기술한 안내서이다.OpenFrame

Batch 설치 안내서

OpenFrame/Batch를 구성하는 전반적인 기능에 대해 기술한 안내서이

다.

OpenFrame

Batch 안내서

OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해

서 기술한 안내서이다.

OpenFrame

JCL 문법 안내서

OpenFrame/Base를 구성하는 전반적인 기능에 대해 기술한 안내서이

다.

OpenFrame

Base 안내서

TACF에 대한 기능과 구조, 사용자와 그룹 연결, 리소스와 데이터 셋에

대한 인증과 권한 및 다양한 TACF의 명령어에 대해 기술한 안내서이다.

OpenFrame

TACF 운영자 안내서

OpenFrame 데이터 셋에 대한 소개와 데이터 셋 종류 및 카탈로그 방법

등에 대해 기술한 안내서이다.

OpenFrame

데이터 셋 안내서

OpenFrame 엔진과 함께 제공되는 다양한 유틸리티 프로그램에 대해

기술된 안내서이다.

OpenFrame

유틸리티 참조 안내서

OpenFrame 제품을 사용 중에 발생할 수 있는 에러에 대한 정보 및 에

러 대응방법이 기술된 안내서이다.

OpenFrame

에러 메시지 참조 안내서

OpenFrame 시스템을 운용하는데 사용하는 다양한 툴 프로그램에 대해

기술된 안내서이다.

OpenFrame

툴 참조 안내서

참고 문헌

안내서제품

VOS3 JOB제어언어 문법서 6190-3-144-E0Mainframe

VOS3 JOB관리 해설서 6190-3-140-A0

VOS3 시스템조작 - JSS3편 6190-3-101-F0

안내서에 대하여 xiii

Page 14: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

안내서제품

Tmax 관리자 안내서Tmax

Tmax 설치 안내서

xiv OpenFrame TJES 안내서

Page 15: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

연락처

Korea

TmaxSoft Co., Ltd

263 BundangSquare (AK Plaza) 12th floor, Seohyeon-dong, Bundang-gu,

Seongnam-si, Gyeonggi-do, 463-824

South Korea

Tel: +82-31-8018-1000

Fax: +82-31-8018-1115

Email: [email protected]

Web (Korean): http://www.tmax.co.kr

기술지원: http://technet.tmaxsoft.com

USA

TmaxSoft, Inc.

560 Sylvan Avenue Englewood Cliffs, NJ 07632

U.S.A

Tel: +1-201-567-8266

Fax: +1-201-567-7339

Email: [email protected]

Web (English): http://www.tmaxsoft.com

Japan

TmaxSoft Japan Co., Ltd.

5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073

Japan

Tel: +81-3-5765-2550

Fax: +81-3-5765-2567

Email: [email protected]

Web (Japanese): http://www.tmaxsoft.co.jp

안내서에 대하여 xv

Page 16: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

China

TmaxSoft China Co., Ltd.

Beijing Silver Tower, RM 1508, 2# North Rd Dong San Huan,

Chaoyang District, Beijing, China, 100027

China

Tel: +86-10-6410-6145~8

Fax: +86-10-6410-6144

Email: [email protected]

Web (Chinese): http://www.tmaxsoft.com.cn

xvi OpenFrame TJES 안내서

Page 17: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제1장 TJES 개요

OpenFrame TJES(이하 TJES)는 Tmax Job Entry Subsystem의 약자로, Mainframe의 JES에 대응하는

OpenFrame 시스템의 Batch JOB 관리 모듈이다. TJES는 멀티 노드 구성과 자동화된 에러 복구 지원을

위해 TmaxSoft의 TP-Monitor 제품인 Tmax에 구현되었다.

TJES는 JCL과 JOB 실행 및 관리를 UNIX에서 Mainframe과 가장 유사하게 지원하는 Batch 처리 솔루션

이다. 또한 검증된 미들웨어를 이용한 멀티노드 클러스터링을 통해 UNIX 시스템의 성능 한계를 뛰어넘어,

대단위 Mainframe도 문제없이 안정적으로 리호스팅할 수 있는 뛰어난 확장성을 제공한다.

TJES는 JCL을 통해 사용자로부터 JOB을 받아들이고, 이를 시스템의 자원 상황에 맞춰 스케줄링하여

Runner를 통해 수행하고, JOB의 수행 결과를 프린트하며, JOB의 수행상황을 조회하는 등 OpenFrame에

서 일어나는 JOB에 관한 모든 수행을 관장한다.

TJES의 가장 중요한 역할과 특성은 다음과 같다.

● JCL을 통해 JOB을 submit 받는다.

– Mainframe 과 동일한 JCL 문법 지원

– CONTROL-M 등 외부 스케줄러와 연동 지원

– 인터널 리더(Internal Reader) 지원

● submit된 JOB을 스케줄링한다.

– Mainframe JES 의 스케줄링 원칙과 동일하게 스케줄링

– 멀티노드 스케줄링 지원

● JOB의 OUTPUT을 처리한다.

– IBM 프린트 포맷을 지원하는 INFOPRINT 지원

본 안내서에서는 JOB을 관리하고 실행하는 단계, SPOOL 관리, OUTPUT 처리단계 등에 대하여 기술하

고 TJES를 운영할 때 유용한 명령어와 로그 및 에러 처리방법, TJES 관련 환경설정에 대하여 기술한다.

제1장 TJES 개요 1

Page 18: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

1.1. 특징TJES는 Mainframe의 Batch 프로그램(유틸리티, COBOL 프로그램, PL/I 프로그램)을 구동할 수 있는 것

이외에도, 기본적으로 UNIX 셸 스크립트, C 프로그램 등 UNIX에서 실행 가능한 모든 프로그램을 구동할

수 있다.

UNIX에서 셸 스크립트와 cron을 통해 Batch 처리할 경우에는 체계화된 JOB 스케줄링 및 관리의 부재 그

리고 리소스 통제 미비로 인해 어려움을 겪기 쉽다.

따라서 TJES는 다음의 사항을 통해 체계적인 Batch 시스템을 제공한다.

● JOB 속성과 Runner 등 시스템 자원 상황에 따른 스케줄링

● Runner Slot 개수 제한으로 동시에 수행될 수 있는 Batch JOB의 개수 제어

● JOB의 진행 사항 및 결과 확인

● JOB의 속성 변경 및 일시 정지, 재개, 중단 등의 제어

● OUTPUT 관리

● 데이터 셋 Lock을 통한 데이터 무결성 보장

● TACF를 통한 보안성 향상

2 OpenFrame TJES 안내서

Page 19: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

1.2. 구성요소TJES는 다음의 그림과 같이 구성된다.

[그림 1.1] TJES 구성요소

TJES 컴포넌트

● obmjmsvr

JOB 관리 서버이다. TJES의 JOB과 OUTPUT의 관리 및 조회를 담당하는 서버이다.

● obmjschd

JOB 스케줄러이다. obmjschd는 TJES 전체 도메인에서 한 개만 기동되는 서버로 TJES의 JOB 스케줄

링을 주로 담당하고 이외에 JOBID 발급과 각 노드의 부트상태를 관리한다.

● obmjinit

Runner와 Runner Slot을 관리하는 서버이다. obmjinit는 TJES의 각 노드마다 1개씩 기동되는 서버로,

자기 노드에 할당된 Runner와 Runner Slot를 관리하고 JOB을 Runner에 할당하는 역할을 담당한다.

● obmjhist

JOB 히스토리 서버이다. TJES 전체 도메인에서 1개만 기동되는 서버로 JOB의 상태를 변경하는 모든

액션에 대한 정보를 저장하는 서버이다.

제1장 TJES 개요 3

Page 20: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

● obmjspbk

SPOOL 백업 서버이다. TJES 전체 도메인에서 1개의 노드에서만 기동되어야 하는 서버로 실행이 종료

된 JOB을 TJES에서 제거하면서 해당 JOB의 SPOOL을 별도의 저장소로 백업하고 이후 조회하는 기능

을 제공한다. 백업된 SPOOL은 TJES 상에서와 동일한 형태로 조회가 가능하다.

● tjclrun

JCL을 통해 실제로 JOB 을 구동하는 모듈이다. JCL에 기술된 하나의 JOB을 STEP 순서대로 실행한다.

● ofrpmsvr

프린터 관리 서버이다. TJES 전체 도메인에서 1개만 기동되는 서버로 OUTPUTQ에 등록된 OUTPUT

을 조건에 맞는 프린터로 출력한다.

OpenFrame 기타 제품

● Base

OpenFrame이 구동되기 위해 필수적으로 필요한 제품이다. OpenFrame/Base는 NVSM, TSAM 등의 데

이터 셋 지원, 카탈로그 관리, 데이터 셋 Lock 관리 등을 지원한다.

참고

OpenFrame/Base에 대한 자세한 내용은 OpenFrame 안내서 중 "Base 안내서"를 참고한다.

● TACF

OpenFrame의 보안을 담당하는 제품이다. OpenFrame TJES는 OpenFrame/TACF와 연동되어야 사용

자 인증이나 데이터 셋, JOB 이름 등의 자원에 대한 권한 체크등의 강력한 보안 기능을 사용할 수 있다.

참고

OpenFrame/TACF에 대한 자세한 내용은 OpenFrame 안내서 중 "TACF 안내서"를 참고한다.

TJES 사용 자원

– Runner Slot

Runner Slot은 Runner의 운용 정보를 저장하고 있는 영역으로 Runner 1개당 1 개의 Runner Slot 이 할

당된다. Runner와 obmjinit 사이의 데이터 교환 창구로 사용된다. Runner Slot은 obmjinit 이 정상적으로

기동될 때 생성되며 obmjinit이 정상적으로 종료될 때 제거된다. UNIX의 Shared Memory로 구현하였으

므로 필요할 때 기타 UNIX Shared Memory와 동일한 방식으로 관리할 수 있다.

4 OpenFrame TJES 안내서

Page 21: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

– SPOOL

TJES가 사용하는 특별한 데이터 셋이다. JOB 구동에 필요한 자원이나 JOB의 진행상황과 결과를 저장

하기 위해 사용한다. JOB을 submit할 때 JOBID와 동일한 이름으로 디렉터리를 생성하여 이 디렉터리

의 하위 공간을 사용한다.

JOB SPOOL은 REMOVE나 CANCEL 명령이 실행되면 삭제된다.

– TJES 시스템 데이터 셋

TJES가 내부 정보 저장을 위해 사용하는 시스템 데이터 셋이다. JOBQ, JESST, OUTPUTQ가 있다.

참고

자세한 내용은 “1.5. TJES 시스템 데이터 셋”을 참조한다.

Interface

● textrun

OpenFrame 제품이 아닌, 3rd party 스케줄러에서 TJES에 JOB을 submit하고, 진행 상황과 결과를 모니

터링할 수 있는 모듈이다. UNIX 상의 3rd party 스케줄러들은 JOB의 시작과 끝을 프로세스의 시작과 종

료로 구분한다. 따라서 textrun은 자신이 submit한 JOB이 끝날 때까지 종료되지 않고 계속 실행 중에 있

다가 JOB이 종료되면 그 결과를 반환하고 종료한다.

● tjesmgr

시스템 관리자를 대상으로 하는 명령어 기반의 사용자 인터페이스이다. BOOT와 SHUTDOWN 명령을

포함한 TJES의 모든 기능을 사용할 수 있다.

● OpenStudio

일반 사용자를 대상으로 하는 GUI 기반의 사용자 인터페이스이다. TJES 시스템을 Boot, Shutdown하

는 등의 TJES 관리기능을 제외한, JOB을 submit하고 조회 및 관리하는 기능을 제공한다.

외부 제품

● External Scheduler

TJES는 JOB CLASS와 priority에 따른 스케줄링만을 제공하며, JOB A의 수행 종료 후 JOB B의 수행

등 JOB간의 상관관계에 따른 스케줄링을 지원하지 않는다. 이런 상관관계에 따른 스케줄링이나 일간,

주간, 월간 배치 등 자동화된 JOB submit을 위해서 External Scheduler가 사용된다. Control-m, A-Auto

등이 있다.

제1장 TJES 개요 5

Page 22: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

1.3. 멀티 노드 TJES 구성TJES는 JOB의 처리 성능을 높이거나 서비스 가용성을 높이기 위해 여러 대의 UNIX 머신을 하나의 머신

처럼 사용할 수 있는 멀티 노드 환경을 지원한다.

이번 절에서는 TJES를 멀티 노드로 구성할 때 각 컴포넌트들이 어떻게 배치되어 동작하는지에 대해서 설

명한다.

다음 그림은 2개의 노드로 TJES를 구성했을 때의 컴포넌트 다이어그램이다.

[그림 1.2] 멀티 노드 환경

멀티 노드로 TJES를 구성하기 위해서는 SPOOL, DATA SET, TSAM 등의 데이터 저장소가 공유되어 있

어야 한다. TJES는 공유된 자원을 통해 여러 노드에서 같은 데이터 셋을 이용하거나, 다른 노드에서 구동

된 JOB의 결과를 확인하는 등의 작업을 하나의 TJES 이미지로 사용자에게 서비스하게 된다.

점선으로 표시된 ofrlmsvr, ofrsasvr, ofrpmsvr, obmjschd, obmjhist, obmjspbk는 전체 도메인에서 동시에

1개만 존재할 수 있는 Tmax 서버이다.

만약 NODE1에 문제가 발생하여 이 서버들을 더 이상 서비스할 수 없을 경우(failover) Tmax에 의해 자동

으로 NODE2를 기동시킴으로써 서비스 가용성을 높일 수 있다.

점선 박스 외의 영역에 존재하는 Tmax 서버인 obmjmsvr, ofruisvr, obmjinit는 멀티 노드 서비스를 제공하

기 위해 각 노드에 1개 이상 존재해야 하며, 그 중 obmjinit는 각 노드에 1개만 존재해야 한다.

tjclrun은 요구-응답방식(on-demand)으로 구동되는 프로세스이므로 각 노드마다 현재 실행(working)중인

JOB의 개수만큼 존재하고, 실행 중인 JOB이 없다면 존재하지 않는다.

6 OpenFrame TJES 안내서

Page 23: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

obmjinit와 tjclrun 사이에서 정보전달 창구역할을 담당하는 TJES Shared Memory는 obmjinit가 정상적으

로 기동될 때 생성되고, 정상적으로 종료될 때 삭제된다.

외부 U/I에 해당하는 textrun, OpenStudio, tjesmgr는 Tmax를 통해 어떤 노드에도 연결될 수 있다.

1.4. TJES 부트와 다운

부트(Boot)는 TJES가 JOB을 수행할 수 있는 상태이며, 다운(Down)은 TJES가 더 이상 JOB을 실행할 수

없는 상태이다.

시스템 관리자는 tjesmgr의 노드 명령어 중 BOOT와 SHUTDOWN 명령어를 통해 이를 제어할 수 있다.

참고

자세한 사용방법은 “6.3. INITIATOR 명령어”에서 “6.3.1. BOOT”와 “6.3.2. SHUTDOWN”을 참고한

다.

1.4.1. 부트

부트는 TJES가 다운되어 있는 상태에서만 동작하며, 이미 부트되어 있는 상태라면 BOOT 명령은 무시된

다. 부트는 TJES의 각 노드에서 자신의 Runner Slot 상태를 사용할 수 있는 상태로 초기화한 후, TJES의

obmjschd에게 Runner Slot의 현재 상태를 보고하여 JOB이 스케줄링될 수 있도록 한다.

TJES가 성공적으로 부트되었다면 SYS1.JESST 시스템 데이터 셋에 해당 노드가 부트되었음을 기록된

다. 이후 DB 연결 실패 등과 같은 장애(disaster) 발생으로 인한 TJES 자동복구절차에서 부트상태를 유지

할 수 있도록 한다.

멀티 노드 TJES 환경에서는 TJES가 부트될 때, TJES 전체 도메인에 속한 모든 노드에 BOOT 명령을 전

달하게 된다. 그리고 멀티 노드 환경에서도 개별 노드 별로 부트하는 방법을 제공한다.

부트될 때 해당 노드의 Runner Slot 상태는 Downed에서 다운되기 전의 Active 또는 Inactive 상태로 복구

되고, 부트된 적이 없다면 tjes.conf 설정파일의 [INITDEF]섹션에 설정된 기본상태로 복구된다.

1.4.2. WarmBoot와 ColdBoot

● WarmBoot

시스템을 초기화한 후 운영 중에 사용하는 일반적인 부트이다. TJES Shared Memory를 초기화하고, 스

케줄러에게 Runner Slot의 현재 상태 정보를 보고하여 JOB 스케줄링이 일어날 수 있도록 한다. tjesmgr

의 BOOT명령을 통해 WarmBoot를 한다.

참고

ColdBoot에 대한 자세한 내용은 OpenFrame 안내서 중 “툴 참조 안내서”의 “tjesinit”을 참고한다.

제1장 TJES 개요 7

Page 24: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

● ColdBoot

OpenFrame TJES를 초기화하는 역할을 하는 특수목적의 부트로 tjesinit 툴을 사용하여 시스템 데이터

셋을 초기화한다. ColdBoot 이후에도 실제 JOB을 수행하기 위해서는 WarmBoot를 해야 한다.

다음의 경우에 ColdBoot를 한다.

– OpenFrame TJES 설치 후

– 시스템 데이터 셋 구조변경 등 주요 시스템 업그레이드 후

– tjes.conf의 다음과 같은 변경사항을 시스템에 적용할 때

• [JOBDEF] 섹션의 JOBNUM 범위 변경 후

• OUTPUTQ 사이즈 변경 후

• [JOBCLASS] 섹션 변경 후 ( MVS, VOS 시스템의 경우 )

• JOB GROUP 설정 변경 후 ( XSP 시스템의 경우 )

1.4.3. Shutdown

다운은 obmjinit가 부트되어 있는 상태에서만 동작하며, 이미 다운되어 있는 상태라면 SHUTDOWN 명령

은 무시된다. SHUTDOWN 명령이 수행될 때 TJES는 해당 노드의 상태를 ‘Not booted’로 변경하여 시스

템이 다운된 이후에 발생되는 추가적인 JOB의 스케줄링을 제한한다.

다운되기 전에 스케줄링 되어 수행중인 JOB은 기본적으로 종료될 때까지 정상적인 절차를 밟아 수행되

지만, 사용자가 강제종료할 것을 명시했다면, SHUTDOWN 명령을 받은 즉시 정지된다.

실행 중인 JOB을 모두 종료하고 나서 시스템을 다운시키려면, STOP 명령을 통해 명시적으로 실행 중인

JOB을 종료하고 SHUTDOWN 명령으로 TJES 시스템을 다운시킨다.

TJES가 성공적으로 다운되었다면 SYS1.JESST 시스템 데이터 셋에 해당 노드가 다운되었음을 기록하

여, 이후 DB 연결 실패 등과 같은 장애(disaster) 발생으로 인한 TJES 자동복구절차에서 다운 상태를 유지

할 수 있도록 한다.

멀티 노드 TJES 환경에서는 TJES가 다운될 때, TJES 전체 도메인에 속한 모든 노드에 SHUTDOWN 명

령을 전달하여 시스템을 다운하는 방법 외에도 개별 노드별로 시스템을 다운할 수 있다.

● 전체 시스템 다운시키는 명령어

shutdown

● 개별 시스템 다운시키는 명령어

8 OpenFrame TJES 안내서

Page 25: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

shutdown node=nodename

SHUTDOWN 명령을 받으면 해당 노드의 Runner Slot들의 상태는 기본적으로 Downed로 변경된다. JOB

이 수행 중인 경우 Runner Slot의 상태를 working으로 유지하되 JOB의 수행이 끝난 시점에 Runner Slot

의 상태를 Downed 상태로 변경한다.

1.5. TJES 시스템 데이터 셋

TJES는 시스템 설정과 각종 자원에 대한 정보를 노드간에 공유하기 위해 다음과 같은 VSAM 데이터 셋에

저장한다.

JESST

다음과 같은 TJES의 시스템 레벨 정보를 저장하는 VSAM KSDS 데이터 셋이다.

설명시스템 레벨 정보

시스템 상에 존재하는 노드들의 정보와 각각의 노드들의 부트 상태를 저장한다.노드 정보

JOBID 범위 등 JOBQ에 대한 개괄적인 정보를 저장한다.JOBQ 정보

OUTPUTQ 크기 등 OUTPUTQ에 대한 개괄적인 정보를 저장한다.OUTPUTQ 정보

JOB CLASS별 기본 속성 정보를 저장한다.JOB CLASS 정보

참고

JESST의 실제 데이터 셋 이름은 tjes.conf 설정파일에 [SYSTEM_DS] 섹션에 TJES_STAT의 항목에

지정된다. 해당 항목의 정보를 TJES_STAT=SYS1.JESST으로 설정할 것을 권장한다.

JOBQTJES에서 JOB을 관리하는데 필요한 정보를 저장하는 VSAM KSDS 데이터 셋이다.

JOBID, JOBNAME, JOBCLASS, JOBPRTY, JOBSTATUS, JCLPATH, USER ACCOUNT 등이 JOBQ에

저장된다.

JOBID에 대한 기본 인덱스 이외에도 성능향상을 위해 JOBNAME과 JOBSTATUS에 대한 보조 인덱스와

submit 순서대로 조회하기 위한 보조 인덱스를 구성한다.

참고

JOBQ의 실제 데이터 셋 이름은 tjes.conf 설정파일에 [SYSTEM_DS] 섹션에 JOBQ에 지정된다. 해

당 항목의 정보를 JOBQ=SYS1.JOBQ로 설정할 것을 권장한다.

제1장 TJES 개요 9

Page 26: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

OUTPUTQTJES에서 수행된 JOB의 결과물인 OUTPUT을 관리하는데 필요한 정보를 저장하는 VSAM KSDS 데이터

셋이다.

시스템 데이터 셋은 OpenFrame 설치 단계에서 생성되며, tmboot 전 OpenFrame에서 제공하는 ColdBoot

용 UNIX 툴인 tjesinit을 통해 시스템 데이터 셋을 초기화해야 한다.

참고

ColdBoot 단계 중에 기록해야 하는 SYS1.JESST의 JOBQ 정보, OUTPUTQ 정보 등은 tjesinit을 통

해서만 갱신된다. 이후에 tjes.conf의 설정을 변경한다면, tjesinit을 통해 SYS1.JESST에 변경 사항을

반영해야 한다.

다음은 각 시스템 데이터 셋을 생성하는 스크립트이다.

모두 SYS1.XXXX로 설정한다고 가정한다. 다른 이름의 시스템 데이터 셋을 사용하려면 스크립트를 변경

하고, IDCAMS(또는 JSCVSUT)를 통해 새로 시스템 데이터 셋을 생성하여야 하며, 스크립트를 변경할 때

에는 진하게 표시된 데이터 셋 이름만을 고치는 것을 권장한다. 진하게 표시된 데이터 셋 이름은 한 스크

립트 내에서는 모두 동일해야 한다.

스크립트 상에 100000의 기본값으로 지정된 볼륨은 시스템 설정에 따라 수정한다.

<SYS1.JESST>

#!/bin/sh

# JESST Creating Script ( TJES 5.0 )

# Define SYS1.JESST

IDCAMS<<EOF

DELETE SYS1.JESST CLUSTER PURGE

DEFINE CLUSTER ( NAME ( SYS1.JESST ) -

VOL(100000) -

INDEXED -

KEYS(24 0) -

UNIQUE -

SHR(2 3) ) -

DATA ( NAME( SYS1.JESST.DATA) -

KB(4096 4096) -

FREESPACE(00 00) CISZ(4096) -

RECSZ(1024 1024) ) -

INDEX ( NAME( SYS1.JESST.INDEX) )

EOF

10 OpenFrame TJES 안내서

Page 27: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

<SYS1.JOBQ>

#!/bin/sh

# JOBQ Creating Script ( TJES 5.0 )

# Define SYS1.JOBQ (16, 8)

# Define SYS1.JOBQ.ID (AIX on JOB_ID) (8, 16)

# Define SYS1.JOBQ.NAME (AIX on JOB_NAME) (0, 24)

# Define SYS1.JOBQ.STAT (AIX on JOB_STAT) (31, 17)

# Define path SYS1.JOBQ.PMAIN

# Define path SYS1.JOBQ.PNAME

# Define path SYS1.JOBQ.PSTAT

IDCAMS<<EOF

DELETE SYS1.JOBQ CLUSTER PURGE

DEFINE CLUSTER ( NAME ( SYS1.JOBQ ) -

VOL(100000) -

INDEXED -

KEYS(8 16) -

UNIQUE -

SHR(2 3) ) -

DATA ( NAME( SYS1.JOBQ.DATA) -

KB(37450 37450) -

FREESPACE(00 00) CISZ(4096) -

RECSZ(1024 1024) ) -

INDEX ( NAME( SYS1.JOBQ.INDEX) )

DEFINE ALTERNATEINDEX ( NAME( SYS1.JOBQ.ID) -

UPGRADE -

RELATE( SYS1.JOBQ ) -

VOLUMES(100000) -

KEYS(16 8) )

DEFINE ALTERNATEINDEX ( NAME( SYS1.JOBQ.NAME) -

UPGRADE -

RELATE( SYS1.JOBQ ) -

VOLUMES(100000) -

KEYS(24 0) )

DEFINE ALTERNATEINDEX ( NAME( SYS1.JOBQ.STAT) -

UPGRADE -

RELATE( SYS1.JOBQ ) -

VOLUMES(100000) -

KEYS(16 8) )

DEFINE PATH ( NAME ( SYS1.JOBQ.PMAIN) -

PATHENTRY( SYS1.JOBQ ) )

DEFINE PATH ( NAME ( SYS1.JOBQ.PID) -

제1장 TJES 개요 11

Page 28: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

PATHENTRY( SYS1.JOBQ.ID) )

DEFINE PATH ( NAME ( SYS1.JOBQ.PNAME) -

PATHENTRY( SYS1.JOBQ.NAME) )

DEFINE PATH ( NAME ( SYS1.JOBQ.PSTAT) -

PATHENTRY( SYS1.JOBQ.STAT) )

EOF

<SYS1.OUTPUTQ>

#!/bin/sh

IDCAMS<<EOF

DELETE SYS1.OUTPUTQ PURGE

DEFINE CLUSTER ( NAME( SYS1.OUTPUTQ ) -

KB(32768 1024) -

VOLUMES(100000) -

RECSZ(512,512) -

SHR(2 3) -

IXD -

UNIQUE -

CISZ(4096) -

FSPC(20 10) -

KEYS(8 16)) -

DATA ( NAME( SYS1.OUTPUTQ.DATA)) -

INDEX ( NAME( SYS1.OUTPUTQ.INDEX))

DEFINE ALTERNATEINDEX(NAME( SYS1.OUTPUTQ.JOBID) -

RELATE( SYS1.OUTPUTQ ) -

VOLUMES(100000) -

KEYS(16 8) -

RECSZ(100,100))

DEFINE PATH( NAME( SYS1.OUTPUTQ.PJOBID) -

PATHENTRY( SYS1.OUTPUTQ.JOBID) )

DEFINE ALTERNATEINDEX(NAME( SYS1.OUTPUTQ.JOBNAME) -

RELATE( SYS1.OUTPUTQ ) -

VOLUMES(100000) -

KEYS(24 0) -

RECSZ(100,100))

DEFINE PATH( NAME( SYS1.OUTPUTQ.PJOBNAME) -

PATHENTRY( SYS1.OUTPUTQ.JOBNAME) )

EOF

12 OpenFrame TJES 안내서

Page 29: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제2장 JOB의 관리

본 장에서는 JOB이 가질 수 있는 상태와 JOB이 실행되는 단계 및 결과 조회 그리고 JOB을 관리하는 방

법에 대해서 설명한다.

OpenFrame에서 JOB을 관리하는 방법은 tjesmgr와 OpenStudio 2가지가 있는데 본 안내서에서는 tjesmgr

를 사용하여 JOB을 관리하는 방법에 대해서만 다루도록 한다.

참고

OpenStudio를 사용하여 JOB을 관리하는 방법에 대해서는 OpenFrame 안내서 중 ”OpenStudio BM

안내서”를 참고한다.

2.1. JOB 상태

TJES는 다음 그림과 같이 JOB을 START, HOLD, WORKING, SUSPEND, DONE, ERROR, STOP, FLUSH

의 8가지 상태로 구분하여 관리한다.

[그림 2.1] JOB 상태 흐름도

제2장 JOB의 관리 13

Page 30: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

READY는 SUBMIT 단계를 처리 중인 상태이고, PURGE는 JOB이 TJES에서 제거됨을 의미한다.

다음은 TJES의 각 상태에 관한 설명이다.

● START

JCL을 통해 JOB이 submit되어 실행되기 전까지의 상태로서, JOB 스케줄링의 대상이고 아직 Runner

Slot에게 할당되지 않은 상태이다. JOB CLASS를 변경할 수 있고, HOLD 명령을 통해 JOB을 HOLD 상

태로 변경하거나 CANCEL 명령을 통해 JOBQ에서 제거할 수 있다.

● HOLD

JCL을 통해 JOB이 submit되어 실행되기 전까지의 상태로, START와 다르게 JOB 스케줄링의 대상이

되지 않는다. HOLD 상태에 해당하는 경우는 다음과 같다.

– JCL상에 TYPRUN=HOLD 구문을 기술하여 submit한 경우

– HOLD로 설정된 JOB CLASS로 submit한 경우

– START 상태의 JOB을 HOLD 명령을 통해 상태를 변경한 경우

START 명령을 통해 START 상태로 변경하거나 CANCEL 명령을 통해 JOBQ에서 제거할 수 있다.

● WORKING

tjclrun이 JOB을 실행 중인 상태이다. 실행 중인 STEP의 특성에 따라 복수의 UNIX 프로세스로 구동될

수 있다. SUSPEND 명령을 통해 실행 중인 JOB을 일시적으로 정지시킬 수 있고, STOP 명령을 통해

JOB 수행을 끝내고 STOP 상태로 바꿀 수 있다.

● SUSPEND

JOB의 실행이 일시적으로 멈춘 상태이다. RESUME 명령을 통해 WORKING 상태로 복원할 수 있고,

STOP 명령을 통해 JOB 수행을 끝내고 STOP 상태로 바꿀 수 있다.

주의

3rd party 유틸리티를 사용할 경우, 유틸리티 내부에서 세션을 새로 설정한다면 해당 프로세스와 그

하위 프로세스는 SUSPEND되지 않는다는 점을 주의해야 한다.

● DONE

JCL상에 요청된 대로 JOB이 정상적으로 실행된 상태이다.

14 OpenFrame TJES 안내서

Page 31: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

사용자 프로그램이 의도한 결과를 산출했는지의 여부는 SPOOL 데이터의 조회(PODD)나 각 STEP의

반환 코드(PSJOB) 등을 조회하여 별도로 확인해야 한다. REMOVE 명령을 통해 JOBQ에서 제거할 수

있다.

참고

DONE 상태는 JCL에서 요청된 대로 JOB의 모든 STEP이 수행되었고 반환 코드가 COND문이나

rc.conf 등을 통해 지정한 허용 범위이내라는 것을 의미하는 것이지, 각 STEP에 지정된 프로시저나

프로그램이 업무적으로 정상 실행되었다는 것을 의미하는 것은 아니다.

● ERROR

JOB의 실행 결과가 COND문이나 rc.conf에서 지정한 반환 코드 허용범위를 벗어난 상태이다. REMOVE

명령을 통해 JOBQ에서 제거할 수 있다.

● STOP

WORKING 상태의 JOB에 사용자가 명시적으로 STOP 명령을 통해 JOB을 강제 종료시키거나, 장애복

구 플랜(Disaster Recovery Plan)에 의해 TJES가 자동으로 재기동될 때 JOB이 강제 종료된 상태이다.

이때 JOB 실행에 필요했던 모든 자원을 반납하고 종료하게 된다. REMOVE 명령을 통해 JOBQ에서 제

거할 수 있다.

● FLUSH

JOB 수행 중에 tjclrun에서 에러가 발생하여 더 이상 JOB을 수행하지 못하는 상태이다. JCL 런타임 파

싱 에러나 DD 할당 에러 등이 FLUSH 상태의 주요 원인이다. REMOVE 명령을 통해 JOBQ에서 제거할

수 있다.

2.1.1. 명령어를 통한 JOB의 상태 변경

사용자는 명령어를 사용하여 원하는 JOB의 상태로 변경할 수있다.

다음은 JOB의 상태 변경과 관련된 tjesmgr 명령어를 정리한 표이다.

첫번째 칼럼의 현재 상태에서 두번째 칼럼의 명령어를 사용하면 세번째 칼럼의 상태로 변경된다.

변경될 상태명령어현재 상태

START, HOLDRUN-

JOB 실행 전 JOBQ에서 해당 JOB 삭제됨CANCELSTART

HOLDHOLD

JOB 실행 전 JOBQ에서 해당 JOB 삭제됨CANCELHOLD

STARTSTART

SUSPENDSUSPENDWORKING

제2장 JOB의 관리 15

Page 32: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

변경될 상태명령어현재 상태

STOPSTOP

STOPSTOPSUSPEND

WORKINGRESUME

JOB 실행 후 JOBQ에서 해당 JOB 삭제됨REMOVEDONE

JOB 실행 후 JOBQ에서 해당 JOB 삭제됨REMOVEERROR

JOB 실행 후 JOBQ에서 해당 JOB 삭제됨REMOVESTOP

JOB 실행 후 JOBQ에서 해당 JOB 삭제됨REMOVEFLUSH

JOBQ는 tjes.conf의 [JOBDEF] 섹션에 설정된 크기만큼만 저장을 할 수 있기 때문에 필요하지 않는 JOB

들은 JOBQ에서 삭제할 필요가 있다.

CANCEL이나 REMOVE는 모두 JOBQ에서 JOB을 삭제하는 명령이지만 CANCEL은 JOB이 실행되기 전

에, REMOVE는 JOB이 실행된 후에 삭제된다는 점이 다르다.

HOLD 상태에 있는 JOB들은 스케줄링이 되지 않기 때문에 HOLD 상태인 JOB을 실행하고자 하면 START

상태로 상태를 바꾸어야 한다. 이때 START 명령어를 사용하여 상태를 변경할 수 있다.

참고

1. JOBQ에서 JOB 삭제와 관련된 내용은 “7.2. TJES 설정”을 참고한다.

2. 각 명령어 사용법은 “제6장 TJESMGR 명령어”를 참고한다.

2.2. JCL의 관리

OpenFrame에서는 기존의 Mainframe에서 사용하던 JCL들을 그대로 가져와서 실행할 수 있다.

JCL들을 일반 디렉터리에 관리해도 되지만, tjes.conf의 [PROCLIB]섹션의 JCLLIB항목에 등록된 데이

터 셋의 멤버로 등록해 놓기를 권장하며, JCL들이 많다면 별도의 PDS 데이터 셋을 생성해서 멤버로 관리

하는 것을 권장한다.

OpenFrame에서 PDS 데이터 셋은 실제 디렉터리로 만들어져 있기 때문에 해당 볼륨의 PDS 데이터 셋

이름 디렉터리에 JCL들을 복사해 놓으면 PDS의 멤버가 된다.

JCL들을 PDS 데이터 셋의 멤버로 등록해 놓으면 JCL을 submit 할 때 UNIX 전체 파일 경로를 주지 않고

도 데이터 셋 이름과 멤버명 만으로도 대상 JCL을 찾을 수 있다.

JCL이 tjes.conf 파일 [PROCLIB]절의 JCLLIB 항목에 등록된 데이터 셋의 멤버로 등록된 경우에는 멤버

명만 있어도 대상 JCL을 찾을 수 있다.

참고

JCLLIB에 지정한 PDS순서대로 해당 데이터 셋의 멤버를 검색한다.

16 OpenFrame TJES 안내서

Page 33: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

2.3. JOB의 처리단계TJES를 통해 실행되는 모든 JOB은 다음의 단계로 진행된다.

1. Submit: TJES로부터 JCL을 받아들이는 단계

2. Schedule: 조건을 충족하는 Runner Slot에게 JOB을 할당하는 단계

3. Execution: 실제로 Runner가 JOB을 수행하는 단계

4. Output: JOB의 수행이 끝나고 그 Output이 처리되는 단계

5. Remove: 수행이 끝난 JOB을 TJES에서 제거하는 단계

2.3.1. Submit 단계

Submit 단계는 JCL을 받아 이를 분석하여 JOB 단위로 TJES에 편입시키는 단계이다.

JCL이 submit되면 TJES는 해당 JCL을 분석하여 JOB 엔트리를 구성하고, JOBID, SPOOL 등 JOB 관리

에 필요한 리소스를 할당한 후 JOBQ에 저장한다. submit된 JOB의 정보는 스케줄러에 통보되어, 스케줄

러에 의해 JOB이 Runner Slot에 할당될 수 있도록 한다.

TJES는 다음과 같은 리소스를 JOB에게 할당한다.

● JOBID

TJES가 JOB을 구분하여 관리하기 위해서는 각각의 JOB에 유일한 ID를 부여해야 한다. 이를 JOBID라

하며, TJES에서 관리하는 JOBID는 'JOBnnnnn'의 형식을 갖는다. JOB에 부여할 수 있는 JOBID 범위

는 00001부터 99999이다. JOBID는 Submit할 때 발급되어 JOB이 CANCEL이나 REMOVE를 통해 제

거될 때 반환된다. 반환된 JOBID는 재사용된다.

이외에 CICS에서 생성하는 'STCnnnnn', TSO에서 생성하는 'TSOnnnnn' 형식의 JOBID가 있으나, 이는

TJES가 관리하지 않는다.

● SPOOL

TJES는 1개의 JOB마다 독립적인 SPOOL 공간을 할당하는데 UNIX 디렉터리로 구현되어 있다. SPOOL

볼륨에 위치하며 JOBID를 디렉터리명으로 한다. SPOOL에는 Submit받은 시점의 JCL을 보존하기 위

하여 복사한 INPJCL, 카탈로그를 복사한 CATPROC, JOB의 수행 결과인 SYSOUT과 TJES가 JOB의

수행상태를 보고하기 위해 내부적으로 사용하는 파일 등이 저장된다. SPOOL은 tjesinit 툴을 통해 초기

화한다.

● JOBQ

제2장 JOB의 관리 17

Page 34: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

TJES는 JOB의 검색과 변경 등을 용이하게 하기 위해 TSAM KSDS 데이터 셋으로 JOB의 기본 정보를

저장한다. JOBQ에 저장된 JOB의 정보는 tjesinit 툴을 통해 초기화할 수 있다.

TJES에서 JCL을 Submit 받는 단계는 다음과 같다.

1. JOBID를 발급하고 SPOOL을 생성한다.

2. Submit된 JCL을 SPOOL에 INPJCL로 복사한다.

3. Submit용으로 TJESSUBM이라는 JOB을 JOBQ에 저장한다. JSS3 command가 존재하지 않으면 이

JOB은 재사용되어 JCL 에 기술된 1번째JOB 으로 대체된다.

4. JCL을 파싱한다.

이 시점에 구문 오류가 발생하면 이를 SPOOL의 SYSMSG에 저장하고, Submit 과정을 종료한다.

5. JSS3 명령어가 존재하면 이를 수행한다.

JSS3 명령어는 명령어 실행 전용 서버인 ofrcmd에서 수행된다.

6. JCL에 기술된 각각의 JOB별로 다음의 내용이 수행된다.

a. JOBID를 발급하고 SPOOL을 생성한다.

b. Submit된 JCL을 SPOOL에 INPJCL로 복사한다.

c. TYPRUN = JCLHOLD가 주어지면 운영자가 명시적으로 명령을 할 때까지 다음 단계의 진행을 일시

중지한다.

d. STEP에 기술된 프로시저를 SPOOL에 CATPROC으로 복사하고, 파싱한다.

e. TYPRUN = SCAN이 주어지면 JOB에 해당하는 JCL이나 CATPROC의 구문 분석을 시행하고, 이 결

과를 SPOOL의 SYSMSG에 저장한다. JOB을 DONE이나 ERROR의 종료상태로 저장하고 현재 JOB

의 Submit을 종료한다.

f. 이외의 경우 JOBQ에 JOB을 저장한다.

- TYPRUN=HOLD나 JOB의 CLASS에 HOLD 설정(tjes.conf 의 [JOBCLASS] 설정 )이 있는 경우

HOLD 상태로 저장된다.

- 이외의 경우 START 상태로 저장된다.

g. TJES의 스케줄링을 담당하는 obmjschd에 JOB의 스케줄링 정보를 전달한다.

7. JCL의 Submit 결과를 요약하여 Submitter에게 보고한다.

18 OpenFrame TJES 안내서

Page 35: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

Submit 단계 중에 에러가 발생하면 tjes.conf의 [LOG] 섹션의 SUBMITLOG 항목에 지정된 로그 파일에

해당 내용이 저장된다.

tjesmgr의 PS 명령어를 통해서 Submit하여 생성된 JOB들이 JOBQ에 등록되어 있는 것을 확인할 수 있다.

참고

1. Submit 로그의 형식에 대한 자세한 내용은 “2.5.2. JOB 로그”를 참고한다.

2. JOBQ의 Output에 대한 자세한 내용은 “6.2.1. PS (Print Screen)”을 참고한다.

OpenFrame에서는 다음과 같이 JCL을 Submit하는 여러 방법을 지원한다.

● tjesmgr의 RUN 명령어를 통한 방법(“제6장 TJESMGR 명령어”의 “6.1.1. RUN”을 참고한다.)

● textrun 툴을 사용하는 방법(OpenFrame 안내서 중 "툴 참조 안내서"의 "textrun"을 참고한다.)

● OpenStudio Batch Manager(BM)를 통한 방법( "OpenStudio BM 안내서"를 참고한다.)

2.3.2. Schedule 단계

Schedule 단계에서 TJES는 기본적으로 다음의 조건을 만족하는 Runner Slot에게 현재 START 상태인

JOB을 배정한다.

● Runner Slot의 상태가 Active로 활성화되어 있어야 하며, 다른 JOB을 수행하고 있는 중이 아니어야 한

다.

● RUNNER CLASS가 JOB CLASS와 일치해야 한다.

● JOB을 Submit할 때 특정 노드에서 JOB이 실행되도록 명시했을 경우, 그 노드와 Runner Slot이 속한 노

드가 일치해야 한다.

● JSS3의 NET 문을 지원한다. NHOLD 값이 0 이 되어야 하고, OPHOLD 되어있지 않아야 한다.

● JSS3의 MAIN 문을 지원한다. 현재 START 문을 지원하고 있기 때문에, START 문으로 지정한 날짜와

시각이 지나야 스케줄링 받을 수 있다.

다음은 스케줄링 메소드를 pseudo code로 나타낸 것이다.

Priority aging

For i = 1 to 8 / * to iterate RUNNER CLASSes */

For each idle runner {

Get the list of Job which matches the ith class of the runner

For each Job in descending priority order {

제2장 JOB의 관리 19

Page 36: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

Check node affinity. If fails, try next Job

Check Jobname duplication. If fails, try next Job

Check JSS3 JOBNET NHOLD. If not 0, try next Job

Check JSS3 MAIN START. If not passed, try next Job

Assign the Job to the runner and break

}

}

JOB CLASS

JOB의 속성 중 하나로 JCL JOB 구문의 클래스 파라미터에 기술되는 1개의 문자로, A-Z, 0-9 중 1개의 값

을 가져야 한다.

JCL에 클래스가 기술되어 있지 않을 때에는 tjclrun.conf의 [JOB] CLASS에 기술된 디폴트 JOB CLASS

를 사용한다.

JOB CLASS는 해당 JOB이 실행될 수 있는 Runner Slot을 제한하는 용도로 JOB 스케줄링에 사용된다. A

라는 JOB CLASS를 가진 JOB은 RUNNER CLASS에 CBA 혹은 ABC와 같은 식으로 A를 포함한 Runner

Slot에만 할당될 수 있다.

이외에도 JOB CLASS의 하위 속성에 따라, TJES 의 동작방식이 달라진다. OpenFrame/Batch 4.0 Version

부터 JOB CLASS의 HOLD 속성이 추가되었다. HOLD 속성이 명시된 JOB CLASS로 submit 된 JOB은

JCL 상의 JOB 구문에 TYPRUN=HOLD가 지정되지 않았더라도, HOLD 상태로 Submit된다.

RUNNER CLASS

Runner Slot의 속성 중 하나로 tjes.conf의 [INITDEF] 섹션에 기술된다.

RUNNER CLASS는 JOB CLASS와 일치해야 하므로 JOB CLASS와 동일한 A-Z, 0-9 중 1개의 값을 가지

며, 1개의 Runner Slot은 최대 8개의 클래스를 가질 수 있다.

복수의 RUNNER CLASS가 설정된 경우에는, 앞에 기술된 클래스에 해당하는 JOB이 없을 때에만 뒤에

기술된 클래스가 사용될 수 있다. 즉, 제일 먼저 설정된 클래스가 최우선이고 맨 마지막에 설정된 클래스

가 제일 낮은 우선순위를 갖는다. 또한 i 번째에 기술된 클래스에 해당하는 JOB을 실행하기 위해서는,

TJES의 모든 Runner Slot이 i 번째 이전에 기술된 클래스로 해당 JOB을 실행할 수 없어야 한다.

예를 들면 TJES 내에 1번 Runner Slot은 RUNNER CLASS가 ABC이고, 2번 Runner Slot은 BCA였을 때,

C의 JOB은 B의 JOB이 없을 때 2번 Runner Slot의 2번째 클래스로 실행될 수 있지만, 1번 Runner Slot의

3번째 클래스로 실행하기 위해서는 A와 B의 JOB이 없으면서, 2번 Runner Slot이 이미 JOB을 실행하고

있거나 Active 상태가 아니어서 , 2번째 클래스로 JOB을 실행할 수 없어야 한다.

JSS3 NET 문

JSS3 NET 문의 VOS3의 JOBNET 속성을 지정하기 위해 사용한다.

20 OpenFrame TJES 안내서

Page 37: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JOBNET은 간략히 설명하면 JOB 의 실행 순서를 설정하고 조건에 따라 실행하는 JOB 을 분기하는 등,

기존에는 운영자가 개입했어야 할 업무들을 자동화할 수 있는 VOS3의 특화 기능이다.

기본적으로 다음의 요소를 통해 JOBNET을 구성하게 된다.

● NHOLD: JOB이 실행되기 전에 선행으로 수행되어야 하는 JOB의 수를 지정한다. 0 이 아니면 실행되지

않는다.

● RELEASE: JOB이 종료되었을 때, 그 결과를 전달할 후속 JOB을 지정한다.

● COND: JOB이 종료되었을 때, 정상인지 비정상인지 판별하는 조건을 지정한다.

● NORMAL: 선행 JOB이 정상 종료되었을 때의 처리 방식을 지정한다.

● ABNORMAL: 선행 JOB이 비정상 종료되었을 때의 처리 방식을 지정한다.

참고

NET 문에 대한 자세한 사항은 OpenFrame 안내서 중 "JCL 문법 안내서"를 참고한다.

JSS3 MAIN 문

JSS3 NET 문은 스케줄링 시작 시각을 지정하기 위해 사용한다.

스케줄링 시작 시각을 지정하는 START 기능과, 실행 시작 시각의 deadline을 지정하는 DL 기능이 있다.

현재는 START 기능만을 지원한다.

참고

MAIN 문에 대한 자세한 사항은 OpenFrame 안내서 중 "JCL 문법 안내서"를 참고한다.

2.3.3. Execution 단계

Runner가 실제로 JCL에 기술된 대로 JOB을 실행하는 단계이다.

Runner는 SPOOL에 복사되어 있는 JCL을 파싱하고, 그 결과에 따라 JOB을 실행한다. 하나의 JOB은 하

나 이상의 JOB STEP으로 구성되는데, Runner는 이 JOB STEP을 JCL에 기술된 순서대로 순차적으로 실

행한다.

JOB을 실행할 때 필요한 데이터 셋을 할당하는 일도 Execution 단계에서 일어난다.

제2장 JOB의 관리 21

Page 38: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

2.3.4. Output 단계

JOB 수행 중 생성된 SYSOUT을 처리하는 단계이다. SYSOUT은 Output이라는 단위로 처리되는데,

OUTPUT CLASS에 따라 처리할 수 있는 프린터와 기본 후처리가 결정된다. Output은 프린터로 출력되거

나 인터널 리더를 통해 TJES로 Submit된다.

참고

자세한 내용은 “제5장 OUTPUT Processing”을 참고한다.

2.3.5. Remove 단계

Output 단계로 진입한 JOB을 사용자의 명시적인 명령에 의해 TJES에서 삭제하는 단계이다. JOB에 할당

되었던 JOBID, SPOOL, JOBQ 등과 같은 모든 리소스가 시스템으로 반환된다. TJES에서 삭제한 JOB의

결과를 추후에 다시 접근하기 위해서는 SPOOL 백업 명령어를 통해 백업해야 한다. 백업에 성공하면

SPOOL에서 자동으로 JOB이 제거된다.

2.4. JOB의 조회

submit된 JOB은 JCL의 파라미터에 기술된 값에 따라 START 또는 HOLD 상태로 JOBQ에 등록된다. JOBQ

에 등록되어 있는 모든 JOB은 tjesmgr의 PS 명령어를 통해서 JOB의 상태를 확인할 수 있다.

START 상태의 JOB은 스케줄링을 통해 WORKING 상태로 바뀌면서 실행되고, ERROR나 DONE 또는

FLUSH 등으로 종료가 된다.

다음과 같은 tjesmgr 명령어를 통해서 JOB의 상세한 정보를 조회할 수 있다.

설명명령어

JOB의 상세 정보를 보여준다.PSJOB

JOB에서 사용한 데이터 셋들의 I/O 정보를 보여준다.PSIO

JOB에서 생성한 SPOOL들의 정보를 보여준다.POSPOOL

JOB에서 생성한 SPOOL들의 내용을 보여준다.PODD

JOB과 관련한 Output 상세정보를 보여준다.POJOB

참고

JOB의 정보 조회에 대한 상세한 설명과 기능은 “6.2. JOB/OUTPUT 명령어” 를 참고한다.

22 OpenFrame TJES 안내서

Page 39: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

2.5. 로그

TJES는 운영에 대한 자료로 사용하거나 운영할 때 발생할 수 있는 각종 사건들의 책임 소재를 분명히 하

는 용도로 사용하기 위해서 TJES 에서 일어나는 여러가지 이벤트에 대하여 로그를 남긴다.

OpenFrame/Batch v5.0 이상의 TJES 는 다음의 2가지의 로그를 남긴다.

● JCL의 Submit에 대한 정보를 저장하는 Submit 로그

● JOB의 모든 상태 변화에 대한 JOB 로그

매일 방대한 양의 로그가 기록될 수 있으므로 정리작업 없이 장기간 운영하면 로그 파일의 크기가 상당히

커질 수 있다. 이러한 문제점을 해결하기 위해서 날짜 별로 로그를 생성하는 옵션을 제공한다. tjes.conf

의 [LOG] 섹션에 로그별 파일 경로를 설정할 떄 &SYSDATE 를 파일 이름 중간에 기입하면, &SYSDATE

부분이 YYYYMMDD 형태의 날짜로 치환되어 날짜별로 로그를 생성할 수 있다.

2.5.1. Submit 로그

Submit 로그는 tjes.conf의 [LOG]섹션의 SUBMITLOG항목에 설정한 파일경로에 저장된다.

Submit 로그는 성공과 실패를 구분하지 않고, obmjmsvr에서 인지한 JCL을 submit하려는 모든 시도에 대

해 기록한다.

Submit 로그의 기본적인 형식은 다음과 같다.

>> timestamp jclpath

submit_result

설명항목

yyyymmddHHMMSS 형태의 14자리 숫자이다.timestamp

submit된 JCL의 UNIX 절대 경로이다.jclpath

submit 결과를 나타내는 문구이다.submit_result

2.5.2. JOB 로그

JOB 로그는 tjes.conf의 [LOG]섹션의 JOBLOG에 설정한 파일경로에 저장된다.

JOB 로그의 기본적인 형식은 다음과 같다.

nodename;timestamp;jobid;userid;opertation;additional info

additional info는 오퍼레이션에 따라 다르며, 오퍼레이션의 종류와 그에 대한 설명은 다음과 같다.

제2장 JOB의 관리 23

Page 40: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

SUBMIT

JOB이 submit된다.

status=S|H;class=Job_class;node=execution_node,jcl=jcl_path

각 항목에 대한 설명은 다음과 같다.

설명항목

JOB의 Submit 상태에 따라 설정된다.status

START 상태로 submit될 경우에 S가 설정되고, HOLD 상태로 submit될 경우에는 H

가 설정된다.

submit된 JOB CLASS이다.class

JOB이 수행될 노드의 이름이다.node

JCL에 JOB들이 실행될 execution_node를 지정하지 않았거나 tjesmgr.conf의 [DE

FAULT_OPTION] 섹션의 DEFAULT_RUNNING_NODE=MY를 설정하지 않았다면

모든 노드에서 실행될 수 있도록 애스터리스크(*)가 설정된다.

복사된 INPJCL의 경로가 아니라 submit된 JCL의 원본 파일경로이다.jcl

CHANGE

JOB 의 속성이 실행 전에 변경되었다.

status=S|H,class=job_class

각 항목에 대한 설명은 다음과 같다.

설명항목

변경된 후의 JOB Status 이다.status

S 는 START 상태를, H는 HOLD 상태를 의미한다.

변경된 후의 JOB CLASS 이다.class

CANCEL

JOB이 취소된다.

EXECUTE

JOB을 Runner에 할당한다.

index=runner_index;pid=runner_pid;class=working_class

각 항목에 대한 설명은 다음과 같다.

24 OpenFrame TJES 안내서

Page 41: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

JOB을 실행 중인 Runner Slot의 인덱스이다. 이 값은 실행 중인 노드에서만 유효하다.index

JOB을 실행 중인 Runner의 프로세스 ID이다. 이 값은 실행 중인 노드에서만 유효하다.pid

Runner Slot에 할당된 복수의 클래스 중 현재 JOB을 실행하기 위해 사용하고 있는 클래

스이다.

class

SUSPEND

JOB이 일시 정지된다.

index=runner_index;pid=runner_pid

각 항목에 대한 설명은 다음과 같다.

설명항목

JOB을 실행 중인 Runner Slot의 인덱스이다. 이 값은 실행 중인 노드에서만 유효하다.index

JOB을 실행 중인 Runner의 프로세스 ID이다. 이 값은 실행 중인 노드에서만 유효하다.pid

RESUME

일시 정지된 JOB이 다시 수행된다.

index=runner_index;pid=runner_pid

각 항목에 대한 설명은 다음과 같다.

설명항목

JOB을 실행 중인 Runner Slot의 인덱스이다. 이 값은 실행 중인 노드에서만 유효하다.index

JOB을 실행 중인 Runner의 프로세스 ID이다. 이 값은 실행 중인 노드에서만 유효하다.pid

FINISH

JOB의 실행이 종료된다.

index=runner_index;pid=runner_pid;status=exit_status;exitcode=exit_code

각 항목에 대한 설명은 다음과 같다.

설명항목

JOB을 실행 중인 Runner Slot의 인덱스이다. 이 값은 실행 중인 노드에서만 유효하다.index

JOB을 실행 중인 Runner의 프로세스 ID이다. 이 값은 실행 중인 노드에서만 유효하다.pid

JOB의 종료 상태이다. DONE, ERROR, STOP, FLUSH 중 하나의 값을 갖는다.status

JOB의 EXIT CODE이다. (자세한 내용은 “2.7. JOB EXIT CODE”를 참고한다.)exitcode

제2장 JOB의 관리 25

Page 42: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

REMOVED

JOB이 TJES에서 제거된다.

2.6. JOB의 백업

많은 JOB을 실행하게 되면 JOBQ에 JOB이 계속 쌓이게 되어 더이상 JOB을 submit 할 수 없는 상태까지

될 수 있다. 따라서 오래된 JOB에 대해서는 JOBQ에서 삭제해야 하며, 삭제하고자 하는 JOB들의 정보를

남겨놓고 싶을 때는 SPOOL을 백업한다.

다음은 SPOOL 백업과 관련한 명령어와 기능을 간단히 정리한 표이다.

설명명령어

JOBQ에서 JOB을 삭제하고, 삭제된 JOB의 SPOOL을 백업한다.SPOOLBACKUP

SPOOL이 백업된 날짜들을 보여준다.SPOOLBACKUPLIST

해당 날짜에 백업된 JOB들을 보여준다.SPOOLPS

백업된 JOB들을 임시 디렉터리에 복원한다.SPOOLRESTORE

복원된 JOB들의 상세 정보를 보여준다. (PSJob과 동일한 정보 출력)SPOOLPSJOB

복원된 JOB들의 I/O 정보를 보여준다. (PSIO과 동일한 정보 출력)SPOOLPSIO

복원된 JOB들의 SPOOL 리스트를 보여준다. (POSPOOL과 동일한 정

보 출력)

SPOOLPOSPOOL

복원된 JOB들의 SPOOL 내용을 보여준다. (PODD과 동일한 기능)SPOOLPODD

임시 디렉터리에 복원된 JOB들을 제거한다.SPOOLCLEAR

2.7. JOB EXIT CODE

다음은 TJES에서의 JOB과 STEP의 EXIT CODE를 정의한다.

2.7.1. STEP EXIT CODE

각 STEP이 종료될 때 XNNNN 형식으로 반환 코드를 보고한다.

● X: EXIT STATUS로 R, S, U, A의 4가지 문자 중 하나를 갖고, 의미는 다음과 같다.

설명항목

Normal Condition으로, 해당 애플리케이션이 정상적으로 종료했음을 의미한다.R

26 OpenFrame TJES 안내서

Page 43: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

SYSTEM ABEND로 해당 애플리케이션이 시그널로 종료했음을 의미한다. SIGPIPE, SIGSEGV,

SIGABEND, SIGBUG 등의 시그널 중에 프로세스를 종료시키는 시그널로 인해 프로세스가 이

상 종료한 경우이다.

S

USER ABEND로, 해당 애플리케이션이 애플리케이션에서 정한 ABEND 상황임을 보고하고

WAASABND를 통해 종료했음을 의미한다.

U

Application ABEND로, 해당 애플리케이션은 정상적으로 종료했으나, 그 RC 값을 호출한 프로

그램(IKJEFT01 등)에서 판단했을 때 조건을 만족하지 못해 JOB을 종료해야 함을 의미한다.

A

● NNNN: 0~4096까지의 숫자로 애플리케이션의 반환 값이다. (255 이상은 external rc module을 통해 반

환 코드가 보고된다.)

2.7.2. JOB EXIT CODE

JOB EXIT CODE는 JOB의 종료 상황에 대한 부가 정보로, ANNNNN 형태를 가진다. (A : 문자, N : 0-9)

JOB 상태별로 다음과 같은 형식과 의미를 갖는다.

설명JOB 상태

XNNNNN. 마지막 STEP의 EXIT CODE이다.DONE

( X는 STEP EXIT CODE와 동일하다. )

XNNNNN. ERROR를 발생시킨 STEP의 EXIT CODE이다.ERROR

( X는 STEP EXIT CODE와 동일하다. )

N/A. 사용자가 STOP을 명령한 경우이므로 EXIT CODE는 무의미하다.STOP

[+-]NNNNNFLUSH

+ : Runner에서 비정상적인 상태를 감지하여 종료한 경우이며, 이때 NNNNN은 Runner

가 반환한 값이다. 에러상황이 OpenFrame의 Error Code로 정의된 명확한 상황은 Error

Code를 반환하고 이외에 세분화하여 정의되지 않은 상황은 1이 반환된다.

- : Runner가 UNIX 시그널에 의해 비정상 종료한 경우이며, 이때 NNNNN은 UNIX 시그

널 번호이다

제2장 JOB의 관리 27

Page 44: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 45: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제3장 JOB Execution

TJES가 제공하는 Batch JOB을 관리 및 처리하는 단계 중의 하나인 JOB Execution(이하 JOB 실행)은 사

용자가 submit한 JOB이 스케줄러에 의해서 스케줄링되면 해당 JOB을 실제로 OS에서 실행하는 단계이

다. JOB 실행단계는 tjclrun에 의해서 수행된다.

다음은 tjclrun에 의해 JOB이 실행되는 단계에 대한 설명이다.

1. 스케줄러가 JOB의 스케줄링 파라미터와 현재 시스템에서 사용 가능한 Runner Slot의 상태에 따라서

특정 Runner Slot에서 JOB을 수행하도록 할당(스케줄링)한다.

2. 해당 Runner Slot은 tjclrun을 실행하기 위한 자료를 JOB SPOOL에 기록하고 tjclrun을 호출한다.

3. tjclrun은 JOB SPOOL을 통해 전달된 해당 JOB의 JCL에 적힌 내용에 따라서 JOB을 실행한다.

4. JOB의 실행이 끝나면 tjclrun은 자신을 호출한 Runner Slot에게 JOB의 실행 결과를 보고한다.

JOB 실행 결과는 최종적으로 TJES가 관리하는 JOBQ에 저장된다. 또 실행이 완료된 JOB의 OUTPUT 및

JOBQ에 저장된 JOB에 대한 정보는 이후 TJES에 의해서 관리된다.

사용자는 실행이 완료된 JOB의 실행 결과를 검토하거나 출력할 수 있으며, 해당 JOB에 대한 정보가 더

이상 필요하지 않다면 해당 JOB 정보를 제거하게 된다.

본 장에서는 JOB 실행 단계를 책임지는 tjclrun의 동작과 기능에 대해서 설명한다.

3.1. JOB 실행

TJES의 JOB 처리 단계에 따라서 tjclrun이 호출되면, tjclrun은 실행을 위한 몇 가지 초기화 작업을 수행한

후에 JOB SPOOL을 통해 전달된 JCL을 파싱하고, 파싱된 결과에 따라서 JOB을 실행한다.

tjclrun은 JOB을 구성하는 JOB STEP을 JCL에 기술된 순서대로 실행한다. 각각의 JOB STEP은 해당 JOB

STEP에서 사용되는 데이터 셋을 할당하고 사용자가 지정한 Batch 애플리케이션을 실행하는 등 많은 세

부 작업으로 이루어져있다.

JOB STEP에 지정된 프로그램을 실행한 후에는 해당 프로그램이 종료하기를 기다리면서 프로그램 실행

에 관한 모니터링 정보를 TJES에 주기적으로 보고한다. 또한 실행한 프로그램에게 SYSIN 데이터 셋의

내용을 전달하고, SYSOUT 데이터 셋을 전달받아 JOB SPOOL에 기록한다. 실행한 프로그램이 종료되면,

그 종료결과를 TJES에 보고하고 JOB STEP의 종료상태에 따라 그 다음 JOB STEP을 실행하거나, 예외

조건이 만족하는 경우에는 JOB 수행을 중단한다.

위와 같은 방식으로 JCL에 기술된 마지막 JOB STEP까지 모두 실행한 후에 tjclrun은 JOB의 실행 결과를

TJES에 보고하고 JOB 실행 단계에서 할당한 데이터 셋 등의 자원을 반환한 후에 종료한다.

제3장 JOB Execution 29

Page 46: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

다음은 tjclrun이 JOB 실행 단계에서 수행하는 다양한 세부작업을 분류한 표이다.

단계작업

실행 초기화실행

입력 JOB 스트림 파싱

실행 과정

프로그램 실행

프로시저 실행

DD 처리리소스

스페셜 DD

JOB SPOOL

JOB Control컨트롤/모니터링

Job Level Report

Step Level Report

보안 (TACF support)기타

tjclrun 호출 (tjclrun 명령어 사용)

NICE를 통한 PERFORM처리

3.1.1. 실행 초기화

다음은 Runner Slot 또는 SUBMITOR 등에 의해 Runner가 호출되기 전에 준비되는 필수 리소스들이다.

● JOBID

● JOBQ 상의 JOB 엔트리

● Runner Slot

● JOB SPOOL (INPJCL)

명령어 라인 인수

Runner Slot은 tjclrun을 호출할 때 지정한 인수(args)를 검사하고 이로부터 JOBID 및 실행할 JCL 파일의

위치 그리고 기타 처리 파라미터를 전달받는다.

30 OpenFrame TJES 안내서

Page 47: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

주의

디버깅 목적 등의 특수한 경우에는 셸을 통해 tjclrun을 실행할 수 있지만, TJES의 Runner Slot를 통

해 tjclrun을 실행하는 것이 일반적이다. TJES를 통하지 않고 tjclrun을 실행한 경우 TJES의 전체적인

JOB 관리대상에서 제외될 뿐만 아니라 요구되는 정상적인 단계를 실행하지 않을 수 있다.

설정파일 읽기

tjclrun.conf설정파일에 저장된 tjclrun의 실행 방식을 결정하는 설정을 읽어 들인다.

참고

tjclrun.conf에 대한 자세한 내용은 “7.5. TJCLRUN 설정” 을 참고한다.

실행 계정

기본적으로 JOB 실행될 때 tjclrun 프로세스의 소유자는 TJES 운영자의 OS 계정과 동일하다.

즉, TJES 시스템을 운영체제 상의 obm이라는 사용자 계정에서 기동한 경우 tjclrun 프로세스와 각 JOB

STEP에서 실행되는 배치 프로그램의 사용자 ID도 obm이 된다.

그러나 tjclrun.conf 설정파일의 [ACCOUNT] 섹션의 SETUID=YES로 설정하면 JCL JOB문의 USER에 지

정된 사용자로 tjclrun 프로세스를 실행할 수 있다.

참고

자세한 내용은 “3.1.12. 보안” 의 "setuid root tjclrun"을 참고한다.

SYSLIB 초기화

tjclrun은 tjclrun.conf 설정파일의 [SYSLIB] 섹션에 설정된 디렉터리 위치에서 JOB STEP에 지정된 프로그

램을 찾는다.

[SYSLIB] 섹션을 설정하지 않은 경우 사용자의 환경변수에 지정된 디렉터리에서 프로그램을 찾는다.

JCL에 JOBLIB DD 또는 STEPLIB DD가 있는 경우는 SYSLIB보다 JCL에 기술된 JOBLIB 및 STEPLIB이

우선한다.

일부 UNIX 시스템에서, tjclrun에 root 권한을 부여하여 운영하는 경우에 환경변수가 지워지는 문제가 있

으므로 [SYSLIB] 섹션을 반드시 설정해야 한다. 그렇지 않으면 tjclrun은 JCL에 지정된 프로그램을 실행하

거나 tjclrun을 로딩하는 단계에서 실패하게 된다.

참고

자세한 내용은 “3.1.12. 보안” 의 "setuid root tjclrun"을 참고한다.

제3장 JOB Execution 31

Page 48: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

SYSMSG DD 열기

tjclrun이 수행하는 일반적인 JOB 실행 단계에서 발생하는 에러 및 세부 작업의 결과 보고는 JOB SPOOL

의 SYSMSG에 저장된다. tjclrun은 실행 초기화 단계에서 내부적인 로그 메시지를 저장하기 위해서 SYSMSG

를 미리 열어둔다.

다음의 경우에 로그가 SYSMSG에 저장된다.

● tjclrun 내부적인 오류 및 시스템 함수 실패 등 문제 분석용으로 사용되는 tjclrun 인터널 로그

tjclrun의 문제 분석용 로그를 출력하기 위해서는 tjclrun.conf의 [DEBUG] 섹션에 PROFILE=YES로 지

정해야 한다.

● OpenFrame 라이브러리에서 출력되는 stderr

OpenFrame 라이브러리에서 출력되는 stderr는 OpenFrame 전체 로그 형식을 따르고 있어서 SYSMSG

와는 출력 형식이 다르다.

JOB 시작 보고

tjclrun이 지정된 JOB을 실행하기 시작했음을 TJES에게 보고한다.

JOB SPOOL 열기

JOB의 실행단계에서 사용하기 위해 JOB SPOOL을 연다.

3.1.2. 입력 JCL 파싱

tjclrun은 JOB SPOOL을 통해 전달된 JCL 파일(INPJCL)을 분석하여 JOB을 실행한다.

참고

tjclrun이 실행하는 JOB문을 포함한 (JOB SPOOL에 저장된) JCL 파일을 JOB 스트림(JOB Stream)

이라고 부른다.

JCL 프로시저 파싱

tjclrun은 하나의 JOB을 실행하는 동안 여러 번 JCL을 파싱한다.

기본적으로 JOB문을 포함하고 있는 INPJCL을 파싱하여 실행에 들어간다. INPJCL의 내용을 순차적으로

실행하는 중에 JCL 프로시저의 호출이 지정되어 있으면 해당 JCL 프로시저를 파싱하고 그 프로시저를 실

행한다. 해당 프로시저의 실행이 끝나면 다시 이전 INPJCL을 계속 실행한다.

32 OpenFrame TJES 안내서

Page 49: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JOBPARM PROCLIB

tjclrun은 JCLLIB 문장에 지정된 JCL 라이브러리(라이브러리, PDS 데이터 셋)에서 해당 JCL 프로시저를

찾는다.

tjclrun은 JOB을 실행하는 중에 파싱이 필요한 JCL 프로시저를 JOBPARM 명령의 PROCLIB 파라미터에

기술된 ddname에 해당하는 JCL 라이브러리에서 찾는다. 파싱이 필요한 대상을 앞에서 설명한 JCL 라이

브러리 상에서 찾을 수 없는 경우에는 마지막으로 SYS1.PROCLIB이라는 기본 위치에서 찾는다. 여기에

서도 찾을 수 없는 경우, JOB은 비정상 종료 처리 즉, JOB은 FLUSH 상태로 종료된다.

참고

INPJCL(JOB 스트림)에 JOBPARM 명령이 지정된 경우 이 명령의 PROCLIB 파라미터에 지정된

ddname은 tjes.conf설정파일의 [PROCLIB] 섹션에 설정되어 있어야 한다.

3.1.3. 실행 과정

실행해야 하는 JOB의 INPJCL(JOB 스트림)을 파싱한 이후에 tjclrun은 JCL에 기술된 순서에 따라 JOB

STEP을 실행한다.

참고

JCL의 JOB 문장에 RESTART 파라미터가 지정된 경우 RESTART 파라미터에 지정된 JOB STEP부

터 실행한다.

실행 단계

파싱 이후의 JOB 실행은 다음과 같이 크게 2단계로 이루어진다.

1. Lock phase

해당 JOB에서 사용되는 데이터 셋에 대한 Lock을 잡는 단계이다.

2. Exec phase

실제로 JOB STEP을 순서대로 실행하는 단계이다.

tjclrun은 미리 INPJCL 및 JCL 프로시저를 분석하여 해당 JOB에서 사용할 데이터 셋의 리스트를 얻고 실

제 실행 단계에 들어가기 전에 해당 데이터 셋들에 대해 일괄적으로 Lock을 요청함으로써 서로 다른 여러

개의 JOB이 동시에 동일한 데이터 셋을 독점적(exclusive)으로 사용하는 경우 빈번하게 발생되는 Dead

Lock 상황을 방지한다.

JOB에서 사용하는 데이터 셋들에 대한 Lock 요청 단계가 성공적으로 수행되면 실제 실행 단계를 수행한

다.

제3장 JOB Execution 33

Page 50: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

실제 실행 단계(Exec phase)는 다음과 같이 처리된다.

● 프로그램 STEP

처리해야 하는 JOB STEP이 프로그램을 실행하는 경우 지정된 프로그램을 실행한다. tjclrun은 프로그

램을 자신의 자식 프로세스로서 실행하고 그 프로그램의 실행이 종료될 때까지 기다린다. 실행한 프로

그램의 실행이 종료되기를 기다리는 중에 주기적으로 프로그램이 수행한 데이터 셋 I/O 통계 등의 정보

를 TJES에 보고한다.

● 프로시져 STEP

처리해야 하는 JOB STEP이 JCL 프로시저를 호출하는 경우 지정된 JCL 프로시저를 파싱하고 그 결과

를 가지고 해당 프로시저를 실행한다. JCL 프로시저 STEP을 실행하고 나면 해당 JCL 프로시저를 호출

한 원래의 STEP으로 돌아가서 그 다음 STEP부터 계속 실행해 나간다.

조건 실행

다음과 같이 서로 다른 방식으로 JOB을 구성하는 JOB STEP을 조건적으로 실행할 수 있다.

● EXEC COND

실행한 이전 JOB STEP의 종료상태에 따라서 다음에 실행할 JOB STEP을 처리할지 건너뛸지를 결정

한다. 이러한 방식의 조건적인 JOB STEP의 실행은 EXEC문의 COND 파라미터를 이용하여 지정한다.

● JOB COND

실행한 배치 프로그램이 종료하면 프로그램의 종료 상태가 JOB COND(예외상황)를 만족하는지 검사

하고 JOB COND를 만족하면 더 이상의 JOB STEP을 실행하지 않고 JOB을 에러로 종료한다.

JOB COND가 만족되지 않는 경우는 다음 JOB STEP을 계속해서 실행한다.

3.1.4. 프로그램 실행

tjclrun의 가장 중요한 역할이 바로 사용자가 지정한 프로그램을 실행하는 것이며, 다음과 같은 세부 작업

으로 이루어진다.

EXEC COND

EXEC PGM STEP을 실행하기 전에 먼저 해당 EXEC문에 기술된 COND 파라미터를 평가하여 이전 STEP

의 실행 결과가 EXEC COND를 만족하는 경우 (즉, 예외상황인 경우) 해당 EXEC PGM STEP을 실행하지

않고 건너뛴다.

JOB에서 실행되는 첫번째 JOB STEP은 항상 EXEC COND가 만족하지 않는 것으로 평가된다.

EXEC COND가 만족되지 않는 경우는 해당 JOB STEP (프로그램 STEP)을 다음과 같은 절차로 실행한다.

1. STEP 진행 보고

34 OpenFrame TJES 안내서

Page 51: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

해당 프로그램 STEP의 처리 시작을 TJES에게 보고한다.

2. 프로그램 실행 권한

실행할 프로그램을 JOB USER가 실행할 수 있는 권한이 있는지 검사한다. tjclrun.conf 설정파일의

[TACF] 섹션의 CHECK_UTAUTH=YES가 설정되어 있는 경우에만 권한 검사를 수행한다.

3. STEP DD 할당

프로그램 STEP에서 호출할 배치 프로그램이 사용할 데이터 셋을 지정하는 DD문을 처리하여 데이터

셋을 할당한다. 한 STEP에서 중복 DD가 발견된 경우에는 나중에 지정된 DD는 tjclrun에서 임의의 DD

로 변경하여 프로그램에서 사용되지 않도록 한다. JOB STEP 레벨의 스페셜 DD문에 대한 부가적인 처

리도 이 단계에서 처리된다. JOB STEP 레벨의 스페셜 DD문으로는 STEPCAT DD 및 STEPLIB DD문

이 있다.

4. 프로그램 파라미터

프로그램에 전달될 실행 파라미터를 만든다. 프로그램은 이 파라미터를 일반적인 UNIX 프로그램의

argc 또는 argv를 통해서 얻을 수 있다.

참고

프로시져 STEP에서 지정된 PARM은 호출되는 JCL 프로시저 내부에 포함된 프로그램의 PARM의

값을 덮어쓰도록 전달한다.

5. 호출/실행

실제로 시스템 함수를 이용하여 프로그램을 호출(fork)하는 단계이다. TJES에서 프로그램은 tjclrun 프

로세스의 자식 프로세스(child process)로서 실행된다. 그러기 위해서 먼저 호출(fork)를 실행하여 자식

프로세스를 생성하고 자식 프로세스에서 EXEC를 실행하여 지정된 프로그램을 시작한다.

6. SYSIN/SYSOUT 파이프

OpenFrame에서는 배치 프로그램이 사용하는 SYSIN DD와 SYSOUT DD를 일반적인 UNIX 프로그램

의 stdin과 stdout으로 구현하였다.

tjclrun은 비유적으로 볼 때 쉘의 명령어 라인을 이용하여 배치 프로그램을 실행하는 사용자와 같은 역

할을 수행한다고 볼 수 있다. 그런 의미에서 tjclrun은 SYSIN DD의 내용을 읽어서 애플리케이션의 stdin

에 write하여 애플리케이션의 stdin으로부터 SYSIN의 내용을 읽을 수 있도록 해준다.

반대로 애플리케이션에서 stdout으로 출력한 내용은 tjclrun이 읽어서 SYSOUT DD에 해당하는 데이터

셋이나 JOB SPOOL에 대신 출력해준다.

SYSIN DD와 SYSOUT DD를 UNIX 시스템상의 프로그램들이 공통적으로 사용하는 stdin과 stdout으로

연결함으로써 OpenFrame의 데이터 셋 API를 사용하지 않고 만들어진 대부분의 UNIX 애플리케이션

들도 OpenFrame 배치에서 별도의 처리 없이 배치 프로그램으로 실행하는 것이 가능하다.

제3장 JOB Execution 35

Page 52: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

1. UNIX 애플리케이션의 stderr는 SYSOUT DD에 stdout의 내용과 함께 기록된다. stdout 및 stderr

모두 애플리케이션의 기본적인 출력 스트림이고 Mainframe에는 stderr에 해당하는 약속된 DD가 없

기 때문에 stderr를 SYSOUT DD에 함께 저장하고 있다.

2.tjclrun은 JCL에 기술된 SYSOUT DD와 SYSPRINT DD를 동의어로 처리한다. 하나의 JOB STEP

에 둘 다 지정된 경우는 SYSOUT DD만 사용하고 SYSPRINT DD는 무시된다.

7. 모니터링 보고/대기

tjclrun은 프로그램을 실행하고 해당 프로그램이 종료할 때까지 기다리면서 주기적으로 애플리케이션

에서 수행한 데이터 셋 I/O 카운트를 TJES에 보고한다.

8. STEP DD 후처리

STEP에서 할당받은 DD는 JOB STEP에서 실행된 프로그램이 종료하면 그 종료 상태에 따라서 DD문

의 DISP 파라미터에 지정된 후처리 작업을 수행한다.

JOB STEP에서 실행된 프로그램이 정상 종료한 경우에는 Normal Disposition에 지정된 후처리를 수행

하고 비정상 종료 한 경우에는 Abnormal Disposition에 지정된 후처리를 수행한다. DISP의 종류는

PASS, KEEP, CATLG, UNCATLG, DELETE가 있다.

JOB COND

실행한 프로그램이 종료되면서 반환한 종료상태(Exit status)가 JOB COND에 해당하는지 평가하여 만족

되는 경우는 예외상황으로 간주하여 tjclrun은 자신이 보유하고 있는 데이터 셋 및 데이터 셋 Lock 등의 자

원을 해제한 후에 에러로 JOB의 실행을 종료한다. 프로그램의 종료상태가 JOB COND에 해당하지 않는

경우는 뒤따르는 다음 JOB STEP을 계속하여 실행한다.

Return Code check

JOB COND를 통과했다면 tjclrun은 실행한 프로그램이 종료되면서 반환한 Return Code를 가지고 해당

STEP을 정상으로 할지 에러로 할지를 결정한다. 정상으로 판단되면 뒤따르는 다음 STEP을 계속하여 실

행한다. 그리고 에러로 판단되면 해당 STEP을 비정상 종료하고 뒤따르는 STEP들 중에 EXEC COND의

비정상시에 실행하도록 지정된 STEP 만을 실행한다. 비정상시에 실행되도록하는 조건에는 EVEN과

ONLY 파라미터가 있다.

참고

Return Code에 대한 자세한 내용은 “제7장 환경설정”의 “7.6. Return Code 설정”을 참고한다.

36 OpenFrame TJES 안내서

Page 53: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

3.1.5. 프로시저 실행

JOB 실행과정에서 설명했듯이 처리해야 하는 JOB STEP이 JCL 프로시저를 호출하는 STEP인 경우, tjclrun

은 지정된 JCL 프로시저를 파싱하고 해당 프로시저의 내용을 실행한다.

해당 프로시저의 마지막 STEP까지 실행을 한 후에는 해당 프로시저를 호출한 JOB STEP의 다음 JOB

STEP들을 이어서 실행한다.

JCL 프로시저는 프로시저의 내용이 정의된 위치에 따라서 다음과 같이 두 가지로 구분된다.

● 입력 스트림 프로시저 (INSPROC)

입력 스트림 프로시저는 해당 프로시저를 호출하는 INPJCL에 프로시저의 내용이 정의되어 있다. 입력

스트림 프로시저는 해당 프로시저가 정의되어 있는 INPJCL에서만 호출할 수 있다.

● 카탈로그 프로시저 (CATPROC)

카탈로그 프로시저는 JCL 프로시저들을 멤버로 갖는 JCL 라이브러리에 등록되어 있는 JCL 프로시저

이다. 카탈로그 프로시저를 호출할 때는 JCL 라이브러리에 등록되어 있는 멤버이름을 프로시져로 지정

해야 한다. 자주 사용되는 JCL 프로시저들을 모아놓은 JCL 라이브러리를 PROCLIB이라고 부르며, 카

탈로그 프로시저는 여러 다른 JCL에서 호출할 수 있다.

tjclrun은 STEP에 지정된 프로시저를 INPJCL에서 먼저 찾아보고, 없는 경우에 카탈로그 프로시저로 간주

하고 CATPROC에서 찾는다.

3.1.6. DD 처리

tjclrun은 JCL의 DD문에 기술된 프로그램이 사용할 데이터 셋을 할당하여 프로그램에서 사용할 수 있도록

해준다.

일반적인 프로그램은 자신이 사용할 데이터 셋을 스스로 할당하지 않고 JCL에 DD문을 기술함으로써 tjclrun

이 할당하게 하고 그 결과를 상속받아서 사용한다.

데이터 셋 할당 작업은 프로그램 STEP에서 프로그램을 실행하기 전에 수행된다. 프로그램이 종료된 이후

에는 할당한 데이터 셋에 대한 후처리 작업을 tjclrun이 해준다. 할당된 데이터 셋은 JOB이 종료될 때 즉,

tjclrun이 종료될 때에 할당 해제된다.

데이터 셋의 할당 작업은 DD문에 기술된 데이터 셋의 특성에 따라서 서로 다르게 처리되는데 크게 다음

과 같이 구분할 수 있다.

Normal 데이터 셋

가장 일반적인 경우로 DSNAME 파라미터에 할당할 데이터 셋의 이름이 주어진 경우이다. OpenFrame의

데이터 셋 할당 모듈을 호출하여 데이터 셋을 할당하고 프로그램이 데이터 셋을 사용할 수 있도록 그 결과

를 프로그램 환경으로 전달한다.

제3장 JOB Execution 37

Page 54: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

SYSOUT 데이터 셋

DD문에 SYSOUT 파라미터가 지정된 데이터 셋이다. SYSOUT 데이터 셋은 JOB SPOOL에 JOB의 실행

결과로 생성되는 출력 데이터를 저장하기 위해서 생성된다.

임시 데이터 셋

DD문의 DSNAME 파라미터에 지정된 데이터 셋 이름이 '&&' 로 시작되거나 DSNAME 파라미터가 지정되

지 않은 SYSOUT 데이터 셋 외의 데이터 셋 역시 임시 데이터 셋이다. 이 경우 tjclrun은 내부적으로 임시

데이터 셋에 유일한 이름을 부여한다. 임시 데이터 셋은 JOB의 실행 과정에서 생성되고 JOB이 종료될 때

삭제되는 임시 데이터 셋이다.

tjclrun은 사용자가 지정한 임시 데이터 셋 이외에도 내부적인 용도로 몇 개의 임시 데이터 셋을 사용한다.

다음에 설명한 입력 스트림 데이터 셋의 처리도 그 한가지 예이다.

● 입력 스트림 데이터 셋

INPJCL(JOB 스트림)에 DD * 또는 DD DATA의 형태로 기술된 데이터 셋을 말한다.

tjclrun은 입력 스트림 데이터 셋을 JOB SPOOL에 따로 저장해 둔 다음에 내부적인 데이터 셋 이름을 부

여한다. 그 이후는 일반적인 데이터 셋과 동일한 OpenFrame 데이터 셋 처리 모듈을 이용해서 할당하고

배치 프로그램에서 이 데이터 셋을 사용할 수 있게 된다. tjclrun은 JOB SPOOL에 임시로 저장한 입력

스트림 데이터 셋이 JOB 종료할 때 제거될 수 있도록 임시 데이터 셋으로 생성한다.

3.1.7. 스페셜 DD

DD 문장은 다음의 형태로 JCL에 코딩된다.

//ddname DD [parameters,...]

시스템에서 특수한 용도로 사용하기 위해 예약되어있는 ddname을 갖는 DD문을 스페셜 DD 문이라고 부

른다.

주의

사용자는 특수한 용도로 사용하기 위해 예약된 스페셜 DD의 ddname을 약속된 이외의 용도로 사용

할 수 없다.

TJES는 다음과 같은 스페셜 DD를 지원한다.

● SYSIN

● SYSOUT 및 SYSPRINT

38 OpenFrame TJES 안내서

Page 55: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

● JOBLIB 및 STEPLIB

● JOBCAT 및 STEPCAT

SYSIN DD

현재 실행 중인 JOB STEP에 SYSIN DD문이 지정된 경우 tjclrun은 SYSIN DD문에 지정된 데이터 셋의

내용을 읽어서 tjclrun이 실행한 프로그램의 stdin으로 전달한다. 즉, 프로그램은 SYSIN DD에 의해 할당된

데이터 셋의 내용을 stdin으로부터 읽을 수 있다.

SYSOUT DD/SYSPRINT DD

현재 실행 중인 JOB STEP에 SYSOUT DD 또는 SYSPRINT DD가 존재하는 경우, tjclrun이 호출하는 프

로그램 대신 이 DD가 지정하는 데이터 셋을 개방하고, 프로그램이 stdout이나 stderr로 출력하는 내용을

읽어서 SYSOUT DD 또는 SYSPRINT DD에 의해 할당된 데이터 셋에 프로그램을 대신하여 출력한다. 이

렇게 하는 이유는 OpenFrame 데이터 셋 I/O 함수를 사용하지 않고 stdout이나 stderr에 직접 메시지를 출

력하는 대부분의 프로그램을 JCL에 의해서 자연스럽게 실행할 수 있게 하기 위함이다.

SYSOUT DD와 SYSPRINT DD는 동일한 의미로 취급한다. 2개의 DD가 둘 다 존재하는 경우에는 항상

SYSOUT DD를 사용하고 SYSPRINT DD는 사용하지 않는다.

JOBLIB DD/STEPLIB DD

JOBLIB DD와 STEPLIB DD는 tjclrun이 프로그램 STEP에서 프로그램을 찾는 PDS 데이터 셋(라이브러리

경로)을 지정한다.

● JOBLIB DD

JOBLIB DD는 INPJCL의 JOB 문장과 첫번째 EXEC 문장 사이에 지정될 수 있고, 해당 JOB에서 호출되

는 프로그램을 찾는 PDS (라이브러리)를 지정한다. DD문의 concatenation 기능을 이용하여 여러 PDS

에서 프로그램을 찾아보도록 지정할 수 있다.

● STEPLIB DD

해당 JOB STEP의 EXEC문 다음에 위치하며, JOB STEP에서 호출하는 프로그램을 찾을 PDS (라이브

러리)를 지정한다. 역시 DD문의 concatenation을 이용하여 여러 PDS에서 프로그램을 찾아보도록 지정

할 수 있다. STEPLIB DD가 지정되어 있으면 JOB STEP에서 호출하는 프로그램을 STEPLIB DD가 지

정하는 PDS(라이브러리)들에서 찾는다. 이 경우 JOBLIB DD는 사용되지 않는다.

JOBLIB DD는 STEPLIB DD가 없는 JOB STEP에서 사용된다. JOBLIB DD와 STEPLIB DD가 둘 다 지정

되지 않은 경우는 tjclrun.conf의 [SYSLIB] 섹션에 지정된 위치에서 실행할 프로그램을 찾는다.

제3장 JOB Execution 39

Page 56: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JOBCAT DD/STEPCAT DD

JOBCAT DD와 STEPCAT DD는 JOB 및 JOB STEP에서 사용할 데이터 셋 카탈로그를 지정한다. 2가지

경우 모두 DD문의 concatenation을 이용해서 여러 데이터 셋 카탈로그를 지정할 수 있다.

● JOBCAT DD

JOB 스트림의 JOB 문장과 첫 번째 EXEC 문장 사이에만 지정될 수 있고, 그 JOB에서 기본적으로 사용

할 데이터 셋 카탈로그들을 지정한다.

● STEPCAT DD

JOB STEP의 EXEC문 다음에 위치하며, 그 JOB STEP에서 사용할 데이터 셋 카탈로그를 지정한다.

JOBCAT과 STEPCAT이 모두 지정된 경우는 STEPCAT이 사용된다. JOBCAT이 지정되어 있고 STEPCAT

이 지정되어 있지 않은 JOB STEP에서는 JOBCAT이 사용된다. JOBCAT 및 STEPCAT이 전혀 지정되지

않은 JOB에서는 OpenFrame 시스템의 마스터 카탈로그가 사용된다.

JOBCAT이나 STEPCAT이 지정된 경우도 지정된 카탈로그에 데이터 셋이 카탈로깅되어 있지 않은 경우

는 마스터 카탈로그에서 데이터 셋에 대한 카탈로그 정보검색을 시도한다.

3.1.8. JOB SPOOL

tjclrun은 JOB을 수행하는 여러 단계에서 다양한 목적으로 JOB SPOOL을 사용한다. tjclrun이 JOB SPOOL

에 생성하는 데이터 셋과 각각의 용도는 다음과 같다.

INPJCL

tjclrun이 실행하는 JOB 스트림을 담고 있는 JCL 파일이다.

JOB SPOOL의 다른 대부분의 파일은 tjclrun에 의해 생성되는 것에 반하여 INPJCL은 TJES의 SUBMI

TOR(obmjmsvr)가 JOB의 submit 처리를 하는 경우 추후에 tjclrun이 사용할 수 있도록 JOB SPOOL에 미

리 만들어둔다. 그 내용은 사용자가 submit한 JCL 파일과 동일하다.

CATPROC

tjclrun이 JOB을 실행하는 과정에서 카탈로그 프로시저를 처리할 때 사용한 카탈로그 프로시저의 내용을

저장하는 SPOOL 데이터 셋이다.

하나의 JOB에서 여러 개의 카탈로그 프로시저를 호출할 수 있기 때문에 CATPROC에는 JOB에서 사용할

여러 카탈로그 프로시저의 내용이 저장된다.

CATPROC도 INPJCL과 동일하게 TJES의 SUBMITOR(obmjmsvr)가 JOB의 submit처리를 하는 중에

conversion처리를 하게 되면 추후에 tjclrun이 사용하도록 JOB SPOOl에 미리 만들어둔다.

40 OpenFrame TJES 안내서

Page 57: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

INSDSET

INPJCL에 다음과 같은 형태로 기술되어 있는 입력 스트림 데이터 셋을 tjclrun이 내부적으로 사용하기 위

해서 JOB SPOOL에 생성하는 임시 데이터 셋이다.

다음은 입력 스트림 데이터 셋을 설정하는 예이다.

//ddname DD *

line1

line2

...

lineN

/*

위의 예제의 경우 INSDSET은 line1, line2, ..., lineN을 내용으로 하는 임시 데이터 셋으로 해당 DD를 사용

하는 JOB STEP에서 생성되며, 해당 JOB STEP이 종료될 때 삭제되는 임시 데이터 셋이다. 이러한 동작

을 INSDSET SHUNT라고 부른다.

임시 데이터 셋 생성시에 레코드 길이는 tjclrun.conf의 [DD] 섹션의 INSDSET_LRECL의 지정에 따른다.

지정하지 않는 경우 기본 길이는 80이고 입력 스트림이 레코드 길이 보다 작을 경우 부족한 부분은 스페

이스로 채운다. 기본 길이보다 큰 경우에는 뒤 부분은 버려진다.

참고

1. tjclrun이 INSDSET SHUNT를 하는 이유는 입력 스트림 데이터 셋은 일반 Non-VSAM 데이터 셋과

함께 concatenation될 수 있기 때문에 입력 스트림 데이터 셋을 INPJCL에서 축출하여 데이터 셋으

로 SHUNT해둠으로써 Non-VSAM SDS의 concatenation 로직을 이용하여 일관된 방식으로 concate

nation 처리를 지원하기 위함이다.

2. INSDSET_LRECL의 설정에 대한 것은 “제7장 환경설정”의 “7.6. Return Code 설정”을 참조한다.

JESJCL

tjclrun이 파싱한 INPJCL, INSPROC 및 카탈로그 프로시저를 파싱한 결과인 parse tree를 텍스트 형태로

출력한 내용을 갖는 파일이다. 주로 문제 분석할 때 참고 자료로 사용된다.

JESMSG

tjclrun이 종료하는 경우 그 tjclrun을 실행한 Runner Slot가 해당 JOB SPOOL에 기록하는 데이터 셋이다.

그 내용은 실행된 JOB에 관련된 기본적인 정보와 JOB의 실행 과정에서 보고된 여러 가지 통계정보 그리

고 JOB STEP에 관련된 정보를 포함한다. JOB의 실행에 관련하여 TJES 시스템에서 관심이 되는 사항에

대한 요약적인 정보를 담고 있다.

SYSMSG

SYSMSG는 tjclrun의 주요 메시지 로그이다. 즉, JOB을 실행하는 과정에서 필요한 여러 하위단계의 진행

상태 및 중요 결과 메시지뿐만 아니라 작업 처리할 때 발생한 에러 메시지도 SYSMSG에 저장된다.

제3장 JOB Execution 41

Page 58: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JOB의 실행이 비정상적으로 종료된 경우 원인분석을 위해서 우선 SYSMSG의 내용을 검토해야 한다.

SYSMSG의 내용은 tjclrun이 JOB의 JOB STEP을 실행한 순서에 따라서 세부 작업이나 동작이 발생한 시

간순서대로 기록된다.

SYSMSG에 출력되는 내용은 다음과 같다.

● 수행 중인 JOB STEP 이름

● JOB 수행 중에 할당한 데이터 셋 정보

● tjclrun이 호출한 프로그램 이름과 프로세스 ID(pid)

● tjclrun이 호출한 프로그램의 종료 상태

● tjclrun이 현재 수행 중인 동작

● tjclrun의 주요 동작의 성공 여부

● tjclrun 내부 OpenFrame 라이브러리의 stderr 메시지

SYSOUT

SYSOUT 데이터 셋은 다음과 같이 DD문에 SYSOUT 파라미터가 지정된 경우를 말한다. SYSOUT 데이

터 셋은 다른 데이터 셋과 달리 JOB SPOOL에 저장되고 일반적으로 출력용 데이터를 저장한다.

다음은 SYSOUT 데이터 셋을 설정한 예이다.

//REPORT EXEC PGM=MONTHLY

//SYSIN DD *

2007-07-01,2007-08-01

/*

//SYSOUT DD SYSOUT=*

//RPTOUT DD SYSOUT=*

//RPTERR DD SYSOUT=*

위에서 설명한 다른 JOB SPOOL의 데이터 셋은 TJES가 JOB을 효율적으로 실행하기 위해 사용하는 데

이터 셋인 반면에 SYSOUT 데이터 셋은 사용자가 프로그램을 위하여 요청한 데이터 셋으로 JOB SPOOL

에 저장되도록 특별히 지정한 경우로 볼 수 있다.

SYSOUT 데이터 셋은 하나의 JOB이나 JOB STEP에서 여러 개 지정할 수 있다. 위의 예제에서 SYSOUT,

RPTOUT, RPTERR가 SYSOUT 데이터 셋이다. SYSOUT 데이터 셋의 내용은 사용자가 지정한 배치 프

로그램에서 출력하는 내용이다.

TJES는 SYSOUT 데이터 셋에 그 이외의 정보를 가감하지 않는다. 배치 프로그램에서 SYSOUT 데이터

셋의 사용을 마치면 TJES는 SYSOUT 데이터 셋의 OUTPUT CLASS에 따라서 사용자가 출력한 내용을

추후에 프린터나 화면으로 출력하는 과정을 관리할 뿐이다.

42 OpenFrame TJES 안내서

Page 59: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

3.1.9. JOB Control

TJES에서는 스케줄링 단계 이후의 실행 중인 JOB을 SUSPEND(일시정지)/RESUME(실행재개)/STOP(강

제종료)시킬 수 있다.

JOB의 실행을 위해서 실행 중인 여러 하위 프로세스에 대한 위와 같은 세가지 제어를 TJES에서는 JOB

CONTROL이라고 부른다. tjesmgr 혹은 OpenStudio와 같은 사용자 인터페이스를 이용하여 실행 중인

JOB에 대해서 JOB CONTROL을 할 수 있다.

참고

JOB CONTROL에 대한 자세한 명령 사용법은 “제6장 TJESMGR 명령어” 및 “OpenStudio BM 안내

서”를 참고한다.

사용자가 실행 중인 JOB에 대해서 JOB CONTROL 명령을 입력하면 다음과 같은 순서로 처리된다.

1. TJES는 tjclrun에게 JOB CONTROL을 위해 약속된 시그널(SIGUSR1)을 보낸다.

2. jclrun은 SIGUSR1을 받으면 부가적으로 전달되는 정보를 참조하여 SUSPEND/RESUME/STOP 중에

서 어떤 동작이 요청되었는지를 알아낸다.

3. 각각에 해당하는 UNIX 시스템의 JOB CONTROL 시그널(SIGSTOP/SIGCONT/SIGKILL)을 tjclrun이

JOB STEP에서 실행한 하위 프로세스에 보낸다.

4. 시그널을 받은 하위 프로세스는 시그널 종류에 따라서 실행이 일시 정지되거나 실행재개 또는 강제종

료된다.

5. 하위 프로그램에 대한 JOB CONTROL을 수행한 후 tjclrun은 그 결과를 TJES에게 보고한다.

6. tjclrun 프로세스 자체는 SUSPEND인 경우 스스로 자신에게 SIGSTOP을 보내서 실행을 일시 정지한

다. STOP인 경우는 tjclrun은 실행을 종료(exit)한다. RESUME의 경우에는 TJES에서 tjclrun에 SIGCONT

를 보내서 tjclrun을 실행 재개한다. 실행이 재개된 경우 tjclrun은 위에 설명한 것과 같이 자신이 실행한

하위 프로세스에 SIGCONT를 보낸다.

참고

tjclrun의 JOB CONTROL 구현은 UNIX 시스템의 JOB CONTROL 시그널 (SIGSTOP/SIG

CONT/SIGKILL)을 이용하여 구현되었기 때문에 프로세스의 유효사용자(effective userid)가 상이한

경우 시그널을 하위 프로세스에 전달하는 과정에서 권한 부족에 의한 에러가 발생할 수 있고, 이러한

경우 JOB CONTROL은 완벽하게 이루어지지 않을 수 있다. 이러한 상황을 고려하여 항상 완벽한

JOB CONTROL을 수행하기 위해서 시스템 운영자는 tjclrun에 root 권한을 부여해야 한다. 이에 대

한 자세한 내용은 “3.1.12. 보안” 의 "setuid root tjclrun"을 참고한다.

제3장 JOB Execution 43

Page 60: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

3.1.10. JOB Level Report

tjclrun은 주어진 JOB을 실행하는 과정에서 발생한 여러 가지 사항을 TJES에 보고한다. tjclrun이 TJES에

보고하는 정보는 크게 JOB 전반에 해당하는 내용과 특정 JOB STEP에 해당하는 내용으로 구분할 수 있

다.

tjclrun이 TJES에 보고하는 JOB에 관한 정보는 다음과 같다.

● JOB START/FINISH

tjclrun이 주어진 JOB을 처리하기 시작했음을 알린다. tjclrun이 정상적으로 종료하는 경우에는 명시적

으로 해당 JOB의 처리를 끝마쳤음을 TJES에 보고한다. JOB의 종료 보고 시에는 JOB의 수행이 정상인

지 여부를 나타내는 종료상태와 종료코드가 함께 보고된다.

● JOB CONTROL 상태

TJES는 tjclrun이 수행 중인 JOB을 SUSPEND/RESUME/STOP시킬 수 있다. tjclrun은 이와 같은 JOB

CONTROL을 수행한 후의 JOB 상태를 TJES에 보고한다.

● 데이터 셋 Lock 대기

tjclrun은 JOB을 처리하기 전에 미리 해당 JOB에서 사용될 데이터 셋에 대해서 데이터 셋 Lock을 요청

한다.

다른 JOB에서 동일한 데이터 셋에 이미 Lock을 실행하고 사용 중인 경우 tjclrun은 자신이 요청한 Lock

이 성공할 때까지 JOB을 처리하지 않고 기다린다. 이 때 JOB의 수행이 대기하는 원인이 되는 다른 JOB

과 Lock 요청이 대기 중인 데이터 셋이 무엇인지를 TJES에 보고한다. 이 보고 내용을 검토하여 운영자

는 여러 JOB 사이에 공유되어 사용되는 데이터 셋에 따른 JOB의 대기 문제를 쉽게 식별하고 해결할 수

있다.

3.1.11. STEP Level Report

tjclrun이 수행하는 보고 작업 중에서 JOB STEP 수준에서 보고되는 정보는 다음과 같다.

● STEP START/FINISH

JOB의 어떤 JOB STEP을 실행하고 있는지 TJES에 알려주기 위해서 tjclrun은 JOB을 이루는 각 JOB

STEP을 처리하기 시작할 때와 종료할 때 TJES에 STEP의 START/FINISH 보고를 한다.

STEP START의 경우에는 현재 실행 중인 JOB STEP의 JOB 스트림 상에서의 위치를 의미하는 STEP

의 경로(STEPPATH) 정보와 해당 JOB STEP의 타입(PGM 혹은 PROC) 등을 보고한다. STEP FINISH

보고 시에는 해당 JOB STEP의 종료상태 및 종료코드와 해당 JOB STEP을 수행하는데 걸린 시간정보

를 보고한다.

● 데이터 셋 할당

44 OpenFrame TJES 안내서

Page 61: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

tjclrun은 JOB STEP에 지정된 프로그램을 호출하기 전에 프로그램이 사용할 데이터 셋을 미리 할당한

다. (할당할 데이터 셋은 JCL의 DD문에 의해서 지정된다.)

데이터 셋의 할당정보는 전체 OpenFrame 시스템에서 매우 중요한 정보이기 때문에 tjclrun은 할당한

ddname과 데이터 셋의 이름을 JOB SPOOL의 SYSMSG에 남길 뿐만 아니라 추가적으로 데이터 셋의

할당정보가 OpenFrame의 데이터 셋 할당 모듈 자체적으로 OpenFrame_HOME/log/sys 디렉터리의

dsalc 로그에 기록된다.

● 데이터 셋 I/O 보고

tjclrun이 할당해 준 데이터 셋을 프로그램에서 사용함에 따라 변경되는 해당 데이터 셋에 대한 I/O 카운

트 정보가 반영된다.

tjclrun은 프로그램이 실행되는 동안 수행한 데이터 셋 I/O 통계정보를 주기적으로 TJES에 보고한다. 이

를 통해서 운영자(사용자)는 특정 데이터 셋에 대해서 JOB STEP 별로 몇 건을 READ/ WRITE하고 있

는지를 모니터링 할 수 있다.

3.1.12. 보안

TACF 지원 기능

tjclrun은 다음 2가지의 TACF 보안기능을 지원한다.

1. JOB STEP의 프로그램을 실행할 권한이 있는지 검사하는 기능이다.

2. DD문에 지정된 데이터 셋들에 접근할 권한이 있는지 검사하는 기능이다.

어느 경우나 권한이 없는 경우는 JOB의 실행은 비정상 종료로 처리된다.

참고

TACF를 이용하여 특정 TACF 사용자에 대하여 프로그램 및 데이터 셋에 대한 권한을 제어하는 방법

에 대해서는 OpenFrame 안내서 중 “TACF 운영자 안내서”를 참고한다.

TACF 대리자

일반적으로 JOB을 특정 사용자 권한으로 수행하기 위해서 JCL의 JOB문에 USER와 PASSWORD 파라

미터를 지정한다. JCL의 JOB문의 PASSWORD를 지정할 때에는 암호화하지 않은 상태로 지정하기 때문

에 JCL 파일 자체에 대한 보안이 엄격히 관리되지 않는 환경에서 사용자의 비밀번호가 노출될 위험이 발

생한다.

이러한 위험을 방지하기 위해서 TJES에서는 대리자(Surrogate User)로 지정된 사용자가 실행 사용자

(Execution User)를 대신하여 비밀번호를 지정하지 않고 실행 사용자 권한으로 JOB을 실행하도록 JOB을

submit 할 수 있다.

제3장 JOB Execution 45

Page 62: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

대리자가 실행 사용자를 대신하여 JOB을 submit하는 경우에도 JOB은 실행 사용자의 권한으로 실행된다.

대리자는 단순히 JOB을 실행 사용자 대신 submit할 수 있을 뿐이다. 대리자에 의한 JOB submit은 JCL의

JOB문에 PASSWORD 파라미터가 지정되지 않은 경우에만 동작한다.

참고

TACF에서 JOB 실행을 위한 대리자를 지정하는 방법은 OpenFrame 안내서 중 “TACF 운영자 안내

서”를 참고한다.

setuid root tjclrun

UNIX 시스템에서 실행 프로그램을 실행하는 사용자가 아니라 해당 프로그램 파일의 소유자 권한으로 프

로그램을 실행하기 위해서 실행 프로그램의 소유자와 파일 퍼미션을 적절하게 변경하여 프로그램 실행시

프로세스가 프로그램 파일의 소유자 권한으로 실행되도록 설정하는 작업을 setuid 작업이라고 한다. 물론

setuid된 프로그램인 경우라도 실행하는 사용자에게 해당 프로그램의 실행 권한이 있는 경우에만 실행할

수 있다. 다시 말해, setuid root 작업은 특정 프로그램을 실행시 프로그램을 실행한 사용자가 아닌 root 사

용자 권한으로 프로세스가 실행되게끔 설정하는 작업을 의미한다.

여기서 말하는 프로세스의 사용자는 UNIX 프로세스의 유효 사용자(effective userid)를 말한다. tjclrun은

프로세스가 실행되는 동안 프로세스의 실제 사용자 정보(real userid)를 tjclrun.conf의 설정과 관계없이 전

혀 변경하지 않는다. UNIX 시스템에서 파일 및 시스템 자원에 대한 권한 검사는 프로세스의 유효 사용자

에 대해서 이루어진다.

실제 사용자 정보는 실제적으로 프로세스를 호출한 사용자를 구분하기 위한 용도로 사용된다. 또한 여기

서 말하는 사용자는 TACF 사용자와는 직접적인 관련이 없는 운영 시스템 상의 사용자를 의미한다.

다음의 2가지 사항을 고려하여 필요한 경우 OpenFrame TJES를 설치한 후에 tjclrun 프로그램에 대하여

root 실행 권한을 부여할지 여부를 결정한다.

1. JOB CONTROL 경우 tjclrun이 실행한 배치 프로그램이 tjclrun을 실행하는 프로세스의 유효 사용자와

다른 유효 사용자로 실행되는 경우 tjclrun은 UNIX의 JOB CONTROL 시그널에 기반한 JOB CONTROL

을 권한 부족의 이유로 성공적으로 수행할 수 없다. 이러한 경우에도 성공적으로 JOB CONTROL을 하

려면 tjclrun 프로그램에 root 실행 권한을 부여하는 것을 고려해야 한다.

혹은 위와 같은 상황은 매우 예외적인 상황으로 운영자가 직접 root 사용자로 로그인해서 해당 프로세

스에 대해서 JOB CONTROL 시그널을 보낼 수도 있지만 이러한 수작업은 더디고 운영자의 업무부담

을 높이는 요소가 될 수 있다.

예를 들면, tjclrun이 실행하는 배치 프로그램에 대해서 tjclrun 프로세스의 유효 사용자가 아닌 다른 사

용자로 setuid 처리가 되어 있는 경우에 이러한 문제가 발생한다.

2. JOB을 수행하는 tjclrun 및 JOB STEP에서 실행되는 배치 프로그램을 실행하는 프로세스를 JOB에 지

정된 USER의 권한으로 실행하기 위해서는 tjclrun.conf 설정파일의 [ACCOUNT] 섹션의 SETUID=YES

로 설정해야 할 뿐만 아니라 tjclrun 프로그램을 설치할 때 root 실행 권한을 부여해야 한다.

46 OpenFrame TJES 안내서

Page 63: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

UNIX 운영 시스템에서 프로세스를 실행하는 사용자 정보를 프로그램 실행 중에 변경하기 위해서는 특

권 유저(root)의 권한이 필요하기 때문이다.

이러한 제약을 피하기 위해서 TJES 시스템 자체를 root로 운영하는 것도 하나의 방법이지만 시스템 보

안 및 관리상의 이유로 root로 서비스를 운영하는 것은 권장하지 않는다. 그 대신 tjclrun 프로그램만 다

음과 같이 setuid root 작업을 해주면 tjclrun 프로그램을 실행하는 사용자가 root가 아니더라도 tjclrun을

실행하는 경우 tjclrun 프로그램 파일의 소유자(root)의 권한으로 tjclrun이 실행된다.

다음의 예는 setuid root 절차를 보여준다.

$ cd $OPENFRAME_HOME/bin

$ su

$ chown 0:0 tjclrun

$ chmod u+s tjclrun

$ ls -l tjclrun

-rwsr-xr--x root system {size} {date-time} tjclrun

$ exit

파일 퍼미션이 -rwsr-xr--x 이고 소유자가 root로 변경된 것을 확인한다.

참고

자세한 내용은 UNIX 안내서의 "man chmod" 및 "man chown"를 참고한다.

프로그램이 실행된 직후에 tjclrun은 root 권한을 가지고 있으므로 JCL에 지정된 USER의 권한으로 프로

세스 사용자를 변경할 수 있다. tjclrun은 실행 초기의 매우 제한된 작업만을 root 권한으로 수행하고 JOB

을 수행하는 대부분의 작업은 JCL에 지정한 사용자의 권한으로 실행된다.

JOB의 프로세스 어카운팅과 STOP과 같은 JOB CONTROL을 사용하지 않는 경우라면 tjclrun 프로그램에

대한 setuid 절차와 tjclrun.conf의 setuid 관련 설정은 필요하지 않다.

참고

IBM AIX의 경우 setuid root된 프로그램을 실행하는 경우 보안상의 이유로 공유 라이브러리를 찾는

환경 변수인 LIBPATH가 제거되어 버리기 때문에 tjclrun을 실행하면 tjclrun이 사용하는 OpenFrame

제품의 공유 라이브러리들을 로딩할 수 없는 문제가 있다.

이를 해결하는 방법은 tjclrun 프로그램을 고객사에 설치한 이후에 재링크하는 것이다. 이렇게 하면

환경 변수 LIBPATH에 의존하지 않고 링크를 수행할 때 찾았던 디렉터리에서 필요한 공유 라이브러

리를 찾는다. 즉 IBM AIX 운영 시스템의 경우 외부 사용자에 의해 악의적으로 변경된 공유 라이브러

리가 root 권한을 갖는 프로세스에서 사용되는 것을 방지하기 위한 운영 시스템상의 정책이라고 볼

수 있다.

제3장 JOB Execution 47

Page 64: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

다음의 예는 IBM AIX에서 tjclrun을 재링크하는 방법을 보여준다.

$ cd $OPENFRAME_HOME/bin

$ cp tjclrun tjclrun.bak

$ cc -q64 -brtl -o tjclrun.new ¥

> ./tjclrun ¥

> -L$OPENFRAME_HOME/lib -L$TB_HOME/client/lib -L$TMAXDIR/lib64 ¥

> -ljcl -licf -ldsio -lspool -ltjes -ljmcliout -lsms -lsaf ¥

> -ldsalc -lpgmdd -lams -lbinfmt -lofcom -llockm -lcli

$ cp tjclrun.new tjclrun

OpenFrame 운영 사용자 환경에서 재링크 작업을 수행한 후에 위에서 설명한 setuid root 절차를 수행한

다. 재링크할 때 함께 링크 해주어야 하는 라이브러리들은 (위의 예제에서 -ljcl 부터 -lcli 부분까지) ldd tjclrun

명령으로 출력되는 tjclrun이 사용하는 라이브러리들 중에서 OpenFrame 제품에 포함된 라이브러리들이

다.

참고

다른 UNIX 플랫폼의 경우 (예를 들면 Linux의 경우) ld.so.conf 등과 같은 trusted 라이브러리를 등록

하는 설정을 통해서 OpenFrame 제품에서 제공되는 라이브러리를 공유 라이브러리 search 환경 변

수에 의존하지 않고 찾을 수 있도록 설정할 수 있다.

주의

tjclrun을 setuid root 권한으로 설치하여 운영하는 경우는 tjclrun.conf 설정파일의 [SYSLIB] 섹션을

명시적으로 설정해주어야 한다.

특히 IBM AIX와 같이 필요한 환경변수가 되어버리는 시스템에서는 필수적인 설정이다. 그렇지 않은

경우라도 tjclrun이 [SYSLIB]에 설정된 search path에서만 프로그램이나 공유 라이브러리를 찾게끔

하는 것이 보안 및 시스템 성능상으로 더 유리하다. 물론 OpenFrame 설정파일들에 대한 변경 권한

을 엄격하게 관리해야 한다.

3.1.13. tjclrun 호출

tjclrun은 다음과 같은 실행 인자와 함께 실행되어야 한다.

TJES의 Runner Slot은 JOB의 실행을 할당 받은 당시의 TJES의 상태에 기반하여 적절한 실행인자와 함

께 실행된다.

tjclrun RUNMODE JOBID INITINDEX JOBSTREAM JOBPOS [keyword args ...]

다음은 tjclrun의 인자에 대한 설명이다.

48 OpenFrame TJES 안내서

Page 65: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명인자

JOB (normal run) 또는 JEM (JOB Emulation) 테스트RUNMODE

유일한 JOBID (예, JOBnnnnn)JOBID

Runner Slot 인덱스INITINDEX

JOB (normal run) 또는 JEM (JOB Emulation) 테스트JOBSTREAM

JCL문을 포함하고 있는 JOB 스트림RUNMODE

JOB 스트림에 JOB이 여러 개 있는 것을 고려한 실행할 JOB의 위치JOBPOS

● [keyword args]

RESTART=*|stepname|stepname.procstepname

재시작할 JOB STEP을 지정한다. 애스터리스크(*)는 첫번째 JOB 또는 프로시져 STEP을 의미하고,

stepname은 stepname으로 지정된 JOB STEP을 의미하며, stepname.procstepname은 stepname.proc

stepname의 PROC STEP을 의미한다.

주의

tjclrun을 쉘의 명령어 라인에서 직접 실행하는 것도 가능하기는 하지만 이렇게 실행된 경우는 TJES

의 JOB 관리의 submit 및 스케줄링 단계를 건너뛰고 직접 실행하는 경우이므로 정상적인 JOB의 실

행이 보장되지 않는다.

3.1.14. NICE를 통한 PERFORM 처리

JCL의 문법 중에 JOB문과 STEP문에 PERFORM이라는 파라미터가 있다. MainFrame에서는 이 파라미

터가 JOB이나 JOB STEP에 대한 퍼포먼스 그룹을 지정하여 해당 JOB이나 JOB STEP의 실행 중의 우선

순위를 조절하게 된다.

하지만 UNIX에서는 퍼포먼스 그룹이 존재하지 않고 프로세스 기반으로 NICE라는 기능을 통해 CPU 우선

순위 정도를 사용자들이 조절할 수 있다. OpenFrame에서는 PERFORM 파라미터에 대해서 UNIX의 NICE

와 매핑을 하여 지원을 하고 있다.

PERFORM 파라미터를 이용할지 여부와 PERFORM의 값과 NICE의 값을 매핑하는 것은 OpenFrame 설

정을 통해 할 수 있다. 이에 대한 내용은 “제7장 환경설정”의 “7.5. TJCLRUN 설정”에서 [PERFORM] 섹션

을 참고한다.

주의

UNIX에서 프로세스의 NICE의 값을 변경하기 위해서는 Supper User의 권한이 필요하다. 그러므로

PERFORM을 사용하고자 하는 경우에는 setuid 기능을 함께 사용하여야 한다. NICE의 값을 변경함

으로써 CPU 사용의 우선순위를 높일 수 있다. 이는 CPU 사용시간이 많은 JOB에는 도움이 된다. 하

지만 I/O 처리에 많은 시간을 소비하는 JOB에는 효과가 거의 없다고 볼 수 있다.

제3장 JOB Execution 49

Page 66: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 67: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제4장 SPOOL

SPOOL은 JOB 수행에 필요한 입력 및 JOB 수행으로 생성된 결과물인 SPOOL 데이터 셋을 담고 있는 볼

륨을 지칭하거나 또는 SPOOL 데이터 셋을 사용하는 오퍼레이션을 뜻한다.

JCL이 submit되면, TJES에서는 JOB에 유일한 JOBID를 부여하고 JOBQ에 등록한다. 이 때 부여된 JOBID

이름으로 SPOOL 볼륨에 SPOOL 공간이 할당된다. 그리고 INPJCL이라는 SPOOL 데이터 셋이 생성된

후 JCL을 INPJCL에 복사한다. 이후의 JOB 수행에서는 INPJCL이 입력으로 사용된다.

tjclrun은 JOBID로 생성된 SPOOL 공간에 JESMSG, JESJCL, SYSMSG, CATPROC라는 이름의 SPOOL

데이터 셋들과 JCL에 기술된 SYSOUT DD에 대한 SPOOL 데이터 셋을 생성하고 JOB 수행에 사용한다.

생성된 SPOOL 데이터 셋은 tjesmgr나 OpenStudio를 통해서 내용을 확인할 수 있다.

4.1. SPOOL BACKUPJOBQ에서 필요없게 된 JOB을 삭제하게 되면, 해당 SPOOL도 삭제하게 된다. 만약 이 때, SPOOL을 보

존해야 할 필요가 있으면 SPOOL BACKUP 기능을 사용하여 SPOOL을 백업할 수 있다.

SPOOL BACKUP 명령이 내려지면 tjes.conf 설정파일에 [SPOOL] 섹션의 SPOOL_BACKUP_DIR항목에

설정된 백업 디렉터리에 현재 날짜로 디렉터리가 생성된다.

그리고 이 디렉터리에 백업된 JOB에 대해서 해당 SPOOL을 압축하여 JOBID_JOBNAME_submitDATE_sub

mitTIME.tar.gz 형식의 파일을 생성한 후 백업된 JOB을 JOBQ와 SPOOL에서 삭제한다. 백업된 SPOOL

에 대해서 조회를 하게 되면, tjes.conf 설정파일에 [SPOOL] 섹션의SPOOL_UNPACK_DIR 항목에 설정된

디렉터리에 압축된 JOBID_JOBNAME_submitDATE_submitTIME.tar.gz 형식의 파일을 풀어 놓고, 이후

해당 JOB에 대한 SPOOL을 조회할 수 있다.

4.2. SPOOL 데이터 셋SPOOL 데이터 셋은 JOB이 수행될 때 기본적으로 생성되는 데이터 셋 (INPJCL, SYSMSG, CAT

PROC,JESMSG, JESJCL)과 JCL에 SYSOUT으로 기술되어 생성되는 데이터 셋이 있다.

다음은 데이터 셋 TEST.DATASET1의 내용을 SYSIN DD의 스크립으에 정해진 키로 TEST.DATASET2,

TEST.DATASET3정렬하는 예이다.

<TESTPROC JCL>

//TESTPROC JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP01 EXEC SORTPROC

//PS010.SORTIN DD DSN=TEST.DATASET1,DISP=(SHR,KEEP)

//PS010.SORTOUT DD DSN=TEST.DATASET2,DISP=(NEW,CATLG),

제4장 SPOOL 51

Page 68: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

// DCB=(RECFM=FB,LRECL=10,BLKSIZE=100)

//SYSIN DD *

SORT FIELDS=(1,5,CH,A)

/*

//STEP02 EXEC SORTPROC

//PS010.SORTIN DD DSN=TEST.DATASET1,DISP=(SHR,DELETE)

//PS010.SORTOUT DD DSN=TEST.DATASET3,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=10,BLKSIZE=100)

//SYSIN DD *

SORT FIELDS=(3,5,CH,A)

/*

이 JCL은 CATALOGED PROCEDURE인 SORTPROC를 사용하는 두 개의 STEP으로 되어 있다. SORT

PROC의 내용은 다음과 같고 SORT 유틸리티를 수행한다.

<SORTPROC>

//PS010 EXEC PGM=DFSORT

//SORTIN DD DUMMY

//SORTOUT DD DUMMY

//SYSPRINT DD SYSOUT=*

JCL TESTPROC을 submit하여 실행하면 다음과 같은 SPOOL 데이터 셋이 생성된다.

SPOOL LIST :

---------------------------------------------------------------------------

NO STEP DDNAME SIZE DSNAME

---------------------------------------------------------------------------

0 -------- INPJCL 495 INPJCL

1 -------- SYSMSG 4K SYSMSG

2 -------- CATPROC 278 CATPROC

3 -------- JESMSG 1K JESMSG

4 -------- JESJCL 3K JESJCL

5 STEP01/PS010 SYSPRINT 576 obmvos3.TESTPROC.JOB00013.D000003

6 STEP02/PS010 SYSPRINT 576 obmvos3.TESTPROC.JOB00013.D000007

-----------------------------------------------------------------------------

SPOOL LIST의 SPOOL 데이터 셋 내용은 다음과 같다.

52 OpenFrame TJES 안내서

Page 69: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

INPJCL

submit된 JCL이 복사되어있다. 이후의 JOB 실행에서는 INPJCL의 내용을 사용한다.

<INPJCL>

//TESTPROC JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)

//STEP01 EXEC SORTPROC

//PS010.SORTIN DD DSN=TEST.DATASET1,DISP=(SHR,KEEP)

//PS010.SORTOUT DD DSN=TEST.DATASET2,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=10,BLKSIZE=100)

//SYSIN DD *

SORT FIELDS=(1,5,CH,A)

/*

//STEP02 EXEC SORTPROC

//PS010.SORTIN DD DSN=TEST.DATASET1,DISP=(SHR,DELETE)

//PS010.SORTOUT DD DSN=TEST.DATASET3,DISP=(NEW,CATLG),

// DCB=(RECFM=FB,LRECL=10,BLKSIZE=100)

//SYSIN DD *

SORT FIELDS=(3,5,CH,A)

/*

SYSMSG

JOB이 실행되는 동안 tjclrun이 생성한 메시지를 저장한다.

<SYSMSG>

JOBID=JOB00013 JOBPOS=0 RUNPID=8159

TESTPROC JOB

==============================================================================

--------------------------- STEP01 EXEC PROC step ----------------------------

(JRN0210I) Start parsing Cataloged Procedure ...

---------------------------- PS010 EXEC PGM step -----------------------------

(JRN0258I) SYSIN DD SHUNT - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000000)

(JRN0320I) SORTIN DD ALLOC - DSNAME=TEST.DATASET1

(JRN0320I) SORTOUT DD ALLOC - DSNAME=TEST.DATASET2

(JRN0321I) SYSIN DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000000)

(JRN0321I) SYSPRINT DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000003)

--------------------------- STEP02 EXEC PROC step ----------------------------

(JRN0210I) Start parsing Cataloged Procedure ...

---------------------------- PS010 EXEC PGM step -----------------------------

(JRN0258I) SYSIN DD SHUNT - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000004)

(JRN0320I) SORTIN DD ALLOC - DSNAME=TEST.DATASET1

(JRN0320I) SORTOUT DD ALLOC - DSNAME=TEST.DATASET3

(JRN0321I) SYSIN DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000004)

제4장 SPOOL 53

Page 70: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

(JRN0321I) SYSPRINT DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000007)

==============================================================================

--------------------------- STEP01 EXEC PROC step ----------------------------

(JRN0210I) Start parsing Cataloged Procedure ...

---------------------------- PS010 EXEC PGM step -----------------------------

EXEC PGM=SORT

(JRN0258I) SYSIN DD SHUNT - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000000)

(JRN0320I) SORTIN DD ALLOC - DSNAME=TEST.DATASET1

(JRN0320I) SORTOUT DD ALLOC - DSNAME=TEST.DATASET2

(JRN0321I) SYSIN DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000000)

(JRN0321I) SYSPRINT DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000003)

(JRN0044I) dsalc_report_start OK

(JRN0240I) SYSPRINT DD in STEP01/PS010 open

(JRN0226I) dsio_open() for SYSIN DD - DDNAME[SYSIN] with DSN, LOCATION[STEP01]

(JRN0335I) SORTIN DD in STEP01/PS010 exported

(JRN0335I) SORTOUT DD in STEP01/PS010 exported

(JRN0335I) SYSIN DD in STEP01 exported

(JRN0335I) SYSPRINT DD in STEP01/PS010 exported

(JRN0058I) pgm pid=8160

(JRN0060I) Entering exec_pipe_loop() ...

(JRN0301I) SYSIN DD to PGM done

(JRN0245I) PGM closed stdout pipe

(JRN0061I) Leaving exec_pipe_loop() ...

(JRN0063I) pipe work done with coprocess child (PGM)

(JRN0080I) PGM pid[8160] EXITED

(JRN0065I) PS010 EXEC PGM step done with RC=0

(JRN0073I) dsalc_report_info OK

(JRN0069I) step res usage: real[ 0.23] user[ 0.00] system[ 0.01] cuser[

0.00] csystem[ 0.00]

(JRN0070I) res usage: cpu_time[ 0.01] proc_time=[ 0.23] memory_size=[-1Kb]

(JRN0345I) SORTIN DD DISPOSE COND=NORMAL

(JRN0345I) SORTOUT DD DISPOSE COND=NORMAL

(JRN0345I) SYSIN DD DISPOSE COND=NORMAL

(JRN0345I) SYSPRINT DD DISPOSE COND=NORMAL

--------------------------- STEP02 EXEC PROC step ----------------------------

(JRN0210I) Start parsing Cataloged Procedure ...

---------------------------- PS010 EXEC PGM step -----------------------------

EXEC PGM=SORT

(JRN0258I) SYSIN DD SHUNT - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000004)

(JRN0320I) SORTIN DD ALLOC - DSNAME=TEST.DATASET1

(JRN0320I) SORTOUT DD ALLOC - DSNAME=TEST.DATASET3

(JRN0321I) SYSIN DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000004)

(JRN0321I) SYSPRINT DD ALLOC - DSNAME=JOB00013(obmvos3.TESTPROC.JOB00013.D000007)

(JRN0044I) dsalc_report_start OK

(JRN0240I) SYSPRINT DD in STEP02/PS010 open

(JRN0226I) dsio_open() for SYSIN DD - DDNAME[SYSIN] with DSN, LOCATION[STEP02]

54 OpenFrame TJES 안내서

Page 71: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

(JRN0335I) SORTIN DD in STEP02/PS010 exported

(JRN0335I) SORTOUT DD in STEP02/PS010 exported

(JRN0335I) SYSIN DD in STEP02 exported

(JRN0335I) SYSPRINT DD in STEP02/PS010 exported

(JRN0058I) pgm pid=8163

(JRN0060I) Entering exec_pipe_loop() ...

(JRN0301I) SYSIN DD to PGM done

(JRN0245I) PGM closed stdout pipe

(JRN0061I) Leaving exec_pipe_loop() ...

(JRN0063I) pipe work done with coprocess child (PGM)

(JRN0080I) PGM pid[8163] EXITED

(JRN0065I) PS010 EXEC PGM step done with RC=0

(JRN0073I) dsalc_report_info OK

(JRN0069I) step res usage: real[ 0.04] user[ 0.00] system[ 0.01] cuser[

0.00] csystem[ 0.01]

(JRN0070I) res usage: cpu_time[ 0.02] proc_time=[ 0.04] memory_size=[-1Kb]

(JRN0345I) SORTIN DD DISPOSE COND=NORMAL

(JRN0345I) SORTOUT DD DISPOSE COND=NORMAL

(JRN0345I) SYSIN DD DISPOSE COND=NORMAL

(JRN0345I) SYSPRINT DD DISPOSE COND=NORMAL

--------------------------- DATA SET UNALLOCATION ----------------------------

(JRN0346I) SYSPRINT DD UNALLOC COND=NORMAL

(JRN0346I) SYSIN DD UNALLOC COND=NORMAL

(JRN0346I) SORTOUT DD UNALLOC COND=NORMAL

(JRN0346I) SORTIN DD UNALLOC COND=NORMAL

(JRN0346I) SYSPRINT DD UNALLOC COND=NORMAL

(JRN0346I) SYSIN DD UNALLOC COND=NORMAL

(JRN0346I) SORTOUT DD UNALLOC COND=NORMAL

(JRN0346I) SORTIN DD UNALLOC COND=NORMAL

(JRN0333I) JOB is enqueued for output processing - JOBID=JOB00013, ABEND=0

CATPROC

JOB 실행에서 CATALOGED PROCEDURE를 사용할 때 PROCEDURE의 내용을 저장한다.

XX-------- SORTPROC in SYS1.PROCLIB --------XX

//PS010 EXEC PGM=DFSORT

//SORTIN DD DUMMY

//SORTOUT DD DUMMY

//SYSPRINT DD SYSOUT=*

XX-------- SORTPROC in SYS1.PROCLIB --------XX

//PS010 EXEC PGM=DFSORT

//SORTIN DD DUMMY

//SORTOUT DD DUMMY

//SYSPRINT DD SYSOUT=*

제4장 SPOOL 55

Page 72: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JESMSG

JOB과 관련된 정보와 각각의 STEP에 대한 정보가 저장된다.

---< JOB INFO >-----------------------------------------------------------------

JOB ID : JOB00013

JOB NAME : TESTPROC NODENAME : NODE1

JOB CLASS : A , JOB STATUS : D(R00000) , JOB PRTY : 5 , RUNNER INDEX : 0

JOB USER : NOUSER

JCL PATH : /home/obmvos3/openframe/volume_default/SYS1.JCLLIB/TESTPROC

TIME STAMP : SUBM 20091104163438, EXEC 20091104163439, TERM 20091104163440

RES USAGE : CPU - 0s (p:1s) , 0%

---<STEP INFO>------------------------------------------------------------------

STEP : [STEP01/PS010]

CPU 0s(p: 0s)

SORTIN TEST.DATASET1 R:3 W:0

SORTOUT TEST.DATASET2 R:0 W:3

SYSIN JOB00013(obmvos3.TESTPROC.JOB00013.D000000) R:1 W:0

SYSPRINT;20 JOB00013(obmvos3.TESTPROC.JOB00013.D000003) R:0 W:20

STEP : [STEP02/PS010]

CPU 0s(p: 0s)

SORTIN TEST.DATASET1 R:3 W:0

SORTOUT TEST.DATASET3 R:0 W:3

SYSIN JOB00013(obmvos3.TESTPROC.JOB00013.D000004) R:1 W:0

SYSPRINT;20 JOB00013(obmvos3.TESTPROC.JOB00013.D000007) R:0 W:20

다음은 JESMSG에 저장되는 JOB 정보에 대해 설명한 표이다.

설명필드

할당된 JOB의 고유번호이다.JOB ID

JOB 이름이다.JOB NAME

JOB이 실행된 TJES 노드 이름이다.NODENAME

JOB CLASS이다.JOB CLASS

JOB의 현재 상태(반환 값)이다.JOB STATUS

실행한 JOB의 JOB 스케줄링 우선순위이다.JOB PRTY

JOB을 실행한 Runner Slot 번호이다.RUNNER INDEX

JOB을 실행한 사용자이다.JOB USER

USER가 submit한 JCL 파일의 위치 및 파일이름이다.JCL PATH

JOB이 submit된 시각, JOB 실행의 시작 및 종료 시각이다.TIME STAMP

JOB 실행에 사용된 CPU 시간을 나타낸다.RES USAGE

- CPU

56 OpenFrame TJES 안내서

Page 73: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명필드

- 0s : tjclrun 및 fork된 자식 프로세스의 CPU 사용량의 합 (현재는 프로세스

가 종료되었으므로 0)

- (p:2s) : tjclrun이 fork된 시점부터 종료 시까지의 시간 즉, JOB 수행시간

- 0% : JOB 수행시간 대비 CPU 사용량

다음은 JESMSG에 저장되는 STEP 정보에 대해 설명한 표이다.

설명필드

해당 JOBSTEP의 이름이다.STEP

해당 JOBSTEP 처리에 사용된 CPU 시간(실제 처리시간)이다.CPU

해당 JOBSTEP에서 발생한 SYSUT1에 대한 I/O 카운트이다.SYSUT1

해당 JOBSTEP에서 발생한 SYSUT2에 대한 I/O 카운트이다.SYSUT2

해당 JOBSTEP에서 발생한 STEPLIB에 대한 I/O 카운트이다.STEPLIB

해당 JOBSTEP에서 발생한 SYSPRINT에 대한 I/O 카운트이다.SYSPRINT

JESJCL

INPJCL에 대하여 JCL 문장의 parse tree가 저장된다.

<JESJCL>

JOB STREAM=[/home/obmvos3/openframe/spool/JOB00013/INPJCL], JOBPOS=[0]

========================================================================

/JOB[name=TESTPROC,lineno=1]={

|[key=CLASS]={STR,value=[A]}

|[key=MSGCLASS]={STR,value=[X]}

|[key=MSGLEVEL]={SUB,value={

| |[pos=1]={STR,value=[1]}

| |[pos=2]={STR,value=[1]}

|}}

|-------- child statements --------

|/EXEC[name=STEP01,lineno=2]={

| |[pos=1]={STR,value=[SORTPROC]}

|}

|/DD[name=PS010.SORTIN,lineno=3]={

| |[key=DSN]={STR,value=[TEST.DATASET1]}

| |[key=DISP]={SUB,value={

| | |[pos=1]={STR,value=[SHR]}

| | |[pos=2]={STR,value=[KEEP]}

| |}}

제4장 SPOOL 57

Page 74: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

|}

|/DD[name=PS010.SORTOUT,lineno=4]={

| |[key=DSN]={STR,value=[TEST.DATASET2]}

| |[key=DISP]={SUB,value={

| | |[pos=1]={STR,value=[NEW]}

| | |[pos=2]={STR,value=[CATLG]}

| |}}

| |[key=DCB]={SUB,value={

| | |[key=RECFM]={STR,value=[FB]}

| | |[key=LRECL]={STR,value=[10]}

| | |[key=BLKSIZE]={STR,value=[100]}

| |}}

|}

|/DD[name=SYSIN,lineno=6]={

| |[pos=1]={STR,value=[*]}

| |[key=DATA]={DAT,value={count=1

{{{/DAT ------------------------------

SORT FIELDS=(1,5,CH,A)

}}}/DAT ------------------------------

| |}}

|}

...

JCL에서 SYSOUT으로 정의된 SPOOL 데이터 셋

주로 JCL에 기술된 유틸리티나 애플리케이션에서 Output으로 사용된다. 현재 이 예제에서는 STEP01,

STEP02에서 각각 SORT 메시지를 저장하는 SYSPRINT문에 대하여 SPOOL 데이터 셋이 생성되었다.

<STEP01/PS010 SYSPRINT SAZA.TESTPROC.JOB00012.D000004>

dfsort version 5.0.1(1) obmvos3@TP3:ofsrc5/batch(#1) 2009-09-04 19:32:57

163439 M SRT0001M parsing starts.

163439 M SRT0002M parsing finishes.

<<PROSORT SCRIPT>>

DEFREC FIXED,SIZE=10

DATASIZE 1M

MEMORY 512M

WORKSPACE = (

/home/obmvos3/openframe/temp/sort0,

/home/obmvos3/openframe/temp/sort1,

/home/obmvos3/openframe/temp/sort2)

SORT FIELDS=(1,5,CH,A)

58 OpenFrame TJES 안내서

Page 75: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

163439 U MSGXXXXU 3 records are released

163439 U MSGXXXXU 3 records are returned

163439 M SRT3002M sorting finishes.

163439 M SRT9002M 3 records are written.

<STEP02/PS010 SYSPRINT SAZA.TESTPROC.JOB00012.D000009>

dfsort version 5.0.1(1) obmvos3@TP3:ofsrc5/batch(#1) 2009-09-04 19:32:57

163439 M SRT0001M parsing starts.

163439 M SRT0002M parsing finishes.

<<PROSORT SCRIPT>>

DEFREC FIXED,SIZE=10

DATASIZE 1M

MEMORY 512M

WORKSPACE = (

/home/obmvos3/openframe/temp/sort0,

/home/obmvos3/openframe/temp/sort1,

/home/obmvos3/openframe/temp/sort2)

SORT FIELDS=(3,5,CH,A)

163439 U MSGXXXXU 3 records are released

163439 U MSGXXXXU 3 records are returned

163439 M SRT3002M sorting finishes.

163439 M SRT9002M 3 records are written.

제4장 SPOOL 59

Page 76: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 77: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제5장 OUTPUT Processing

OUTPUT Processing은 JOB 수행 도중에 생성된 SYSOUT을 JOB이 종료된 후에 처리하는 단계이다.

OpenFrame에서 프린터로 출력하는 작업은 엄밀히 말하면 물리적인 프린터를 직접 가동시키는 것은 아

니고, 외부 프린터 솔루션에 프린트할 데이터와 프린트에 사용될 리소스 정보(FORM, FORMS, CHARS

등)를 전달하는 것이다. 외부 프린터 솔루션에 데이터와 정보를 전달하기 위해 print.conf [PRINTn] 섹션에

있는 COMMAND와 DRIVER_PATH에 필요한 명령어와 공유 라이브러리의 경로를 설정해야 한다.

5.1. OUTPUTOUTPUT이란 OUTPUT Processing에서 처리되는 단위로, JOB 수행이 완료된 후 생성된 SPOOL 데이터

셋은 OUTPUT Processing 단계를 거치게 된다.

하나의 SPOOL 데이터 셋이 한 개의 OUTPUT으로 처리된다.

5.2. OUTPUT 처리JOB 수행이 끝나면 SPOOL 데이터 셋은 OUTPUT 단위로 OUTPUTQ에 등록된다. 등록된 OUTPUT은

ofrpmsvr에 의해 스케줄링되어 프린트되거나 인터널 리더에 의해 다시 submit된다. 그리고 ofrpmsvr은

print.conf의 [PRINTERn] 섹션의 CLASS 설정과 OUTPUT CLASS와 비교하여 스케줄링하고, OUTPUT

DISPOSITION에 따라 OUTPUT을 처리한다.

5.2.1. OUTPUT CLASS

OUTPUT에 부여된 1 바이트 문자로 A-Z, 0-9가 사용된다. OUTPUT CLASS는 JCL에서 지정한다.

다음에서는 PRINT DD의 OUTPUT CLASS가 Y로 지정된다.

//PRINT DD SYSOUT=Y

OUTPUT CLASS를 애스터리스크(*)로 지정하는 경우 애스터리스크(*)로 지정하면 JOB문에서 MSGCLASS

로 지정된 CLASS가 OUTPUT CLASS로 지정된다.

다음 예에서는 PRINT DD의 OUTPUT CLASS가 X로 지정된다.

//COPY02 JOB CLASS=I,MSGCLASS=X,MSGLEVEL=(1,1)

...

//PRINT DD SYSOUT=*

제5장 OUTPUT Processing 61

Page 78: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

5.2.2. OUTPUT DISPOSITION

OUTPUT에 부여된 조치사항이다. JOB이 성공적으로 종료되었는지 여부에 따라 정상 처리(Normal Dispo

sition)와 비정상 처리(Abnormal Disposition)로 나뉜다.

OUTPUT DISPOSITION의 종류와 성격은 다음과 같다.

설명종류

사용자가 release할 때까지 처리를 대기한다.HOLD

OUTPUT이 스케줄링되어 프린트 되어야 함을 의미한다. 프린터 솔루션을 호

출한 후 OUTPUT이 삭제된다.

WRITE

OUTPUTQ에서 삭제한다.PURGE

WRITE와 같다. 다만 출력작업이 끝난후 삭제하지 않고, LEAVE 상태로 남아

있는다.

KEEP

HOLD와 같다. 다만 사용자가 release하게 되면 KEEP상태로 된다.LEAVE

OUTPUT DISPOSITION은 다음과 같은 방법으로 지정한다.

1. OUTPUT CLASS에 따라 환경파일에 설정된 값으로 지정된다.

환경파일은 tjes.conf의 [OUTclass] 섹션에서 OUTPUT DISPOSITION이 클래스에 따라 다음과 같은 예

처럼 정의된다.

OUTPUT CLASS가 A인 OUTPUT은 '(WRITE,WRITE)'로 지정되고, OUTPUT CLASS가 B이면

'(HOLD,PURGE)'로 지정된다.

만약 OUTPUT CLASS에 해당하는 DISP가 [OUTclass] 섹션에 정의되어 있지 않으면 기본 값으로

'(PURGE,PURGE)'가 사용된다.

[OUTclass]

A=WRITE,WRITE

B=HOLD,PURGE

2. JCL에서 HOLD로 지정한다.

다음과 같이 SYSOUT의 HOLD 오퍼랜드를 사용하여 HOLD를 지정할 수 있다.

//PRINT DD SYSOUT=A,HOLD=YES

3. JCL에서 KEEP으로 지정한다.

다음과 같이 /*OUTPUT 문장을 사용하여 KEEP을 지정할 수 있다.

/*OUTPUT 2400 KEEP=YES

//PRINT DD SYSOUT=(A,,2400)

62 OpenFrame TJES 안내서

Page 79: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

프린트되어야 할 OUTPUT들은 OUTPUT DISPOSITION이 WRITE 또는 KEEP일 때 OUTPUT CLASS 정

보를 print.conf의 [PRINTERn]섹션에 등록된 클래스 정보와 비교하여 정보가 맞으면 프린트된다.

[PRINTERn] 섹션에 등록된 클래스 정보가 SYSOUT의 OUTPUT CLASS를 포함하고 있으면, ofrpmsvr은

[PRINTERn]에 설정된 명령어와 공유 라이브러리를 사용하여 외부 프린터 솔루션에 데이터와 프린트 리

소스 정보를 전달한다.

제5장 OUTPUT Processing 63

Page 80: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 81: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제6장 TJESMGR 명령어

tjesmgr는 JOB과 TJES를 관리하는 기능 뿐만 아니라 데이터 셋과 관련한 작업과 SPOOL 백업 기능 등

을 수행한다.

tjesmgr는 TACF 또는 OS 사용자로 로그인을 해야 하며, submit할 JCL에 따로 사용자가 파라미터로 등록

되어 있지 않다면, 로그인된 사용자는 JOB을 submit하는 사용자가 된다.

tjesmgr는 tjesmgr에 접속한 후 tjesmgr 실행 화면에서 명령어를 수행하는 것이 일반적이지만, UNIX 시스

템의 명령어 라인에서 하나의 명령어를 실행하는 것도 가능하다. 실행 방법은 tjesmgr –h를 통해서 확인

할 수 있다.

● tjesmgr 사용 방법 조회

$ tjesmgr -h

● tjesmgr 버전 정보 조회

$ tjesmgr -v

● tjesmgr 실행방법

$ tjesmgr -i[ USERID[ [GROUPNAME] ]][/PASSWORD] [command]

다음은 UNIX 명령어 라인에서 PS(Print Screen)를 실행하는 예이다.

$ tjesmgr –iUSERNAME/PASSWORD ps n=TEST

다음은 선행 명령어가 필요한 경우로 명령어 처리를 할 수 없다.

$ tjesmgr –iUSERNAME/PASSWORD

$ PODD JOB00001 di=1

PSJOB 또는 POSPOOL이 먼저 실행되어야 PODD 명령을 실행할 수 있다. 따라서 명령어 라인에서 위의

예제는 실행할 수 없다.

참고

자세한 내용은 “6.2.8. PODD (Print Output DD Information)” 명령어를 참고한다.

제6장 TJESMGR 명령어 65

Page 82: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.1. JOB 실행 명령어

JOB을 submit하고 JOB의 상태를 변경할 수 있는 명령어들이다.

6.1.1. RUN

입력 파라미터에 따라서 JOB을 submit한다. submit을 하게 되면 JOB은 START 상태로 JOBQ에 쌓이고

PS 명령어를 통해서 JOBQ에 쌓인 JOB을 확인할 수 있다.

RUN(R) <JCLFILE>

[NODE=<node-name>]

[STEP=<restart-step>]

[CAT=<catalog-name>]

다음은 RUN이 항목에 대한 설명이다.

설명항목

JCL 이름 또는 UNIX 파일경로를 지정해 주거나 DATASET(member) 형식으

로 지정할 수 있다. JCL 이름으로 설정하면 tjes.conf의 [PROCLIB] 섹션의

JCLLIB과 USERLIB에 설정된 DATASET에서 JCL을 찾는다.

<JCLFILE>

node-name을 지정한 경우는 지정한 노드에서 JOB이 수행되도록 submit 할

수 있다.

[NODE=<node-name>]

node-name을 지정하지 않은 경우는 tjesmgr.conf 의 [DEFAULT_OPTION]

섹션의 DEFAULT_RUNNING_NODE에 설정된 값에 따라서 현재 노드에서

만 JOB을 수행할 수 있도록 할지 아니면, 전체 노드 중 아무 노드에서나 JOB

을 수행할 수 있도록 할지를 결정한다.

restart-step을 지정하게 되면 JCL에 지정된 STEP부터 JOB이 실행된다.[STEP=<restart-step>]

JCLFILE을 DATASET(member) 형식으로 설정할 때 데이터 셋이 사용자 카

탈로그에 등록되어 있다면 CAT=<catalog-name>를 지정한다.

[CAT=<catalog-name>]

6.1.2. START

입력된 job-ID 또는 job-name에 해당하는 JOB들의 상태를 HOLD 상태에서 START 상태로 바꾼다.

HOLD 상태의 JOB들에 대해서만 START 명령어가 유효하다.

START {<job-ID>|N=<job-name>}

66 OpenFrame TJES 안내서

Page 83: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.1.3. HOLD

입력된 job-ID 또는 job-name에 해당하는 JOB들의 상태를 START 상태에서 HOLD 상태로 바꾼다. HOLD

상태의 JOB은 스케줄링이 되지 않는다.

START 상태의 JOB들에 대해서만 유효하다.

HOLD {<job-ID>|N=<job-name>}

6.1.4. SUSPEND

입력된 job-ID 또는 job-name에 해당하는 JOB들의 상태를 WORKING 상태에서 SUSPEND 상태로 바꾼

다. 즉, 실행 중인 JOB을 일시 정지시킨다.

WORKING 상태의 JOB들에 대해서만 유효하다.

SUSPEND {<job-ID>|N=<job-name>}

6.1.5. RESUME

입력된 job-ID 또는 job-name에 해당하는 JOB들의 상태를 SUSPEND 상태에서 RESUME 상태로 바꾼다.

즉, 일시 정지된 JOB을 다시 실행시킨다.

SUSPEND 상태의 JOB들에 대해서만 유효하다.

RESUME {<job-ID>|N=<job-name>}

6.1.6. STOP

입력된 job-ID 또는 job-name에 해당하는 JOB들의 상태를 WORKING 상태에서 STOP 상태로 바꾼다. 즉,

실행 중인 JOB을 중지시킨다.

RESUME 상태이거나 WORKING 상태의 JOB들에 대해서만 유효하다.

STOP {<job-ID>|N=<job-name>}

6.1.7. REMOVE

입력된 job-ID 또는 job-name에 해당하는 JOB들을 제거한다.

DONE, ERROR, STOP, FLUSH 상태의 JOB들에 대해서만 유효하다.

REMOVE {<job-ID>|N=<job-name>}

제6장 TJESMGR 명령어 67

Page 84: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.1.8. CANCEL

입력된 job-ID 또는 job-name에 해당하는 JOB들을 제거(purge)한다.

HOLD 상태이거나 START 상태의 JOB들에 대해서만 유효하다.

CANCEL {<job-ID>|N=<job-name>}

6.1.9. NICE

입력된 job-ID 또는 job-name에 해당하는 JOB들에 중앙 처리 장치의 사용시간에 대한 상대적인 우선순위

를 설정한다. 2번째 인자인 <number>는 0에서 20까지의 숫자이며, 숫자가 낮을 수록 우선순위가 높다. 이

우선순위는 중앙처리장치의 사용시간의 우선순위이며, 입출력의 우선순위는 아니다.

WORKING 상태의 JOB들에 대해서만 유효하다.

NICE {<job-ID>|N=<job-name>} <number>

6.1.10. OUTQUEUEPURGE

입력된 job-ID 또는 out-number에 해당하는 JOB들의 OUTPUT들을 OUTPUTQ에서 제거한다. out-number

는 POLIST나 POJOB 명령어로 출력되는 OUTPUTID의 숫자를 말한다.

OUTQUEUEPURGE(OR) {<job-ID>|ON=<out-number>}

참고

OUTPUT에 대한 자세한 내용은 “5.1. OUTPUT” 을 참고한다.

6.1.11. INQUEUECLASS

입력된 job-ID 또는 job-name에 해당하는 JOB들의 class을 변경한다.

HOLD 상태이거나 START 상태인 JOB들에 대해서만 유효하다. 주로 해당 클래스의 Runner가 전부 할당

되어 있어서 대상 JOB을 바로 실행하지 못하는 경우에 사용하게 된다.

INQUQUECLASS(IC) {job-ID|N=<job-name>} C=<class>

68 OpenFrame TJES 안내서

Page 85: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.2. JOB/OUTPUT 명령어

JOB을 submit한 후의 JOB 진행 상태와 결과 그리고 OUTPUT 관련 정보를 볼 수 있는 명령어이다.

6.2.1. PS (Print Screen)

입력 파라미터의 조건에 해당하는 JOBQ에 있는 JOB들에 대한 JOBNAME, JOBID, CLASS, STATUS,

RC, NODE, JCL 리스트를 보여준다.

PS [{ N=<job-name> |

[C=<class>] [S=<job-status>] [RC=<return-code>] [NODE=<node-name>] |

<from-job-ID> [C=<class>] [S=<job-status>] [RC=<return-code] [NODE=<node-name] |

<job-status> } ]

디스플레이 정보

JOBQ상의 JOB에 대한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 JOB의 JOBNAME이다.JOBNAME

디스플레이 대상 JOB의 JOBID이다.JOBID

디스플레이 대상 JOB CLASS이다.CLASS

디스플레이 대상 JOB의 현재 STATUS이다.STATUS

디스플레이 대상 JOB의 리턴코드이다.RC

JOB이 실행된 노드명이다.NODE

JOB이 기술되어있는 JCL 이름이다.JCL

참고

CLASS, STATUS, RETCODE, NODENAME과 같은 순서로 조건을 주어야 한다.

- 올바른 예) PS c=A, s=W, rc=0

- 틀린 예) PS s=W, c=A → 파싱 에러 발생

6.2.2. PSJOB (Print Screen JOB detail information)

입력된 job-ID에 해당하는 JOB에 대한 상세 정보를 출력한다. 만약, 대상 JOB의 상태가 WORKING인 경

우에는 상세 정보를 1초 단위로 업데이트해서 출력한다.

PSJOB(PSJ) <job-ID>

제6장 TJESMGR 명령어 69

Page 86: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

디스플레이 정보

PSJOB 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 JOB의 JOBID이다.JOBID

JOB이 실행된 노드명이다.NODE NAME

디스플레이 대상 JOB의 JOB 이름이다.JOB NAME

디스플레이 대상 JOB CLASS이다.JOB CLASS

디스플레이 대상 JOB의 현재 STATUS이다.JOB STATUS

DONE, ERROR, FLUSH인 경우 괄호( )안에 JOB의 리턴 값이 들어간다.

디스플레이 대상 JOB의 우선순위이다.JOB PRTY

JOB이 실행된 Runner index이다. Runner Slot에 대한 정보는 PSJCLRUN

에서 확인할 수 있다.

JCLRUNNER INDEX

디스플레이 대상 JOB 상태가 WORKING 중에 WAIT하고 있는 이유이다.JOB WAIT

디스플레이 대상 JOB을 submit한 USER이다.JOB USER

디스플레이 대상 JOB의 JCL 경로를 나타낸다.JCL PATH

JOB의 submit, start, end 시간을 나타낸다.TIME STAMP

해당 JOB의 리소스 사용량을 나타낸다.RES USAGE

- PROCESS : 프로세스 총 사용시간이다.

- CPU : CPU 총 이용시간이다.

- CPU ?% : working중인 프로세스의 CPU 점유율로, 해당 JOB 상태가

WORKING 중인 경우만 나타난다.

- MEM ?Kb : working중인 프로세스의 메모리 크기로, 해당 JOB 상태가

WORKING인 경우만 나타난다.

디스플레이 대상 JOB의 STEP별 정보를 보여준다.STEP LIST

- [???]: STEP name

- START : STEP 시작시간

- RC : STEP의 리턴코드

- CPU : STEP에서 CPU 이용시간

- / ??s : STEP의 총 소요시간

디스플레이 대상 JOB의 SPOOL LIST를 보여준다.SPOOL LIST

70 OpenFrame TJES 안내서

Page 87: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

POSPOOL의 디스플레이 정보와 동일하다.

대상 JOB의 OUTPUT 처리에 대한 내용을 나타낸다.OUTPUT PROCESS-ING

STATUS

WORKING중인 JOB의 경우의 디스플레이 정보는 다음과 같다.

설명정보

현재 처리하고 있는 STEP을 나타낸다.[STEPNAME] CURRENT

PROCESSING

- R: 해당 데이터 셋의 읽기 시도 횟수이다.DDNAME JOBID(DSNAME)

R:? W:?- W: 해당 데이터 셋의 쓰기 시도 횟수이다.

주의

PSJOB 명령은 UNIX command line으로는 실행을 할 수 없다.

6.2.3. PSIO (Print Screen Input/Output information)

입력된 job-ID에 해당하는 JOB의 데이터 셋 I/O 횟수를 보여준다.

PSIO <job-ID>

다음은 PSIO의 입력 항목에 대한 설명이다.

설명항목

입력된 job-ID에 해당하는 JOB의 데이터 셋 I/O 횟수를 보여준다.<job-ID>

디스플레이 정보

데이터 셋 I/O 디스플레이 정보는 다음과 같다.

설명정보

해당 STEP의 이름이다.[STEP]

JCL에 기술된 DD 이름이다.DDNAME

데이터 셋 이름이다.DSNAME

STEP별 데이터 셋의 검색된 횟수이다.RTV (Retrieved count)

STEP별 데이터 셋의 추가된 횟수이다.INS (Inserted count)

제6장 TJESMGR 명령어 71

Page 88: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

STEP별 데이터 셋의 업데이트된 횟수이다.UPD (Updated count)

STEP별 데이터 셋의 삭제된 횟수이다.DEL (Deleted count)

6.2.4. PO (Print Output status)

JOBID별 OUTPUT 상태를 보여준다.

PO

디스플레이 정보

JOBID별 OUTPUT 상태에 대한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 JOBID이다.JOBID

디스플레이 대상 OUTPUT 상태이다.OUTPUT STATUS

6.2.5. POLIST (Print Output detail LIST)

OUTPUT 리스트들의 상세 정보를 보여준다.

POLIST

디스플레이 정보

OUTPUT 리스트에 대한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 OUTPUT ID이다.OUTPUTID

디스플레이 대상 JOBID이다.JOBID

디스플레이 대상 JOB 이름이다.JOBNAME

디스플레이 대상 DD에 부여된 ID이다.DDID

JCL에 기술되었던 DD 이름이다.DDNAME

디스플레이 대상 OUTPUT CLASS이다.CLS (OUTPUT CLASS)

OUTPUT 상태이다.ST (OUTPUT STATUS)

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.FORMS

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.CHARS

72 OpenFrame TJES 안내서

Page 89: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.FORMDEF

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.PAGEDEF

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.WRITER

참고

DDID, FORMS, CHARS, FORMDEF, PAGEDEF, WRITER들은 PRINT 관련 정보들이다. 이에 대한

자세한 내용은 “제4장 SPOOL”과 “제5장 OUTPUT Processing”을 참고한다.

6.2.6. POJOB (Print Output of JOB)

입력된 job-ID에 해당하는 JOB의 OUTPUT 정보를 보여준다.

POJOB(POJ) <job-ID>

다음은 POJOB의 입력 항목에 대한 설명이다.

설명항목

입력된 job-ID에 해당하는 JOB의 OUTPUT 정보이다.<job-ID>

디스플레이 정보

JOB의 OUTPUT에 대한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 OUTPUT ID이다.OUTPUTID

디스플레이 대상 DD에 부여된 ID이다.DDID

JCL에 기술되었던 DD 이름이다.DDNAME

디스플레이 대상 OUTPUT CLASS이다.CLS

OUTPUT 상태이다.ST

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.FORMS

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.CHARS

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.FORMDEF

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.PAGEDEF

디스플레이 대상 JOB의 프린트 관련 옵션 정보이다.WRITER

제6장 TJESMGR 명령어 73

Page 90: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

POJOB의 디스플레이 정보는 POLIST의 디스플레이 정보와 동일하다.

6.2.7. POSPOOL (Print Output SPOOL of JOB)

입력된 JOBID에 해당하는 JOB의 SPOOL 정보를 보여준다.

POSPOOL <job-ID>

다음은 POSPOOL 입력 항목에 대한 설명이다.

설명항목

입력된 job-ID에 해당하는 JOB의 SPOOL 정보이다.<job-ID>

디스플레이 정보

SPOOL에 대한 디스플레이 정보는 다음과 같다.

설명정보

DDINDEX로 PODD 명령을 실행하는 경우 입력 파라미터로 사용된다.NO

해당 SPOOL이 생성된 STEP 이름이다.STEP

해당 SPOOL의 DD 이름이다.DDNAME

해당 SPOOL의 크기이다.SIZE

해당 SPOOL의 데이터 셋 이름이다.DSNAME

관련 환경설정

SPOOL_LIST는 SPOOL을 보여줄 조건을 설정한다.

<tjesmgr.conf >

[DEFAULT_OPTION]

SPOOL_LIST={ALL|EXIST|GTZERO}

74 OpenFrame TJES 안내서

Page 91: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.2.8. PODD (Print Output DD Information)

입력된 job-ID의 dd-index 또는 dd-name에 SPOOL을 tjesmgr.conf의 [DEFAULT_OPTION] 섹션의

VIEWER 항목에 설정한 뷰어로 열어준다. PODD 명령어를 사용하기 위해서는 PSJOB이나 POSPOOL

명령이 선행되어야 한다.

PODD <job-ID> { DI=<dd-index> | DN=<dd-name> }

관련 환경설정

SPOOL을 열수 있는 뷰어를 지정한다.

<tjesmgr.conf>

[DEFAULT_OPTION]

VIEWER=viewer

6.2.9. PSHISTORY (Print Screen of JOB History)

PSHISTORY 명령을 실행하면 입력 창이 뜨고, 사용자로부터 입력 받은 조건에 해당하는 내용을 찾아 뷰

어로 보여준다. 아무런 조건도 주지 않은 경우 전체 로그를 보여준다.

PSHISTORY(PSH)

입력 파라미터

사용자에게 다음의 파라미터에 대한 입력을 요구한다.

설명파라미터

JOB을 submit한 USERID를 설정한다.USERID

날짜의 범위를 지정한다.DATE

SUBMIT, EXECUTE, SUSPEND, RESUME, FINISH, REMOVE 중에서 조건

을 설정한다.

OPERATION

JOBID를 설정한다.JOBID

관련 환경설정

HISTORY의 결과를 보여줄 뷰어를 지정한다.

<tjesmgr.conf >

[DEFAULT_OPTION]

VIEWER=viewer

제6장 TJESMGR 명령어 75

Page 92: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

해당 환경파일에 설정되어 있는 로그 파일에서 검색한다.

<tjes.conf >

[LOG]

JOBLOG=joblog

검색한 내용을 임시로 기록할 위치이다.

<ofsys.conf >

[DIRECTORY]

TEMP_DIR=temp_dir

6.3. INITIATOR 명령어

JOB의 실행을 위한 TJES 환경에 관련된 명령어들이다.

6.3.1. BOOT

전체 노드의 TJES를 부트한다. 부트가 된 노드에서는 JOB을 실행할 수 있다. Runner Slot에 JOB을 할당

할 수 있게 된다.

BOOT [NODE=<node-name>]

다음은 BOOT 입력 항목에 대한 설명이다.

설명항목

node-name을 준 경우 대상 노드만을 부트한다.[NODE=<node-name>]

6.3.2. SHUTDOWN

전체 노드의 TJES를 다운(down)시킨다. 다운을 하게 되면 비어있는 Runner Slot들을 모두 다운 상태로

변경하여 추가적인 JOB의 스케줄링을 제한하고 WORKING 중인 Runner Slot들은 JOB이 끝나는 대로 다

운 상태로 변경한다.

SHUTDOWN [NODE=<node-name>]

다음은 SHUTDOWN 입력 항목에 대한 설명이다.

설명항목

node-name을 준 경우 대상 노드만을 다운시킨다.[NODE=<node-name>]

76 OpenFrame TJES 안내서

Page 93: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

명령어에 대한 자세한 사항은 “6.3.10. PSJCLRUN (PSR)”을 참고한다.

6.3.3. NODECLEAR

해당 노드의 모든 JOB을 STOP시킨다. 보통 해당 노드가 비정상적으로 되어서 해당 노드에 있는 JOB을

더 이상 컨트롤할 수 없을 때 사용한다.

NODECLEAR NODE=<node-name>

6.3.4. NODESTATUS (NODEST)

전체 노드의 상태를 보여준다.

NODESTATUS(NODEST)

디스플레이 정보

전체 노드에 대한 상태 디스플레이 정보는 다음과 같다.

설명정보

노드명이다NODENAME

obmjinit 서버의 상태이다. (Active, Downed)OBMJINIT_STATUS

TJES의 부트 상태이다. (Booted, Not booted)BOOT_STATUS

6.3.5. JCLRUNACTIVE (RA) / JCLRUNINACTIVE (RI)

명령어 라인에서 입력 받은 Runner Slot의 상태를 Active에서 Inactive로 또는 Inactive에서 Active로 변경

한다. 바뀐 정보는 PSJCLRUN을 통해 확인할 수 있다.

JCLRUNACTIVE(RA)/JCLRUNACTIVE(RI) I=<index>,,, [NODE=<node-name>]

인덱스는 여러 개를 지정하거나 또는 범위를 지정할 수도 있다.

형식: I=<index>,,,

node-name을 지정하지 않은 경우 자기 노드의 Runner Slot 상태를 변경한다.

제6장 TJESMGR 명령어 77

Page 94: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

다음은 JCLRUNACTIVE, JCLRUNINACTIVE 명령 사용시 범위 값을 지정하는 방법에 대한 예를 보여준

다.

$ RA I=0,1,2,3

$ RI I=0-9

관련 환경설정

현재 노드를 찾을 때 사용된다.

<tjes.conf >

[NODEINFO]

NODENAME=nodename

6.3.6. JCLRUNCLASS(RC)

해당 Runner Slot의 클래스를 입력으로 받은 클래스로 변경한다.

JCLRUNCLASS(RC) I=index,,, CS=<classes> [NODE=<node-name>]

인덱스는 여러 개를 지정하거나 또는 범위를 줄 수도 있다.

형식: I=<index>,,,

node-name을 지정하지 않은 경우 자기 노드의 클래스 설정을 변경한다.

다음은 JCLRUNCLASS 명령을 사용하여 범위 값과 클래스를 지정하는 방법에 대한 예를 보여준다.

$ JCLRUNCLASS I=0,1,2,3 CS=A

$ RC I=0-9 CS=AB

관련 환경설정

자기 노드를 찾을 때 사용된다.

<tjes.conf>

[NODEINFO]

NODENAME=nodename

78 OpenFrame TJES 안내서

Page 95: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.3.7. PSCLASS(PSC)

클래스별로 JOB들의 상태 카운트를 보여준다. 클래스별로 JOB들의 NODE, CLASS, HOLD, START,

WORIKING, SUSPEND, DONE, STOP, ERROR, FLUSH 카운트를 보여준다.

PSCLASS(PSC)

6.3.8. SHOWCLASS(SC)

클래스의 상태를 보여준다. 클래스가 HOLD로 되어있으면 해당 클래스로 submit하는 JOB은 항상 HOLD

상태로 가게 된다.

SHOWCLASS(SC)

디스플레이 정보

클래스에 대한 디스플레이 정보는 다음과 같다.

설명정보

클래스 이름이다.CLASS

클래스가 HOLD로 되어있는지 여부를 보여준다. (Y,N)HOLD

관련 환경설정

클래스 상태의 초기값을 지정한다. 환경 설정 파일에서 지정하지 않으면 기본값은 START이며, SHOW

CLASS 명령어를 출력할 때 N에 해당하는 값이다.

<tjes.conf>

[JOBCLASS]

class-name=HOLD|START

6.3.9. CHANGECLASS(CC)

해당 클래스의 상태를 변경한다.

CHANGECLASS(CC) C=<class> HOLD = {Y|N}

관련 환경설정

클래스 상태의 초기값을 지정한다. 환경 설정 파일에서 지정하지 않으면 기본값은 START이며,

CHANGECLASS 명령어를 출력할 때 N에 해당하는 값이다.

제6장 TJESMGR 명령어 79

Page 96: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

<tjes.conf >

[JOBCLASS]

class-name=HOLD|START

6.3.10. PSJCLRUN (PSR)

해당 노드의 Runner Slot 상태를 보여준다.

PSJCLRUN(PSR) [NODE=<node-name>]

다음은 PSJCLRUN (PSR)의 입력 항목에 대한 설명이다.

설명항목

node-name을 주지 않은 경우 자기 노드의 Runner Slot 상태를 보여준다.[NODE=<node-name>]

디스플레이 정보

Runner Slot에 대한 디스플레이 정보는 다음과 같다.

설명정보

Runner 인덱스이다. JCLRUNACTIVE(RA), JCLRUNINACTIVE(RI),

JCLRUNclass(RC)에서 사용된다.

IDX

tjes.conf의 [INITDEF] 환경설정에 정의된 Runner Slot 이름이다.SLOTNAME

Runner Slot의 상태이다. (Active, Inactive, Downed)STATUS

Runner Slot에 할당되어있는 클래스들이다.class

Runner Slot에 할당된 JOB에 대한 정보들이다.JOBID,

해당 Runner Slot의 클래스나 STATUS를 RA, RI, RC나 SHUTDOWN 등의

명령으로 바꾸는 경우, 대상 Runner Slot에 JOB이 할당되어있으면 나중에

바뀔 것이라는 메시지가 나타난다.

JOBNAME,

JOBclass,

PID예) STATUS will be [DOWNED] after JOB finished

관련 환경설정

자기 노드를 찾을 때 사용된다.

<tjes.conf >

[NODEINFO]

NODENAME=nodename

80 OpenFrame TJES 안내서

Page 97: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

Runner Slot들의 기초설정을 한다.

<tjes.conf >

[INITDEF]

6.4. 데이터 셋 명령어

데이터 셋을 조회하거나 생성, 삭제 또는 복사하기 위한 명령어들이다.

참고

USERCATALOG와 관련해서는 tjesmgr의 “SETCAT 명령어” 및 OpenFrame 안내서 중 “데이터 셋

안내서”의 "제4장 통합 카달로그"를 참고한다.

6.4.1. PSCATALOG (PSCAT)

입력 조건에 해당하는 카탈로그에 등록되어있는 데이터 셋 리스트를 보여준다.

PSCATALOG(PSCAT) <entry-prefix> [CAT=<catalog-name>]

다음은 PSCATALOG (PSCAT)의 입력 항목에 대한 설명이다.

설명항목

entry-prefix로 시작하는 모든 데이터 셋이 디스플레이 대상이 된다.<entry-prefix>

사용자 카탈로그에 등록되어 있는 데이터 셋을 찾아서 보여준다.[CAT=<catalog-name>]

디스플레이 정보

카탈로그에 등록되어 있는 데이터 셋 디스플레이 정보는 다음과 같다.

설명정보

검색한 데이터 셋이다.CATALOG NAME

디스플레이 대상 데이터 셋이 들어있는 볼륨이다.VOLUME

디스플레이 대상 데이터 셋의 타입이다.ENTTYPE

데이터 셋의 타입에는 NON-VSAM, CLUSTER, AIX, PATH, GDG, UCAT,

ALIAS 등이 있다.

디스플레이 대상 데이터 셋의 종류이다.VSAM

VSAM 데이터 셋인 경우만 KSDS, RRDS 등의 데이터 셋 종류를 나타낸다.

제6장 TJESMGR 명령어 81

Page 98: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

디스플레이 대상 데이터 셋의 종류이다.NVSM

Non-VSAM 데이터 셋인 경우만 PDS, SDS, GDS 등의 데이터 셋 종류를 나

타낸다.

6.4.2. SETCATALOG (SETCAT)

카탈로그로 하여 데이터 셋 관련 명령어에서 사용한다.

SETCATALOG(SETCAT) <catalog-name>

다음은 SETCATALOG (SETCAT)의 입력 항목에 대한 설명이다.

설명항목

입력으로 받은 catalog-name을 기본 카탈로그로 하여 데이터 셋 관련 명령어

에서 사용한다. catalog-name를 주지 않은 경우 마스터 카탈로그를 기본 카

탈로그로 한다

<catalog-name>

다음과 같이 지정하고 PSCAT, PSDS 등을 실행했을 때 CAT 파라미터를 지정하지 않은 경우 TAPECAT

을 기본 카탈로그로 해서 정보를 보여준다.

$ SETCAT TAPECAT

카탈로그의 지정 순위

1. CAT parameter로 지정된 user catalog

2. SETCAT으로 지정된 user catalog

3. Dataset alias에 따른 user catalog

4. master catalog

82 OpenFrame TJES 안내서

Page 99: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.4.3. PSDATASET(PSDS)

입력에 해당하는 데이터 셋의 상세정보를 보여준다.

PSDATASET(PSDS) <dataset-name> [CAT=<catalog-name>]

[MEM=<member-prefix>] [VOL=<volume-serial>]

다음은 PSDATASET(PSDS)의 입력 항목에 대한 설명이다.

설명항목

상세정보를 조회하고자 하는 데이터 셋 이름을 입력한다.<dataset-name>

catalog-name에 등록되어있는 데이터 셋을 찾아서 보여준다.[CAT=<catalog-name>]

멤버가 있는 데이터 셋의 경우 MEM을 지정한 경우 해당 멤버를 검색해

서 보여준다.

[MEM=<member-prefix>]

카탈로그 되어있지 않은 데이터 셋의 상세정보를 보고 싶은 경우에 사

용되며, VOL을 지정한 곳에서 데이터 셋을 찾아서 보여준다.

[VOL=<volume-serial>]

디스플레이 정보

데이터 셋에 대한 상세한 디스플레이 정보는 다음과 같다. ( ) 안의 정보는 데이터 셋이 VSAM type인 경우

이다.

설명정보

디스플레이 대상 데이터 셋 이름이다.Data Set Name

디스플레이 대상 데이터 셋의 타입이다.Data Set Type

디스플레이 대상 데이터 셋이 등록되어 있는 카탈로그 이름이다.Catalog Name

디스플레이 대상 데이터 셋 생성시 참고한 Management 클래스이다.Management Class

디스플레이 대상 데이터 셋의 생성일자이다.Creation Date

디스플레이 대상 데이터 셋의 실제 파일의 소유자이다.Data Set Owner

디스플레이 대상 데이터 셋의 만료일자이다.Expiration Date

디스플레이 대상 데이터 셋 생성시 참고한 Storage 클래스이다.Storage Class

디스플레이 대상 데이터 셋이 들어있는 볼륨이다.Volume Serial

디스플레이 대상 데이터 셋의 디바이스 타입이다.Device Type

테이프 데이터 셋인 경우 ‘TAPE Device’라고 나타난다.

디스플레이 대상 데이터 셋 생성시 참고한 Data 클래스이다.Data Class

디스플레이 대상 데이터 셋의 DSORG이다.Organization

디스플레이 대상 데이터 셋의 RECFM이다.Record Format (AVGLRECL)

제6장 TJESMGR 명령어 83

Page 100: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

(디스플레이 대상 데이터 셋의 평균 길이이다.)

디스플레이 대상 데이터 셋의 KEY의 길이이다.KEYLEN

디스플레이 대상 데이터 셋의 길이이다.Record Length (MAXLRECL)

(디스플레이 대상 데이터 셋의 최대 길이이다.)

디스플레이 대상 데이터 셋의 KEY의 위치이다KEYPOS

디스플레이 대상 데이터 셋의 블록 크기이다.BLKSIZE (CISIZE)

(디스플레이 대상 데이터 셋의 CISIZE이다.)

(디스플레이 대상 데이터 셋의 AIX의 KEYPOS이다.)(AIXRKP)

디스플레이 대상 데이터 셋의 allocation하는 경우 최초 할당 크기이다.Primary Space

디스플레이 대상 데이터 셋의 allocation하는 경우 확장횟수이다.Number of Extents

디스플레이 대상 데이터 셋의 allocation하는 경우 다음 할당 크기이다.Secondary Space

디스플레이 대상 데이터 셋의 실제 크기이다.Data Set Size

테이프 데이터 셋의 경우 압축 상태로 되어있는데, DATASIZE 크기는

압축이 되지 않았을 때의 크기이다.

디스플레이 대상 데이터 셋을 마지막으로 조회하거나 수정한 날짜이다.Last Access Date

디스플레이 대상 데이터 셋을 마지막으로 조회하거나 수정한 시간이다.Last Access Time

디스플레이 대상 데이터 셋과 관련된 데이터 셋들을 보여준다.Associations

주로 VSAM 데이터 셋의 정보를 볼 때 나타난다.

멤버가 있는 데이터 셋의 경우 해당 멤버에 대한 디스플레이 정보이다.

설명정보

디스플레이 대상 멤버의 이름이다.Name

디스플레이 대상 멤버의 실제 파일의 소유자이다.Owner

디스플레이 대상 멤버의 실제 파일크기이다.Size

디스플레이 대상 멤버를 마지막으로 조회하거나 수정한 날짜 및 시간이

다.

Last Access Date

84 OpenFrame TJES 안내서

Page 101: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.4.4. PSENTRY(PSENT)

입력에 해당하는 엔트리의 상세정보를 보여준다. PSDATASET와 다른 점은 GDG, PATH, ALIAS와 같이

실제 데이터 셋은 아니지만 카탈로그에 등록되어있는 엔트리들에 대한 정보도 보여준다.

PSENTRY(PSENT) <entry-name> [CAT=<catalog-name>]

다음은 PSENTRY(PSENT)의 입력 항목에 대한 설명이다.

설명항목

상세정보를 조회하고자 하는 엔트리 이름을 입력한다.<entry-name>

catalog-name에 등록되어있는 엔트리을 찾아서 보여준다.[CAT=<catalog-name>]

디스플레이 정보

엔트리에 대한 상세한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 엔트리 이름이다.Entry Name

디스플레이 대상 엔트리의 타입이다.Entry Type

디스플레이 대상 엔트리가 등록되어 있는 카탈로그 이름이다.Catalog Name

디스플레이 대상 엔트리의 생성일자이다.Creation Date

디스플레이 대상 엔트리의 소유자이다.Entry Owner

디스플레이 대상 엔트리의 만료일자이다.Expiration Date

디스플레이 대상 엔트리가 GDG일 때 GDS의 생성 한계 개수이다.GDG Limit

디스플레이 대상 엔트리와 관련된 엔트리들을 보여준다.Associations

6.4.5. DATASETLIST (DSLIST)

입력 조건에 해당하는 VTOC에 등록되어있는 데이터 셋 리스트를 보여준다.

VTOC에 등록되어있는 데이터 셋들은 전부 Non-VSAM 데이터 셋이다.

DATASETLIST(DSLIST) [<dataset-prefix>] [VOL=<volume-serial>]

다음은 DATASETLIST(DSLIST)의 입력 항목에 대한 설명이다.

설명항목

dataset-prefix로 시작하는 모든 데이터 셋이 디스플레이 대상이 된다.[<dataset-prefix>]

지정한 볼륨에 있는 데이터 셋이 디스플레이 대상이 된다.[VOL=<volume-serial>]

제6장 TJESMGR 명령어 85

Page 102: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

디스플레이

VTOC에 등록되어 있는 데이터 셋 디스플레이 정보는 다음과 같다.

설명정보

검색한 데이터 셋이다.VTOC name

디스플레이 대상 데이터 셋이 들어있는 볼륨이다.VOLUME

디스플레이 대상 데이터 셋의 구조이다.DSORG

디스플레이 대상 데이터 셋의 레코드 포맷이다.RECFM

디스플레이 대상 데이터 셋의 레코드 길이이다.LRECL

6.4.6. DATASETCREATE (DSCREATE)

명령을 실행하면 사용자 입력 창이 나타나고 사용자로부터 입력 받은 조건에 해당하는 Non-VSAM 데이

터 셋을 생성한다.

DATASETCREATE(DSCREATE)

입력 파라미터

다음은 DATASETCREATE의 입력 파라미터에 대한 설명이다.

설명파라미터

생성할 Non-VSAM 데이터 셋의 이름으로 반드시 입력해야 하는 필수항목이

다.

NAME

Non-VSAM 데이터 셋이 저장될 볼륨의 위치이다. 기본값은 UNIT에 따르거

나 SMS 규칙을 따른다.

VOLUME

아무런 값도 지정되지 않은 경우 기본값으로 설정된 볼륨에 따른다.

데이터 셋의 UNIT을 지정한다. 기본값은 VOLUME에 따른다.UNIT

입력을 받은 UNIT과 VOLUME이 서로 일치하지 않는 경우 에러가 발생한다.

데이터 셋의 DSORG를 지정한다.DSORG

데이터 셋의 레코드 포맷을 지정한다.RECFM

데이터 셋의 KEY의 길이를 지정한다. ISAM 데이터 셋의 경우에 지정할 수

있다.

KEYLEN

데이터 셋의 최대 레코드 길이를 지정한다.LRECL

86 OpenFrame TJES 안내서

Page 103: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명파라미터

데이터 셋의 KEY의 위치를 지정한다. ISAM 데이터 셋의 경우에 지정할 수

있다.

KEYPOS

데이터 셋의 블록 크기를 지정한다. 기본값은 4096이다BLKSIZE

데이터 셋의 allocation시의 최초 할당 크기를 지정한다. (단위: KB)PRIMARY

데이터 셋의 다음 할당 크기를 지정한다. (단위: KB)SECONDARY

데이터 셋의 만기일을 지정한다. 기본값은 99991231이다.EXPIRATION

사용자 카탈로그를 지정한다.CATALOG

사용자 카탈로그를 지정하지 않는 경우 마스터 카탈로그 또는 ALIAS에 따른

카탈로그로 한다.

생성 관련 명령은 tjesmgr의 SETCATALOG 명령어의 옵션을 따르지 않는다.

데이터 셋의 생성만을 하고 카탈로깅을 하지 않을 경우에 지정한다.NOCATALOG

참고

VSAM 데이터 셋을 생성에 관한 자세한 내용은 OpenFrame 안내서 중 “유틸리티 참고 안내서” 를 참

고한다.

6.4.7. DATASETCOPY (DSCOPY)

입력에 해당하는 from-dataset-name을 to-dataset-name으로 복사한다.

DATASETCOPY(DSCOPY) <from-dataset-name> [CAT=<catalog-name>]

<to-dataset-name> [CAT=<catalog-name>]

[<volume-serial> [<unit-name>]]

다음은 DATASETCOPY(DSCOPY)의 입력 항목에 대한 설명이다.

설명항목

소스 데이터셋의 이름이며, <from-dataset-name>을 지정할 때 기본

카탈로그에 등록되어 있지 않은 경우 바로 뒤에 [CAT=<catalog-

name>]을 지정해줘야 해당 데이터 셋을 찾을 수 있다.

<from-dataset-name>

사용자 카탈로그를 지정한다. 지정하지 않은 경우 마스터 카탈로그

또는 ALIAS에 따른다,

CAT=<catalog-name>

타겟 데이터셋의 이름이며, <to-dataset-name>을 지정할 때 기본 카

탈로그에 등록되어 있지 않은 경우 바로 뒤에 [CAT=<catalog-name>]

을 지정해줘야 해당 데이터 셋을 찾을 수 있다.

<to-dataset-name>

제6장 TJESMGR 명령어 87

Page 104: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

to-dataset-name의 볼륨과 UNIT의 정보를 from-dataset-name의 정

보와 다르게 하고자 할 때 지정한다.

<volume-serial> / <unit-name>

참고

기본 카탈로그에 대한 내용은 “6.4.2. SETCATALOG (SETCAT)” 명령어를 참고한다.

6.4.8. DATASETMOVE (DSMOVE)

입력에 해당하는 from-dataset-name을 to-dataset-name으로 이동한다.

DATASETCOPY(DSCOPY) <from-dataset-name> [CAT=<catalog-name>]

<to-dataset-name> [CAT=<catalog-name>]

[<volume-serial>]

다음은 DATASETMOVE (DSMOVE)의 입력 항목에 대한 설명이다.

설명항목

소스 데이터셋의 이름이며, <from-dataset-name>을 지정할 때 기본

카탈로그에 등록되어 있지 않은 경우 바로 뒤에 [CAT=<catalog-

name>]을 지정해줘야 해당 데이터 셋을 찾을 수 있다.

<from-dataset-name>

사용자 카탈로그를 지정한다. 지정하지 않은 경우 마스터 카탈로그

또는 ALIAS에 따른다,

CAT=<catalog-name>

타겟 데이터셋의 이름이며, <to-dataset-name>을 지정할 때 기본 카

탈로그에 등록되어 있지 않은 경우 바로 뒤에 [CAT=<catalog-name>]

을 지정해줘야 해당 데이터 셋을 찾을 수 있다.

<to-dataset-name>

to-dataset-name의 볼륨정보를 from-dataset-name의 정보와 다르게

하고자 할 때 지정한다.

<volume-serial>

6.4.9. DATASETDELETE (DSDELETE)

입력에 해당하는 Non-VSAM 데이터 셋들을 삭제한다.

DATASETDELETE(DSDELETE) [FORCE] <dataset-name> [CAT=<catalog-name]

[VOL=<volume-serial>]

다음은 DATASETDELETE (DSDELETE)의 입력 항목에 대한 설명이다.

88 OpenFrame TJES 안내서

Page 105: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

삭제하고자 하는 Non-VSAM 데이터 셋의 실제 파일이 존재하지 않는

경우에도 에러를 발생시키지 않고 카탈로그에 있는 정보만을 삭제한다.

[FORCE]

삭제 대상 데이터 셋 이름을 입력한다.<dataset-name>

카탈로그에 등록되어있는 경우 catalog-name을 지정한다.[CAT=<catalog-name>]

카탈로그에 등록되어있지 않은 데이터 셋을 삭제할 경우 volume-serial

를 지정한다.

[VOL=<volume-serial>]

6.4.10. DATASETRECATALOG (DSRECAT)

명령을 실행하면 사용자 입력 창이 나타나고 입력조건에 해당하는 Non-VSAM 데이터 셋을 리카탈로그한

다.

실제 파일만 존재하고 카탈로그에 등록되어있지 않은 Non-VSAM 데이터 셋을 카탈로그에 등록할 때, 또

는 이미 카탈로그에 등록되어있는 Non-VSAM 데이터 셋의 카탈로그 내용을 바꾸고 싶을 때 사용한다.

DATASETRECATALOG(DSRECAT)

입력 파라미터

다음은 DATASETRECATALOG의 입력 파라미터에 대한 설명이다.

설명파라미터

리카탈로그할 Non-VSAM 데이터 셋의 이름으로 반드시 입력해야 하는

필수항목이다.

NAME

리카탈로그할 데이터 셋의 현재 등록되어있는 카탈로그이다. 기본값은

마스터 카탈로그이다.

CATALOG(S)

리카탈로그할 Non-VSAM 데이터 셋이 있는 볼륨의 위치이다.VOLUME

데이터 셋의 DSORG를 지정한다.DSORG

데이터 셋의 레코드 포맷을 지정한다.RECFM

데이터 셋의 KEY의 길이를 지정한다. ISAM 데이터 셋의 경우에 지정할

수 있다.

KEYLEN

데이터 셋의 최대 레코드 길이를 지정한다.LRECL

데이터 셋의 KEY의 위치를 지정한다. ISAM 데이터 셋의 경우에 지정할

수 있다.

KEYPOS

데이터 셋의 블록 크기를 지정한다. 기본값은 4096이다BLKSIZE

데이터 셋의 만기일을 지정한다. 기본값은 99991231이다.EXPIRATION

사용자 카탈로그를 지정한다.CATALOG

제6장 TJESMGR 명령어 89

Page 106: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명파라미터

사용자 카탈로그를 지정하지 않는 경우 마스터 카탈로그 또는 ALIAS에

따른 카탈로그로 한다.

6.4.11. DATASETUNCATALOG (DSUNCAT)

입력에 해당하는 데이터 셋들을 카탈로그에서 삭제한다.

DATASETUNCATALOG(DSUNCAT) <dataset-name> [CAT=<catalog-name>]

다음은 DATASETUNCATALOG (DSUNCAT)의 입력 항목에 대한 설명이다.

설명항목

카탈로그에서 삭제할 데이터 셋의 이름을 지정한다.<dataset-name>

대상 데이터 셋이 등록되어 있는 카탈로그를 지정한다.[CAT=<catalog-name>]

6.4.12. DATASETIMPORT (DSIMPORT)

외부로 반출한 파일을 읽어서 데이터 셋으로 복원한다. 명령을 실행하면 사용자 입력 창이 나타나고 사용

자로부터 입력 받은 조건에 해당하는 Non-VSAM 데이터 셋으로 복원한다

DATASETIMPORT(DSIMPORT) <from-filepath>

다음은 DATASETIMPORT (DSIMPORT)의 입력 항목에 대한 설명이다.

설명항목

Non-VSAM 데이터 셋이 저장되어 있는 UNIX 절대 파일경로를 입력

한다.

<from-filepath>

입력 파라미터

다음은 DATASETIMPORT 입력 파라미터에 대한 설명이다.

입력 파라미터들로 외부로 반출할 때의 데이터 셋 이름과 형식을 바꿀 수 있다. 이미 등록이 되어있으면

기존의 데이터 셋을 덮어쓰기 한다.

설명파라미터

변경할 Non-VSAM 데이터 셋의 이름이다.NAME

Non-VSAM 데이터 셋이 저장될 볼륨의 위치이다.VOLUME

데이터 셋의 레코드 포맷을 지정한다.RECFM

90 OpenFrame TJES 안내서

Page 107: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명파라미터

데이터 셋의 최대 레코드 길이를 지정한다. 기본값은 80이다.LRECL

데이터 셋의 블록 크기를 지정한다. 기본값은 4096이다BLKSIZE

데이터 셋의 만기일을 지정한다. 기본값은 99991231이다.EXPIRATION

사용자 카탈로그를 지정한다. 사용자 카탈로그를 지정하지 않는 경우 마

스터 카탈로그 또는 ALIAS에 따른 카탈로그로 한다.

CATALOG

생성 관련 명령은 tjesmgr의 SETCATALOG 명령어의 옵션을 따르지 않

는다.

6.4.13. DATASETEXPORT (DSEXPORT)

입력에 해당하는 Non-VSAM 데이터 셋을 외부로 반출한다.

DATASETEXPORT(DSEXPORT) <from-dataset-name> <to-filepath>

[CAT=<catalog-name>]

다음은 DATASETEXPORT (DSEXPORT)의 입력 항목에 대한 설명이다.

설명항목

외부로 반출한 Non-VSAM 데이터 셋을 입력한다.<from-dataset-name>

Non-VSAM 데이터 셋을 반출할 UNIX 절대 파일경로를 입력한다.<to-filepath>

from-dataset-name이 기본 카탈로그에 등록이 되어 있지 않은 경우 지정

한다.

[CAT=<catalog-name>]

6.4.14. DATATOUCH (DSTOUCH)

입력에 해당하는 Non-VSAM 데이터 셋의 마지막 수정 날짜를 변경한다.

DATATOUCH(DSTOUCH) <dataset-name> [VOL=<volume-serial>]

[CAT=<catalog-name>] [DATE=<yyyymmdd>]

다음은 DATASETEXPORT (DSEXPORT)의 입력 항목에 대한 설명이다.

설명항목

수정날짜를 변경할 Non-VSAM 데이터 셋을 입력한다.<dataset-name>

Non-VSAM 데이터 셋이 위치한 볼륨이다.VOL

사용자 카탈로그를 지정한다.[CAT=<catalog-name>]

수정날짜를 지정한다.[DATE=<yyyymmdd>]

제6장 TJESMGR 명령어 91

Page 108: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.4.15. GDGCREATE

명령을 실행하면 입력을 받을 창이 뜨고 입력 조건에 맞게 GDG 데이터 셋을 생성한다.

GDGCREATE

입력 파라미터

다음은 GDGCREATE 입력 파라미터에 대한 설명이다.

설명파라미터

생성할 GDG 데이터 셋의 이름으로 반드시 입력해야 하는 필수항목이다.NAME

GDS 데이터 셋의 제한값으로 반드시 입력해야 하는 필수항목이다.LIMIT

생성할 GDG 데이터 셋의 만기일을 지정한다.EXPIRATION

GDG 데이터 셋이 등록될 사용자 카탈로그를 지정한다. 사용자 카탈로그

를 지정을 하지 않는 경우 마스터 카탈로그 또는 ALIAS에 따른 카탈로그

에 등록된다.

CATALOG

생성 관련 명령은 tjesmgr의 SETCATALOG 명령어의 옵션을 따르지 않

는다.

6.4.16. GDGDELETE

입력에 해당하는 GDG 데이터 셋을 삭제한다. GDG 멤버가 있는 경우에는 에러가 발생한다. 이런 경우

GDG 멤버를 먼저 삭제해야 한다.

GDGDELETE <dataset-name> [CAT=<catalog-name>]

다음은 GDGDELETE의 입력 항목에 대한 설명이다.

설명항목

삭제할 GDG 데이터 셋을 입력한다.<dataset-name>

GDG 데이터 셋이 등록되어있는 카탈로그를 지정한다.[CAT=<catalog-name>]

92 OpenFrame TJES 안내서

Page 109: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.4.17. PSLOCK (PSL)

입력에 해당하는 데이터 셋의 lock 정보를 보여준다.

PSLOCK(PSL) [<job-ID> | DSN=<dataset-prefix> [CAT=<catalog-name>]]

다음은 PSLOCK (PSL)의 입력 항목에 대한 설명이다.

설명항목

지정한 job-ID로 lock이 걸린 리스트를 보여준다.<job-ID>

데이터 셋의 전체 이름 또는 prefix를 입력한다. 해당 데이터 셋이나 prefix

로 시작하는 모든 lock이 걸린 데이터 셋의 리스트를 보여준다.

DSN=<dataset-prefix>

검색하고자 하는 데이터 셋이 카탈로그가 되어있을 때 지정한다.[CAT=<catalog-name>]

디스플레이 정보

다음은 PSLOCK 디스플레이 정보에 대한 설명이다.

설명항목

1. Lock을 요청하고 있는 상태이면 R이 보여진다.옵션(1,2 컬럼)

2.Lock을 설정한 또는 요청한 프로세스가 실행 중이면 애스터리스크(*)

가 보여 진다. 프로세스의 노드가 다른 경우는 보여지지 않는다.

lock을 설정하거나 요청한 프로세스 ID이다.PID

lock을 설정하거나 요청한 JOBID이다.JOBID

lock을 설정하거나 요청한 노드이다.NODEID

요청한 lock의 타입이다.LOCKTYPE

- Exclusive: 대상 데이터 셋을 수정하기 위해서 사용하는 타입으로 다른

JOB에서 Lock을 공유할 수 없다.

- Shared: 대상 데이터 셋을 조회하기 위해서 사용하는 타입으로 다른 곳

과 lock을 공유할 수 있다.

요청한 lock의 이름이다.CATALOG_DSN

lock 이름은 “USERCATALOG_NAME:DATASET_NAME”으로 구성되어

있다.

제6장 TJESMGR 명령어 93

Page 110: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.4.18. LOCKCLEAR

입력에 해당하는 데이터 셋의 lock을 제거한다. 비정상적으로 JOB이 종료되어 lock이 풀리지 않은 경우에

사용한다.

LOCKCLEAR { <job-ID>

| P=<process-id,,,> [NODE=<node-name>]

| NODE=<node-name> ALL

| ALL }

다음은 LOCKCLEAR의 입력 항목에 대한 설명이다.

설명항목

지정할 경우 해당 job-ID로 lock이 걸린 lock들을 제거한다.<job-ID>

지정할 경우 해당 process-id로 lock이 걸린 lock들을 제거한다. pro

cess-id는 여러 개를 줄 수 있다.

P=<process-id,,,>

노드의 전체 lock을 제거한다. ALL만을 준 경우 모든 lock을 제거한

다.

NODE=<node-name> ALL

다음은 A 노드의 프로세스 1000, 1001, 1002, 1003번에 걸린 모든 lock을 제거하는 예를 보여준다.

$ LOCKCLEAR P=1000,1001,1002,1003 NODE=A

6.4.19. PSVOLUME (PSV)

명령을 실행하면 볼륨에 대한 정보를 보여준다.

PSVOLUME(PSV)

디스플레이 정보

볼륨에 대한 디스플레이 정보는 다음과 같다.

설명정보

볼륨 시리얼이다.SER

전체 볼륨 크기이다TOTAL(MB)

현재 볼륨 사용률이다.USAGE(%)

사용할 수 있는 볼륨 크기이다.FREE(MB)

볼륨의 UNIX 파일경로이다PATH

관련 환경설정volume에 대한 설정은 <volume.conf>를 참고한다.

94 OpenFrame TJES 안내서

Page 111: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

volume.conf 환경설정에 관한 자세한 내용은 OpenFrame 안내서 중 ”데이터 셋 안내서”를 참고한다.

6.5. SPOOL 백업 명령어SPOOL을 백업하기 위해 사용하는 명령어이다.

6.5.1. SPOOLBACKUP (SPBA)

입력에 해당하는 SPOOL을 백업한다. BACKUP을 하고 나면 SPOOL은 tjes.conf의 [SPOOL] 세션의

BACKUP 항목에 정의된 디렉터리에 압축 파일로 저장된다.

SPOOLBACKUP(SPBA) { DT=<yyyymmddhhmiss> | <start-job-ID>,<end-job-ID> }

다음은 SPOOLBACKUP (SPBA)의 입력 항목에 대한 설명이다.

설명항목

JOB을 submit한 시간을 입력한다. 주어진 시간 이전에 submit된 JOB

의 SPOOL에 대해서 백업한다.

DT=<yyyymmddhhmiss>

백업하려는 JOBID의 범위를 입력한다.<start-job-ID>,<end-job-ID>

관련 환경설정

백업한 SPOOL들을 저장할 디렉터리이다.

<tjes.conf>

[SPOOL]

SPOOL_BACKUP_DIR=spool_backup_dir

백업한 SPOOL의 내용을 보고 싶을 때 복원할 디렉터리이다.

<tjes.conf>

[SPOOL]

SPOOL_UNPACK_DIR=spool_unpack_dir

제6장 TJESMGR 명령어 95

Page 112: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.5.2. SPOOLBACKUPLIST (SPBL)

입력 조건에 해당하는 년/월에 백업된 날짜들을 보여준다.

SPOOLBACKUPLIST(SPBL) DATE={ <yyyymm>|<yyyy> }

다음은 SPOOLBACKUPLIST (SPBL)의 입력 항목에 대한 설명이다.

설명항목

검색할 년/월이다.DATE={ <yyyymm>|<yyyy> }

디스플레이 정보

SPOOLBACKUPLIST에 대한 디스플레이 정보는 다음과 같다.

설명정보

SPOOL이 백업된 날짜를 보여준다.BACKUP_DATE

6.5.3. SPOOLPS (SPPS)

입력 조건에 해당하는 날짜에 백업된 SPOOL 리스트를 보여준다.

SPOOLPS(SPPS) { DATE=<yyyymmdd> [N=<job-name-prefix>]

| N=<job-name-prefix> }

다음은 SPOOLPS (SPPS)의 입력 항목에 대한 설명이다.

설명항목

백업된 날짜이다.DATE=<yyyymmdd>

백업된 JOB에서 찾고자 하는 job-name의 prefix를 지정한다.N=<job-name-prefix>

디스플레이 정보

SPOOLPS에 대한 디스플레이 정보는 다음과 같다.

설명정보

디스플레이 대상 SPOOL 리스트 번호이다.NO

SPOOL 리스트 번호는 SPOOLRESTORE, SPOOLPSJOB,

SPOOLPSIO 등에서 사용된다.

디스플레이 대상 JOB 이름이다.JOBNAME

디스플레이 대상 JOB ID이다.JOBID

96 OpenFrame TJES 안내서

Page 113: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

디스플레이 대상 JOB이 submit 되었던 날짜이다.submit_TIME

디스플레이 대상 JOB이 백업되었던 날짜이다.BACKUP_DATE

6.5.4. SPOOLRESTORE (SPRE)

입력 조건에 해당하는 백업된 SPOOL의 내용을 조회할 수 있게 임시 디렉터리에 복원한다. SPOOLRE

SOTRE를 하기 위해서는 SPOOLPS를 먼저 실행해야 한다.

SPOOLRESTORE(SPRE) I=<index>

다음은 SPOOLRESTORE (SPRE)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPS에서 출력된 디스플레이 대상 SPOOL 리스트 번호이다.I=<index>

관련 환경설정

SPOOL이 백업될 디렉터리이다.

<tjes.conf>

[SPOOL]

SPOOL_BACKUP_DIR=spool_bakup_dir

SPOOL의 내용을 보기 위해 임시로 복원하게 될 디렉터리이다.

<tjes.conf >

[SPOOL]

SPOOL_UNPACK_DIR=spool_unpack_dir

6.5.5. SPOOLCLEAR (SPCL)

입력조건에 해당하는 임시 디렉터리에 복원된 SPOOL을 제거한다.즉, SPOOLRESTORE을 통해서 복원

되었던 SPOOL들을 제거한다.

SPOOLCLEAR(SPCL) I=<index>

다음은 SPOOLRESTORE (SPRE)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPS에서 출력된 디스플레이 대상 SPOOL 리스트 번호이다.I=<index>

제6장 TJESMGR 명령어 97

Page 114: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.5.6. SPOOLPSJOB (SPPSJ)

입력조건에 해당하는 복원된 JOB의 상세 정보를 보여준다. SPOOLPS과 SPOOLRESTORE 명령어를 우

선 실행해야 SPOOLPSJOB 명령어의 결과를 볼 수 있다.

SPOOLPSJOB(SPPSJ) I=<index>

다음은 SPOOLPSJOB (SPPSJ)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPSJOB에서 출력될 디스플레이 대상 SPOOL 의 인덱스 번호이다.I=<index>

디스플레이 정보

PSJOB의 JOB이 끝났을 때의 정보와 동일하다. 단, OUTPUT에 대한 정보는 출력되지 않는다.

6.5.7. SPOOLPSIO (SPPSIO)

입력조건에 해당하는 복원된 JOB의 I/O 정보를 보여준다. SPOOLPS과 SPOOLRESTORE 명령어를 우

선 실행해야 SPOOLPSIO 명령어의 결과를 볼 수 있다.

SPOOLPSIO(SPPSIO) I=<index>

다음은 SPOOLPSIO (SPPSIO)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPS에서 출력된 디스플레이 대상 SPOOL 리스트 번호이다.I=<index>

디스플레이 정보

STEP별 데이터 셋들의 읽기/쓰기 횟수를 보여준다.

6.5.8. SPOOLPODD (SPPODD)

입력조건에 해당하는 복원된 JOB의 SPOOL을 설정한 뷰어로 열어준다.

SPOOLPODD(SPPODD) I=<index> SPDI=<dd-index>

다음은 SPOOLPODD (SPPODD)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPS에서 나온 번호이다.I=<index>

98 OpenFrame TJES 안내서

Page 115: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

보고자 하는 dd-index를 지정한다.SPDI=<dd-index>

참고

SPOOLPODD 명령은 PODD 명령과 동일하므로 자세한 내용은 “6.2.8. PODD (Print Output DD In

formation)” 명령을 참고한다.

6.5.9. SPOOLPOSPOOL (SPPOSPOOL)

입력조건에 해당하는 복원된 JOB의 SPOOL 정보를 보여준다. SPOOLPS과 SPOOLRESTORE 명령어를

우선 실행해야 SPOOLPOSPOOL 명령어의 결과를 볼 수 있다.

SPOOLPOSPOOL(SPPOSPOOL) I=<index>

다음은 SPOOLPOSPOOL (SPPOSPOOL)의 입력 항목에 대한 설명이다.

설명항목

SPOOLPS에서 출력된 디스플레이 대상 SPOOL 리스트 번호이다.I=<index>

디스플레이 정보

POSPOOL의 정보와 동일하다.

6.6. 기타 명령어

6.6.1. PSPRINT (PSP)

명령을 실행하면 환경파일에 등록되어 있는 프린터의 정보를 보여준다.

PSPRINT(PSP)

디스플레이 정보

환경파일에 등록되어 있는 프린터에 대한 디스플레이 정보는 다음과 같다.

설명정보

프린터 이름이다.PRINTER_NAME

OUTPUT CLASS들이다.CLASS

프린터를 실행할 명령어이다.PRINTER_COMMAND

제6장 TJESMGR 명령어 99

Page 116: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

프린터 라이브러리가 있는 경로이다.DRIVER_PATH

관련 환경설정

프린터를 설정한다.

<print.conf >

[PRINTERn]

6.6.2. CLS

명령을 실행하면 tjesmgr의 화면을 제거한다.

CLS

6.6.3. EDIT

입력한 filepath을 지정한 에디터로 열어준다.

EDIT <filepath>

다음은 LICENSE의 입력 항목에 대한 설명이다.

설명항목

절대경로를 입력한다.<filepath>

관련 환경설정

파일을 열수 있는 에디터를 지정한다.

<tjesmgr.conf >

[DEFAULT_OPTION]

EDITOR=editor

6.6.4. VERSION

명령을 실행하면 TJES의 버전정보를 보여준다.

VERSION

100 OpenFrame TJES 안내서

Page 117: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.6.5. HELP

입력 명령어에 해당하는 명령어 사용법을 보여준다.

명령어를 주지 않은 경우 모든 명령어의 사용법을 보여준다.

HELP [<tjesmgr_command>]

6.6.6. LICENSE

입력에 해당하는 라이선스 파일의 정보를 보여준다.

LICENSE { <product> | <filepath> }

다음은 LICENSE의 입력 항목에 대한 설명이다.

설명항목

PRODUCT로는 현재 TJES, TSAM, TACF, HIDB, OSC, OSI가 있다.<product>

라이선스 파일의 이름만을 입력한 경우 환경파일에 등록되어 있는 라이선스

디렉터리에서 해당 라이선스 파일을 찾아서 정보를 보여준다.

<filepath>

관련 환경설정

라이센스 디렉터리이다.

<ofsys.conf>

[DIRECTORY]

LICENSE_DIR=license_dir

6.6.7. ERROR

입력한 error-number에 해당하는 에러 메시지를 보여준다.

ERROR <error-number>

6.6.8. CURRENTUSER

현재 로그인된 사용자의 ID를 보여준다.

CURRENTUSER (CU)

제6장 TJESMGR 명령어 101

Page 118: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.6.9. SWITCHUSER

명령을 실행하면 사용자 입력 창이 나타나고 사용자로부터 입력 받은 ID에 해당하는 사용자로 로그인된

다.

SWITCHUSER (SU)

입력 파라미터

다음은 SWITCHUSER의 입력 파라미터에 대한 설명이다.

설명파라미터

로그인할 사용자 ID를 입력한다.ID

로그인할 사용자의 그룹을 입력한다.GROUP NAME

로그인할 사용자의 패스워드를 입력한다.PASSWORD

6.7. JSS3 관련 명령어JOBNET에 관한 정보를 변경, 열람할 수 있는 명령어로 SETNET, DISPLAYNETLIST가 있다.

6.7.1. SETNET (SN)

파라미터값으로 주어진 JOB 또는 JOBNET 내의 모든 JOB의 상태를 변경한다.

SETNET {JOBID | NI=<netid>} CMD=<HOLD|RELS|NHOLD|FLUSH> [integer]

설명항목

명령어의 적용 대상 JOB의 ID이다.JOBID

이 항목을 지정할 경우 해당 JOB의 속성만 변경된다.

명령어의 적용 대상 JOBNET의 ID이다.NI

이 항목을 지정할 경우 해당 JOBNET에 속한 NET의 JOB 전체 속성이 변경

된다.

JOB 또는 JOBNET 내의 모든 JOB에 대한 상태 변화 종류를 가리키는 명령

어이다.

CMD

1번째 항목으로 다음을 선택했을 경우 CMD에서 선택 가능한 값은 다음과 같

다.

- JOBID: 선택 가능한 값은 HOLD, RELS, NHOLD, FLUSH이다. 각 값에 대

한 자세한 내용은 표 이후에 설명한다.

102 OpenFrame TJES 안내서

Page 119: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

- NI: HOLD, RELS, NHOLD, FLUSH 중 NHOLD를 제외한 값이 가능하다.

CMD 값이 NHOLD일 때 JOB의 NHOLD 값의 변화 정도를 의미한다. 해당 값

은 2번째 파라미터인 CMD의 값이 NHOLD일 때만 유효하며 이외의 경우는

무시된다.

[integer]

다음은 명령어 파라미터 중 CMD값에 대한 설명이다.

설명값

JOBID를 파라미터로 설정한 경우 해당 JOB의 JOBNET 속성을 오퍼레이터

HOLD로 변경한다.

HOLD

NETID를 파라미터로 설정한 경우 해당 JOBNET에 속하는 모든 JOB의

JOBNET 속성을 오퍼레이터 HOLD로 변경한다.

JOBID를 파라미터로 설정한 경우 해당 JOB의 JOBNET 속성의 오퍼레이터

HOLD 상태를 해제한다.

RELS

NETID를 파라미터로 설정한 경우 해당 JOBNET에 속하는 모든 JOB의

JOBNET 속성의 오퍼레이터 HOLD 상태를 해제한다.

파라미터로 지정된 JOB의 NHOLD값을 [integer]만큼 변경한다.NHOLD

JOBID를 파라미터로 설정한 경우 해당 JOB과 모든 제귀적인 후행 JOB들의

JOBNET 속성의 상태를 FLUSH 상태로 변경한다.

FLUSH

NETID를 파라미터로 설정한 경우 해당 JOBNET에 속하는 모든 JOB의

JOBNET 속성을 FLUSH 상태로 변경한다.

참고

명령어는 NET의 JOB 상태가 HOLD 또는 START 상태였을 때 유효하다.

제6장 TJESMGR 명령어 103

Page 120: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

6.7.2. DISPLAYNETLIST (DNL)

입력된 NETID에 해당하는 JOBNET에 대한 정보를 출력한다. NETID가 주어지지 않은 경우 시스템 내의

모든 JOBNET에 대한 간략한 정보를 출력한다.

DISPLAYNETLIST(DNL) [NETID]

디스플레이 정보

DISPLAYNETLIST 디스플레이 기본 정보는 다음과 같다.

설명정보

JOBNET 이름이다.JOBNETNAME

JOBNET 내의 총 JOB수이다. 미입력 JOB 수를 포함한다. 미입력 JOB이란

아직 SUBMIT 되지는 않았지만, 후속 JOB으로 릴리즈할 JOB이다.

TOTALCNT

JOBNET 내의 입력이 끝난 JOB 수이다. 이는 재입력한 JOB 수를 포함한다.INPUTCNT

JOBNET 내의 종료가 끝난 JOB 수이다.FINISHCNT

JOBNET의 오퍼레이터 속성이다. 값은 EMPTY, HOLD, FLUSH, NORMAL

중의 하나이다.

NETSTAT

- EMPTY: 해당 NET의 JOB 엔트리가 비어있는 상태이다.

- HOLD: 오퍼레이터의 HOLD 상태이다.

- FLUSH: JOBNET의 FLUSH 상태이다.

- NORMAL: 위 3가지 상태 외의 정상적인 상태이다.

DISPLAYNETLIST 디스플레이 특정 JOBNET 정보는 앞의 DISPLAYNETLIST 디스플레이 기본 정보를

포함해서 다음의 정보를 추가로 출력한다.

설명정보

해당 JOBNET 내의 JOBID이다.JOBID

해당 JOBNET 내의 JOB 이름이다.JOBNAME

해당 JOB이 실행되기 위해서 릴리즈되어야 할 NHOLD 수이다.NHOLD

선행 JOB이 정상적으로 끝났을 때 해당 JOB의 처리 방법을 표시한다. 값은

D(Default), F(Flush), R(Ratain)의 값이 나올 수가 있다. 자세한 내용은 "JCL

문법 안내서"의 NET문을 참고한다.

NORMAL

선행 JOB이 비정상적으로 끝났을 때 해당 JOB의 처리 방법을 표시한다. 값

은 D(Default), F(Flush), R(Ratain)의 값이 나올 수가 있다. 자세한 내용은

"JCL 문법 안내서"의 NET문을 참고한다.

ABNORMAL

104 OpenFrame TJES 안내서

Page 121: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명정보

해당 JOBNET의 JOB이 오퍼레이터 HOLD 상태인지를 나타내주며, Y/N 값

으로 표시된다.

OPHOLD

해당 JOB이 정상 종료해도 후행 JOB에서 이상종료(ABEND)로 처리되는 조

건이 표시된다. 0~4095의 부호없는 정수이다. 자세한 내용은 "JCL 문법 안내

서"의 NET문을 참고한다.

COND

해당 JOB의 동일 NET 내에 있는 후행 JOB들을 표시한다.RELEASE

해당 JOB의 다른 NET 내에 있는 후행 JOB들을 표시한다.NETREL

참고

오퍼레이터 HOLD 상태의 JOB은 PS 커맨드에서 STATUS 필드의 값이 [w]start (wait-start) 상태로

표시된다.

제6장 TJESMGR 명령어 105

Page 122: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame
Page 123: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

제7장 환경설정

TJES를 실행시키기 위해서는 Tmax 환경과 TJES 환경을 사전에 설정해야 한다.

7.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 설치 안내서”를 참고한다.

7.1.1. Tmax 서버

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

● TJES 서버

역할서버명

JOB 스케줄러obmjschd

JOB Initiatorobmjinit

제7장 환경설정 107

Page 124: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

역할서버명

JOB 매니저obmjmsvr

JOB 히스토리obmjhist

JOB SPOOL 백업obmjspbk

프린터 매니저ofrpmsvr

● TJES 관련 서버

역할서버명

보안 관리ofrsasvr

Lock 관리ofrlmsvr, ofrlmwrk

사용자 인터페이스 담당 서버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"

참고

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

108 OpenFrame TJES 안내서

Page 125: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

위의 내용 중에 SVGNAME=svg_domain은 전체 노드 중에 한곳에서만 구동되어야 한다는 것을 의미하

고, MIN=1,MAX=1로 되어있는 설정은 하나의 서버만이 구동되어야 함을 의미한다.

따라서 obmjschd의 경우는 전체 노드 중에 한곳에서만, 하나의 서버만으로 구동이 되고, obmjinit의 경우

는 노드마다, 하나의 서버만으로 구동이 된다.

또한, obmjmsvr의 경우는 노드마다, 여러 개의 서버들이 구동이 될 수 있다. 사이트 부하 상황에 맞춰 MIN

을 설정해서 사용한다. 주어지지 않으면 MIN=1 이다.

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

● 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

● Tmax 서버 구동 중지

$ tmdown

tmadmin을 통해 Tmax 서버를 조회한 경우, 서버가 NRDY 상태인 경우에는 서버 로그를 통해서 원인을

파악할 수 있다. 서버 로그는 Tmax에서 생성되는 파일로 $TMAXDIR/log/ulog 디렉터리에서 찾아볼 수

있다.

참고

Tmax 관련 내용은 “Tmax 관리자 안내서”를 참고한다.

제7장 환경설정 109

Page 126: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.1.2. 멀티 노드 설정

TJES를 멀티 노드로 운영하기 위해서는 다음과 같은 몇 가지 추가 설정이 필요하다. 참고로 같은 도메인

에 속한 모든 노드의 Tmax 설정파일은 동일해야 한다.

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

NODE 추가

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

*NODE

DEFAULT:

DOMAINNAME = "domofb"

NODE1

HOSTNAME = "tmaxi4",

IP = "192.168.1.35",

TMAXHOME = "/openframe/oftobm4/openframe/tmax",

TMAXDIR = "/openframe/oftobm4/openframe/tmax",

APPDIR = "/openframe/oftobm4/openframe/server",

TLOGDIR = "/openframe/oftobm4/openframe/tmax/log/tlog",

ULOGDIR = "/openframe/oftobm4/openframe/tmax/log/ulog",

SLOGDIR = "/openframe/oftobm4/openframe/tmax/log/slog",

CLHOPT = " -o /openframe/oftobm4/openframe/tmax/log/clh.log -e /

openframe/oftobm4/openframe/tmax/log/clh.err",

TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450

NODE2

HOSTNAME = "tmaxi1",

IP = "192.168.1.13",

TMAXHOME = "/openframe/oftobm4/openframe/tmax",

TMAXDIR = "/openframe/oftobm4/openframe/tmax",

APPDIR = "/openframe/oftobm4/openframe/server",

TLOGDIR = "/openframe/oftobm4/openframe/tmax/log/tlog",

ULOGDIR = "/openframe/oftobm4/openframe/tmax/log/ulog",

SLOGDIR = "/openframe/oftobm4/openframe/tmax/log/slog",

CLHOPT = " -o /openframe/oftobm4/openframe/tmax/log/clh.log -e /

openframe/oftobm4/openframe/tmax/log/clh.err",

TPORTNO = 9400, SHMKEY = 94000, RACPORT = 9450

110 OpenFrame TJES 안내서

Page 127: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

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"

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

참고

각각의 자세한 설정 내용은 “Tmax 관리자 안내서”를 참고한다.

제7장 환경설정 111

Page 128: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.2. TJES 설정OpenFrame TJES의 환경 파일은 설치하는 경우 기본값으로 또는 설치 중의 사용자 입력 값으로 자동 설

정되므로 별도의 설정을 필요로 하지 않는다.

7.2.1. OpenFrame 환경 파일 형식

OpenFrame에서 사용하는 환경 파일들은 OpenFrame을 설치하는 경우 지정한 $OPENFRAME_HOME/con

fig 디렉터리에 있다.

환경 파일의 형식은 다음과 같다.

<xxx.conf>

[ 섹션 이름 ]

키 이름 = 키 값

7.2.2. TJES 환경 파일

tjes.conf 환경 파일은 다음으로 구성되어 있다.

아래의 환경을 변경하고 이를 시스템에 적용하려면 기본적으로 Tmax 서버를 다운시켰다가 재기동해야

한다.

[NODEINFO]

노드에 대한 정보를 설정하는 섹션이다.

NODENAME = value

NODELIST = value1;value2...

다음은 [NODEINFO]의 설정 항목에 대한 설명이다.

설명항목

현재 노드의 이름을 설정한다.NODENAME

전체 노드의 이름들을 설정한다. 각 노드 간의 구분은 세미콜론(;)으로 한다.NODELIST

참고

[NODEINFO] 섹션에서 설정되는 노드명은 Tmax 환경 파일의 *NODE에 지정된 노드명과 동일해야

한다.

112 OpenFrame TJES 안내서

Page 129: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

OpenFrame을 최초 설치하는 경우 NODELIST에는 하나의 이름만 설정되어 있으며, OpenFrame에서 멀

티 노드를 사용하려는 경우 추가된 노드의 이름을 NODELIST에 설정해 주어야 한다.

예) nodeA 노드 만을 사용하는 경우 - nodeA 노드의 환경

[NODEINFO]

NODENAME=nodeA

NODELIST=nodeA

예) nodeA, nodeB 노드를 사용하는 경우 - nodeA 노드의 환경

[NODEINFO]

NODENAME=nodeA

NODELIST=nodeA;nodeB

예) nodeA, nodeB 노드를 사용하는 경우 - nodeB 노드의 환경

[NODEINFO]

NODENAME=nodeB

NODELIST=nodeA;nodeB

[SYSTEM_DS]

TJES에서 사용하는 시스템 데이터 셋을 설정하는 섹션이다. 시스템 데이터 셋들은 OpenFrame을 최초

설치하는 경우 자동으로 생성된다.

JOBQ = dataset name

TJES_STAT = dataset name

OUTPUTQ_BASE = dataset name

OUTPUTQ_PJOBID = dataset name

OUTPUTQ_PJOBNAME = dataset name

다음은 [SYSTEM_DS]의 설정 항목에 대한 설명이다.

설명항목

JOBQ로 사용될 데이터 셋의 이름을 설정한다.JOBQ

JESST로 사용될 데이터 셋의 이름을 설정한다.TJES_STAT

OUTPUTQ로 사용될 데이터 셋의 이름을 설정한다.OUTPUTQ_BASE

OUTPUTQ로 사용될 데이터 셋에 대해 JOBID로 Alternative Indexing

을 한 데이터 셋에 부여할 이름을 설정한다.

OUTPUTQ_PJOBID

OUTPUTQ로 사용될 데이터 셋에 대해 JOBNAME으로 Alternative

Indexing을 한 데이터 셋에 부여할 이름을 설정한다.

OUTPUTQ_PJOBNAME

제7장 환경설정 113

Page 130: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

위의 데이터 셋 이름들은 초기 설정 값 그대로 사용할 것을 권장한다.

다음은 OpenFrame을 최초 설치하는 경우 자동으로 생성되는 [SYSTEM_DS]에 대한 예제이다.

JOBQ=SYS1.JOBQ

TJES_STAT=SYS1.JESST

OUTPUTQ_BASE=SYS1.OUTPUTQ

OUTPUTQ_PJOBID=SYS1.OUTPUTQ.PJOBID

OUTPUTQ_PJOBNAME=SYS1.OUTPUTQ.PJOBNAME

[JOBDEF]

TJES에서 JOB을 관리하기 위한 섹션이다.

STARTNUM = value

ENDNUM = value

FULL_WARNING = value

다음은 [JOBDEF]의 설정 항목에 대한 설명이다.

설명항목

JOBID의 시작과 끝을 설정함과 동시에 JOBQ의 크기가 설정된다.STARTNUM

기본 설정이 STARTNUM=1, ENDNUM=9999로 설정되어있기 때문에 JOBID

는 JOB00001부터 JOB09999까지 생성이 되고 JOBQ에는 9999개까지의

JOB 정보가 들어갈 수 있다.

ENDNUM

STARTNUM과 ENDNUM의 변경 값을 시스템에 적용하려면 tjesinit 툴을 사

용하여 초기화 작업을 다시 해주어야 한다. 초기화 작업을 할 경우 JOBQ의

모든 정보가 삭제되므로 현재 JOBQ의 정보를 보관하고자 하는 경우 SPOOL

BACKUP 명령을 통해 SPOOL을 백업해놓기를 권장한다.

(SPOOL 백업에 대한 내용은 “2.6. JOB의 백업”을 참고한다.)

JOBQ가 몇 퍼센트까지 사용될 경우 JOBQ가 꽉 찬다는 경고 메시지를 보여

줄 지를 설정한다.

FULL_WARNING

참고

초기화에 관한 내용은 OpenFrame 안내서 중에 “툴 참조 안내서”의 “tjesinit”을 참고한다.

114 OpenFrame TJES 안내서

Page 131: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

다음은 JOBID시작은 1, 끝은 9999, warning은 80%로 설정한 [JOBDEF]에 대한 예제이다.

STARTNUM=1

ENDNUM=9999

FULL_WARNING=80

[JOBCLASS]

TJES의 JOB CLASS 의 기본 속성에 관한 섹션이다.

class=[START|HOLD]

다음은 [JOBCLASS]의 설정 항목에 대한 설명이다.

설명항목

JOB CLASS별 기본 속성을 기술한다. class는 A-Z, 0-9 이 가능하다. 누락된

class는 각 속성의 기본값을 가진다.

class

- [START | HOLD] : class로 submit 된 JOB의 상태를 지정한다. 생략시에

START 상태이다. JCL의 JOB 구문의 기술된 값이 이 설정 값보다 우선한다.

참고

자세한 내용은 TJESMGR 명령어 중 “6.3.8. SHOWCLASS(SC)”를 참고한다.

[SCHEDULING]

TJES에서 JOB 스케줄링에 관한 섹션이다.

DUPL_JOBNAME= [YES|NO]

PRTYJECL= [YES|NO]

PRTYJOB= [YES|NO]

PRTYHIGH=value

PRTYLOW=value

PRTYRATE=1440

INTERVAL=10

다음은 [SCHEDULING]의 설정 항목에 대한 설명이다.

설명항목

동일한 JOBNAME을 갖는 JOB을 동시에 실행할지 여부를 결정한다.DUPL_JOBNAME

기본값은 NO이다.

제7장 환경설정 115

Page 132: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

submit한 JCL에서 JECL의 PRTY을 사용할지 여부를 결정한다.PRTYJECL

기본값은 YES이다.

submit한 JCL에서 JCL의 PRTY을 사용할지 여부를 결정한다.PRTYJOB

기본값은 NO이다.

스케줄러에서 우선순위를 변경할 최대값을 결정한다.PRTYHIGH

최대값보다 큰 우선순위는 에이징 처리를 하지 않는다.

스케줄러에서 우선순위를 변경할 최소값을 결정한다.PRTYLOW

최소값보다 작은 우선순위는 에이징 처리를 하지 않는다.

하루에 에이징을 몇번할지 rate를 설정한다.PRTYRATE

86400(24시간)/prtyrate 초 후에 JOB의 우선순위를 1증가시킨다.

일정 시간 동안 작업이 실행되지 못하는 JOB들의 우선순위를 높여서 오래

기다린 JOB일수록 빨리 실행될 수 있다.

스케줄러가 스케줄링하는 간격을 초단위로 설정한다. 기본값은 10이다.INTERVAL

간격이 너무 길면 START된 JOB들이 빨리 실행되지 않고, 너무 짧게 설정되

면 스케줄링 처리를 자주 함으로써 부하가 생길 수 있다.

[RESOURCE]

TJES에서 사용할 UNIX 자원에 대한 섹션이다.

SHMKEY=values

다음은 [RESOURCE]의 설정 항목에 대한 설명이다.

설명항목

TJES에서 obmjinit와 tjclrun간 통신을 위한 공유 메모리 키를 설정한다.SHMKEY

116 OpenFrame TJES 안내서

Page 133: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[PROCLIB]

JOB을 실행하기 위해 필요한 데이터 셋에 대한 섹션이다.

JCLLIB=datasetname[:datasetname...]

USERLIB=[catalog]_datasetname[:[catalog]_datasetname...]

PROCnn=datasetname[:datasetname...]

다음은 [PROCLIB]의 설정 항목에 대한 설명이다.

설명항목

JCL들을 찾을 사용자 PDS 데이터 셋들이다.USERLIB

사용자들이 사용할 JCL들을 USERLIB에 저장해 놓으면 JCL의 이름만으로

JOB을 submit할 수 있다. JCLLIB과 USERLIB 중에 JCL을 찾을 때 우선순위

는 USERLIB에 기술한 데이터 셋부터 찾는다.

JCL 내에서 PROC나 INCLUDE들을 찾을 때 기본으로 찾게 될 PDS 데이터

셋으로 00부터 99까지 설정할 수 있다. 데이터 셋을 구분하기 위해 콜론(:)을

사용한다.

PROCnn

[DYNAMIC_LIBRARY]

TEMPLIB=datasetname

다음은 [DYNAMIC_LIBRARY]의 설정 항목에 대한 설명이다.

설명항목

사용자 라이브러리의 변경이 있을 때 기존 라이브러리를 임시로 저장할 PDS

데이터 셋 이름이다.

TEMPLIB

참고

상세한 내용은 OpenFrame 안내서 중 “툴 참조 안내서”의 “dlclean"와 “dlupdate”를 참고한다.

제7장 환경설정 117

Page 134: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[LOG]

TJES에 관한 로그파일에 대한 섹션이다.

JOBLOG=filepath

SUBMITLOG=filepath

다음은 [LOG]의 설정 항목에 대한 설명이다.

설명항목

JOB의 상태변화를 기록하는 JOBLOG의 filepath를 지정한다.JOBLOG

JCL submit 시도와 결과를 기록하는 SUBMITLOG의 filepath를 지정한다.SUBMITLOG

log 가 기록될 파일의 절대 경로를 지정한다. 파일 이름의 &SYSDATE 는

YYMMDD 형식의 날짜로 치환된다. $(OPENFRAME_HOME)/log 밑에 저장

할 것을 권고한다.

filepath

참고

1. JOBLOG 와 SUBMITLOG 에 대한 자세한 내용은 “2.5. 로그” 를 참조한다.

2. 로그에 대한 분석은 TJESMGR의 JOBHISTORY를 통해서 할 수 있다. JOBHISTORY에 대한 자

세한 내용은 TJESMGR 명령어 중 “6.2.9. PSHISTORY (Print Screen of JOB History)”를 참고한다.

다음은 $(OPENFRAME_HOME)/log 밑에 날짜에 따라 jobYYMMDD.log 와 submitYYMMDD.log 형식으

로 log 파일을 생성하는 [LOG] 예제이다.

JOBLOG = $(OPENFRAME_HOME)/log/job&SYSDATE.log

SUBMITLOG=$(OPENFRAME_HOME)/log/submit&SYSDATE.log

[SPOOL]

TJES의 SPOOL에 대한 섹션이다.

SPOOL_VOLUME_SER=volume serial

SPOOL_BACKUP_DIR=dir-path

SPOOL_UNPACK_DIR=dir-path

다음은 [SPOOL]의 설정 항목에 대한 설명이다.

설명항목

volume.conf에 지정된 SPOOL VOLUME SERIAL을 설정한다.SPOOL_VOLUME_SER

BACKUP 기능 사용시 SPOOL 백업 데이터가 저장될 디렉터리를 설

정한다.

SPOOL_BACKUP_DIR

118 OpenFrame TJES 안내서

Page 135: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

백업된 SPOOL 데이터를 조회하고자 할 때 임시로 사용할 디렉터리

를 설정한다.

SPOOL_UNPACK_DIR

참고

자세한 내용은 “2.6. JOB의 백업”과 TJESMGR 명령어의 “6.5.1. SPOOLBACKUP (SPBA)” 을 참고

한다.

다음은 [SPOOL]의 설정한 예이다.

SPOOL_VOLUME_SER=VSPOOL

SPOOL_BACKUP_DIR=$OPENFRAME_HOME/spbackup

SPOOL_UNPACK_DIR=$OPENFRAME_HOME/sptemp

[SPOOL_TRANSFER]

PROTOCOL=[FTP|RCP|SCP]

IP_ADDRESS=ip-address

HOST_NAME=host-name

USER=username

PASSWD=password

DIR_PATH=dir-path

다음은 [SPOOL_TRANSFER]의 설정 항목에 대한 설명이다.

설명항목

네트워크 전송에 사용할 PROTOCOL을 지정한다.PROTOCOL

- FTP

- RCP

- SCP

전송받을 노드의 IP_ADDRESS를 지정한다. PROTOCOL이 FTP, SCP일때

지정해야 한다.

IP_ADDRESS

전송받을 노드의 HOST_NAME을 지정한다. PROTOCOL이 RCP일때 지정

해야한다.

HOST_NAME

전송받을 노드에 접속하기 위한 USER NAME을 지정한다.USER

전송받을 노드에 접속하기 위한 PASSWORD를 지정한다. PROTOCOL이

FTP일 때 지정해야 한다.

PASSWD

전송받을 노드에 데이터를 저장하기 위한 디렉토리를 지정한다.DIR_PATH

제7장 환경설정 119

Page 136: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

주의

이 설정은 다른 노드로 스풀데이터를 전송해서 OUTPUT PROCESSING을 수행할 필요가 있을 경우

에만 사용해야한다.

다음은 [SPOOL_TRANSFER]를 설정한 예이다.

PROTOCOL=FTP

IP_ADDRESS=192.168.1.43

HOST_NAME=tmaxh4

USER=obm

PASSWD=******

DIR_PATH=/ofenframe/user/obm/openframe/data/spool_tmp

[SPOOL_TRANSFER_BACKUP]

PROTOCOL=[FTP|RCP|SCP]

IP_ADDRESS=ip-address

HOST_NAME=host-name

USER=username

PASSWD=password

DIR_PATH=dir-path

다음은 [SPOOL_TRANSFER_BACKUP]의 설정 항목에 대한 설명이다.

설명항목

네트워크 전송시 사용할 PROTOCOL을 지정한다.PROTOCOL

- FTP

- RCP

- SCP

전송받을 노드의 IP_ADDRESS를 지정한다. PROTOCOL이 FTP, SCP일때

지정해야 한다.

IP_ADDRESS

전송받을 노드의 HOST_NAME을 지정한다. PROTOCOL이 RCP일때 지정

해야한다.

HOST_NAME

전송받을 노드에 접속하기 위한 USER NAME을 지정한다.USER

전송받을 노드에 접속하기 위한 PASSWORD를 지정한다. PROTOCOL이

FTP일 때 지정해야한다.

PASSWD

전송받을 노드에 데이터를 저장하는 디렉터리를 지정한다.DIR_PATH

120 OpenFrame TJES 안내서

Page 137: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

참고

이 설정은 [SPOOL_TRANSFER]를 통해 스풀 데이터 전송 실패시 BACKUP으로 사용하게 되는 설

정이다.

다음은 [SPOOL_TRANSFER_BACKUP]을 설정한 예이다.

PROTOCOL=FTP

IP_ADDRESS=192.168.1.43

HOST_NAME=tmaxh4

USER=obm

PASSWD=******

DIR_PATH=/ofenframe/user/obm/openframe/log

[OUTDEF]

USE_OUTPUTQ=[YES|NO]

OUTMUN=value

DATA_DIR=dir-path

다음은 [OUTDEF]의 설정 항목에 대한 설명이다.

설명항목

OUTPUT Processing을 수행 여부를 지정한다.USE_OUTPUTQ

OUTPUTQ의 크기를 설정한다.OUTNUM

SPOOL에서 해당 OUTPUT의 데이터를 복사할 디렉터리 지정한다.DATA_DIR

다음은 [OUTDEF] 설정한 예이다.

USE_OUTPUTQ=YES

OUTNUM=8000

DATA_DIR=$OPENFRAME_HOME/outputq

제7장 환경설정 121

Page 138: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[OUTCLASS]

SYSOUT의 OUTPUT CLASS에 따라 기본 OUTPUT DISPOSITION과 기본 lrecl을 설정할 수 있다.

#class=[normal disp][,abnormal disp] [: default lrecl]

다음은 [OUTCLASS]의 설정 항목에 대한 설명이다.

설명항목

OUTPUT CLASS가 A인 SPOOL 데이터 셋은 JCL에서 OUTPUT DISPOSI

TION을 기술하지 않았을 때, 기본 OUTPUT DISPOSITION으로

(WRITE,WRITE)을 사용한다.

#class

lrecl을 기술하지 않았으면 120으로 사용한다.

[OUTCLASS]를 지정하는 예는 다음과 같다.

A=WRITE,WRITE:120

[INTRDR]

TJES의 인터널 리더에 대한 섹션이다.

HOLD=[YES|NO]

NODENAME=nodename

USERNAME=username

GROUPNAME=groupname

PASSWORD=password

ENPASSWD=encrypted password

다음은 [INTRDR]의 설정 항목에 대한 설명이다.

설명항목

인터널 리더로 JCL을 submit할 때 JOB의 상태를 HOLD로 할지 여부를 설정

한다.

HOLD

인터널 리더로 JCL을 submit할 때 JOB을 실행할 노드를 설정한다.NODENAME

인터널 리더로 JCL을 submit할 때 TACF 인증을 받을 사용자를 설정한다.USERNAME

인터널 리더로 JCL을 submit할 때 TACF 인증을 받을 사용자 그룹을 설정한

다.

GROUPNAME

인터널 리더로 JCL을 submit할 때 TACF 인증을 받을 사용자 비밀번호를 설

정한다.

PASSWORD

인터널 리더로 JCL을 submit할 때 TACF 인증을 받을 사용자 비밀번호를 암

호화해서 설정한다.

ENPASSWD

122 OpenFrame TJES 안내서

Page 139: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

PASSWORD나 ENPASSWD는 하나만 설정해야 한다.

[INITDEF]

TJES의 Runner의 초기 설정 값에 대한 섹션이다.

INITNUM=values

INITxxxx=name,classes,[ACTIVE|INACTIVE]

다음은 [INITDEF]의 설정 항목에 대한 설명이다.

설명항목

전체 Slot의 개수를 지정한 것이다.INITNUM

각 Runner Slot 를 설정한다.INITxxxx

INITxxxx 에서 xxxx는 Runner Slot 번호를 지정한다. 동일한 설정을 가지는

연속된 다수의 Runner는 INITnnnn-mmmm를 키로 하여 한번에 설정 할 수

있다.

- name : Runner Slot의 이름으로, 현재는 특별한 의미를 가지지 않는다.

- classes : Runner Slot에 할당할 수 있는 JOB CLASS를 설정한다.

- [ACTIVE|INACTIVE] : Runner Slot의 초기 상태를 지정한다. JOB 을 수행

할 수 있는 ACTIVE와 JOB을 수행할 수 없는 INACTIVE 둘 중 하나를 선택한

다.

[TACF]

TACF를 통해 JOBNAME과 SPOOL에 대한 권한 체크에 관한 섹션이다.

CHECK_JOBNAMEAUTH=[YES|NO]

CHECK_SPOOLAUTH=[YES|NO]

다음은 [TACF]의 설정 항목에 대한 설명이다.

설명항목

SUBMIT, REMOVE, START, HOLD 등 JOB 에 관한 제어를 하는 경

우 JOBNAME 에 관한 권한 체크를 할지에 대한 여부를 설정한다.

CHECK_JOBNAMEAUTH

tjesmgr에서 PODD command로 SPOOL을 열어볼 수 있는 권한 체

크를 할지에 대한 여부를 설정한다.

CHECK_SPOOLAUTH

제7장 환경설정 123

Page 140: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.3. TJESMGR 설정본 장에서는 tjesmgr에서 사용하는 tjesmgr.conf 환경 파일에 대한 설명을 한다.

[DEFAULT_OPTION]

tjesmgr의 명령어를 실행하는 경우 참고하는 정보를 설정하는 섹션이다.

SPOOL_LIST=[ALL|EXIST|GTZERO]

EDITOR=value

VIEWER=value

DEFAULT_RUNNING_NODE=[MY|ANY]

다음은 [DEFAULT_OPTION]의 설정 항목에 대한 설명이다.

설명항목

- ALL: 모든 SPOOL을 보여준다.SPOOL_LIST

- EXIST: SPOOL 파일이 존재하는 것만 보여준다.

- GTZERO: SPOOL 파일 크기가 0보다 큰 것만 보여준다.

파일을 열수 있는 에디터를 지정한다.EDITOR

에디터를 지정하는 예는 다음과 같다.

예) EDITOR=vi &FILEPATH

SPOOL을 열수 있는 뷰어를 지정한다.VIEWER

뷰어를 지정하는 예는 다음과 같다.

예) VIEWER=vi –R &FILEPATH

HP 또는 AIX 장비에서는 vi 만을 주는 경우 화면의 일부분부터 나오

는 경우가 있다. 이런 경우 vi –w &ROWCOUNT –R &FILEPATH로

설정하면 모든 내용이 깨지지 않고 출력된다.

- MY : JOB이 submit될 때 노드가 지정되지 않았을 경우 자기노드에

서만 JOB이 실행될 수 있도록 한다.

DEFAULT_RUNNING_NODE

- ANY : JOB이 submit될 때 노드가 지정되지 않았을 경우 어느 노드

에서나 JOB이 실행될 수 있도록 한다.

124 OpenFrame TJES 안내서

Page 141: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[DEFAULT_USER]

tjesmgr를 실행하는 경우 자동으로 로그인할 수 있는 정보를 설정하는 섹션이다.

[DEFAULT_USER] 섹션을 설정하면 tjesmgr를 실행할 때 이 섹션에 설정된 사용자 정보로 로그인한다.

USERNAME=username

GROUPNAME=groupname

PASSWORD=password

다음은 [DEFAULT_USER]의 설정 항목에 대한 설명이다.

설명항목

tjesmgr에 접속할 사용자를 설정한다.USERNAME

tjesmgr에 접속할 사용자가 속한 GROUPNAME을 설정한다.GROUPNAME

tjesmgr에 접속할 사용자의 비밀번호를 설정한다.PASSWORD

[TACF]

tjesmgr에서 TACF의 환경을 설정하는 섹션이다.

ASKGRPNM=[YES|NO]

ALLOWED_USER=username

CHECK_CMDAUTH=[YES|NO]

다음은 [TACF]의 설정 항목에 대한 설명이다.

설명항목

NO로 설정하면 tjesmgr 실행하는 경우 GROUPNAME은 묻지 않는다.ASKGRPNM

ALLOWED_USER에 설정된 USER만이 tjesmgr에 로그인할 수 있다.ALLOWED_USER

ALLOWED_USER 항목이 없을 경우 모든 USER가 로그인 가능하다.

YES로 설정하면 tjesmgr의 명령어에 대한 권한을 확인한다.CHECK_CMDAUTH

참고

TACF에 관한 자세한 내용은 OpenFrame 안내서 중 “TACF 안내서”를 참고한다.

제7장 환경설정 125

Page 142: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.4. OUTPUT 설정print.conf 환경 파일 중에서 OUTPUT을 위한 설정에 대하여 설명한다.

[PRINTER1]

PRINTER1 - PRINT9까지 설정할 수 있다.

CLASS=value

COMMAND=value

DRIVER_PATH=driver-path

다음은 [PRINTER1]의 설정 항목에 대한 설명이다.

설명항목

PRINTER1에서 처리할 수 있는 OUTPUT의 OUTPUT CLASS를 지정

한다.

CLASS

외부 프린터 솔루션에 데이터와 정보 전달을 위한 명령어를 설정한다.COMMAND

외부 프린터 솔루션의 인터페이스를 위해 만들어진 공유 라이브러리의

경로로 프린터 솔루션마다 달라지므로 정확한 설정이 필요하다.

DRIVER_PATH

다음은 [PRINTER1]을 설정한 예이다.

CLASS=AB38

COMMAND=lpr

DRIVER_PATH=$OPENFRAME_HOME/lib/libdfltprt.so

[INTRDR]

DRIVER_PATH=driver-path

다음은 [INTRDR]의 설정 항목에 대한 설명이다.

설명항목

인터널 리더 구동을 위해 만들어진 공유 라이브러리의 경로를 기술한다.DRIVER_PATH

다음은 [INTRDR]를 설정한 예이다.

DRIVER_PATH=$OPENFRAME_HOME/lib/libirdrprt.so

126 OpenFrame TJES 안내서

Page 143: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.5. TJCLRUN 설정tjclrun이 동작하는 방식에 대한 설정파일인 tjclrun.conf를 설명한다.

[JOB]

TJES에서 JOB을 처리하기 위해서 요구되는 최소한의 JCL JOB문의 파라미터가 생략된 경우 사용할 기

본값을 설정한다.

CLASS={jobclass}

MSGCLASS={msgclass}

MSGLEVEL[1]={msglevel_statement}

MSGLEVEL[2]={msglevel_message}

다음은 [JOB]의 설정 항목에 대한 설명이다.

설명항목

필수 설정항목이며 JOB문의 CLASS 파라미터가 생략된 경우 사용할 기본

JOB CLASS 값을 설정한다.

CLASS

jobclass는 알파벳 A-Z, 숫자 0-9 중의 한 글자로 설정한다.

필수 설정항목이며 JOB문의 MSGCLASS 파라미터가 생략된 경우 사용할

기본 JOB MSGCLASS 값을 설정한다.

MSGCLASS

msgclass는 알파벳 A-Z, 숫자 0-9 중의 한 글자로 설정한다.

필수 설정항목이며 JOB문의 MSGLEVEL의 첫번째 서브 파라미터가 생략된

경우 사용할 기본 MSGLEVEL 값을 설정한다.

MSGLEVEL[1]

msglevel_statement는 0 또는 1 또는 2 중 하나로 설정해야 한다.

필수 설정항목이며 JCL JOB문에 MSGLEVEL의 두번째 서브 파라미터가 생

략된 경우 사용할 기본 MSGLEVEL 값을 설정한다.

MSGLEVEL[2]

msglevel_message는 0 또는 1중 하나로 설정해야 한다. 지정된 msglevel_mes

sage에 따라 출력되는 로그 메시지의 구체적인 내용은 추후 변경될 수 있다.

어느 경우나 JOB의 비정상 종료를 나타내는 에러 메시지는 항상 출력된다.

- 0 : JOB SPOOL의 SYSMSG에 데이터 셋 할당 등의 결과나 JOB 처리에 따

른 로그 메시지가 출력되지 않는다.

- 1 : 데이터 셋 할당 등의 처리 결과 및 JOB 처리에 따른 로그 메시지가 출력

된다.

제7장 환경설정 127

Page 144: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

다음은 [JOB]을 설정한 예이다.

CLASS=A

MSGCLASS=A

MSGLEVEL[1]=1

MSGLEVEL[2]=1

[PERFORM]

USE_PERFORM=[YES|NO]

<perform-value>=<nice-value>

다음은 [PERFORM]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며 PERFORM 파라미터를 이용해서 CPU 우선순위

를 변경할지 여부를 지정한다. 지정하지 않은 경우 JCL의 PERFORM

파라미터는 무시된다.

USE_PERFORM

기본값은 NO이다.

JCL의 PERFORM에 지정될 값과 CPU 우선순위의 매핑 테이블이

다. USE_PERFORM을 YES로 지정한 경우 반드시 설정을 해주어야

한다.

<perform-value>=<nice-value>

JCL의 PERFORM은 1-999의 범위이고 UNIX에서 CPU 우선순위

(nice value)의 범위는 0-39이다. 따라서 이에 맞게 매핑 테이블을 설

정해 준다.

다음은 [PERFORM]을 설정한 예이다.

USE_PERFORM=NO

1-10 = 0

11-20 = 1

...

391-999 = 39

참고

nice value는 플랫폼 마다 상이하기 때문에 정확한 값은 각 플랫폼에서 manpage를 참고한다.

128 OpenFrame TJES 안내서

Page 145: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[DD]

INSDSET_LRECL=[number]

다음은 [DD]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며 JCL에서 instream-dataset의 레코드 길이를 지정해준다.INSDSET_LRECL

tjclrun에서는 instream-dataset의 길이가 지정된 길이보다 작다면 스페이스

를 채우고 크다면 뒷 부분은 잘라낸다.

기본값은 80이다.

다음은 [DD]를 설정한 예이다.

INSDSET_LRECL=80

[DDTAB]

DDTAB_MAX=[number]

다음은 [DDTAB]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며 tjclrun이 JOB을 실행함에 있어서 사용되는 JCL에서 (JCL

프로시저 포함) 처리 가능한 최대 JCL DD문의 개수를 설정한다.

DDTAB_MAX

기본값은 512이다.

예를 들어 DDTAB_MAX=1024라고 설정하면 INPJCL 및 해당 JOB에서 호출

되는 JCL 프로시저를 포함하여 1024개까지의 DD문만 하나의 JOB에서 사용

할 수 있다. 그 이상의 DD문이 존재하면 에러로 처리되고 JOB은 비정상 종

료 처리되며, SYSMSG 상에 에러 메시지 'No free DD entry in ddtab'이 출력

된다. 이 경우 DDTAB_MAX 값을 상향 조정하는 것을 고려해야 한다.

다음은 [DDTAB]을 설정한 예이다.

DDTAB_MAX=1024

DDTAB_MAX=1024라고 설정하면 INPJCL 및 해당 JOB에서 호출되는 JCL 프로시저를 포함하여 1024개

까지의 DD문만 하나의 JOB에서 사용할 수 있다.

제7장 환경설정 129

Page 146: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[SYSLIB]

tjclrun이 실행하는 프로그램의 하위 Batch 실행 프로그램이나 공유 라이브러리 등을 찾는데 사용되는 기

본 디렉터리들을 설정한다. [SYSLIB] 섹션에는 가급적 고객사에서 공용으로 사용되는 디렉터리만 포함하

고 특정 JOB이나 JOB STEP에서만 제한적으로 사용되는 프로그램을 포함하는 디렉터리는 JCL에 JOBLIB

이나 STEPLIB DD를 사용해서 지정하도록 하는 것이 좋다. 그렇게 하지 않은 경우 Batch 프로그램의 로

딩 작업을 하는 경우 성능이 저하될 수 있다.

BIN_PATH=[pathlist]

LIB_PATH=[pathlist]

COB_PATH=[pathlist]

BIN_PATH, LIB_PATH, COB_PATH에 대한 설정을 하지 않으면 대신 해당 사용자의 환경변수가 내부적

으로 사용된다. 즉, BIN_PATH를 설정하지 않은 경우 환경변수 PATH의 값이 BIN_PATH 값으로 설정된

것처럼 동작한다.

설정 값을 나타내는 pathlist는 절대 경로명으로 지정해야 한다. 여러 경로명의 리스트로 값을 설정하는 경

우에는 각 경로명을 콜론(:)으로 구분한다. pathlist의 값이 길어지더라도 한 라인에 입력해야 한다. pathlist

의 최대 길이는 4096 바이트이다.

다음은 [SYSLIB]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, 환경변수 PATH에 해당하는 값으로, tjclrun이 실행하는

Batch 프로그램을 찾는 기본 디렉터리 경로명의 리스트를 설정한다.

BIN_PATH

JCL에 JOBLIB이나 STEPLIB DD가 지정된 경우에는 먼저 JOBLIB이나

STEPLIB에서 실행 파일을 찾아보고 JOBLIB이나 STEPLIB에 해당하는 위치

에 실행 파일이 존재하지 않는 경우에 BIN_PATH에 설정된 디렉터리들에서

실행 파일을 찾는다.

옵션 설정항목이며, 환경변수 LIBPATH(IBM AIX의 경우), SHLIB_PATH(HPUX

의 경우), LD_LIBRARY_PATH(SUNOS나 Linux의 경우)에 해당하는 값으로,

LIB_PATH

tjclrun이 실행하는 Batch 프로그램에서 사용되는 공유 라이브러리를 찾는 기

본 디렉터리 경로명의 리스트를 설정한다.

JCL에 JOBLIB이나 STEPLIB DD가 지정된 경우에는 지정된 JOBLIB이나

STEPLIB에 해당하는 위치에서 필요로 하는 공유 라이브러리가 있는지 먼저

찾아보고, 없으면 LIB_PATH에 설정된 디렉터리들에서 공유 라이브러리를

찾는다.

옵션 설정항목이며, MFCOBOL에서 사용하는 환경변수 COBPATH에 해당

하는 값으로, tjclrun이 실행하는 COBOL 프로그램에서 사용하는 COBOL 프

COB_PATH

로그램용 공유 라이브러리나 서브 프로그램을 찾는 기본 디렉터리 경로명의

리스트를 설정한다.

130 OpenFrame TJES 안내서

Page 147: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

JCL에 JOBLIB이나 STEPLIB DD가 지정된 경우에는 지정된 JOBLIB이나

STEPLIB에 해당하는 위치에서 필요로 하는 COBOL 프로그램용 공유 라이

브러리나 서브 프로그램을 먼저 찾아보고, 없으면 COB_PATH에 설정된 디

렉터리들에서 찾는다.

참고

Mainframe에서는 오브젝트에 대한 Batch 프로그램이나 공유 라이브러리 등의 구분이 없는 반면

OpenFrame(UNIX)에서는 각각의 경우가 구분되어 있기 때문에 JCL에 사용자가 지정한 JOBLIB이

나 STEPLIB DD는 BIN_PATH, LIB_PATH, COB_PATH 모두에 영향을 준다.

반면 tjclrun.conf에 BIN_PATH, LIB_PATH, COB_PATH를 별도로 나누어 지정할 수 있게 한 이유는

각 OpenFrame(UNIX)에서 Batch 프로그램이나 공유 라이브러리 등의 오브젝트 타입 별로 찾아볼

디렉터리 공간을 별도로 설정하여 오브젝트를 좀 더 효율적으로 찾게 하기 위해서 이다.

특정 UNIX 환경에서 (현재까지 알려진 바로는 IBM AIX 시스템) tjclrun에 setuid root 권한을 부여하

고 설치하여 운영하는 경우 보안상의 이유로 운영 시스템 차원에서 tjclrun을 실행할 때 환경변수

LIBPATH를 클리어하는 문제가 있다. 이 경우에는 고객사에 설치된 OpenFrame 환경에서 tjclrun을

직접 재링크(relink) 해주어야 한다. 또한 BIN_PATH, LIB_PATH, COB_PATH 설정들도 생략하지 말

고 명시적으로 설정해 주어야 한다.

이와 관련된 좀 더 자세한 내용은 “3.1.12. 보안”의 “setuid root tjclrun”를 참고한다.

다음은 [SYSLIB]를 설정한 예이다.

BIN_PATH=${OPENFRAME_HOME}/bin:${OPENFRAME_HOME}/util:${COBDIR}/bin:/usr/lo

cal/bin:/bin

LIB_PATH=${OPENFRAME_HOME}/lib:${TB_HOME}/client/lib:${TMAXDIR}/lib:${COBDI

R}/lib:${ORACLE_HOME}/lib:/usr/lib:/lib:/lib/i686:/usr/local/lib

COB_PATH=${COBPATH}

[PGM]

USE_PGMRTS00=[YES|NO]

다음은 [PGM]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, tjclrun이 유틸리티 프로그램 PGMRTS00을 이용하여 공

유 라이브러리로 컴파일된 Batch 애플리케이션을 호출할지 여부를 설정한

다. 기본값은 NO이다.

USE_PGMRTS00

제7장 환경설정 131

Page 148: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

NO로 설정하면 tjclrun은 실행파일로 컴파일된 프로그램만 호출할 수 있다.

YES로 설정하면 tjclrun은 지정된 프로그램이 실행파일이 아닌 경우 PGM

RTS00 유틸리티를 호출하고 PGMRTS00이 공유 라이브러리로 컴파일된

Batch 프로그램을 동적으로 로딩하여 실행할 수 있도록 한다.

결과적으로 사용자 관점에서는 공유 라이브러리 형태로 컴파일된 Batch 프

로그램도 JCL에서 호출할 수 있게 된다.

다음은 [PGM]을 설정한 예이다.

USE_PGMRTS00=NO

[ACCOUNT]

SETUID=[YES|NO]

USERID=[userid]

다음은 [ACCOUNT]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, tjclrun 프로세스 및 tjclrun이 JOB을 위해서 호출하는

Batch 프로그램의 프로세스 소유자(owner userid)가 JCL JOB에 기술된 USER

파라미터의 값으로 수행되도록 할지 여부를 설정한다.

SETUID

YES로 설정하는 경우 tjclrun 프로그램을 setuid root 권한을 부여하여 설치해

야 하며, JOB의 실행 중에 호출되는 프로그램은 JCL JOB문의 USER에 지정

된 사용자가 실행한 것으로 프로세스 어카운팅되며, JOB 실행 중에 생성되

는 파일이나 기타 리소스에 대한 권한 검사(TACF 권한 검사와 별도로 OS에

서 기본적으로 수행되는 권한 검사) 역시 JCL에 기술된 JOB USER에 대해서

행해진다.

NO로 설정한 경우 TJES 시스템을 부팅한 운영자, 특히 Runner Slot 프로세

스의 소유자가 tjclrun 및 JOB STEP에서 실행되는 Batch 프로그램의 프로세

스 소유자로 사용된다. 이 경우 JCL JOB문의 USER 파라미터를 이용하여

JOB 별로 다른 사용자가 수행하는 것으로 처리하는 방식은 지원되지 않는다.

모든 OS 레벨의 권한 체크는 운영자의 권한으로 수행되며 해당 JOB을 수행

하는 프로세스의 소유자 역시 동일한 운영자의 OS userid로 어카운팅된다.

기본값은 NO이다.

132 OpenFrame TJES 안내서

Page 149: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

옵션 설정항목이며, 위의 SETUID 설정을 YES로 설정한 경우에만 추가적으

로 사용되는 설정 값이다. SETUID를 YES로 하면서 항상 특정 사용자로만

JOB을 실행하게 하려는 경우에 활용할 수 있다.

USERID

userid를 지정하는 경우는 SETUID에서 YES로 설정한 경우의 동작을 수행하

기는 하지만 JCL JOB문의 USER 파라미터에 지정된 사용자 대신에 항상 설

정파일에 USERID=[userid]에 지정된 사용자가 사용된다.

USERID를 설정하지 않으면 사용되지 않으며 기본값은 없다.

[TACF]

CHECK_DSAUTH=[YES|NO]

CHECK_UTAUTH=[YES|NO]

다음은 [TACF]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, tjclrun의 TACF 지원 기능 중에서 데이터 셋에 대한 TACF

접근 권한 검사를 수행할지 여부를 설정한다.

CHECK_DSAUTH

기본값은 NO이다.

옵션 설정항목이며, tjclrun의 TACF 지원 기능 중에서 주요 유틸리티 프로그

램에 대한 TACF 실행 권한 검사를 수행할지 여부를 설정한다.

CHECK_UTAUTH

기본값은 NO이다.

[JCL]

IGNORE_TRAIL=[YES|NO]

다음은 [JCL]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, JCL 파일의 마지막 부분이 JCL 문장이 아닌 경우는

Mainframe에서는 //SYSIN DD * 가 생략된 입력 스트림 데이터 셋으로 처리

된다.

IGNORE_TRAIL

OpenFrame에서는 마이그레이션 과정 중에 공백라인이나 불필요한 라인들

이 추가되는 경우가 빈번히 발생된다. 이러한 경우에 JCL 파일의 TRAIL(마

제7장 환경설정 133

Page 150: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

설명항목

지막 부분)을 //SYSIN DD *가 생략된 입력 스트림 데이터 셋으로 간주할지

아니면 무시할지를 설정한다.

YES로 설정하면 TRAIL은 무시되어 버려지고, NO로 설정하면 TRAIL은

SYSIN DD *가 생략된 입력 스트림 데이터 셋으로 처리된다.

기본값은 YES이다.

참고

특별한 내용 없이 공백으로만 이루어진 TRAIL은 이 설정과 상관없이 항상 무시된다.

[AMS]

CONNECTION=[KEEP|NOKEEP]

다음은 [AMS]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, Runner가 실행되는 동안 AMS의 연결을 계속 유지할 것

인지 아니면 필요할 때마다 연결을 맺어서 사용할 것이지를 설정한다.

CONNECTION

기본값은 KEEP이다.

[DEBUG]

PROFILE=[YES|NO]

다음은 [DEBUG]의 설정 항목에 대한 설명이다.

설명항목

옵션 설정항목이며, tjclrun 자체의 성능을 조사하기 위한 실행 프로파일 정보

를 출력할지 여부를 지정한다.

PROFILE

YES를 지정하면 tjclrun 인터널 로그에 주요 실행 단계별 시간정보를 포함하

는 성능 분석을 위한 로그 메시지가 추가적으로 출력된다.

NO를 지정하면 해당 메시지가 출력되지 않는다. tjclrun 자체의 성능 문제를

분석하는 경우가 아니라면 YES로 설정하지 않을 것을 권장한다.

기본값은 NO이다.

134 OpenFrame TJES 안내서

Page 151: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

7.6. Return Code 설정rc.conf는 Batch 프로그램의 종료코드 별로 JOB COND나 EXEC COND를 일으키는 예외상황으로 볼지

여부를 설정하기 위한 환경 설정이다.

[PGM_NAME]

프로그램 이름별로 여러 개의 예외상황을 설정한다.

{pgmname}={rc_spec}

설명항목

특정 프로그램 이름을 지정한다.{pgmname}

해당 프로그램의 종료코드 중에서 예외상황으로 간주해야 하는 종료코드를

나열한다.

{rc_spec}

종료 코드를 나열하는 방법은 다음과 같다.

rc_spec={[(RC|RC-RC),]...}

설명항목

RC는 종료코드를 나타내는 0-4096 사이의 숫자이다.rc_spec={[(RC|RC-

RC),]...}예를 들면 "8,12,16-24"와 같은 형태로 {rc_spec}을 지정할 수 있다. 여러 개

의 종료코드를 콤마(,)로 구분하여 입력한다.

종료코드의 범위를 지정할 때는 하이픈(-)을 이용해서 나타낸다.

예를 들어 8,12,16-24라고 설정하면 8, 12 그리고 16부터 24 사이의 종료코

드는 예외상황이 발생한 것으로 간주된다.

다음은 [PGM_NAME]을 설정한 예이다.

IKJEFT01=8-255

MYPGM1=8-255

MYPGM2=8,16-4096

...

제7장 환경설정 135

Page 152: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

[PGM_TYPE]

프로그램 종류별로 여러 개의 예외상황을 설정한다.

{pgmtype}={rc_spec}

설명항목

pgmtype에 COBOL, PLI, OTHER, ALL을 지정할 수 있다.{pgmtype}

- COBOL : COBOL 컴파일러로 작성된 프로그램에 대해서 수행되는 종료코

드 검사를 나타낸다.

- PLI : PLI 컴파일러로 작성된 프로그램에 대해서 수행되는 종료코드 검사를

나타낸다.

- OTHER : 프로그램 종류가 알려지지 않은 기타 프로그램에 대한 종료코드

검사를 나타낸다. 일반적인 C언어로 작성된 프로그램은 여기에 해당된다.

- ALL : 지정한 조건은 rc.conf의 다른 설정에 의해서 예외상황이 만족되지 않

는 경우에 항상 검사된다.

예를 들어 COBOL 프로그램이 종료코드 8로 종료한 경우 위에 예시된

COBOL=16-4096에 의해서 예외상황이 만족되지 않는다. 이때 ALL이 설정

되어 있는 경우는 추가적으로 ALL=8-255에 대해서 예외상황 검사가 수행되

고 해당 STEP은 예외상황이 만족되는 것으로 처리된다. ALL 설정이 없는 경

우는 예외상황이 만족되지 않는 것으로 처리된다.

[PGM_NAME] 섹션에서 설명한 내용과 동일하다. [PGM_TYPE] 섹션에서는

프로그램 종류별로 예외상황에 해당하는 종료코드를 지정한다.

{rc_spec}

참고

{pgmtype} ALL에 의한 다른 예외상황(JOB CONDITION)이 만족되지 않는 경우에 추가적으로 행해

지는 예외상황 검사를 원하지 않는 경우는 ALL 설정을 하지 않도록 한다.

다음은 [PGM_TYPE]를 설정한 예이다.

COBOL=16-4096

PLI=1000,2000,3000

OTHER=16-255

ALL=8-255

136 OpenFrame TJES 안내서

Page 153: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

색인

Symbols[ACCOUNT], 132

[AMS], 134

[DD], 129

[DDTAB], 129

[DEBUG], 134

[DEFAULT_OPTION], 124

[DEFAULT_USER], 125

[DYNAMIC_LIBRARY], 117

[INITDEF], 123

[INTRDR], 122, 126

[JCL], 133

[JOB], 127

[JOBCLASS], 115

[JOBDEF], 114

[LOG], 118

[NODEINFO], 112

[OUTCLASS], 122

[OUTDEF], 121

[PERFORM], 128

[PGM_NAME], 135

[PGM_TYPE], 136

[PGM], 131

[PRINTER1], 126

[PROCLIB], 117

[RESOURCE], 116

[SCHEDULING], 115

[SPOOL_TRANSFER_BACKUP], 120

[SPOOL_TRANSFER], 119

[SPOOL], 118

[SYSLIB], 130

[SYSTEM_DS], 113

[TACF], 123, 125, 133

BBase, 4

CCANCEL, 24

CATPROC, 37, 40, 55

CHANGE, 24

ColdBoot, 8

DDATASETCREATE – 입력 파라미터, 86

DATASETIMPORT - 입력 파라미터, 90

DATASETLIST - 데이터 셋 디스플레이 정보, 86

DATASETRECATALOG – 입력 파라미터, 89

DONE, 14

EERROR, 15

EXEC COND, 34

Exec phase, 33

EXECUTE, 24

FFINISH, 25

FLUSH, 15

GGDGCREATE - 입력 파라미터, 92

HHOLD, 14, 62

IINPJCL, 40, 53

INSDSET, 41

INSPROC, 37

JJESJCL, 41, 57

JESMSG, 41, 56

JESMSG상의 JOB 정보, 56

JESMSG상의 JOBSTEP 정보, 57

JESST, 9

JOB COND, 34

색인 137

Page 154: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

JOB CONTROL, 43

JOB CONTROL 상태, 44

JOB START/FINISH, 44

JOBCAT DD/STEPCAT DD, 40

JOBID, 17

JOBLIB DD/STEPLIB DD, 39

JOBQ, 9, 17

JOBQ디스플레이 정보, 69

KKEEP, 62

LLEAVE, 62

Lock phase, 33

Oobmjhist, 3, 108

obmjinit, 3, 107

obmjmsvr, 3, 108

obmjschd, 3, 107

obmjspbk, 4, 108

ofrcmsvr, 108

ofrlmsvr, 108

ofrlmwrk, 108

ofrpmsvr, 4, 108

ofrsasvr, 108

ofruisvr, 108

OUTPUT, 61

OUTPUT Processing, 61

OUTPUTQ, 10

PPO – OUTPUT 상태 디스플레이 정보, 72

PODD, 22

POJOB, 22

POLIST – OUTPUT 리스트 디스플레이 정보, 72

POSPOOL, 22

POSPOOL-SPOOL 디스플레이 정보, 74

PSCATALOG - 데이터 셋 디스플레이 정보, 81

PSDATASET – 데이터 셋 디스플레이 정보, 83

PSENTRY – 엔트리 디스플레이 정보, 85

PSHISTORY – 입력 파라미터, 75

PSIO, 22

PSJCLRUN - Runner 상태 정보, 80

PSJOB, 22

PSJOB – 데이터 셋 I/O 디스플레이 정보, 71

PSJOB – 모니터링 디스플레이, 71

PSJOB 디스플레이 정보, 70

PSLOCK – 디스플레이 정보, 93

PSPRINT-프린터 디스플레이 정보, 99

PSVOLUME – 볼륨 디스플레이 정보, 94

PURGE, 62

RREMOVED, 26

RESUME, 25

Runner Slot, 4

Ssetuid root tjclrun, 46

setuid 작업, 46

SHOWCLASS – class 상태 정보, 79

SPOOL, 5, 17, 51

SPOOL 백업 명령어, 26

SPOOLBACKUP, 26

SPOOLBACKUPLIST, 26

SPOOLBACKUPLIST – 디스플레이 정보, 96

SPOOLCLEAR, 26

SPOOLPODD, 26

SPOOLPOSPOOL, 26

SPOOLPS, 26

SPOOLPS – 백업된 SPOOL 리스트 디스플레이 정보,

96

SPOOLPSIO, 26

SPOOLPSJOB, 26

SPOOLRESTORE, 26

START, 14

STEP START/FINISH, 44

STOP, 15

SUBMIT, 24

SUSPEND, 14, 25

SYSIN DD, 39

SYSMSG, 41, 53

138 OpenFrame TJES 안내서

Page 155: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame

SYSOUT, 42

SYSOUT DD/SYSPRINT DD, 39

TTACF 대리자, 45

tjclrun, 4

tjclrun의 JOB 실행 단계, 30

TJES 시스템 데이터 셋, 5

WWarmBoot, 7

WORKING, 14

WRITE, 62

데이터 셋 I/O 보고, 45

데이터 셋 Lock 대기, 44

데이터 셋 할당, 44

스페셜 DD, 38

입력 스트림 데이터 셋, 38

프로그램 STEP, 34

프로시져 STEP, 34

색인 139

Page 156: OpenFrame TJES 안내서 - TmaxSoft · 2019. 4. 9. · OpenFrame 시스템의 VOS3 JCL의 문법 지원 사항과 상세 내용에 대해 서 기술한 안내서이다. OpenFrame