시스템 운영
본 장에서는 OSI 시스템을 기동 및 종료하는 방법 및 운영 중인 OSI 시스템의 운영정보가 기록되는 로그 파일을 사용하는 방법에 대해 기술한다.
1. 기동 및 종료
OSI 시스템이 동작하기 위해서는 TP-Monitor인 Tmax가 기동되어 있고, OpenFrame Base, OpenFrame Batch의 모듈들이 동작 가능하도록 준비되어 있어야 한다.
Control Region 기동 전에는 TCache가 반드시 생성되어 있어야 한다. TCache는 pfmtcacheadmin 툴을 사용하여 생성할 수 있다. |
1.1. 기동
다음은 OSI의 기동 순서이다.
-
Tmax 엔진과 OSI 시스템에 필요한 base/batch 모듈 및 osiomsvr를 기동한다. (osiboot)
Tmax 기동은 내부적으로 2단계로 진행된다. 1, 2, 3단계는 osiboot 툴을 통하여 한꺼번에 수행된다.
-
Tmax가 기동된다.
-
OSI 기동에 필요한 다른 OpenFrame의 패키지들에서 사용되는 서버 모듈들이 기동된다.
2번째 단계의 수행을 위해서 OSI 이외의 패키지에서 사용되는 서버 모듈들은 미리 "osi.ofsys.seq"라는 환경설정 파일에 서버별 기동 순서를 고려하여 설정되어 있어야 한다.
OSI에서는 BMP의 동작을 위해서 통상적으로 OpenFrame Batch에서 필요한 서버 모듈들이 Tmax가 기동될 때 함께 기동되어야 한다. 아래의 예제는 이를 위한 일반적인 예제이다.
$ cat osi.ofsys.seq TPFMAGENT ofrsasvr ofrlhsvr ofrdmsvr ofrdsedt ofrcmsvr ofruisvr ofrsmlog obmjmsvr obmjschd obmjinit obmjhist obmjspbk ofrpmsvr obmtsmgr obmjtimr tmsvr #IMSAOTMA
-
OSI 시스템 서버와 사용자 서버를 기동시키기 위한 osiomsvr가 기동된다.
다음과 같이 osiboot로 Tmax를 기동시킨다.
$ osiboot TMBOOT for node(NODE1) is starting: TMBOOT: TMM is starting: Wed Mar 10 19:37:02 2021 TMBOOT: CLL is starting: Wed Mar 10 19:37:02 2021 TMBOOT: CLH is starting: Wed Mar 10 19:37:02 2021 TMBOOT: TLM(tlm) is starting: Wed Mar 10 19:37:02 2021 [2021-03-10T19:37:02.848282] [osiboot(5670) ] [M] [OSI7061M] System server(ofrsasvr) booting ok [2021-03-10T19:37:02.851625] [osiboot(5670) ] [M] [OSI7061M] System server(ofrlhsvr) booting ok [2021-03-10T19:37:02.855374] [osiboot(5670) ] [M] [OSI7061M] System server(ofrdmsvr) booting ok [2021-03-10T19:37:02.859919] [osiboot(5670) ] [M] [OSI7061M] System server(ofrdsedt) booting ok [2021-03-10T19:37:02.864295] [osiboot(5670) ] [M] [OSI7061M] System server(ofrcmsvr) booting ok [2021-03-10T19:37:02.868285] [osiboot(5670) ] [M] [OSI7061M] System server(ofruisvr) booting ok [2021-03-10T19:37:02.873191] [osiboot(5670) ] [M] [OSI7061M] System server(ofrsmlog) booting ok [2021-03-10T19:37:02.877533] [osiboot(5670) ] [M] [OSI7061M] System server(obmjmsvr) booting ok [2021-03-10T19:37:02.881853] [osiboot(5670) ] [M] [OSI7061M] System server(obmjschd) booting ok [2021-03-10T19:37:02.886434] [osiboot(5670) ] [M] [OSI7061M] System server(obmjinit) booting ok [2021-03-10T19:37:02.890673] [osiboot(5670) ] [M] [OSI7061M] System server(obmjhist) booting ok [2021-03-10T19:37:02.897808] [osiboot(5670) ] [M] [OSI7061M] System server(obmjspbk) booting ok [2021-03-10T19:37:02.905868] [osiboot(5670) ] [M] [OSI7061M] System server(ofrpmsvr) booting ok [2021-03-10T19:37:02.920575] [osiboot(5670) ] [M] [OSI7061M] System server(obmtsmgr) booting ok [2021-03-10T19:37:02.937001] [osiboot(5670) ] [M] [OSI7061M] System server(tmsvr) booting ok [2021-03-10T19:37:02.943765] [osiboot(5670) ] [M] [OSI7061M] System server(osiomsvr) booting ok [2021-03-10T19:37:02.943791] [osiboot(5670) ] [M] [OSI7051M] Booting process complete.
-
-
JCL로 IMSID별 시스템 서버(Control Region)를 기동한다.
Tmax가 기동된 이후에 OSI 시스템 서버(Control Region)를 기동한다. OSI 시스템은 IMSID별로 기동되므로 3개의 OSI 시스템을 사용하는 경우라면 IMSID별로 3번의 OSI 시스템을 기동한다. OSI 시스템 기동은 tjesmgr 툴을 사용하여 JCL로 된 JOB을 실행한다.
다음과 IMSID가 IMSA인 시스템 서버(Control Region)를 기동시키는 JCL의 예제이다.
//IMSACTL JOB //STEP1 EXEC PGM=DFSMVRC0, // PARM='CTL,IMS,IMSID=IMSA' //MODBLKSA DD DISP=SHR,DSN=OSI.IMSA.DEFLIBA //MODBLKSB DD DISP=SHR,DSN=OSI.IMSA.DEFLIBB //IMSACBA DD DISP=SHR,DSN=IMS.ACBLIBA //IMSACBB DD DISP=SHR,DSN=IMS.ACBLIBB //DFSRESLB DD DISP=SHR,DSN=IMS.RESLIB //FORMATA DD DISP=SHR,DSN=OSI.IMSA.MFSLIBA //FORMATB DD DISP=SHR,DSN=OSI.IMSA.MFSLIBB //STEPLIB DD DISP=SHR,DSN=OSI.IMSA.STEPLIB //QBLKS DD DISP=SHR,DSN=OSI.IMSA.MQLIB //MODSTAT DD DISP=SHR,DSN=OSI.IMSA.MODSTAT //SYSOUT DD SYSOUT=* // $ tjesmgr boot > Command : [boot] Node name : A L L NODE1 is booted. $ tjesmgr run IMSACTL > Command : [run IMSACTL] Node name : A N Y (JOB00001) /root/OF71/OHOME/volume_DEFVOL/SYS1.JCLLIB/IMSACTL is submitted as IMSACTL(JOB00001).
IMS 시스템 서버를 기동하는 JCL의 PARM 파라미터에는 다음 두 가지 항목의 설정이 가능하다.
항목 설명 IMSID
4bytes의 시스템 서버의 고유한 IMS ID를 지정한다.
AUTO
서버 기동 후에 "/NRESTART"나 "/ERESTART" 명령을 자동으로 수행할 것인지 여부를 설정한다. YES나 NO로 지정이 가능하다.
-
OSI 명령어 를 사용하여 OSI 시스템을 운영 가능한 상태로 만든다.
JCL로 시스템 서버(Control Region)를 기동한 후 OSI 시스템 최초 기동이라면 "/NRE CHKPT 0", 재기동이라면 "/NRE" 또는 "/ERE" 명령어를 사용해야 한다. "/NRE" 명령은 이전에 "/CHE" 명령을 통해서 서버를 정상적으로 종료한 경우에 사용되며, 정상적으로 종료되지 않은 경우에는 "/ERE" 명령어를 사용해야 한다. 그렇지 않으면 에러가 발생하고 명령이 실행되지 않는다. 이후 단말의 로그온을 위해서 "/START DC" 명령어를 실행해야 한다.
다음은 OSI 명령어로 IMSID가 IMSA인 시스템 서버의 /NRE, /STA DC를 순서대로 입력하는 예제이다.
$ imscmd IMSA /NRE IMS control region : [IMSA] Requested command : [NRE] ---------------------------------------- NRESTART COMMAND IN PROGRESS *21069/194013* ---------------------------------------- Command '/NRE' execution done $ imscmd IMSA /STA DC IMS control region : [IMSA] Requested command : [STA DC] ---------------------------------------- START COMMAND COMPLETED *21069/194018* ---------------------------------------- Command '/STA DC' execution done
-
JCL로 IMSID별 사용자 서버(Dependent Region)를 기동한다.
시스템 서버(Control Region)가 기동된 후에는 처리할 CLASS에 따라서 MPP 기동 JCL을 실행시킨다. 처리할 갯수만큼 JOB을 실행하여 MPP를 기동시킬 수 있다. 또한 OSI 명령어인 "/START REGION"을 사용해서 기동할 수 있다.
다음은 IMSID가 IMSA인 사용자 서버(Dependent Region)를 기동시키는 JCL의 예제이다. 클래스를 지정하지 않을 시 '000' 으로 설정 가능하며 첫번째 클래스는 필수로 지정해야 한다. (본 예제에서 처리할 클래스는 1, 2, 3, 4이다)
//IMSAMSG JOB //STEP1 EXEC PGM=DFSRRC00, // PARM='MSG,001002003004,W00099000,,,R,,,,IMSA,,,,' //STEPLIB DD DISP=SHR,DSN=OSI.IMSA.STEPLIB //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //
다음은 JCL이름이 IMSAMSG인 사용자 서버(Dependent Region)를 기동시키는 명령어 "/START REGION"의 예제이다.
$ imscmd IMSA /START REGION IMSAMSG IMS control region : [IMSA] Requested command : [START REGION IMSAMSG] ---------------------------------------- START COMMAND COMPLETED *21069/194050* ---------------------------------------- Command '/START REGION IMSAMSG' execution done
"/START REGION"에 대한 자세한 사용법은 OpenFrame OSI "명령어 참조 안내서"를 참고한다.
1.2. 종료
다음은 OSI의 종료 순서이다.
-
시스템 서버(Control Region)와 사용자 서버(Dependet Region)를 종료한다.
시스템 서버(Control Region)와 사용자 서버(Dependet Region)를 종료하기 위해서는 OSI 명령어를 사용한다. OSI 명령어는 CHECKPOINT가 사용되며, 사용자 서버 종료 후 시스템 서버를 종료한다.
다음은 OSI 명령어로 IMSID가 IMSA인 시스템 서버와 사용자 서버를 종료하는 예제이다.
$ imscmd IMSA /CHE FREEZE IMS control region : [IMSA] Requested command : [CHE FREEZE] ---------------------------------------- CHECKPOINT COMMAND IN PROGRESS *21069/194108* ---------------------------------------- Command '/CHE FREEZE' execution done
-
Tmax를 종료한다.
osidown 툴을 이용하면 OpenFrame의 패키지들에서 사용되는 서버 모듈들을 종료된 후 Tmax가 종료된다.
다음은 osidown로 Tmax를 종료시키는 예제이다.
$ osidown [2021-03-10T19:41:27.956075] [osidown(5969) ] [M] [OSI7141M] System server(osiomsvr) shutdown ok [2021-03-10T19:41:27.960864] [osidown(5969) ] [M] [OSI7141M] System server(tmsvr) shutdown ok [2021-03-10T19:41:27.983167] [osidown(5969) ] [M] [OSI7141M] System server(obmtsmgr) shutdown ok [2021-03-10T19:41:27.995447] [osidown(5969) ] [M] [OSI7141M] System server(ofrpmsvr) shutdown ok [2021-03-10T19:41:27.000641] [osidown(5969) ] [M] [OSI7141M] System server(obmjspbk) shutdown ok [2021-03-10T19:41:28.003942] [osidown(5969) ] [M] [OSI7141M] System server(obmjhist) shutdown ok [2021-03-10T19:41:28.033647] [osidown(5969) ] [M] [OSI7141M] System server(obmjinit) shutdown ok [2021-03-10T19:41:28.040265] [osidown(5969) ] [M] [OSI7141M] System server(obmjschd) shutdown ok [2021-03-10T19:41:28.047434] [osidown(5969) ] [M] [OSI7141M] System server(obmjmsvr) shutdown ok [2021-03-10T19:41:28.076810] [osidown(5969) ] [M] [OSI7141M] System server(ofrsmlog) shutdown ok [2021-03-10T19:41:28.086320] [osidown(5969) ] [M] [OSI7141M] System server(ofruisvr) shutdown ok [2021-03-10T19:41:28.093782] [osidown(5969) ] [M] [OSI7141M] System server(ofrcmsvr) shutdown ok [2021-03-10T19:41:28.101464] [osidown(5969) ] [M] [OSI7141M] System server(ofrdsedt) shutdown ok [2021-03-10T19:41:28.108771] [osidown(5969) ] [M] [OSI7141M] System server(ofrdmsvr) shutdown ok [2021-03-10T19:41:28.116562] [osidown(5969) ] [M] [OSI7141M] System server(ofrlhsvr) shutdown ok [2021-03-10T19:41:28.124770] [osidown(5969) ] [M] [OSI7141M] System server(ofrsasvr) shutdown ok TMDOWN for node(NODE1) is starting: TMDOWN: CLH downed: Wed Mar 10 19:41:28 2021 TMDOWN: CLL downed: Wed Mar 10 19:41:28 2021 TMDOWN: TLM downed: Wed Mar 10 19:41:28 2021 TMDOWN: TMM downed: Wed Mar 10 19:41:28 2021 TMDOWN: TMAX is down
1.3. 재기동
다음은 OSI의 재기동 순서이다.
-
Tmax를 기동한다. (osiboot)
-
JCL로 IMSID별 시스템 서버(Control Region)를 기동한다.
-
명령어로 IMSID별 시스템 서버(Control Region)를 재기동한다. OSI 명령어를 통해 종료한 후 부터는 이전 시스템 사용 정보를 가져오기 위해 반드시 재기동이 필요하다.
다음은 OSI 명령어로 IMSID가 IMSA인 시스템 서버(Control Region)를 재기동하는 예제이다.
$ imscmd IMSA /NRE IMS control region : [IMSA] Requested command : [NRE] ---------------------------------------- NRESTART COMMAND IN PROGRESS *21069/195025* ---------------------------------------- Command '/NRE' execution done
-
"/START DC"를 사용하여 터미널이 로그온할 수 있는 상태로 만든다.
-
JCL로 IMSID별 사용자 서버(Dependent Region)를 기동하거나 "/START REGION"을 사용하여 기동한다.
"/START REGION"에 대한 자세한 사용법은 OpenFrame OSI "명령어 참조 안내서"를 참고한다.
2. 로그 관리
OpenFrame OSI 시스템에서는 서버 로그를 시스템 서버 및 MPP 사용자 서버와 BMP 사용자 서버로 나눠 관리한다. 본 절에서는 각 서버별 관리 방식을 설명한다.
2.1. 시스템 서버 및 MPP 사용자 서버
OSI 시스템 서버와 MPP 사용자 서버들이 생성하는 로그는 OUT 로그와 ERR 로그가 있다. 두 로그 모두 Tmax 설정 파일에서 NODE 절에 기술된 ULOGDIR에 저장된다. ULOGDIR은 사용자가 자유롭게 설정할 수 있으나 ${OPENFRAME_HOME}/log 아래의 디렉터리로 설정할 것을 권장한다.
-
OUT 로그
CLOPT 절에 [-o] 옵션과 함께 파일명을 지정하면, OSI 시스템 서버 및 MPP 사용자 서버에서 stdout으로 쓰는 모든 내용이 해당 파일에 출력된다. 출력되는 로그는 OpenFrame의 공통 출력 포맷을 따른다.
다음은 로그 출력 포맷이다.
[YYYY-MM-DDTHH:MI:SS.FFFFFF] [MODULE(PID)] [LEVEL] [MSGCODE] MESSAGE-CONTENTS
항목 설명 [YYYY-MM-DDTHH:MI:SS.FFFFFF]
날짜를 포함한 YYYY-MM-DDTHH:MI:SS.FFFFFF 타입의 timestamp이다.
MODULE
메시지를 출력하는 OSI 시스템의 모듈명이다.
PID
Process ID이다.
LEVEL
다음 중 하나가 출력된다.
-
M(Message) : 시스템이 사용자에게 정보를 알려주는 메시지이다. 서버의 각종 정보들이 출력된다.
-
E(Error) : 시스템에서 에러가 발생한 경우에 출력되는 메시지로, 사용자가 시스템에 잘못된 정보를 주었거나 시스템 내부적으로 에러가 있는 경우에 출력된다.
-
W(Warning) : 시스템에서 에러가 발생하였으나, 시스템을 운영하는데에는 영향을 미치지 않는 경우에 출력되는 메시지이다.
-
D(Debug) : 시스템 디버깅 용도로 출력되는 메시지이다.
MSGCODE
8자리의 OSI 메시지 코드이다.
MESSAGE-CONTENTS
로그 메시지가 출력되는 필드이다.
다음은 이름이 IMSA인 IMS 시스템에서 메시지 class가 1인 MPP 사용자 서버의 OUT로그 파일에 대한 예제이다.
[2021-03-10T19:59:51.194767] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [GENERAL]LOG_LEVEL = D [2021-03-10T19:59:51.217509] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP1D] AGN = [2021-03-10T19:59:51.217539] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [SECURITY]TYPE = TACF [2021-03-10T19:59:51.217564] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] security type is TACF[2] [2021-03-10T19:59:51.217591] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP3D] [GENERAL]SCHEDULE_RECOVER_MAXCNT = 5 [2021-03-10T19:59:51.227545] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP3D] [MQ]USE_MQ = NO [2021-03-10T19:59:51.227821] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP1D] CTL's JOBID : JOB02316 [2021-03-10T19:59:51.227844] [IMSAMPP_TCL1(6839) ] [M] [OSI0291M] IMSA server boots - resource manager initialization starts [2021-03-10T19:59:51.229970] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [CPM]REGION_CCSID = [2021-03-10T19:59:51.229992] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [CPM]ASCII_TO_EBCDIC = ASCEBCUS.cpm [2021-03-10T19:59:51.230114] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [CPM]EBCDIC_TO_ASCII = EBCASCUS.cpm [2021-03-10T19:59:51.230214] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP0D] cpm version [2021-03-10T19:59:51.230228] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [SCREEN]3270_TYPE = 3270-A2 [2021-03-10T19:59:51.230239] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP0D] SCREEN TYPE : A2 [2021-03-10T19:59:51.230255] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP3D] [CPM]CONVERT_TO_SPACE = X'00' [2021-03-10T19:59:51.230270] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] X'00'(in ASCII) will be converted X'20' [2021-03-10T19:59:51.230280] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP1D] null character=1a [2021-03-10T19:59:51.230289] [IMSAMPP_TCL1(6839) ] [M] [OSI0101M] osimfs version: 7.2.0(4) sbaek@tmax:of7_1_mvs_dev/osi(#1) 2020-11-12 19:43:54 [2021-03-10T19:59:51.231791] [IMSAMPP_TCL1(6839) ] [D] [DEBUGP2D] [GENERAL]SVCLOG = N [2021-03-10T19:59:51.231812] [IMSAMPP_TCL1(6839) ] [M] [OSI0291M] IMSA server boots - resource manager initialization completed
-
-
ERR 로그
CLOPT 절에 [-e] 옵션과 함께 파일명을 지정해주면, OSI 시스템 서버 및 MPP 사용자 서버에서 stderr으로 쓰는 모든 내용이 해당 파일에 출력된다. 출력되는 로그는 OUT 로그와 동일하게 OpenFrame의 공통 출력 포맷을 따른다.