IBM Global Technology Services System z 문제 분석을 위한 자료 수집 방법 2007. 4. 11. 한국 IBM 시스템지원사업부 © Copyright IBM Corporation 2007 IBM Global Services 목차 z/OS ……………………………………………………………………… 3 IMS ……………………………………………………………………… 77 CICS …………………………………………………………………… 88 CPSM …………………………………………………………………… 107 DB2 ……………………………………………………………………… 113 MQ ………………………………………………………………………… 137 2 LE ………………………………………………………………………… 142 WAS ……………………………………………………………………… 144 VTAM …………………………………………………………………… 157 TCP/IP …………………………………………………………………… 164 © IBM Corporation 2007 IBM Global Technology Services z/OS 강신우 kangsw@kr.ibm.com 이동근 leetk@kr.ibm.com IBM Global Services z/OS 목차 문제 접근 방법 …………………………………………………………… 5 문제 유형과 필요 자료 ………………………………………………… 6 DUMP …………………………………………………………………… 11 Stand-alone Dump ………………………………………………… 12 Dump operation ……………………………………………………… 17 Multi-volume Dump ………………………………………………… 29 TRACE …………………………………………………………………… 46 4 SLIP ……………………………………………………………………… 58 LOGREC(EREP) ……………………………………………………… 69 Dump suppression ………………………………………………… 72 © IBM Corporation 2007 IBM Global Services 문제 접근 방법 1. ERROR 유형은 ? . WAIT, LOOP, ABEND, MESSAGE, INCORRECT OUTPUT 2. ERROR가 난 Product는 ? . z/OS, IMS, CICS, DB2, MQ, VTAM... 3. ERROR가 생겼을 때 자료는 ? . Dump, SYSLOG, EREP, ... 4. 언제부터 문제가 발생하기 시작했는지 ? 5. 매번 나는 문제 인가 ? 6. 한번이라도 ERROR 없이 작업이 잘 되었는가 ? 7. 어떤 특정한 환경에서만 일어나는가 ? 8. 최근 System변경 사항은 ? . System에 대해 . Application Program에 대해 . H/W 또는 Configuration에 대해 9. System 환경은 ? . z/OS Version, Release, FMID, ... . PUT Level, ... 10. RETAIN이나 Problem DB를 Search. 5 © IBM Corporation 2007 IBM Global Services 문제 유형과 필요 자료 SYSTEM ABEND 1. DUMP SYS1.DUMPxx 형식의 Static Dump 와 일정 volume 을 지정해 Dump 발생시 자동적으로 Dump dataset 이 allocate 되는 Dynamic Dump로 나뉜다. Dynamic Dump를 사용한다 해도 SYS1.DUMPxx는 미리 만들어 두어야 하는데, 이는 IPL 과정에서의 Dump 발생 시를 대비한 것이다. SYS1.DUMPxx는 최소한 3개 Allocation하고 Space도 넉넉하게 잡아 두어야 한다. 각 product의 version에 따라 dataspace의 사용, 또는 64-bit address space 사용 등으로 Dump dataset들의 크기는 충분해야 하며, MAXSPACE option을 이용해 최소한 2500 이상으로 주어야 한다. Dump Option은 SDUMP Option의 영향을 받는다. 2. SYSLOG SVC Dump속에 MTRACE가 있으나 SYSLOG는 보관하는 게 좋다. 3. OPERLOG SYSPLEX 환경에서 전체적인 SYSLOG를 한꺼번에 보여 주는 Log 이다. 4. LOGREC (EREP) 모든 종류의 H/W, S/W type의 error가 기록되는 Log 이다. DUMP가 발생하지 않거나 했을 상황에서 유일한 error 기록이 될 수도 있다. 5. TRACE SVC Dump 속에 System Trace가 있다. System Trace Size는 충분히 커야 한다. (“TRACE ST,999K” Command로 조정) z/OS에서 제공하는 TRACE의 종류는 다양하며, 각각의 product에서도 또한 다양한 종류의 trace 기능을 제공한다. 6. Common Storage Tracker Global Storage 문제분석에 유용한 정보를 제공하며 Dump 내에서 내용을 볼 수 있다. DIAGxx parmlib member에 “VSM TRACK CSA(ON) SQA(ON)” 지정해 Active시킨다. 6 © IBM Corporation 2007 IBM Global Services 문제 유형과 필요 자료 Disabled LOOP, WAIT - System command에 대한 응답이 없는 상태이다. 1. Stand-alone Dump Disable LOOP인 경우는 Interrupt가 일어날 수 없으므로 Console에서 issue된 Command가 작동하지 않는다. PSW의 6 & 7번 Bit이 Off이다. 준비된 SA DUMP Program으로 IPL하여 Stand-alone Dump를 받는다. 2. SYSLOG/OPERLOG 문제 발생 전의 상황을 알기 위해 SYSLOG/OPERLOG를 반드시 보관한다. 3. EREP Stand-alone Dump안에 LOGDATA(EREP)가 있으나 양에 제한이 있으므로 따로 EREP을 보관한다. 7 © IBM Corporation 2007 IBM Global Services 문제 유형과 필요 자료 Enabled LOOP, WAIT - System command에 대한 응답이 있는 상태이다. - “D A,L” command나 SDSF 등을 이용해 의심스러운 JOB을 cancel함으로써 상황을 끝낼 수도 있다. - “D GRS,C” command는 resource contention 문제관련 WAIT 일 경우 유용한 정보를 제공한다. 1. Stand-alone Dump 의심스러운 JOB들을 cancel 시켜도 상황이 계속 될 경우에는 Stand-alone Dump를 받는다. PSW의 6 & 7번 Bit이 On이다. 준비된 Stand-alone Dump Program으로 IPL하여 Stand-alone Dump를 받는다. 2. SYSLOG/OPERLOG 문제 발생 전의 상황을 알기 위해 SYSLOG/OPERLOG를 반드시 보관한다. 3. EREP Stand-alone Dump안에 LOGDATA(EREP)가 있으나 양에 제한이 있으므로 따로 EREP을 보관한다. 4. TRACE Looping이 발생한 상황을 가장 잘 보는 주는 것이 trace이므로, System trace의 Buffer 크기를 넉넉하게 잡아 준다. (“TRACE ST,999K”) 8 © IBM Corporation 2007 IBM Global Services 문제 유형과 필요 자료 Message - 평소에 보이지 않던 종류의 message 또는 error message이다. 1. SYSLOG/OPERLOG/JOBLOG 문제 발생 전의 상황을 알기 위해 SYSLOG/OPERLOG와 해당 JOB의 JOBLOG를 반드시 보관한다. 2. EREP Stand-alone Dump안에 LOGDATA(EREP)가 있으나 양에 제한이 있으므로 따로 EREP을 보관한다. 3. TRACE IOS message의 경우, CCW Trace와 System Trace가 필요하다. 4. SLIP 경우에 따라서는 SLIP command를 이용해 해당 message에 대해 Dump를 받거나, Trace를 받을 수도 있다. 9 © IBM Corporation 2007 IBM Global Services 문제 유형과 필요 자료 INCORROUT - Incorrect Output, 원하지 않던 결과이다. - 해당하는 Product의 자료 수집 방법에 따라 자료 수집한다. 1. JOBLOG/SYSLOG/OPERLOG 해당 JOB의 JOBLOG는 반드시 보관하고, SYSLOG/OPERLOG도 같이 보관한다. 2. EREP 상황에 따라 필요할 경우도 있다. 3. TRACE 각 Product에서 제공하는 Trace 기능을 이용해 자료의 흐름을 추적한다. 4. SLIP 경우에 따라서는 SLIP command를 이용해 해당 message에 대해 Dump를 받거나, Trace를 받을 수도 있다. 10 © IBM Corporation 2007 IBM Global Services DUMP DUMP란 DUMP는 z/OS가 수행하면서 ABEND가 발생하면 그 당시 일정 Storage부분과 PSW , 그리고 그 당시 Register값을 저장하는 것을 의미한다. 경우에 따라 DUMP Option에 따라 Storage부분을 강제로 받을 수 있다. DUMP의 종류 1. ABEND DUMP ABEND가 났을 때, 발생하는 DUMP로써 다음과 같은 3가지 좋류가 있다. SYSABEND : Summary dump plus some useful data. SYSMDUMP : Summary dump plus some useful system data, formatable on IPCS SYSUDUMP : The smallest dump, it contains the structure of failing program. 2. SNAP DUMP 꼭 문제 상황에서 나는 것은 아니며, Virtual Storage의 snapshot이라 할 수 있다. 3. SVC DUMP 문제 상황 발생 시, Virtual Storage의 내용을 받아내는 일반적인 Dump이다. 대개의 경우 recovery routine에서 Dump를 request하게 된다. 4. Stand-alone DUMP z/OS System이 WAIT(Disable/Enable) 또는 Loop(Disable/Enable) 이면 Stand-alone Dump를 받는다. Dump를 받고 난 후 z/OS 를 IPL을 다시 하여야 한다. Stand-alone Dump는 현재 수행중인 모든 JOB의 Storage와 Register값을 받아 낸다. 11 © IBM Corporation 2007 IBM Global Services Stand-alone DUMP Stand-alone DUMP 준비(1) 1. Stand-alone Program 을 미리 만든다. //XXXXXXXX JOB //* CLASS=I,MSGCLASS=X,MSGLEVEL=(1,1),REGION=100M STAND ALONE STORAGE DUMP IPLTXT CREATION TO DISK //OSG1 EXEC PGM=AMDSAOSG //DPLTEXT DD DISP=SHR,DSN=SYS1.NUCLEUS(AMDSADPL) //IPLTEXT DD DISP=SHR,DSN=SYS1.NUCLEUS(AMDSAIPD) //PGETEXT DD DISP=SHR,DSN=SYS1.NUCLEUS(AMDSAPGE) //IPITEXT DD DISP=SHR,DSN=SYS1.NUCLEUS(AMDSAIPI) //DVITEXT DD DISP=SHR,DSN=SYS1.NUCLEUS(AMDSADVI) //GENPRINT DD SYSOUT=* //GENPARMS DD * AMDSADMP IPL=DSYSDA,VOLSER=TSTDL1, CONSOLE=(0520,3278), OUTPUT=(5721,SYS1.SADMP), DDSPROMPT=YES END /* // - 여기서 보여주는 예에서는 2114 (TSTDL1) 이 Load Address 이다. 이 Load Address는 나중에 실제 Stand-alone Dump를 수행할 때 꼭 기억하고 있어야 한다. /D U,VOL=TSTDL1으로 address 확인 - Output이 들어갈 volume은 5721(SP5721)이다. /D U,DASD,,5721로 확인한다. AMDSADMP IPL=DSYSDA,VOLSER=TSTDL1, | volume serial device type CONSOLE=(0520,3278), console address OUTPUT=(5721,SYS1.SADMP), | dataset name device address DDSPROMPT=YES 12 © IBM Corporation 2007 IBM Global Services Stand-alone DUMP Stand-alone DUMP 준비(2) 2. Output dataset 을 미리 준비 해 둔다. - SYS1.SAMPLIB(AMDSADDD) 를 수행 C1(TEST) 00831 BROWSE SYS1.SAMPLIB Row 00012 of Command ===> Name Scroll ===> CSR Prompt Size Created Changed ID ex_______ AMDSADDD _________ ANFDEAL _________ ANFGPWGU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - SYS1.SAMPLIB에 Stand-alone dataset 준비를 위한 REXX가 들어 있다. - 위와 같이 수행 하거나, 또는 TSO 상에서 TSO EX ‘SYS1.SAMPLIB(AMDSADDD)’ 라고 command를 issue한다. 13 © IBM Corporation 2007 IBM Global Services Stand-alone DUMP Stand-alone DUMP 준비(3) 3. Output dataset 을 미리 준비 해 둔다. – REXX에 대한 응답 What function do you want? Please enter DEFINE if you want to allocate a new dump dataset Please enter CLEAR if you want to clear an existing dump dataset Please enter REALLOC if you want to reallocate and clear an existing dump dataset Please enter QUIT if you want to leave this procedure clear Please enter VOLSER or VOLSER(dump_dataset_name) sp5721(sys1.sadmp) Please enter the device type for the dump dataset Device type choices are 3380 or 3390 or 9345 3390 Please enter the number of cylinders 3300 Do you want the dump dataset to be cataloged? Please respond Y or N Y - 14 앞에서 준비해 둔 dataset 정보를 그대로 입력한다. © IBM Corporation 2007 IBM Global Services Stand-alone DUMP Stand-alone DUMP 준비(4) 4. Output dataset 을 미리 준비 해 둔다. – REXX의 결과 확인 IKJ56650I TIME-04:17:29 PM. CPU-00:00:00 SERVICE-88370 SESSION-00:07:37 OCTOBER 16,2002 Initializing output dump dataset with a null record: Dump dataset has been successfully initialized Results of the CLEAR request: Dump Dataset Name : SYS1.SADMP *** Volume : SP5721 Device Type : 3390 Allocated Amount : 3300 *** - 15 결과를 확인하고 틀린 곳이 없는 지 확인한다. © IBM Corporation 2007 IBM Global Services Stand-alone DUMP Stand-alone DUMP 수행 1) 현재 시스템 수행을 포기하고, 다음과 같이 IPL 을 시도한다. - HMC/SE console 에서 해당 Partition 을 아래 parm 으로 LOAD 한다. . Normal . Store Status . Load address : 2114 여기서 2114는 이 예에서 TSTDL1의 address임. 고객 환경에서는 다른 address임. 이때 원래 address 를 기록해둠. Stand-alone DUMP 후 정상 IPL 을 위해! . Load parameter 는 무시한다. 2) Load complete 가 되면 약 10초 기다린다. 3) HMC/SE console 의 Operating System Messages 를 선택하여 dummy send 를 한번 하거나, NIP console 에서 enter 를 친다. 먼저 친 곳에서 SADMP prompt 가 뜬다. 4) AMD083I AMDSADMP: STAND-ALONE DUMP INITIALIZED AMD001A SPECIFY OUTPUT DEVICE ADDRESS (nnn) 에 output dataset이 준비된 volume의 address 를 준다. 이때 reply # 는 없다. 5721 5) AMD002A DUMP DATA SET= 에 앞에서 준비한 dataset name 을 준다. SYS1.SADMP 6) AMD011A TITLE= 에 임의의 Title 을 입력한다. 7) AMD104I DEVICE VOLUME USED DATA SET NAME nnn dev volser amt dsname 위의 message 가 나오면 끝이고, 혹시 한 volume 에 output 이 다 들어가지 못하면 AMD001A 가 다시 나온다. 이때는 4) 부터 다시 따라간다. output volume 과 dataset name 은 5722 SYS1.SADMP2 5723 SYS1.SADMP3 5724 SYS1.SADMP4 와 같은 식으로 만들면 된다. 16 © IBM Corporation 2007 IBM Global Services Dump Operation - D D DISPLAY DUMP Dump에 관한 가장 기본 적인 정보들을 얻을 수 있다. D D IEE852I 11.05.00 SYS1.DUMP STATUS 651 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 (1) CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M (2) AUTOMATIC ALLOCATION IS: ACTIVE (3) NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 (4) NAME=SYS1.&SYSNAME..DMP&SEQ (5) EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 (6) 위의 예에서, (1) Capture된 Dump가 현재 없고, 3개의 SYS1.DUMPxx 가 available하다. (2) MAXSPACE는 2500M이고, capture된 Dynamic Dump는 없다. (3) Dynamic Dump가 active하다. (4) ITSWK1이 Dynamic Dump를 위한 disk이다. (5) Dynamic Dump의 naming convention이다. (6) SYS1.DUMP00 부터 02 까지가 SVC Dump datasets으로 사용된다. 17 © IBM Corporation 2007 IBM Global Services Dump Operation - D D,O DISPLAY DUMP,OPTIONS Dump의 option들에 관한 정보를 볼 수 있다. Buffer size, MAXSPACE 등을 확인 가능하다. Option등을 바꾸려면 CD command를 이용한다. D D,O IEE857I 11.51.29 DUMP OPTION 746 SYSABEND- ADD PARMLIB OPTIONS SDATA=(LSQA,TRT,CB,ENQ,DM,IO,ERR,SUM), PDATA=(SA,REGS,LPA,JPA,PSW,SPLS) (1) (2) SYSUDUMP- ADD PARMLIB OPTIONS SDATA=(SUM), NO PDATA OPTIONS (3) SYSMDUMP- ADD PARMLIB OPTIONS (NUC,SQA,LSQA,SWA,TRT,RGN,SUM) (4) SDUMP- ADD OPTIONS(PSA,SQA,LSQA,RGN,TRT,CSA,SWA,SUMDUMP,GRSQ, XESDATA),BUFFERS=00000000K,MAXSPACE=00002500M, MSGTIME=99999 MINUTES (5) 위의 예에서, Dump options, buffer size, MAXSPACE. 등의 정보를 볼 수 있다. (1) SYSABEND DUMP의 SDATA option들 (2) SYSABEND DUMP의 PDATA option들 (3) SYSUDUMP의 Dump option들 (4) SYSMDUMP의 Dump option들 (5) SVC Dump의 option들 18 © IBM Corporation 2007 IBM Global Services Dump Operation - D D,T DISPLAY DUMP,TITLE 현재 capture된 Dump의 정보들을 확인할 수 있다. D D,T IEF196I IEF237I 10A9 ALLOCATED TO SYS00584 IEF196I IEF285I SYS1.ITS1.DMP00198 IEF196I IEF285I VOL SER NOS= ITSWK1. KEPT IEE853I 11.54.57 SYS1.DUMP TITLES 758 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M,SPACE FREE=00000500M (1) SYS1.ITS1.DMP00198 TITLE=MASTER DUMP TAKEN TIME=11.45.56 DATE=07/09/2002 NO DUMP DATA AVAILABLE FOR THE FOLLOWING EMPTY SYS1.DUMP DATA SETS: (2) 00-02 위의 예에서, (1) 현재 Dynamic Dump 하나가 MASTER이라는 이름으로 있고, (2) Static Dump는 capture된 게 없는 상태이다. 19 © IBM Corporation 2007 IBM Global Services Dump Operation - CD SET CHNGDUMP SET(1) Dump의 option, MAXSPACE 등 각종 변경을 위한 command 이다. D D,O IEE857I 13.17.57 DUMP OPTION 832 (1) SYSABEND- ADD PARMLIB OPTIONS SDATA=(LSQA,TRT,CB,ENQ,DM,IO,ERR,SUM), PDATA=(SA,REGS,LPA,JPA,PSW,SPLS) SYSUDUMP- ADD PARMLIB OPTIONS SDATA=(SUM), NO PDATA OPTIONS SYSMDUMP- ADD PARMLIB OPTIONS (NUC,SQA,LSQA,SWA,TRT,RGN,SUM) SDUMP- ADD OPTIONS (PSA,SQA,LSQA,RGN,TRT,CSA,SWA,SUMDUMP,GRSQ,LPA, XESDATA),BUFFERS=00000000K,MAXSPACE=00000500M, MSGTIME=99999 MINUTES CD SET,SDUMP=(ALLNUC,ALLPSA,NUC,SUM) (2) IEE712I CHNGDUMP PROCESSING COMPLETE D D,O IEE857I 13.27.52 DUMP OPTION 856 SYSABEND- ADD PARMLIB OPTIONS SDATA=(LSQA,TRT,CB,ENQ,DM,IO,ERR,SUM), PDATA=(SA,REGS,LPA,JPA,PSW,SPLS) SYSUDUMP- ADD PARMLIB OPTIONS SDATA=(SUM), NO PDATA OPTIONS SYSMDUMP- ADD PARMLIB OPTIONS (NUC,SQA,LSQA,SWA,TRT,RGN,SUM) SDUMP- ADD OPTIONS (PSA,SQA,LSQA,RGN,TRT,CSA,SWA,SUMDUMP,GRSQ,LPA, XESDATA,ALLNUC,ALLPSA,NUC,SUM),BUFFERS=00000000K, (3) MAXSPACE=00000500M,MSGTIME=99999 MINUTES 위의 예에서, (1) D D,O command를 이용해 현재의 Dump option들을 확인하고, (2) CD SET command를 이용해 SDUMP에 4가지 option을 추가하고, (3) 다시 D D,O command를 이용해 추가된 option들을 확인한다. 20 © IBM Corporation 2007 IBM Global Services Dump Operation - CD SET CHNGDUMP SET(2) Dump의 option, MAXSPACE 등 각종 변경을 위한 command 이다. D D,O IEE857I 13.17.57 DUMP OPTION 832 (1) SYSABEND- ADD PARMLIB OPTIONS SDATA=(LSQA,TRT,CB,ENQ,DM,IO,ERR,SUM), PDATA=(SA,REGS,LPA,JPA,PSW,SPLS) SYSUDUMP- ADD PARMLIB OPTIONS SDATA=(SUM), NO PDATA OPTIONS SYSMDUMP- ADD PARMLIB OPTIONS (NUC,SQA,LSQA,SWA,TRT,RGN,SUM) SDUMP- ADD OPTIONS (PSA,SQA,LSQA,RGN,TRT,CSA,SWA,SUMDUMP,GRSQ,LPA, XESDATA,ALLNUC,ALLPSA,NUC,SUM),BUFFERS=00000000K, MAXSPACE=00000500M,MSGTIME=99999 MINUTES CD SET,SDUMP,MAXSPACE=2500M (2) IEE712I CHNGDUMP PROCESSING COMPLETE D D,O IEE857I 13.27.52 DUMP OPTION 856 SYSABEND- ADD PARMLIB OPTIONS SDATA=(LSQA,TRT,CB,ENQ,DM,IO,ERR,SUM), PDATA=(SA,REGS,LPA,JPA,PSW,SPLS) SYSUDUMP- ADD PARMLIB OPTIONS SDATA=(SUM), NO PDATA OPTIONS SYSMDUMP- ADD PARMLIB OPTIONS (NUC,SQA,LSQA,SWA,TRT,RGN,SUM) SDUMP- ADD OPTIONS (PSA,SQA,LSQA,RGN,TRT,CSA,SWA,SUMDUMP,GRSQ,LPA, XESDATA,ALLNUC,ALLPSA,NUC,SUM),BUFFERS=00000000K, MAXSPACE=00002500M,MSGTIME=99999 MINUTES (3) 위의 예에서, (1) D D,O command를 이용해 현재의 Dump option들을 확인하고, (2) CD SET command를 이용해 MAXSPACE를 2500M로 늘리고, (3) 다시 D D,O command를 이용해 변경된 MAXSPACE size를 확인한다. 21 © IBM Corporation 2007 IBM Global Services Dump Operation - DD CLEAR DUMPDS CLEAR(1) Static Dump dataset를 clear하기 위한 command 이다. D D,T (1) IEF196I IEF237I 10A9 ALLOCATED TO SYS00612 IEF196I IEF285I SYS1.ITS1.DMP00201 IEF196I IEF285I VOL SER NOS= ITSWK1. KEPT IEF196I IEF237I 10A6 ALLOCATED TO SYS00613 IEF196I IEF285I SYS1.DUMP00 IEF196I IEF285I VOL SER NOS= ITSCAT. KEPT IEE853I 12.04.50 SYS1.DUMP TITLES 690 SYS1.DUMP DATA SETS AVAILABLE=002 AND FULL=001 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M SYS1.ITS1.DMP00201 TITLE=ISSUER=IEFAB4ED,ERRCSECT= SEE VRA, COMPID=5752-SC1B4,COMPON=DEVICE ALLOCATION-DYNAMIC ALLOCATION DUMP TAKEN TIME=15.18.11 DATE=07/09/2002 DUMP00 TITLE=TEST4 DUMP TAKEN TIME=12.04.27 DATE=07/14/2002 DUMP01 TITLE=TEST5 DUMP TAKEN TIME=12.04.30 DATE=07/14/2002 NO DUMP DATA AVAILABLE FOR THE FOLLOWING EMPTY SYS1.DUMP DATA SETS:02 DD CLEAR,DSN=00 (2) IEE855I DUMPDS COMMAND RESPONSE 692 DUMPDS COMMAND SYS1.DUMP DATA SET STATUS SYS1.DUMP DASD DATA SETS CLEARED: 00 위의 예에서, (1) D D,T command를 이용해 현재의 Dump들을 확인하고, (2) DD CLEAR command를 이용해 SYS1.DUMP00의 내용을 제거한다. 22 © IBM Corporation 2007 IBM Global Services Dump Operation - DD CLEAR DUMPDS CLEAR(2) Static Dump dataset를 clear하기 위한 command 이다. D D (3) IEE852I 12.07.24 SYS1.DUMP STATUS 694 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: INACTIVE NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00, 02 DD CLEAR,DSN=ALL (4) IEE855I DUMPDS COMMAND RESPONSE 692 DUMPDS COMMAND SYS1.DUMP DATA SET STATUS SYS1.DUMP DASD DATA SETS CLEARED: 01 D D (5) IEE852I 12.07.24 SYS1.DUMP STATUS 694 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: INACTIVE NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 위의 예에서, (3) D D command를 이용해 비워진 SYS1.DUMP00을 확인하고, (4) DD CLEAR command를 이용해 모든 Static Dump의 내용을 제거하고, (5) D D command를 이용해 비워진 Dump들을 확인한다. 23 © IBM Corporation 2007 IBM Global Services Dump Operation - DD ALLOC DUMPDS ALLOC= Dynamic Dump의 사용 여부를 지정해 주는 command 이다. D D IEE852I 12.11.36 SYS1.DUMP STATUS 698 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: INACTIVE (1) NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 DD ALLOC=ACTIVE (2) IEE855I DUMPDS COMMAND RESPONSE 700 DUMPDS COMMAND SYS1.DUMP DATA SET STATUS AUTOMATIC ALLOCATION IS: ACTIVE D D IEE852I 12.12.38 SYS1.DUMP STATUS 702 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: ACTIVE (3) NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 위의 예에서, (1) D D command를 이용해 현재의 Dynamic Dump option들을 확인하고, (2) DD ALLOC command를 이용해 Dynamic Dump를 active시키고, (3) 다시 D D command를 이용해 변경된 Dynamic Dump option을 확인한다. 24 © IBM Corporation 2007 IBM Global Services Dump Operation - DD ADD DUMPDS ADD,VOL= Dynamic Dump dataset이 allocate될 volume을 지정해 주는 command 이다. D D IEE852I 12.15.20 SYS1.DUMP STATUS 708 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00000500M AUTOMATIC ALLOCATION IS: ACTIVE NO SMS CLASSES DEFINED NO DASD VOLUMES DEFINED (1) NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 DD ADD,VOL=(ITSWK1,ITSWK2) IEF196I IGD100I 10A9 ALLOCATED TO DDNAME SYS00208 DATACLAS ( (2) ) . . . DUMPDS COMMAND SYS1.DUMP DATA SET STATUS DASD VOLUMES ADDED: ITSWK1, ITSWK2 D D IEE852I 12.15.30 SYS1.DUMP STATUS 717 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: ACTIVE NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1, ITSWK2 (3) NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 위의 예에서, (1) D D command를 이용해 현재의 Dynamic Dump volume을 확인하고, (2) DD ADD command를 이용해 volume을 추가하고, (3) 다시 D D command를 이용해 변경된 Dynamic Dump volume을 확인한다. 25 © IBM Corporation 2007 IBM Global Services Dump Operation - DD DEL DUMPDS DEL,VOL= Dynamic Dump dataset이 allocate될 volume으로 지정된 volume을 제거해 주는 command 이다. D D IEE852I 12.15.06 SYS1.DUMP STATUS 704 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: ACTIVE NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1 (1) NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 DD DEL,VOL=ITSWK1 (2) IEE855I DUMPDS COMMAND RESPONSE 706 DUMPDS COMMAND SYS1.DUMP DATA SET STATUS DASD VOLUMES DELETED: ITSWK1 D D IEE852I 12.15.20 SYS1.DUMP STATUS 708 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00000500M AUTOMATIC ALLOCATION IS: ACTIVE NO SMS CLASSES DEFINED NO DASD VOLUMES DEFINED (3) NAME=SYS1.&SYSNAME..DMP&SEQ EXAMPLE=SYS1.ITS1.DMP00000 SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 위의 예에서, (1) D D command를 이용해 현재의 Dynamic Dump volume을 확인하고, (2) DD DEL command를 이용해 volume을 제거하고, (3) 다시 D D command를 이용해 변경된 Dynamic Dump volume을 확인한다. 26 © IBM Corporation 2007 IBM Global Services Dump Operation - DD NAME DUMPDS NAME= Dynamic Dump dataset이 allocate될 때 dataset 이름을 정해주는 command 이다. DD NAME=SYS1.DUMP.D&YYMMDD..T&HHMMSS..&.SYSNAME..S&SEQ (1) D D IEE852I 12.15.30 SYS1.DUMP STATUS 717 SYS1.DUMP DATA SETS AVAILABLE=003 AND FULL=000 CAPTURED DUMPS=0000, SPACE USED=00000000M, SPACE FREE=00002500M AUTOMATIC ALLOCATION IS: ACTIVE NO SMS CLASSES DEFINED AVAILABLE DASD VOLUMES: ITSWK1, ITSWK2 NAME=SYS1.DUMP.D&YYMMDD..T&HHMMSS..&.SYSNAME..S&SEQ EXAMPLE=SYS1.DUMP.D070212.T123234.ITS1.S00000 (2) SYS1.DUMP AVAILABLE DASD DATA SETS : 00-02 위의 예에서, (1) DD NAME command를 이용해 Dynamic Dump dataset의 이름을 지정하고, (2) D D command를 이용해 지정된 이름과 그 예를 확인한다. 27 © IBM Corporation 2007 IBM Global Services Dump Operation - DUMP DUMP COMM=(…) 임의로 Dump를 발생시킬 경우에 사용하는 command 이다. DUMP COMM=(your dump title) *XX IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND R XX,JOBNAME=PRODCICS,END (1) DUMP COMM=(your dump title) *XX IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND R XX,JOBNAME=(DSNPMSTR,DSNPDBM1),END (2) DUMP COMM=(your dump title) *XX IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND R XX,JOBNAME=(DSNP*,PRODCICS),END (3) 위의 예에서, (1) 하나의 Job을 Dump 받고자 할 때. (2) 두 개 이상의 Job들을 하나의 command로 받아 내고자 할 때. (3) Wild card를 사용해 이름이 비슷한 Job들을 받아 낼 때. 28 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(1) 하나의 volume에 들어갈 수 있는 최대량은 65535 track이기 때문에 z/OS 환경 하에서 크기가 큰 Dump가 발생할 경우 하나의 disk volume에 다 담을 수가 없다. 이러한 경우에 대비해 multi-volume striping을 이용해 미리 여유를 확보해 두는 것이 중요하다. Multi-volume Dump는 Dynamic Dump에서만 가능하며, Static Dump는 사용할 수 없다. 이를 위한 절차는 다음과 같다. 1. Multi-volume Dump를 위한 disk들을 준비한다. 본 예에서는 아래의 3개의 volume을 사용한다. IEE457I 11.24.07 UNIT STATUS 119 UNIT TYPE STATUS VOLSER VOLSTATE 1084 3390 O PSS084 PRIV/RSDNT 1085 3390 O PSS085 PRIV/RSDNT 1086 3390 O PSS086 PRIV/RSDNT 한 volume 이상의 Dump가 발생하면 아래와 같은 error message가 발생한다. IGD17051I ALLOCATION FAILED FOR DATA SET DUMP.KB03.D030908.T223256.DMP00016, PRIMARY SPACE EXCEEDS 65535 TRKS IEA799I AUTOMATIC ALLOCATION OF SVC DUMP DATASET FAILED 29 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(2) 2. SMS storage group을 정의한다.(1) STORAGE GROUP APPLICATION SELECT ENTER STORAGE GROUP TYPE Command ===> To perform Storage Group Operations, Specify: CDS Name . . . . . . . 'CPAC.DFSMS.SCDS' (1 to 44 character data set name or 'Active' ) Storage Group Name . . sgmultiv (For Storage Group List, fully or partially specified or * for all) Storage Group Type . . pool (VIO, POOL, DUMMY, OBJECT, OBJECT BACKUP, or TAPE) Select one of the following options 2 30 : 1. List - Generate a list of Storage Groups 2. Define - Define a Storage Group 3. Alter - Alter a Storage Group 4. Volume - Display, Define, Alter or Delete Volume Information © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(3) 2. SMS storage group을 정의한다.(2) POOL STORAGE GROUP DEFINE Command ===> SCDS Name . . . . . : CPAC.DFSMS.SCDS Storage Group Name : SGMULTIV To DEFINE Storage Group, Specify: Description ==> MULTI-VOLUME ==> Auto Migrate . . Y (Y, N, I or P) Migrate Sys/Sys Group Name . . Auto Backup . . Y (Y or N) Backup Sys/Sys Group Name . . . N (Y or N) Dump Sys/Sys Group Name Auto Dump Dump Class . . . (1 to 8 characters) Dump Class . . . Dump Class . . . Dump Class . . . Dump Class . . . Allocation/migration Threshold: High . . 85 Guaranteed Backup Frequency DEFINE 31 (1-99) . . . . . . NOLIMIT SMS Storage Group Status . . . N Low . . . . . . . 1 (0-99) (1 to 9999 or NOLIMIT) (Y or N) © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(4) 3. Volume을 add한다.(1) STORAGE GROUP APPLICATION SELECTION Command ===> To perform Storage Group Operations, Specify: CDS Name . . . . . . . 'CPAC.DFSMS.SCDS' (1 to 44 character data set name or 'Active' ) Storage Group Name . . SGMULTIV (For Storage Group List, fully or partially specified or * for all) Storage Group Type . . (VIO, POOL, DUMMY, OBJECT, OBJECT BACKUP, or TAPE) Select one of the following options 4 32 : 1. List - Generate a list of Storage Groups 2. Define - Define a Storage Group 3. Alter - Alter a Storage Group 4. Volume - Display, Define, Alter or Delete Volume Information © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(5) 3. Volume을 add한다.(2) STORAGE GROUP LIST Command ===> Scroll ===> HALF Entries 1-1 of 1 Data Columns 3-7 of 40 CDS Name : CPAC.DFSMS.SCDS Enter Line Operators below: 33 LINE STORGRP SG VIO VIO AUTO MIGRATE SYSTEM OPERATOR NAME TYPE MAXSIZE UNIT MIGRATE OR SYS GROUP ---(1)---- --(2)--- -----(3)----- --(4)-- (5)- --(6)--- -----(7)------ listvol SGMULTIV POOL ------- ---- YES -------- ---------- -------- ------ BOTTOM OF DATA ------ -------- ---------- © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(6) 3. Volume을 add한다.(3) VOLUME LIST Command ===> Scroll ===> HALF Entries 1-3 of 3 Enter Line Operators below: LINE VOLUME FREE % ALLOC FRAG LARGEST FREE OPERATOR SERIAL SPACE FREE SPACE INDEX EXTENT EXTENTS -(2)-- ---(3)--- (4)- ---(5)--- -(6)- ---(7)--- --(8)-- ---(1)---- ---------- 34 Data Columns 3-8 of 40 PSS084 2764583 99 6917 0 2761872 3 PSS085 2765137 99 6363 0 2761872 3 PSS086 2765137 99 6363 0 2761872 3 ------ ----------- BOTTOM OF DATA ----------- ------ ---- © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(7) 4. SMS storage group을 activate시킨다. /SETSMS SCDS(CPAC.DFSMS.SCDS) 35 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(8) 5. DFSMSdss CONVERTV 를 사용하여 SMS volume 으로 변경한다. CONVERTV DDNAME(DVOL1,DVOL2,DVOL3) SMS - SELECTMULTI(FIRST) - CATALOG 36 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(9) 6. SMS Storage Class 정의(1) - SDR 이 중요하다. 3390 은 4로 나눈 값이 striping 되는 volume 수가 된다. - 이 예에서는 3개 volume 로 striping 을 위해 12로 정의 하였다. STORAGE CLASS APPLICATION SELECTION Command ===> To perform Storage Class Operations, Specify: CDS Name . . . . . . . 'CPAC.DFSMS.SCDS' (1 to 44 character data set name or 'Active' ) Storage Class Name . . SCMULTIV (For Storage Class List, fully or partially specified or * for all) Select one of the following options 3 : 1. List - Generate a list of Storage Classes 2. Display - Display a Storage Class 3. Define - Define a Storage Class 4. Alter - Alter a Storage Class 5. Cache Display - Display Storage Classes/Cache Sets If List Option is chosen, Enter "/" to select option Respecify View Criteria Respecify Sort Criteria 37 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(10) 6. SMS Storage Class 정의(2) STORAGE CLASS DEFINE Page 1 of 2 Command ===> SCDS Name . . . . . : CPAC.DFSMS.SCDS Storage Class Name : SCMULTIV To DEFINE Storage Class, Specify: Description ==> Multi-volume ==> Performance Objectives Direct Millisecond Response . . . . (1 to 999 or blank) Direct Bias . . . . . . . . . . . . (R, W or blank) Sequential Millisecond Response . . (1 to 999 or blank) Sequential Bias . . . . . . . . . . (R, W or blank) Initial Access Response Seconds . . (0 to 9999 or blank) Sustained Data Rate (MB/sec) (0 to 999 or blank) Availability . . . . . . . . . . . . N (C, P ,S or N) Accessibility (C, P ,S or N) Backup . . . . . . . . . . . N . . . . . . . . . . . . . . Versioning 38 . . . 12 . . . . . . . . . . . . (Y, N or Blank) (Y, N or Blank) © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(11) 7. SMS Data Class 정의(1) - Dataset name type 이 중요하다. 'EXT' 를 정의 하여야 한다. - 이 'EXT' 와 Storage 의 SDR 이 striping 을 하게 한다. DATA CLASS APPLICATION SELECTION Command ===> To perform Data Class Operations, Specify: CDS Name . . . . . . 'CPAC.DFSMS.SCDS' (1 to 44 character data set name or 'Active' ) Data Class Name . . dcmultiv (For Data Class List, fully or partially specified or * for all) Select one of the following options 3 1. List : - Generate a list of Data Classes 2. Display - Display a Data Class 3. Define - Define a Data Class 4. Alter - Alter a Data Class If List Option is chosen, Enter "/" to select option Respecify View Criteria Respecify Sort Criteria 39 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(12) 7. SMS Data Class 정의(2) DATA CLASS DEFINE Page 1 of 3 Command ===> SCDS Name . . . : CPAC.DFSMS.SCDS Data Class Name : DCMULTIV To DEFINE Data Class, Specify: Description ==> Multi-volume ==> Recorg . . . . . . . . Recfm . . . . . . . . . (any valid RECFM combination or blank) Lrecl . . . . . . . . . (1 to 32761 or blank) Keylen . . . . . . . . (0 to 255 or blank) Keyoff . . . . . . . . (0 to 32760 or blank) Space Avgrec 40 (KS, ES, RR, LS or blank) . . . . . (U, K, M or blank) Avg Value . . . . (0 to 65535 or blank) Primary . . . . . (0 to 999999 or blank) Secondary . . . . (0 to 999999 or blank) Directory . . . . (0 to 999999 or blank) © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(13) 7. SMS Data Class 정의(3) DATA CLASS DEFINE Page 3 of 3 Command ===> SCDS Name . . . : CPAC.DFSMS.SCDS Data Class Name : DCMULTI To DEFINE Data Class, Specify: Data Set Name Type If Ext . . . . . . ext . . . . . . . . . . . r (P=Preferred, R=Required or blank) Extended Addressability . . . N (Y or N) Record Access Bias (S=System, U=User or blank) . . . . . s Reuse . . . . . . . . . . . . . N (Y or N) Initial Load (S=Speed, R=Recovery or blank) . . . . . . . . . R Spanned / Nonspanned . . . . . (S=Spanned, N=Nonspanned or blank) BWO . . . . . . . . . . . . . . (TC=TYPECICS, TI=TYPEIMS, NO or blank) Log . . . . . . . . . . . . . . (N=NONE, U=UNDO, A=ALL or blank) Logstream Id . . . . . . . . . Space Constraint Relief . . . . N Reduce Space Up To (%) 41 (EXT, HFS, LIB, PDS or blank) . . . (Y or N) (0 to 99 or blank) © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(14) 8. ACS 정의(1) - 해당 Storage Class 가 해당 Storage Group 을 사용하도록 ACS 정의 및 translate 한다. EDIT PSS1.MAINT.UNIX(ACSSC6) - 01.00 Command ===> Columns 00001 00072 Scroll ===> CSR ****** ***************************** Top of Data **************************** 000010 PROC 1 STORCLAS 000020 FILTLIST OPENMVS INCLUDE(OMVS.**) 000030 SELECT 000040 WHEN ((&HLQ EQ &OPENMVS) AND &DSNTYPE='HFS') 000050 000051 SET &STORCLAS EQ 'OPENMVS' WHEN (&STORCLAS EQ 'OPENMVS') 000052 000053 SET &STORCLAS EQ 'OPENMVS' WHEN (&STORCLAS EQ 'SCTEST') 000054 000055 SET &STORCLAS EQ 'SCTEST' WHEN (&STORCLAS EQ 'SCNPA') 000056 SET &STORCLAS EQ 'SCNPA' 000057 WHEN (&STORCLAS EQ 'C3OMVS') 000058 000059 SET &STORCLAS EQ 'C3OMVS' WHEN (&STORCLAS EQ 'SCITSHFS') 000060 000061 SET &STORCLAS EQ 'SCITSHFS' WHEN (&STORCLAS EQ 'SCITSPOE') 000062 000063 SET &STORCLAS EQ 'SCITSPOE' WHEN (&STORCLAS EQ 'SCIT2HFS') 000064 000065 SET &STORCLAS EQ 'SCIT2HFS' WHEN (&STORCLAS EQ 'SCIT3HFS') 000066 000067 SET &STORCLAS EQ 'SCIT3HFS' WHEN (&STORCLAS EQ 'SCMULTIV') 000068 000069 SET &STORCLAS EQ 'SCMULTIV' OTHERWISE 000070 000071 SET &STORCLAS EQ '' END 000080 END ****** **************************** Bottom of Data *************************** 42 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(15) 8. ACS 정의(2) EDIT PSS1.MAINT.UNIX(ACSSG6) - 01.00 Command ===> Columns 00001 00072 Scroll ===> CSR ****** ***************************** Top of Data ***************************** 000100 PROC 1 STORGRP 000200 SELECT 000300 WHEN (&STORCLAS EQ 'OPENMVS') 000400 SET &STORGRP EQ 'OPENMVS' 000401 WHEN (&STORCLAS EQ 'SCTEST') 000402 SET &STORGRP EQ 'SGTEST' 000403 WHEN (&STORCLAS EQ 'SCNPA') 000404 SET &STORGRP EQ 'SGNPA' 000405 WHEN (&STORCLAS EQ 'C3OMVS') 000406 SET &STORGRP EQ 'C3OMVS' 000407 WHEN (&STORCLAS EQ 'SCITSHFS') 000408 SET &STORGRP EQ 'SGITSHFS' 000409 WHEN (&STORCLAS EQ 'SCITSPOE') 000410 SET &STORGRP EQ 'SGITSPOE' 000420 WHEN (&STORCLAS EQ 'SCIT2HFS') 000430 SET &STORGRP EQ 'SGIT2HFS' 000440 WHEN (&STORCLAS EQ 'SCIT3HFS') 000441 SET &STORGRP EQ 'SGIT3HFS' 000442 WHEN (&STORCLAS EQ 'SCMULTIV') 000443 000444 SET &STORGRP EQ 'SGMULTIV' END 000445 END ****** **************************** Bottom of Data *************************** 43 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(16) 9. Storage Class, Data Class 및 ACS 를 새로 반영한다. /SETSMS SCDS(CPAC.DFSMS.SCDS) 44 © IBM Corporation 2007 IBM Global Services MULTI-VOLUME DUMP MULTI-VOLUME STRIPED DUMP(17) 10. DUMPDS 명령어를 사용하여 Dump dataset dynamic allocation 을 정의한다. DD ADD,SMS=(DATA=DCMULTIV,STOR=SCMULTIV) IEF196I IGD101I SMS ALLOCATED TO DDNAME (SYS04635) IEF196I DSN (SYS1.ITS1.DMP00000 ) IEF196I STORCLAS (SCMULTIV) MGMTCLAS ( ) DATACLAS IGD101I SMS ALLOCATED TO DDNAME (SYS04635) 273 DSN (SYS1.ITS1.DMP00000 STORCLAS (SCMULTIV) MGMTCLAS ( ) ) DATACLAS (DCMULTIV) VOL SER NOS= PSS085 IEF196I (DCMULTIV) IEF196I VOL SER NOS= PSS085 IEF196I IGD105I SYS1.ITS1.DMP00000 DELETED, IEF196I DDNAME=SYS04635 IEE855I DUMPDS COMMAND RESPONSE 281 DUMPDS COMMAND SYS1.DUMP DATA SET STATUS SMS CLASSES ADDED: (DATA=DCMULTIV,MGMT=,STOR=SCMULTIV) 45 © IBM Corporation 2007 IBM Global Services TRACE TRACE란 모든 System Event에 대한 진행이 기록된 내용이다. Dump가 특정 시점의 전체 모습이라면, Trace는 일정 시간 동안의 기록이다. z/OS 자체에서 제공해 주는 trace 뿐만 아니라, 각 product와 component들도 자체 trace 기능을 제공한다. TRACE의 종류 1. SYSTEM TRACE System이 IPL되는 시점부터 shutdown 되는 시점까지 모든 내용을 기록. Memory 내의 buffer에 저장되기 때문에 그 크기에는 한계가 있어 일정 시간 동안의 내용만 보관됨. Dump를 통해서 그 내용을 확인 가능. 2. GTF TRACE Generalized trace facility로써 대부분의 일반적인 trace의 기능을 이용하기 위해 사용됨. 각종 product및 component들의 trace를 받아내는 tool. 3. GFS TRACE GETMAIN, FREEMAIN, STORAGE trace. Virtual storage의 사용에 관한 내용을 볼 수 있는 trace. 4. COMPONENT TRACE z/OS의 각 component들이 제공해 주는 trace. 46 © IBM Corporation 2007 IBM Global Services SYSTEM TRACE SYSTEM TRACE System이 IPL되는 시점부터 shutdown 되는 시점까지 모든 내용을 기록. Memory 내의 buffer에 저장되기 때문에 그 크기에는 한계가 있어, 일정 시간 동안의 내용만 보관됨. Dump를 통해서 그 내용을 확인 가능. Default buffer size는 64K이나, TRACE command를 이용해 999K까지 변경 가능. /TRACE ST,999K 47 © IBM Corporation 2007 IBM Global Services GTF TRACE GTF TRACE 준비 SYS1.PROCLIB 또는 등록된 PROCLIB에 아래와 같은 proc을 만든다. //GTFNEW PROC MEMBER=GTFPARM (1) //IEFPROC EXEC PGM=AHLGTF,PARM='MODE=EXT,DEBUG=NO,TIME=YES', // TIME=1440,REGION=2880K //IEFRDER DD DSNAME=SYS1.TRACE,UNIT=SYSDA,SPACE=(CYL,200), // (2) DISP=(NEW,CATLG) //SYSLIB DD DSN=SYS1.PARMLIB(&MEMBER),DISP=SHR 위의 예에서, (1) GTF option을 위한 PARMLIB member 명이다. 이 때, 아래와 같은 예가 있을 수 있으며, 어떤 내용을 trace하느냐에 따라 option이 달라진다. TRACE=SYSM,USR,TRC,DSP,PCI,SRM,CCW,IO,CSCH (2) GTF trace가 들어갈 output dataset 명이다. 48 © IBM Corporation 2007 IBM Global Services GTF TRACE GTF TRACE start/stop Console에서 아래와 같은 command를 수행한다. START GTF.EXAMPLE1 (1) AHL121I TRACE OPTION INPUT INDICATED FROM MEMBER GTFPARM OF PDS SYS1.PARMLIB AHL103I TRACE OPTIONS SELECTED--SYSM,USR,TRC,DSP,PCI,SRM xx AHL125A RESPECIFY TRACE OPTIONS OR REPLY U REPLY xx,U (2) AHL031I GTF INITIALIZATION COMPLETE D A,L IEE114I 14.51.49 1996.181 ACTIVITY FRAME LAST F E SYS=SY1 JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS 00000 00003 00000 00016 00000 00000/00000 00000 LLA LLA LLA NSW S VLF VLF VLF NSW S JES2 JES2 IEFPROC NSW S GTF EXAMPLE1 IEFPROC NSW S (3) . . . STOP EXAMPLE1 (4) 위의 예에서, (1) GTF를 start 시킨다. (2) 기존의 option을 계속 사용하고 싶으면 U, 추가를 원하면 원하는 option을 추가한다. (3) GTF를 stop 시키려면 먼저 GTF의 procname을 찾는다. (4) procname을 stop 시킨다. 49 © IBM Corporation 2007 IBM Global Services GTF TRACE GTF TRACE option GTF에는 아래와 같은 option들이 있어 다양한 선택이 가능하다. 각각의 option 사용에 대해서는 각 product 및 component 편을 참조하면 된다. ASIDP : Requests that GTF tracing be limited to a subset of address spaces. TRACE=ASIDP,USR ASID=0A CCW/CCWP : channel programs and associated data for I/O events. CSCH : all clear subchannel operations. DSP : all dispatchable units of work. EXT : all external interruptions. HSCH : all halt subchannel operations. JOBNAMEP : Requests that GTF tracing be limited to a subset of jobs. IO/IOP : all non-program-controlled I/O interruptions. IOX/IOXP : all non-program-controlled I/O interruptions providing a summary of a complete channel program for the I/O interruption in an I/O summary trace record. MSCH : all modify subchannel operations. PCI : intermediate status interruptions in the same format as other I/O trace records that GTF creates. PI/PIP : all program interruptions (0-255). RNIO : all Virtual Telecommunications Access Method (VTAM) network activity. RR : data associated with all invocations of recovery routines (such as STAE and ESTAE routines). SLIP : a trace entry be made each time: A match occurs for a SLIP trap with ACTION=TRACE A SLIP trap with the SLIP DEBUG option is checked SRM : recording of trace data each time the system resource manager (SRM) is invoked. SSCH/SSCHP : start subchannel and resume subchannel operations. 50 SVC : all SVC interruptions. SYS/SYSP : Trace records for CSCH, HSCH, MSCH, SSCH, EXT, IO, PI, RR, SVC SYSM : minimal trace data for the same events as SYS. TRC : trace events that are associated with GTF itself. USR/USRP : Requests GTF prompting for specific event identifiers (EID) of the data that the GTRACE macro passes to GTF. USR=F9 : Open/Close activities of VSAM Data Set. USR=FD : Used by VTAM. USR=FE : When abend occurs at BSAM, QSAM, BPAM, BDAM. USR=FF : Whend abend occrus during OPEN, CLOSE, EOV. © IBM Corporation 2007 IBM Global Services CCW TRACE CCW TRACE GTF trace의 일종으로 device에 발생한 문제를 분석하기 위해 trace를 받는다. SYS1.PARMLIB에 아래와 같은 member를 만들어 GTF를 start 시킨 후, 문제를 재발시켜 trace를 받아낸다. TRACE=IOP,CCWP,SIOP,PCI CCW=(SI,CCWN=512,DATA=16,PCITAB=5) IO=SIO=(100,101,102,103) 51 © IBM Corporation 2007 IBM Global Services GFS TRACE GFS TRACE(1) Storage 문제의 분석을 위한 trace로서 GTF의 기능을 이용한다. 1. 우선 아래와 같은 SYS1.PARMLIB member를 만들어 DIAGxx라는 이름으로 저장한다. 여기서는 ASID 3,5,6,7,8 에 대한 GFS trace를 받아내는 예를 들어본다. VSM TRACE GETFREE (ON) ASID (3, 5-9) LENGTH (24) DATA (ALL) 위의 예에서, 만약 SYS1.PARMLIB에 DIAG01이라는 member로 만들었다면…. 52 © IBM Corporation 2007 IBM Global Services GFS TRACE GFS TRACE(2) 2. Console 상에서 아래의 command를 이용해 GFS trace를 activate 시킨다. T DIAG=xx 위의 예에서, T DIAG=01 로 된다. 53 © IBM Corporation 2007 IBM Global Services GFS TRACE GFS TRACE(3) 3. SYS1.PARMLIB에 아래와 같은 GTF option member를 만들고 GTF를 start 시킨다. TRACE=USRP USR=(F65) 54 © IBM Corporation 2007 IBM Global Services GFS TRACE GFS TRACE(4) 4. 문제 발생 상황을 기다렸다 문제 상황이 발생하면 GTF를 stop 시키고, 미리 만들어 둔 아래 DIAGxx member를 activate 시킨다. VSM TRACE GETFREE (OFF) 위의 예에서, 위의 member를 DIAG00으로 만들었다면, T DIAG=00 command를 issue한다. 55 © IBM Corporation 2007 IBM Global Services COMPONENT TRACE COMPONENT TRACE(1) z/OS의 거의 모든 component는 각각의 trace 기능을 제공한다. 이러한 각각의 component가 제공하는 trace를 받아내는 방법은 IBM support center의 자문을 받게 되지만, 일반적으로 아래의 command를 이용한다. TRACE CT,ON,COMP=name,OPTIONS=(options..),END TRACE CT,OFF,COMP=name 각 component의 이름과 option은 각 문제 상황에 따라 IBM에서 제공하게 된다. 56 © IBM Corporation 2007 IBM Global Services COMPONENT TRACE COMPONENT TRACE(2) 일반적인 component trace의 이름과 option은 아래와 같다. SYSAPPC : Advanced Program-to-Program Communication/MVS (APPC/MVS) TRACE CT,ON,NAME=SYSAPPC,OPTIONS=(GLOBAL),END SYSDLF : Data lookaside facility (DLF) of VLF SYSDSOM : Distributed function of SYSGRS SOMobjects : Global resource serialization TRACE CT,ON,COMP=SYSGRS,OPTIONS=(CONTROL,MONITOR,REQUEST),END SYSIOS : IOS Component Trace SYSJES : JES common coupling services SYSjes2 : JES2 rolling trace table SYSLLA : Library lookaside (LLA) of contents supervision SYSLOGR : System Logger SYSOMVS : OS/390 UNIX System Services (OS/390 UNIX) TRACE CT,ON,COMP=SYSOMVS,OPTIONS=(ALL),END SYSOPS : Operations services (OPS) SYSRRS : Resource recovery services (RRS) SYSRSM : Real storage manager (RSM) TRACE CT,ON,COMP=SYSRSM,OPTIONS=(VIO,FAULTS),END SYSSPI : Service processor interface (SPI) SYSTTRC : Transaction trace (TTRC) SYSVLF : Virtual lookaside facility VLF) SYSWLM : Workload manager (WLM) SYSXCF : Cross-system coupling facility (XCF) TRACE CT,ON,NAME=SYSXCF,OPTIONS=(GROUP,STATUS),END SYSXES 57 : Cross-system extended services (XES) © IBM Corporation 2007 IBM Global Services SLIP SLIP System에서 일어나는 거의 모든 event에 대해 trigger를 걸어 자료를 받을 수 있는 방법이다. SYSPLEX 환경에서는 IEASLPxx PARMLIB member에 넣어 둘 수 있다. 58 © IBM Corporation 2007 IBM Global Services SLIP Operation - T SLIP SET SLIP= PARMLIB에 들어 있는 IEASLPxx member를 activate 시킬 때 사용하는 command 이다. T SLIP=xx 59 © IBM Corporation 2007 IBM Global Services SLIP Operation - D SLIP DISPLAY SLIP 현재 걸려 있는 SLIP들을 확인 할 때 사용되는 command 이다. /D SLIP (1) IEE735I 11.05.29 SLIP DISPLAY 694 ID STATE ID STATE ID STATE ID STATE ID STATE X013 ENABLED X028 ENABLED X052 ENABLED X058 ENABLED X066 ENABLED X070 ENABLED S071 ENABLED SS71 ENABLED X073 ENABLED X0DX ENABLED X0E7 ENABLED X0F3 ENABLED X13E ENABLED X1C5 ENABLED X222 ENABLED X322 ENABLED X33E ENABLED S3C4 ENABLED X422 ENABLED X47B ENABLED X622 ENABLED X71A ENABLED X804 ENABLED X806 ENABLED X80A ENABLED X81A ENABLED X91A ENABLED X9FB ENABLED XB37 ENABLED XC1A ENABLED XD1A ENABLED XD37 ENABLED XE37 ENABLED XEC6 ENABLED XXC6 ENABLED X456 ENABLED /D SLIP=X80A (2) IEE735I 11.05.58 SLIP DISPLAY 696 ID=X80A,NONPER,ENABLED ACTION=NOSVCD,NOSYSU,SET BY CONS INTERNAL,RBLEVEL=ERROR,COMP=80A 위의 예에서, (1) 전체적인 slip의 상태를 확인하고, (2) 그 중 특정한 SLIP의 자세한 내용을 확인한다. 60 © IBM Corporation 2007 IBM Global Services SLIP Operation - SL SET SLIP SET SLIP을 start하기 위한 command 이다. /SL SET,options 자세한 option은 다음 장에 확인한다. 61 © IBM Corporation 2007 IBM Global Services SLIP options SLIP options(1) ACTION|A=SVCD/IGNORE/NODUMP/NOSUP/STDUMP/TRACE/TRDUMP/WAIT SVCD : SVC Dump (default) - ASIDLIST|AL=(id,id) : id=asid/CURRENT/HASID/PASID/SASID - LIST|LS=(start,end) : storage start & end addr ranges - SDATA|SD=(ALLPSA,NUC,RGN,CSA,LPA,SQA,SUM,TRT) : dump area - SUMLIST|SL=(start,end) : storageaddr in SUMMARY dump TRACE : Trace into GTF (GTF: TRACE=SLIP, IPCS: GTF SLIP is required) - TRDATA|TD=(STD,REGS,start,end) : trace data ODUMP : Suppress SVCDUMP, SYSABEND, SYSUDUMP, or SYSMDUMP NOSUP : Don't suppress DUMP (by DAE etc.) NOSVCD : Suppress all SVC dump NOSYSA/NOSYSM/NOSYSU : Suppress SYSABEND/SYSMDUMP/SYSUDUMP RECORD : Force SYS1.LOGREC recording for every recovery (ex. ABEND) RECOVERY : Initiate recovery process with ABEND '06'F at PER events STDUMP : SLIP system trace records when ENABLED, & SVCDUMP at DISABLED STRACE : Create SLIP system trace records TRDUMP : Trace records while ENABLED, & SVCDUMP when DISABLED WAIT : Put system into STOP by msg IEE837I until 'U' is replied. If console is unavailable, system enters Restartable-Wait '01B' ADDRESS|AD=(start,end): Instruction address range(invalid for IF or SB) ASID|AS=(id) : Address space ID selection ASIDSA|ASA=(id) : ASID of storage being Altered (SA) - PER COMP|C=code : Completion code (eg. 001, X23, U1021), <REASON=code> DATA|DA=(target,op,value): Storage or GPR data to be compared for match target : virtual address, GPR-x (xR), Indirect address (%) op : EQ(Equal), NE(Not Equal), GT(Greater Than), LT(Less Than), NG(Not Greater Than), NL(Not Less Than) Value : Hex Digits (Max 4 bytes) (right justified for GPR) or Binary Bits if Bit position is specified in target ex) DA=(A24,EQ,3CA79) : Compare 2 & a half byte at loc. A24 DA=(5R(0),010) : Compare GPR-5 Bit 0 through 2 with B'010' DA=(1R,EQ,4,AND,(2R,NE,8,OR,3R,EQ,C)) : GPR contents 62 © IBM Corporation 2007 IBM Global Services SLIP options SLIP options(2) DISABLE|D : Initially Disabled the TRAP (Enter 'SL MOD,ENABLE,ID=xxxx') DSPNAME=(asid.name) : ASID & DATA-Space name to be included in SVCDUMP DSSA=(asid.name) : ASID & DATA-Space name to be trap storage alter (SA) ENABLE|EN : Initially Activate the TRAP (default is Enable) END|E : End of SLIP command specification ERRTYP|ER=PROG/REST/SVCERR/PGID/DAT/MACH/MEMTERM/ABEND/ALL ID=xxxx : SLIP ID (default is system assigned sequential 4 digits) JOBNAME|J=jobname : Specific jobname selection JSPGM|JS=pgmname : Jobstep program name in control LPAMOD|L=(modname,start,end) : LPA module name to be monitored LIST|LS=(start,end,start,end) : SVC dump address range MATCHLIM|ML=n : TRAP is to be Disabled after 'n' matches (n=1-65535) default is for ACTION=SVCD is 1, and infinite for others MODE|M=ANY/DIS/GLOC/GLOCSD/GLOCSP/HOME/LLOC/LOCK/PKEY/PP/ RECV/SKEY/SRB/SUPER/SUPR/TCB/TYP1/ALL NUCMOD|N=(modname,start,end) : Module in NUCLEUS to be monitored PRCNTLIM|PL=p : max percentage of PER after 33.55 sec. (default=10) PSWASC|(H|P|S) : PSW address space control mode PVTMOD|P=(modname,start,end) : Private area load module name RANGE|RA=(start,end) : For PER trap, addr of target virtual storage RBLEVEL|RB=ERROR/PREVIOUS/NOTSVRB : Which RB's Regs for indirect addr REMOTE=(SYSLST=(sysxxx,..)) : XCF system ID list for the action SUMLIST|SL=(start,end) : Storage data to be included in SUMMARY dump TRDATA|TD=(STD,REGS,start,end) : start,end is storage address range 63 © IBM Corporation 2007 IBM Global Services SLIP Operation - SL MOD SLIP MOD SLIP을 disable시키거나, 또는 disable된 SLIP을 enable시킬 때 사용하는 command 이다. /D SLIP=X80A IEE735I 11.05.58 SLIP DISPLAY 696 ID=X80A,NONPER,ENABLED (1) ACTION=NOSVCD,NOSYSU,SET BY CONS INTERNAL,RBLEVEL=ERROR,COMP=80A /SL MOD,D,ID=X80A (2) /D SLIP=X80A IEE735I 11.12.40 SLIP DISPLAY 702 ID=X80A,NONPER,DISABLED (3) ACTION=NOSVCD,NOSYSU,SET BY CONS INTERNAL,RBLEVEL=ERROR,COMP=80A /SL MOD,EN,ID=X80A (4) /D SLIP=X80A IEE735I 11.13.38 SLIP DISPLAY 713 ID=X80A,NONPER,ENABLED (5) 위의 예에서, (1) 현재 enable되어 있는 slip을 (2) Disable 시킨 후, (3) 확인하고, (4) Enable 시킨 후, (5) 확인한다. 64 © IBM Corporation 2007 IBM Global Services SLIP Operation - SL DEL SLIP DEL SLIP을 제거할 때 사용하는 command 이다. /D SLIP IEE735I 11.16.51 SLIP DISPLAY 715 ID STATE ID STATE ID STATE ID STATE ID STATE X013 ENABLED X028 ENABLED X052 ENABLED X058 ENABLED X066 ENABLED X070 ENABLED S071 ENABLED SS71 ENABLED X073 ENABLED X0DX ENABLED X0E7 ENABLED X0F3 ENABLED X13E ENABLED X1C5 ENABLED X222 ENABLED X322 ENABLED X33E ENABLED S3C4 ENABLED X422 ENABLED X47B ENABLED X622 ENABLED X71A ENABLED X804 ENABLED X806 ENABLED X80A ENABLED X81A ENABLED X91A ENABLED X9FB ENABLED XB37 ENABLED XC1A ENABLED XD1A ENABLED XD37 ENABLED XE37 ENABLED XEC6 ENABLED XXC6 ENABLED (1) X456 ENABLED /SL DEL,ID=XD37 (2) IEE727I SLIP TRAP ID=XD37 DELETED /D SLIP IEE735I 11.17.47 SLIP DISPLAY 724 ID STATE ID STATE ID STATE ID STATE ID STATE X013 ENABLED X028 ENABLED X052 ENABLED X058 ENABLED X066 ENABLED X070 ENABLED S071 ENABLED SS71 ENABLED X073 ENABLED X0DX ENABLED X0E7 ENABLED X0F3 ENABLED X13E ENABLED X1C5 ENABLED X222 ENABLED X322 ENABLED X33E ENABLED S3C4 ENABLED X422 ENABLED X47B ENABLED X622 ENABLED X71A ENABLED X804 ENABLED X806 ENABLED X80A ENABLED X81A ENABLED X91A ENABLED X9FB ENABLED XB37 ENABLED XC1A ENABLED XD1A ENABLED XE37 ENABLED XEC6 ENABLED XXC6 ENABLED X456 ENABLED (3) 위의 예에서 (1) 현재 있는 SLIP XD37을 (2) 제거하고, (3) 확인한다. 65 © IBM Corporation 2007 IBM Global Services SLIP 예 SLIP으로 dump 받기 ABEND가 발생할 때 dump가 발생하지 않으면 SLIP command을 이용해 Dump를 받는다. 다음 SLIP command를 이용한다. SLIP SET,A=SVCD,C=04E,J=CICSAOR3,JL=(DSNP*,CICSAOR3),END (1) SLIP SET,A=SVCD,C=04E,J=DSNPDBM1,AL=(CU,P,H,S),END (2) 위의 예에서, (1) CICSAOR3에서 ABEND04E가 발생하면, DSNPMSTR, DSNPDBM1, DSNPIRLM등과 CICSAOR3를 받아 낸다. (2) DSNPDBM1에서 ABEND04E가 발생하면, current ASID, primary ASID, home ASID, secondary ASID를 받아낸다. 66 © IBM Corporation 2007 IBM Global Services SLIP 예 특정 reason code에 대해 dump 받기 특정 reason code에 대해서 Dump가 필요할 경우, SLIP command을 이용해 Dump를 받는다. 다음 SLIP command를 이용한다. SLIP SET,A=SVCD,C=04E,DATA=(15R,EQ,00C90101),JL=(DSNPMSTR,DSNPDBM1, DSNPDIST,DSNPSPAS),END 위의 예에서, ABEND04E, RC=00C90101이 발생했을 때, DB2 관련 address space들의 Dump를 받아낸다. Manual 상에 REASON= 이라는 parameter도 있으나 작동하지 않는 경우도 있다. 67 © IBM Corporation 2007 IBM Global Services SLIP 예 특정 message에 대해 dump 받기 특정 message에 대해서 Dump가 필요할 경우, SLIP command을 이용해 dump를 받는다. 다음 SLIP command를 이용한다. SLIP SET,IF,LPAMOD=(IGC0003E,0),DATA=(1R?+4,EQ,C4E7D9F1,+8,EQ,F6F7C5), A=SVCD,JL=(DSNPMSTR,DSNPDBM1,DSNPIRLM),END 위의 예에서, DXR167E가 발생했을 때, DB2 관련 job들의 dump를 받아 내기 위해, DXR167E를 EBCDIC code로 변환시키면 C4E7D9F1F6F7C5이 된다. Manual 상에 MSGID= 이라는 parameter도 있으나 간혹 작동하지 않는 경우도 있다. 68 © IBM Corporation 2007 IBM Global Services LOGREC(EREP) LOGREC 또는 EREP 모든 종류의 H/W, S/W type의 error가 기록되는 LOG 이다. DUMP가 발생하지 않거나 했을 상황에서 유일한 error 기록이 될 수도 있다. LOGREC은 다음과 같은 JCL을 이용해 계속 축적해 두어야 한다. //EREP JOB MSGLEVEL=(1,1),CLASS=A,REGION=4M //EREPDALY EXEC PGM=IFCEREP1,PARM=('HIST,ACC=Y,SYSUM') //ACCDEV DD DSN=EREP.HISTORY, // DISP=(NEW,CATLG), // DCB=(RECFM=VB,BLKSIZE=4000), // UNIT=SYSDA,SPACE=(CYL,(25,5)) //DIRECTWK DD UNIT=SYSDA,SPACE=(CYL,15,,CONTIG) //TOURIST DD SYSOUT=A,DCB=BLKSIZE=133 //EREPPT DD SYSOUT=A,DCB=BLKSIZE=133 //SYSABEND DD SYSOUT=A //SYSIN DD DUMMY /* 69 © IBM Corporation 2007 IBM Global Services LOGREC(EREP) EREP printing 다음과 같은 JCL을 이용해 print 한다. //EREP JOB MSGLEVEL=(1,1),CLASS=A,REGION=4M //S1 EXEC PGM=IFCEREP1,PARM=(’DATE=(2003112,2003112)’, // ‘TIME=(1300,1400)LINECT=60,ACC=Y,HIST=N,ZERO=N’, // ‘PRINT=PS,TYPE=S') //ACCIN DD DSN=EREP.HISTORY,DISP=SHR //SERLOG DD DSN=SYS1.LOGREC,DISP=SHR //TOURIST DD SYSOUT=A,DCB=BLKSIZE=133 //EREPPT DD SYSOUT=A,DCB=BLKSIZE=133 //SYSUDUMP DD SYSOUT=A 70 © IBM Corporation 2007 IBM Global Services LOGREC(EREP) EREP printing option SD : Detail Summary DR : Data Reduction PS : Detail & Summary PT : Detail SU : Detail Summary AL : All of above NO : No Print EREP printing type A : Asynchronous Notify(SIM, ETR, ESCON, Link Incident) C : CCH/SLH/CRW D : DDR E : EOD(End Of Day) H : MIH(Missing Interrupt Handler) M : MCH(Machine Check Handler) I : IPL Record O : OBR(Out Bound Record) S : Software T : MDR(Miscellaneous Data Record) X : IOS Record 71 © IBM Corporation 2007 IBM Global Services DUMP suppression DUMP suppression 72 원하지 않은 Dump는 System Resource를 낭비하지 않기 위해 Suppression하는 것이 좋다. 원하지 않은 Dump를 Suppress하는 경우는 다음과 같다. 1. 중복된 Dump : 이미 받은 Dump는 다시 받을 필요가 없으므로 DAE를 이용하여 Suppress 한다. 2. 특정 ABEND CODE 에 대한 Dump : 특정 ABEND CODE는 그 ABEND CODE 자체에 의미가 함축되어 있으므로 SLIP Command를 이용하여 Dump를 Suppress 한다. 3. Application Program에서 발생하는 Dump : 어떤 Application Program에서 발생되는 ABEND Code에 대한 Dump는 ABEND Macro에 Dump Parameter를 주지 않음으로써 Dump를 Suppress 할 수 있다. 4. Dumps the installation decide are not needed : 어떤 Dump가 필요 없다고 판단되면 Installation Exit Routine인 IEAVTABX나 IEAVTSEL을 사용함으로써 Dump를 Suppress할 수 있다. © IBM Corporation 2007 IBM Global Services DAE Dump Analysis & Elimination 73 DAE(Dump Analysis and Elimination)는 이미 받은 Dump에 대해 Suppress 한다. 중복된 Dump라고 DAE가 판단하면 System은 더 이상 Dump를 받지 않고 System 성능향상을 기할 수 있다. DAE는 중복된 Dump를 가려내고 Dump Suppression 하기 위해 Symptom String을 사용한다. DAE는 다음과 같이 수행한다. 1. DAE는 Abend Code, Failing Instruction, Component Name, Load Module Name, 그리고 CSECT Name등을 SDWA나 SYMREC으로 부터 Problem Data를 얻는다. 2. DAE는 Problem Data의 각 Field에 Descriptive Keyword를 더함으로써 문제 Symptom을 형성한다. 3. DAE는 Dump로부터 얻은 Symptom String을 이전 Dump의 Symptom String에 Match 시킬려고 시도한다. 4. DAE는 Symptom String을 Storage에 먼저 Update하고 나중에 Update가 요청되면 DAE Data Set에 Update 한다. 5. DAE는 Dump Suppression이 Enable되어 있으면 중복된 Dump를 Suppression한다. © IBM Corporation 2007 IBM Global Services DAE Operation DAE 준비(1) 아래와 같은 PARMLIB member ADYSETxx 2개를 만든다. 본 예에서는 ADYSET00과 ADYSET01로 한다. ADYSET00 DAE=START,RECORDS(400), (1) SVCDUMP(MATCH,SUPPRESSALL,UPDATE,NOTIFY(3,30)), (2) SYSMDUMP(MATCH,UPDATE) (3) ADYSET01 DAE=STOP (4) 위의 예에서, (1) DAE를 Start하고 400 개의 Symptom String을 Virtual Storage에 보관하고, (2) SVC Dump는 Symptom String이 Match되면 Suppression 하고, Match되지 않으면 Symptom String을 Update 하고, (3) SYSMDUMP는 Suppression하지 않는다. (4) DAE를 stop 시킨다. 74 © IBM Corporation 2007 IBM Global Services DAE Operation DAE 준비(2) 아래와 같은 JCL을 이용해 DAE dataset을 만든다. Single System이면 Default Name인 SYS1.DAE를 사용하고, SYSPLEX 환경이면 서로 다른 Name의 DAE Data Set을 사용한다. //DAE 75 DD DSN=SYS1.DAE,DISP=(,CATLG),VOL=(,RETAIN,SER=SG2001), // DCB=(RECFM=FB,LRECL=255,DSORG=PS,BLKSIZE=0), // UNIT=3390,SPACE=(TRK,(6,2) © IBM Corporation 2007 IBM Global Services DAE Operation DAE start/stop Console에서 아래의 command들을 이용해, 미리 만들어 둔 PARMLIB의 ADYSET member들을 activate 시킨다. /T DAE=00 /T DAE=01 76 © IBM Corporation 2007 IBM Global Technology Services IMS 김호식 cpshsk@kr.ibm.com IBM Global Services IMS 목차 IMS DUMP 개요 ………………………………………………………… 79 IMS DUMP Setup 권고사항 …………………………………………… 80 78 CQS Setup 권고사항 …………………………………………………… 82 IMS 문제분석을 위한 기본 자료 ……………………………………… 83 IMS 문제 유형과 필요 자료 …………………………………………… 86 © IBM Corporation 2007 IBM Global Services IMS DUMP 개요 - DUMP는 IMS가 수행하면서 ABEND가 발생하면 그 당시 일정 Storage부분과 PSW 그리고 그 당시 Register값을 받아 저장하는 것을 의미한다. 그리고 일정한 때에 Storage부분을 강제로 받아낼 수 있다. Dump해 내는 부분은 Dump Option의 영향을 받는다. - IMS ABEND는 Standard ABEND와 PSEUDO ABEND로 구분된다. Standard ABEND : 대부분의 IMS ABEND는 Standard ABEND이며(EX. ABENDU0757) Dump는 SYS1.DUMPxx또는 SYSABEND/SYSUDUMP DD에 받고 대부분이 Control 또는 Dependent Region이 Down된다. PSEUDO ABEND : PSEUDO ABEND는 Down은 되지 않고 그 Task는 Scheduling을 다시 하며 Dump는 OLDS(Log Record Type: 67FF)에 기록된다. ABENDU0777이 PSEUDO ABEND의 한 예이다. 79 © IBM Corporation 2007 IBM Global Services IMS DUMP Setup 권고사항 - FMTO option o IMS control region EXEC parm value : FMTO=D ABEND시 SDUMP를 발생시킨다. o SYS.DUMPxx에 DUMP가 기록되며 적어도 다음과 같은 Option이 필요하다. CHNGDUMP Command로 Option을 바꿀 수도 있고 SYS1.PARMLIB의 Member COMMANDxx나 IEACMDxx에 CHNGDUMP Command를 넣어놓으면 항상 이 Option이 유효하다. SDUMP=(CSA, LSQA, RGN, SQA, SUM, SWA, TRT) - SYSUDUMP o IMS Dependent Region이 ABEND되면 DUMP는 SYSUDUMP DD Card에 기록된다. o 다음과 같은 Option이 필요하다. SDATA=(CB, ERR, SUM) PDATA=(JPA, LPA, PSW, REGS, SA, SPLS)를 SYS1.PARMLIB Member IEADMP00에 넣어 놓거나 CHNGDUMP Command로 이 Option을 바꿀 수도 있고 Display Dump Command로 현재의 Option을 Display해 볼 수 있다. - SYSMDUMP o 다음의 Region JCL에 SYSMDUMP DD를 지정할 수 있다. IMS Control Region IMS DLI/SAS Region IMS DBRC Region o SDUMP가 실패 시 IMS가 SYSMDUMP DD지정을 이용한다. o SYS1.PARMLIB의 Member IEADMR00에 SDATA=(CSA,LSQA,RGN,SQA,SUM,SWA,TRT)로 Dump Option을 Setting한다. CHNGDUMP Command로 이 Dump Option을 바꿀 수도 있고, Display Dump Command로 현재의 Option을 Display해 볼 수 있다. 80 © IBM Corporation 2007 IBM Global Services IMS DUMP Setup 권고사항 - PSEUDO ABEND IMS가 수행 중에 PSEUDO ABEND가 되면 그 Task는 다시 Scheduling되고 Dump는 OLDS(Log Record Type: 67FF)에 기록된다. Utility를 이용하여 Print한다. - Table Traces o IMS Dispatcher, Scheduler, DLI and Lock traces IMS Proclib Member DFSVSMxx에 다음의 option을 지정한다. DISP=ON,SCHD=ON,DL/I=ON,LOCK=ON 또는 IMS command “/TRA SET ON TABLE nnnn”을 사용한다. (nnnn=DISP, SCHD, DLI and LOCK) o LATCH trace는 필요 시 지정하며 약 10%의 overhead 가 있다. - External Trace Environment o IMS trace output이 IMS OLDS가 아니라 IMS trace dataset에 write 된다. DFSVSMxx proclib member 에 DISP=OUT option 지정한다. IMS TRACE command 시 LOG option 지정한다. o External trace dataset은 다음순서로 allocation 된다. 1. DASD JCL : DFSTRA01 & DFSTRA02 DDNAMES 2. DASD MDA : DFSTRA01 & DFSTRA02 Dyanamic Allocation Members 3. TAPE MDA : DFSTRA0T Dynamic Allocation Member 4. IMS OLDS : 상기 1,2,3 이 발견이 안될 경우 81 © IBM Corporation 2007 IBM Global Services CQS Setup 권고사항 - Trace Environment o CQS execution parameter BPECFG=nnnnnnnn 지정한다 o BPECFG=nnnnnnnn proclib member내에 다음의 trace entry를 지정한다. --DEFINITIONS FOR BPE SYSTEM TRACES TRCLEV=(AWE,LOW,BPE) /* AWE SERVER TRACE * TRCLEV=(CBS,LOW,BPE) /* CONTROL BLK SRVCS TRACE * TRCLEV=(DISP,LOW,BPE) /* TRCLEV=(LATC,LOW,BPE) /* LATCH TRACE * TRCLEV=(SSRV,LOW,BPE) /* * TRCLEV=(STG,LOW,BPE) /* STORAGE TRACE TRCLEV=(USRX,LOW,BPE) /* USER EXIT TRACE * TRCLEV=(CQS,LOW,CQS) /* CQS GENERAL TRACE * TRCLEV=(STR,LOW,CQS) /* CQS STRUCTURE TRACE * TRCLEV=(INTF,LOW,CQS) /* CQS INTERFACE TRACE * DISP WITH 12 PAGES (48K) GEN SYS SERVICES TRACE * * --DEFINITIONS FOR CQS TRACES 82 © IBM Corporation 2007 IBM Global Services IMS 문제 분석을 위한 기본 자료 - MVS Console (Syslog) o System 관련 Message를 보기 위해 필요하다. The ideal time frame: Back to the last IMS restart. The moderate time frame: 24 hours of MVS Console messages. The minimum time frame: Two IMS system checkpoint intervals. - JES JOBLOG o Job 관련 Message를 보기 위해 필요하다. Save the JES JOBLOGs for The IMS Control Region The IMS DLI/SAS Region The IMS DBRC Region Any suspicious IMS Dependent Regions CQS Regions The ideal time frame: JES JOBLOG from the current error execution JES JOBLOG from the prior clean execution (For comparison) The moderate time frame: 24 hours of JES JOBLOG The minimum time frame: Two IMS system checkpoint intervals or two hours, whichever is greater. 83 © IBM Corporation 2007 IBM Global Services IMS 문제 분석을 위한 기본 자료 - IMS Master Console Log o IMS 관련 Message를 보기 위해 필요하다. The ideal time frame: IMS Master Console Log from the current error execution IMS Master Console from the prior clean execution (For comparison) The moderate time frame: 24 hours of IMS Master Console The minimum time frame: Two IMS system checkpoint intervals or two hours, whichever is greater. - SYS1.LOGREC o 내부적으로 logging 된 System Failure를 보기 위해 필요하다. The ideal time frame: Back to the last IMS restart. The moderate time frame: 48 hours of SYS1.LOGREC data. The minimum time frame: Current SYS1.LOGREC dataset. - DUMP o 모든 IMS 관련 DUMP는 보관한다. - IMS OLDS/SLDS o IMS LOG 분석이 필요 시를 대비하여 보관한다. The ideal time frame: From the time last IMS restart / Prior execution The moderate time frame: 24 hours of IMS Log Records The minimum time frame: Active IMS OLDS 84 © IBM Corporation 2007 IBM Global Services IMS 문제 분석을 위한 기본 자료 - 추가자료 o IMS Hang인 경우 과거의 경험에 의하면 아래와 같은 많은 Address Space가 관련되어 발생한다. IMS Control Region IMS DLI/SAS Region DBRC Region Troublesome IMS Dependent Regions IRLM Region CCTL Regions APPC VTAM ESAF - DB2, MQSeries, others Other Regions ??? Other IMSplex members 85 © IBM Corporation 2007 IBM Global Services IMS 문제 유형과 필요 자료 - IMS SYSPLEX DUMP o IMSplex의 한 member의 문제는 다른 member에서 발생한 문제가 원인일 수 있다. 따라서 IMS Wait/Loop 또는 일부 Function 이상과 같은 문제일 경우 IMSplex 내의 타 member에서도 DUMP를 받아야 한다. - Control Region Wait/Hang o Control Region 포함하여 관련 Address Space에 대한 Dump를 받는다. - IMS Loop o MVS System trace table size를 999k로 확장한다. TRACE ST,999k,BR=ON o IMS trace 를 command를 이용해 on 시킨다. /TRA SET ON TABLE nnnn (where nnnn=DISP, SCHD, DLI, LOCK and LATCH) o 관련 IMS region의 DUMP를 받는다. - ESAF (External Subsystem Attach Facility) Interface 문제 o IMS SUBS TRACE를 active 시킨다. /TRA SET ON TABLE SUBS OPTION LOG o 문제를 재발시켜 관련 region의 DUMP를 받는다. - DBRC 관련 문제 o Repair 전에 DBRC RECON의 List를 확보한다. Recover Control Utility (DSPURX00) – LIST.RECON command o 만약 위의 List를 얻을 수 없으면 Subsystem List를 확보한다. LIST.SUBSYS ALL command o 만약 문제 재발이 가능하면 RECON의 전후 copy를 확보한다. 86 © IBM Corporation 2007 IBM Global Services IMS 문제 유형과 필요 자료 - DBCTL 관련 문제 o IMS command “/DISPLAY ACTIVE” 와 “/DISPLAY CCTL” 를 수회 issue 한다. o AP portion of the CICS trace to level 1-2 를 지정한다. o FC (File Control) portion of the CICS trace to level 1-2 를 지정한다. o 관련 IMS region, CCTL region 의 DUMP 를 받는다. - DC 관련 문제 o IMS DISPLAY NODE x command 를 issue 한다. /DIS NODE nodename o IMS NODE TRACE 를 on 시키며 output 은 TYPE6701 log record 에 write 된다. /TRA SET ON NODE nodename o VTAM Buffer & VTAM Internal Trace 를 함께 on 시킨다. 이때 GTF 는 USR option 으로 active 되어 있어야 한다. F NET,TRACE,TYPE=BUF,ID=nodename F NET,TRACE,TYPE=VTAM,MODE=EXT,OPT=(API,PIU,MSG) o 관련 IMS region 및 VTAM 의 DUMP 를 받는다. - IMS TPIPE & OTMA traces o /TRA SET ON TMEMBER tmembername TPIPE ALL /TRA SET ON TABLE OTMT OPTION LOG - CQS 관련 문제 o 기본자료 외에 다음의 추가 자료가 필요하다. MVS LOG Stream (IMS Shared Queue 관련 문제시) 관련 CQS region DUMP CQS Structure DUMP (IMS wait, CQS wait, restart & structure rebuild 문제시) Dump 된 structure 의 가장 최근 CQS SRDS (Structure Recovery Data Set) 87 © IBM Corporation 2007 IBM Global Technology Services CICS 나미경 mkna@kr.ibm.com IBM Global Services CICS 목차 CICS DUMP ……………………………………………………………… 90 89 CICS Trace …………………………………………………………… 96 CICS 문제 유형과 필요 자료 ………………………………………… 106 © IBM Corporation 2007 IBM Global Services CICS DUMP – Transaction Dump (1) CICS 수행 중, 오류발생시 종류와 User 가 정의한 것에 따라 Transaction Dump 와 System Dump dataset을 사용한다. IPCS를 사용한 dump 분석을 위해서는 System Dump data set 을 받도록 해야 한다. 1) CICS Transaction Dump data set 할당 CICS는 Dump의 종류에 따라 z/OS의 SYS1.DUMPnn 및 CICS 자체의 DUMP dataset이 필요하다. System Dump data set 은 z/OS에서 지정한 data set 을 사용 하게 되고, Transaction Dump dataset 은 CICS에서 제공하는 DFHDEFDS Job을 이용하여 고객의 실정에 맞게 수정한다. //DFHDMPA // DISP=(NEW,CATLG),SPACE=(CYL,(5,1)) //DFHDMPB // DD DSN=CICSTS12,applid.DFHDMPA,UNIT=3380,VOL=SER=volid, DD DSN=CICSTS12,applid.DFHDMPB,UNIT=3380,VOL=SER=volid, DISP=(NEW,CATLG),SPACE=(CYL,(5,1)) 2) CICS Transaction Dump data set을 사용하기 위해 Startup JCL에 DD statement로 정의 //DFHDMPA DD DSN=CICSTS.applid.DFHDMPA,DISP=SHR //DFHDMPB DD DSN=CICSTS.applid.DFHDMPB,DISP=SHR 3) CICS Transaction Dump data set 사용하기 위한 제어 Command CICS DUMP data set 조회 Command CEMT INQ DUMPDS Dump data set이 open 되어 있는지 여부와, DFHDMPA와 DFHDMPB중 어느 것이 사용하고 있는지를 확인할 수 있다. CEMT Set DUmpds [Open | CLosed | Switch] [Autoswitch | Noautoswitch] Dump data set의 switch , open 및 close 한다. 90 © IBM Corporation 2007 IBM Global Services CICS DUMP – Transaction Dump (2) 4) Transaction Dump 제어 command < 이미 정의되어있는 내용 조회> CEMT INQ TRDUMPCODE[(CODE)] [ALL] [TRANDUMP | NOTRANDUMP] [SHUTDOWN | NOSHUTDOWN] [MAXIMUM(value)] [CURRENT(value)] < Table 에 정의> CEMT SET TRDUMPCODE[(CODE)] [ALL] [TRANDUMP | NOTRANDUMP] : 해당 code에 맞는 ABEND 내용을 System dump로 저장 할 것인지 여부 결정 [SHUTDOWN | NOSHUTDOWN] : tran dump가 발생하였을 때, cics를 shut-down할 것인지 여부 결정 [MAXIMUM(value)] : 해당 code에 대한 transaction dump를 허락하는 최대수 [RESET|REMOVE|ADD] : 기존 Table 에서 제거/추가/변경 <Command 사용 예> CEMT INQ TRDUMPCODE STATUS : RESULTS - OVERTYPE TO MODIFY Trd( AEIN ) Tra Max( 999 ) Cur(0003) Trd( ARCH ) Sys Max( 005 ) Cur(0002) Trd( ASRA ) Tra Max( 010 ) Cur(0001) Trd( ASRB ) Tra Max( 005 ) Cur(0000) Trd( ATNI ) Max( 000 ) Cur(0047) Trd( MARD ) Tra Sys Shu Max( 001 ) Cur(0000) Trd( GONE ) 91 Shu Max( 005 ) Cur(0000) © IBM Corporation 2007 IBM Global Services CICS DUMP – Transaction Dump (3) 5) Transaction Dump format(Print) 하는 방법 IPCS 가 아닌 text format 으로 DUMP 내용을 Print 하여 분석이 필요할 시 사용한다. CICS Utility programm인 DFHDUP(CICS/ESA V4.1 이하), DFHDU410(V4.1인경우) , DFHDU520(TS 1.2인경우) 을 이용하여 시간별, Dump code별, Transaction id별, Dump id별로 Dump 를 print 할 수 있다 < Transaction Dump print JCL> //PRNTDMP JOB accounting information,name,MSGLEVEL=(1,1),CLASS=A // MSGCLASS=A,REGION=1024K //JOBLIB DD DSN=CICSTS12.SDFHLOAD,DISP=SHR // EXEC PGM=DFHDU520,PARM='command,command,…' //DFHDMPDS DD DSN=CICSTS12.applid.DFHDMPA,DISP=SHR //DFHTINDX DD SYSOUT=A //DFHPRINT DD SYSOUT=A,DCB=(BLKSIZE=133) //SYSIN DD * SELECT TYPE=OR (selection paramenter) ……… END /* <SYSIN 제어 statement> SELECT TYPE=OR|NOTOR|AND|NOTAND|SCAN : SCAN은 dump를 생성하지 않고 요약된 내용만 DFHTINDX 또는 SYSPRINT에 출력 TRANID=(value|generic-value, value|generic-value,…) : 해당 transaction id 선택 DUMPCODE=(value|generic-value, value|generic-value,…) : 해당 transaction dump code 선택 DUMPID=(value|value-range,value|value-range,…) : 해당 dump id 선택 PAGESIZE=(value) : page의 line 수 TIME=(time|time-range,time|time-range) : 원하는 시간대 <EXEC statement PARM option> DOUBLE|SINGLE : line space 결정 TRANSLATE=LC|FOLD|UC : 출력문자의 선택 LC는 소문자는 소문자로 그리고 대문자는 대문자로 출력. FOLD는 소문자는 대문자로 변환 출력 UC는 대문자만 출력 92 © IBM Corporation 2007 IBM Global Services CICS DUMP – System Dump (1) 1) DUMP Table ABEND CODE에 따라 System Dump 및 CICS Transaction Dump로 DUMP를 발생시킬 수 있는 조건을 지정하여 제어할 수 있다. 이러한 조건들을 RDO를 이용하여 DUMP Table로 정의 하고, CICS Global Catalog에 Save 되어 있다. 다음의 Command에 의해 Dump를 생성시키거나, 중지시키거나 Dump를 추가시킬 수 있다. 2) System Dump 제어 Command < 이미 정의되어있는 내용 조회> CEMT INQ TRDUMPCODE[(CODE)] [ALL] [TRANDUMP | NOTRANDUMP] [SHUTDOWN | NOSHUTDOWN] [MAXIMUM(value)] [CURRENT(value)] < Table 에 정의> CEMT SET SYDUMPCODE[(CODE)] [ALL] [SYSDUMP | NOSYSDUMP] :해당 code에 맞는 ABEND 내용을 System dump로 저장 할 것인지 여부 결정 [SHUDOWN | NOSHUTDOWN] :system dump가 발생하였을때 cics를 shut-down할 것인지 여부 결정 [MAXIMUM(value)] :해당 code에 대한 system dump를 받을 수 있는 최대 횟수 [RESET|REMOVE|ADD] : 기존 Table 에서 제거/추가/변경 CODE Parameter에는 CICS Message DFH××××× 중 xxxxxx 부분을 지정한다. <Command 사용 예> CEMT INQ SYDUMPCODE STATUS : RESULTS - OVERTYPE TO MODIFY Syd( AP0001 ) Sys Max( 000 ) Cur(0002) Syd( SM0102 ) Sys Max( 001 ) Cur(0002) Syd( FC0005 ) Sys Max( 000 ) Cur(0002) Syd( EILEEN ) Sys Max( 000 ) Cur(0002) 93 © IBM Corporation 2007 IBM Global Services CICS DUMP – System Dump (2) 3) SIT 의 지정 DUMP = YES|NO : System Dump를 받을 것 인가의 여부 YES : CICS System dump table에 NOSYSDUMP 지정이 되어 있지 않으면 System dump를 받는다. NO : System dump를 받지 않는다. DUMPDS=AUTO|A|B : Transaction dump dataset 의 지정. AUTO : 전 CICS가 사용하고 있지 않은 data set을 open한다. A : DFHDUMPA를 open한다. B : DFHDUMPB를 open한다. DUMPSW=NO|NEXT : Transaction dump dataset를 자동적으로 switch 할 것인지 여부 결정 NO : Data set이 full되면 console에 message가 출력되므로 Command에 의해 switch할 수 있다. YES : full이 되면 자동적으로 다음 data set으로 교환된다. 4) CICS Region DUMP를 manual로 받는 방법 CEMT PERFORM DUMP|SNAP TITLE(XXX) 의도적으로 CICS SYSTEM dump를 받고자 할 때 사용하는 command 로, 이 command 에 의해 발생되는 CICS Region DUMP 는 z/OS System Dump data set 에 저장 된다. CICS는 계속 수행되며 Command 처리 중 CICS내의 User Task는 non-dispatchable 이 된다. XXX는 최대 32문자까지 입력할 수 있다. 덤프 받는 효과는 z/OS 의 DUMP command 와 동일함. < CICS 종료 시키면서 CICS Region dump를 받고자 할 때> CEMT PERFORM SHUTDOWN DUMP < CICS User Application Program 을 이용하여 CICS Region 을 System Dump 로 받고자 할 때> EXEC CICS DUMP SYSTEM < CICS User Application Program 을 이용하여 CICS Region을 Transaction Dump로 받고자 할 때> EXEC CICS DUMP TRANSACTION 94 © IBM Corporation 2007 IBM Global Services CICS DUMP – System Dump (3) <SYSTEM DUMP를 PRINT 하는 방법> IPCS 모듈을 이용 하여 batch Job으로 출력 할 수 있으며, 또한 TSO를 이용 하여 online 으로 dump를 분석 할 수 있다. batch job으로 출력된 output 은 매우 많고, 분량이 매우 많아 분석하기 매우 어렵기 때문에 권장되지 않는 방법이다. !!! Transaction DUMP는 제한적인 Data 만을 가지고 있어 Debugging 하는데 한계가 있으므로 문제분석을 위해서는 System Dump를 확보하는 것이 중요합니다. 95 © IBM Corporation 2007 IBM Global Services CICS Trace 1) CICS Trace를 위한 사전 준비 작업 (1-1) SIT 설정 System initialization parameter에 설정하여 CICS가 시작할 때부터 trace를 수집할 수 있고, 또한 trace를 어디로 출력할 것인가를 설정할 수 있다. 다음과 같은 Parameter를 다음과 같이 나눌 수 있다. a) Internal trace : CICS Dump 내에 기록되어 IPCS 로 format 하여 분석 INTTR=ON/OFF : CICS startup시 internal trace를 on, off할 것인가 결정 TRTABSZ=16/nnn : Internal trace table size 정의 (KB) SYSTR=ON/OFF : CICS system activity를 trace할 것인가 아닌가를 결정 USERTR=ON/OFF trace를 :User program에서 EXEC CICS ENTER TRACENUM를 이용하여 사용하게 할 수 있게 할 것인가 아닌가를 결정 STNTR=1/(1,2)/(1,2,3)/ALL/OFF : Standard trace의 level를 설정 SPCTR=1/(1,2)/(1,2,3)/ALL/OFF : 특정 transaction, terminal 또는 동시에 trace를 하고자할 때 별도의 Level을 설정 b) Auxiliary trace : 특정 Transaction 이나 Terminal 에 대한 내용만 별도로 tracing 하고자 할 때 이용 AUXTR=ON/OFF : cics가 시작할 때부터 auxiliary trace를 받을 것인가 아닌가를 결정 AUXTRSW=NO/ALL/NEXT 번째의 data : NEXT - 첫 번째 data set이 full이 되면 data set이 close되고 두 set이 한번에 한해서 open된다. ALL - 연속으로 data set이 자동적으로 switch된다. c) GTF trace GTFTR=ON/OFF : cics가 시작할 때부터 GTF trace를 받을 것인가 아닌가를 결정 d) SYSIN, PARM 또는 CONSOLE에서 변경할 수 있다. 96 © IBM Corporation 2007 IBM Global Services CICS Trace e) SIT와 다음의 PARAMETER 추가 STNTRxx = 1/(1,2)/(1,2,3)/ALL/OFF SPCTRxx = 1/(1,2)/(1,2,3)/ALL/OFF xx : Domain ID (1-2) CETR transaction 을 사용한 trace 관리 CETR command 는 console 에서 사용 할 수 없으며, CETR만 치면 아래와 같은 화면이 나타나게 되며 원하는 것을 선택하면 된다. PARAMETER에 의해서 TRACE를 제어할 수 있으며, dynamic하게 trace를 제어할 수 있다. Type in your choices. Item Choice Possible choices Internal Trace Status ==> STARTED STArted, STOpped Internal Trace Table Size ==> 100 K 16K-1048576K Auxiliary Trace Status ==> STOPPED STArted, STOpped, Paused Auxiliary Trace Dataset ==> A A, B Auxiliary Trace Status ==> NEXT NO, NExt, All GTF Trace Status ==> STOPPED STArted, STOpped Master System Trace Flag ==> ON ON, OFf Master User Trace Flag ==> ON On, OFf When finished, press ENTER. PF1=Help 3=Quit 4=Components 5=Ter/Trm 9=ErrorList 97 © IBM Corporation 2007 IBM Global Services CICS Trace a) CETR TRASACTION – Trace 되는 COMPONENT 별 지정 앞의 화면에서 PF4를 선택하면, 각 domain의 trace point의 level를 standard 및 special별로 선택할 수 있다. 특별한 경우가 아닌 경우에는 level 이 1이면 충분하다. Component AP 98 Standard Special 1 1-2 BF 1 1 BM 1 1 CP 1 1-2 DC 1 1 DI 1 1 DM 1 1-2 DS 1 1-2 DU 1 1-2 MN 1 1-2 PA 1 1-2 PC 1 1 SC 1 1 SM 1 1-2 SP 1 1 ST 1 1-2 TC 1 1-2 TD 1 1 TI 1 1-2 TR 1 1-2 TS 1 1 TS 1 1 UE OFF 1 © IBM Corporation 2007 IBM Global Services CICS Trace b) CETR COMPONENT ABBREVIATIONS AP … Application domain BF … Built-in function BM … Basic Mapping Support Cp … CIP-C interface DC … Dump compatibility layer DI … Batch data interchange DM … Domain manager domain DS … Dispatcher domain DU … Dump domain EI … Exec interface FC … File control GC … Global Catalog domain IC … Interval control IS … ISC JC … Journal control KC … Task control KE … KernelLC … Local Catalog domain LD … Loader domain LM … Lock Manager domanin ME … Message domanin MN … Monitoring domain PA … Parameter Manager domain PC … Program control SC … Storage control SM … Storage Manager domain SP … Sync point ST … Statistics domanin TC … Terminal control TD … Transient data TI … Timer domain TR … Trace domain TS … Temporary Storage UE … User exit interface 99 © IBM Corporation 2007 IBM Global Services CICS Trace c) CETR TRANSACTION & TERMINAL CETR Transaction에서 PF5를 선택 하면 Transaction 또는 Terminal 별 standard 및 special trace를 받을 수 있다. Type in your choices. Item Choice Possible choice Transaction ID==> Any valid 4 character ID Transaction Status ==> Terminal ID ==> Any valid Terminal ID Netname ==> Any valid Netname STandard, SPecial,SUppressed Terminal Status ==> Standard, Special Terminal VTAM Exit Trace ==> On, Off Terminal ZCP Trace ==> On, Off VTAM Exit override ==> NONE All, System, None When, finished, press ENTER. PF1=Help 3=Quit 6=CancelExits 9=ErrorList 100 © IBM Corporation 2007 IBM Global Services CICS Trace d) 특정 TRANSACTION 에 대해서만 Tracing 하고자 할 때 특정 Transaction 만을 Auxiliary Trace하고자 할 때 사용된다. (예) Transaction AUPD 만을 Trace할 경우. Type in your choices. Item Choice Internal Trace Status Possible choices ===> STARTED Internal Trace Table Size ===> 64 Auxiliary Trace Status Auxiliary Trace Dataset Auxiliary Switch Status GTF Trace Status K 16K - 1048576K ===> STOPPED ===> A ===> NEXT Master System Trace Flag ===> OFF ===> ON STArted, STOpped, Paused A, B NO, NExt, All ===> STOPPED Master User Trace Flag STArted, STOpped STArted, STOpped ON, OFf ON, OFf When finished, press ENTER. PF1=Help 3=Quit 4=Components 5=Ter/Trn 9=Error List 위의 화면에서 다음과 같이 Setting하고 Enter Auxiliary Trace Status ===> STArted Master System Trace Flag ===> OFF 위의 화면 에서 PF5 (Ter/Trn)을 누르면 다음 페이지와 같은 화면이 나옴 101 © IBM Corporation 2007 IBM Global Services CICS Trace Type in your choices. Item Choice Transaction ID Possible choices ===> AUPD Transaction Status ===> SP Terminal ID ===> Netname STandard, SPecial, SUppressed Any valid Terminal ID ===> Terminal Status Any valid 4 character ID Any valid Netname ===> Terminal VTAM Exit Trace STandard, SPecial ===> Terminal ZCP Trace ===> VTAM Exit override ===> NONE ON, OFf ON, OFf All, System, None When finished, press ENTER. 6=Cancel Exits 9=Error List PF1=Help 3=Quit 위의 화면 에서 다음 과 같이 Setting하고 Enter. Transaction ID ===> AUPD Transaction Staus ===> SP PF3 (Quit)로 1, 2 화면을 빠져 나옴. AUPD Transaction을 수행 후 Auxiliary Trace를 “CEMT S AUXT STO” 로 Off 시킴 CEMT S AUXT STOp CETR Transaction에서 Auxiliary Trace Staus = STOpped 를 확인한다. 102 © IBM Corporation 2007 IBM Global Services CICS Trace (1-3) 기타 TRACE의 제어 방법 (1) CEMT SET/INQ AUXTRACE [START|STOP|PAUSE] [NOSWITCH|NEXT|ALL] [SWITCH] SET/INQ INTTRACE [START|STOP] SET/INQ GTFTRACE [START|STOP] (2) EXEC CICS (PROGRAM내의 CICS COMMAND) SET/INQ TRACEFLAG SYSTEMSTATUS… SET/INQ TRACEDEST AUXSTATUS… CURAUXDA… GTFSTATUS… INTSTATUS… SWITCHSTATUS… TABLESIZE… SET/INQ TRACETYPE(STANDARD/SPECIAL) (1-4) Trace Data Set Trace를 보관하는 장소는 다음과 같다. - Internal trace table (Main storage above 16M line) - Auxiliary trace data set - GTF data set a) 103 Auxiliary Trace Data Set : Auxiliary trace data set는 한 개 또는 두 개의 Sequential data set, 또는 Tape를 사용할 수 있다. © IBM Corporation 2007 IBM Global Services CICS Trace b) Trace Data Set Allocation //ALLOCDS EXEC PGM=IEFBR14 CICS에서 제공되는 DFHDEFDS JOB을 이용하여 고객의 설정에 맞게 수정한다. //DFHAUXT DD DSN=CICSTS12.applid.DFHAUXT,UNIT=3380,VOL=SER=volid, // DISP=(NEW,CATLG),DCB=(BLKSIZE=4096,RECFM=F,LRECL=4 096), // SPACE=(CYL,(5,1)) //DFHBUXT DD DSN=CICSTS12.applid.DFHBUXT,UNIT=3380,VOL=SER=volid, // DISP=(NEW,CATLG),DCB=(BLKSIZE=4096,RECFM=F,LRECL=4 096), SPACE=(CYL,(5,1)) c)// Aux Data Set를 위한 Startup JCL (DISK) Startup job에 다음의 DD statement를 삽입한다. //DFHAUXT DD DSN=CICSTS12.applid.DFHAUXT,DCB=BUFNO=n,DISP=SHR //DFHBUXT DD DSN=CICSTS12.applid.DFHBUXT,DCB=BUFNO=n,DISP=SHR BUFNO 개수를 1보다 더 정의하면, Aux trace record를 출력할 때 사용되는 I/O의 부하를 줄일 수 있다. 4 내지 10을 주면 무난하다. d) Aux Data Set를 위한 Startup JCL (TAPE) No Label Tape을 사용하는 경우, 다음의 sample DD statement를 삽입한다. //DFHAUXT DD DSN=CICSTS12.applid.DFHAUXT,UNIT=3400,VOL=SER=voild, // DISP=(NEW,KEEP), LABEL=(,NL) //DFHBUXT DD DSN=CICSTS12.applid.DFHBUXT,UNIT=3400,VOL=SER=voild, // 104 DISP=(NEW,KEEP),LABEL=(,NL) © IBM Corporation 2007 IBM Global Services CICS Trace 2) TRACE를 print 하는 방법 CICS utility program인 DFHTUP(V4.1 이전인 경우), DFHT410(V4.1인 경우), 또는 DFHTU520 (TS 1.2)을 이용하여 시간별, terminal별, trace id별, transaction별, task-id별 해당 trace를 print할 수 있다. //PRTRACE JOB accounting information,name,MSGLEVEL=1,CLASS=A, // MSGCLASS=A,REGION=6500K *1 //PRINT EXEC PGM=DFHTU520 //STEPLIB DD DSN=CICSTS12.SDFHLOAD,DISP=SHR //DFHAUXT *2,*3 DD DSN=CICSTS12.applid.DFHxxxx,DISP=SHR //DFHAXPRT DD SYSOUT=A //DFHAXPRM DD * …… (parameter statement) …… /* (주) *1 : 필요하면 region size를 조정 *2 : Data set A 혹은 B에 따라 DSN의 parameter를 DFHAUXT 또는 DFHBUXT로 변경 ddname는 data set A, B 관계없이 DFHAUXT이어야 한다. *3 : trace data set이 tape인 경우, DD statement는 다음과 같다. //DFHAUXT DD DSN=CICSTS12.applid.DFHAUXT,DISP=(OLD,KEEP), // VOL=SER=volid,UNIT=TAPE < TRACE 제어 statement > ALL : 모든 trace entries, default PAGESIZE=(value) : page당 line수 ABBREV/FULL/SHORT : 각 trace entry별 print양을 결정 ABBREV : 한 ENTRY당 한 줄의 요약 TRACE 출력 FULL : 한 ENTRY당 전 TRACE INFORMATION 출력 SHORT : 다음의 경우는 FULL과 같고 그 외는 ABBREV와 같음 INTERVAL=(00.128|no. of seconds) : trace entry 사이 시간 KE_NUM=(xxxx,xxxx,…,…) : 해당 kernal task number만 출력 TASKID=(id|id-id,id|id-id,…… 105 © IBM Corporation 2007 IBM Global Services CICS 문제 유형과 필요 자료 Transaction Abend 및 System Abend 발생시 1) Transaction Abend 는 Axxx 4 자리 수로 발생 되며 시스템 Abend code 는 system log Sxxx 로 확인가능 필요 Data : 시스템 DUMP (Transaction dump 내에는 필요한 Data 가 전부 나오지 않기 때문에 받을 필요없음) 사전 점검 사항 ; - SIT DUMP = YES - 특정 Abend code 에 대한 dump 를 받고 자 하는 경우 “CEMT S TRDUMPCODE(xxxx) add” 로 시스템 dump 가 발생되도록 정의 필요 - Internal Trace ON 2) LOOP 이나 Hang 발생시 High CPU usage 경우 Loop 이라고 추정되며, CPU usage 가 낮으면서 Transaction 이 진행되지 않는 것은 Hang 발생이라고 판단될 수 있음. 필요 Data : Loop – 해당 CICS Region dump Hang : 해당 CICS Region 및 관련 remote CICS Region 혹은 DB2 와 같은 다른 시스템 dump ** 다른 region 이나 타 시스템이 필요여부에 대한 판단은 “CEMT I TA” output 에서 Transaction 의 왼쪽 필드에 “?” 을 치면 Tx 이 어떤 resource 를 기다리고 있는 지 Htype, Hvalue 를 가지고 판단할 수 있음. Htype 이 ZCIOWAIT 나 ZCxxxx 이면서 Hvalue 가 TERMID 나 Remote CICS system name 이면 TOR 이나 해당 CICS region 에 대해 함께 MVS dump command 로 시스템 dump 받음 Htype,Hvalue 가 DB2 관련이면 DB2 와 함께 시스템 dump 를 받음 사전 점검 사항 : CICS Internal Trace ON, MVS system Trace ON MVS Dump dataset size 및 volume size 3) 성능저하 평소와 달리 CPU usage 가 높거나, Transaction 의 응답속도가 급속히 느려지는 경우를 말함. 필요 Data : CICS region DUMP SMF 115 data 필요. 106 © IBM Corporation 2007 IBM Global Technology Services CPSM 나미경 mkna@kr.ibm.com IBM Global Services CPSM Diagnostic Online 으로 status 를 파악하고 조치를 취할 수 있는 diagnostics information 을 얻는 방법은 다음과 같습니다. a) CICSPlex SM views - CMAS and MAS status - Resource monitoring activity - Real-time analysis activity - Workload management activity b) CICS command c) COLU (CPSM online utility transaction) d) COD0 and CODB (CPSM interactive debugging transactions) CPSM 에서 발생되는 문제에 대한 Message 는 아래와 같은 곳으로 write 됩니다. - System console or system log - CMAS or MAS job log - EYULOG transient data queue - SYSOUT data set - CICS terminal - TSO READY prompt - ISPF end-user interface CMAS 나 local MAS 는 System 이나 transaction DUMP 에 대한 symptom string 을 SYMREC record 형태로 SYS1.LOGREC dataset 에 기록합니다. 108 © IBM Corporation 2007 IBM Global Services CICSPlex TRACE –(1) CMAS 와 MAS 들의 user trace record 을은 CICS Trace data set 에 write 됩니다. CAS 에서의 trace data 는 wrap-around buffer 로 기록이 됩니다. 1. CICSPLEX component trace options CMAS 에서의 trace facility 를 사용하기 위해서는 다음과 같은 parameter 가 SIT 에 정의 되어있어야 합니다. - INTTR = ON : Internal trace on - TRTABSZ = 2048 ; Trace table size must be 2MB - SYSTR = OFF : Master trace must be OFF - USERTR = ON : User trace must be ON 2. CMAS & MAS tracing CMAS 나 MAS view 로 tracing 을 제어 할 수 있습니다. 예로 EYUCMS1A 의 trace level 을 변경하고 자 할 경우 a) CMAS VIEW command issue 후 primary action command 나 TRA line action command 를 입력합니다. 12APR1999 10:32:30 ----------- INFORMATION DISPLAY ------------------COMMAND ===> TRACE EYUCMS1A SCROLL ===> CSR CURR WIN ===> 1 ALT WIN ===> W1 =CMAS==============EYUCMS1A=EYUCMS1A=12MAY1997==14:46:30=CPSM ======2 CMD Name Status Sysid Access Transit Transit --- -------- -------- ----- Type---- CMAS---- Count-EYUCMS1A ACTIVE CM1A 109 LOCAL 0 © IBM Corporation 2007 IBM Global Services CICSPlex TRACE –(2) b) 다음과 같이 component trace input panel 에서 component 들에 대한 level 을 변경할 수 있습니다. (N : tracing not active. Y : trace level is active) --------------------- Component Trace Levels for EYUCMS01 -------------COMMAND ===> Overstrike the level number with a Y or N to alter the trace level Level 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 Component--------------------------------------------------------------KNL N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N TRC N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N MSG N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N COM N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N c) Trace setting 된 것을 변경하고 자 할 경우 예로 KNL (kernel linkage) c-1) Cursor Position 을 KNL line 옆에 고정시킨다. c-2) Cursor 를 수평으로 움직여 수정하고자 하는 level 로 옮긴다. c-3) Y 나 N 로 변경한다. d) Trace setting 이 적적하면 ENTER 로 입력된 값을 저장시킨다. 3. CICSPlex SM transactions CICSPlex/SM 은 COLU,COD0,CODB 등 3 종류의 online transaction 을 제공합니다. a) COLU : 여러 종류의 CMAS 와 MAS component 들에 대한 report 를 생성하는 online utility b) COD0 / CODB : CPSM runtime 환경에서 CPSM 의 internal data structure 를 format 하여 debugging 이 가능하도록 합니다. 110 © IBM Corporation 2007 IBM Global Services CICSPlexSM DUMPs –(1) CICSPlex SM address space 는 MVS DUMP command 나 CICSPlex SM ISPF end-user interface 에서 CICSRGN 에사 SNAP action command 로 생성시킬 수 있습니다. 예로 EYUMAS1A 의 System Dump 를 받고자 한다면 a) CICSRGN view command 를 issue 하거나 b) SNAP primary action command 나 EYUMAS1A line 에서 SNA line action command 를 issue 12APR1999 10:30:30 --------- INFORMATION DISPLAY ---------------------COMMAND ===> SNAP EYUMAS1A SCROLL ===> CSR CURR WIN ===> 1 ALT WIN ===> W1 =CICSRGN=CICSRGN==EYUPLX01==EYUCSG01==12MAY1997==11:30:30=CPSM ====== CMD CICS Job MVS Act CICS CPU Page Page Total --- System-- Name---- Loc Task Status Time---- In------ Out----- SIO--EYUMAS1A CICPRODA SYSA 34 ACTIVE 12345678 1234567 1234567 123456 EYUMAS2A CICAOR1P SYSA 22 ACTIVE 567 1234567 1234567 106 c) CICS SNAP input panel 이 나오면 option 들을 입력합니다. ----------------------------- CICS SNAP -----------------------------COMMAND ===> Specify the options to be used for this dump of CICS: Dump Code ===> NORMAL 1- to 8-character dump code Caller ===> NO 1- to 8-character caller ID TITLE (79 characters) Press Enter to continue CICS dump with the options specified. 10.03.05 JOB00221 +DFHDU0201 EYUMAS1A ABOUT TO TAKE SDUMP. DUMPCODE:code 10.03.12 JOB00221 IEA794I SVC DUMP HAS CAPTURED: DUMPID=005 REQUESTED BY JOB (EYUMAS1A) DUMP TITLE=CICSDUMP: SYSTEM=EYUMAS1A CODE=code ID=nn 10.03.05 JOB00221 +DFHDU0202 EYUMAS1A SDUMP COMPLETE. 위의 화면에서 option 들을 입력하고 나면 “EYUEI0568I Dump Taken for EYUMAS1A, assigned DUMPID is nn/nnnn” 가 나옵니다. 111 © IBM Corporation 2007 IBM Global Services CICSPlexSM DUMPs –(2) EYUMAS1A 의 JOBLOG 에는 다음과 같은 Message 을 볼 수 있습니다. 10.03.05 JOB00221 +DFHDU0201 EYUMAS1A ABOUT TO TAKE SDUMP. DUMPCODE:code 10.03.12 JOB00221 IEA794I SVC DUMP HAS CAPTURED: DUMPID=005 REQUESTED BY JOB (EYUMAS1A) DUMP TITLE=CICSDUMP: SYSTEM=EYUMAS1A CODE=code ID=nn 10.03.05 JOB00221 +DFHDU0202 EYUMAS1A SDUMP COMPLETE. 112 © IBM Corporation 2007 IBM Global Technology Services DB2 이동근 leetk@kr.ibm.com IBM Global Services DB2 목차 DB2 문제 종류 ………………………………………………………… 115 DB2 Message ………………………………………………………… 116 DB2 reason code ……………………………………………………… 117 DB2 분석자료 command……………………………………………… 120 DB2 Dump …………………………………………………………… 121 MEPL ……………………………………………………………………… 127 DB2PLI8 ………………………………………………………………… 128 Trace ……………………………………………………………………… 129 114 © IBM Corporation 2007 IBM Global Services DB2 문제 종류 ABEND04E, ABEND04F 예기치 못한 상황의 error를 만났을 때, 또는 DB2가 data integrity 보장을 위해 스스로 ABEND를 유발시킴. LOOP, WAIT, HANG, SUSPEND DB2가 일을 잘 하지 못한다는 느낌이 들 때, 위의 상황을 의심할 수 있음. Start 도중에 발생할 경우는 IRLM을 먼저 점검해야 함. INCORROUT(Incorrect Output) 원하지 않는 access path, 잘못된 SQL 결과 등. DB2의 CATALOG 정보가 필수적으로 필요함. 성능 저하 느린 SQL 처리, CPU 등 system resource의 과다한 사용, timeout/deadlock의 다량 발생, 과도한 locking activity 등. DB2 trace와 DB2 PM report 등이 요구되나, 더 광범위한 자료가 필요할 경우가 많음. Message 평소에 볼 수 없었던 종류의 error message. 115 © IBM Corporation 2007 IBM Global Services DB2 message DB2 message - DB2 message는 DSNxnnna의 형태이며, 여기서 x는 DB2의 각 component로서, 그 내용은 다음과 같다. A : Subsystem support subcomponent (SSS), application program support function, call attachment facility (CAF), Recoverable Resource Manager Services attachment facility (RRSAF) B : Buffer manager (BM) C : CICS attachment (CA) D : Designates data structures/DSECTs, not a subcomponen E : TSO attachment (TA) F : Message generator (MG) G : Data manager (DM), data and environmental descriptor management functions H : Precompiler (PRE) I : Data manager (DM), manipulative function J : Recovery log manager (RLM) K : Data manager (DM), index management function L : Distributed Data Facility (DDF) M : IMS attachment (IA) N-O : Reserved P : Data space manager (DSM) Q : Reserved R : Recovery manager (RM) S : Storage manager (SM) T : Service controller (SC) U : Utilities (UT) V : Agent services manager (ASM) W : Instrumentation facilities (IF) X : Relational data system (RDS) Y : Initialization procedures (IP) Z : System parameter manager (SPM) 0 : Reserved 1 : Stand-alone utilities (SU) 2 : Reserved 3 : Subsystem support subcomponent (SSS), allied address space connection function and MVS subsystem interface function 4 : DB2I HELP panels 5-6 : Reserved 7 : Group Manager 8 : Reserved 9 116 : General command processor (GCP) © IBM Corporation 2007 IBM Global Services DB2 reason code DB2 reason code(1) - DB2 reason code는 00hhnnnn으로 이루어져 있는데,여기서 hh는 DB2 component의 alphabet의 hexa 값으로, 각 component 별로 문제 분석에 필요한 자료는 다음과 같다. CAF or RRSAF (00C1xxxx) DSNTRACE for CAF SYSUDUMP or SYSABEND dump contains trace for CAF or RRSAF Buffer manager (00C2xxxx) SVC dump All master console messages Copy of data sets, if in broken state CICS attach (00C3xxxx) SVC or CICS transaction dump AUXTRACE (if applicable) SYS1.LOGREC information TSO attach (00C5xxxx) All master console messages. SYSUDUMP output, if abend SYS1.LOGREC information, if abend DSNTRACE, if error in DSN command processor Compression SVC dump All master console messages Copy of data sets in broken or error state Precompiler (00C8xxxx) All master console messages SYSUDUMP output, if abend Program source Precompiler output Data manager (00C9xxxx) SVC dump SYS1.LOGREC information All master console messages DB2 logs Copy of data sets in broken state CSECT name and error qualifier Index manager (00C9xxxx) SVC dump. SYS1.LOGREC information. All master console messages DB2 logs. Copy of data sets in broken state CSECT name and error qualifier EDM Pool (00C90089) Statistics Class 1 traces Recovery log manager (00D1xxxx) Print log map of the BSDS All master console messages System parameter report or DSNZPARM listing LISTCAT, if VSAM catalog errors SVC dump, if abend. SYS1.LOGREC information, if abend 117 © IBM Corporation 2007 IBM Global Services DB2 reason code DB2 reason code(2) Recovery log manager (00D1xxxx) Print log map of the BSDS All master console messages System parameter report or DSNZPARM listing LISTCAT, if VSAM catalog errors SVC dump, if abend. SYS1.LOGREC information, if abend Distributed (00D3xxxx) Display threads on both systems, if hang All master console messages and task from both systems SVC dump, if abend SYS1.LOGREC information, if abend CDB entries. Data space manager (00D7xxxx) All master console messages Complete DBM1 JES job log messages Complete MSTR JES job log messages Recovery manager (00D9xxxx) SVC dump. All master console messages SYS1.LOGREC information DSN1LOGP output, if error on DB2 restart Previous error information Stored Proce-dures (DSNX9nnn) Console messages. You must collect SYSABEND dump for abends in DSNX9 modules in SPAS. Storage manager (00E2xxxx) SVC dump All master console messages SYS1.LOGREC information Service Controller (00E3xxxx) All master console messages For bind abend, bind job messages and syntax of bind command SVC dump, if abend Utilities (00E4xxxx) Utility job output Utility statement Dump SYS1.LOGREC information Console log. Targeted object catalog information Agent services (00E5xxxx) SVC dump All master console messages SYS1.LOGREC information Instrumentat ion (00E6xxxx) SVC dump All master console messages SYS1.LOGREC information Traces, if incorrect output 118 © IBM Corporation 2007 IBM Global Services DB2 reason code DB2 reason code(3) Instrumentat ion (00E6xxxx) SVC dump All master console messages SYS1.LOGREC information Traces, if incorrect output Relational data (00E7xxxx) CSECT name and error qualifier System SVC dump SQL, DDL, EXPLAIN output, Catalog statistics SYS1.LOGREC information Initializati on processor (00E8xxxx) All master console messages Console dump or Slip dump SVC dump, if abend SYS1.LOGREC information, if abend System parameter manager (00E9xxxx) SVC dump All master console messages SYS1.LOGREC information System parameter report or DSNZPARM listing DSN1LOGP (00F1xxxx) All master console messages. Job output. DSN1COPY DSN1PRNT DSN1CHKR (00F1xxxx) All master console messages Job output Copy of objects that the jobs target Subsystem (00F3xxxx) Previous error information from SYS1.LOGREC and master console messages General command processor (00F9xxxx) All master console messages SVC dump, if abend SYS1.LOGREC information, if abend 119 © IBM Corporation 2007 IBM Global Services DB2 분석자료 command DB2 Dump 받기 전 다음과 같은 command를 issue 하여 보조자료를 확보한다. DISPLAY THREAD(*) DETAIL D A,ALL (or D A,ssid* or D A,IRL* ) D GRS,CONTENTION D OPDATA DISPLAY DATABASE(*) USE/LOCKS LIMIT(*) DISPLAY UTILITY(*) Data Sharing 환경하에서는 다음을 추가한다. F irlmproc,STATUS,ALLD F irlmproc,STATUS,ALLI DB2 Diagnose utility 를 MEPL opetion 으로 run 한다. 120 © IBM Corporation 2007 IBM Global Services DB2 DUMP DUMP DB2의 address space 중 특히 DBM1의 virtual storage는 모든 data buffer를 포함하고 있기 때문에 그 양이 엄청나게 커지게 된다. 따라서 data의 양에 따라 다르지만, 최소한 2500 이상의 MAXSPACE가 주어져야 한다. 다음 command를 이용해 MAXSPACE를 미리 조정해 둔다. CD SET,SDUMP,MAXSPACE=2500M DB2 문제 분석을 위한 DUMP에는 다음과 같은 option들이 반드시 포함되어 있어야 한다. ALLNUC,ALLPSA,CSA,GRSQ,LPA,LSQA,NUC,PSA,RGN,SQA,SUM,SWA,TRT 또한 SYSPLEX data sharing 환경에서는 다음의 option들이 포함되어 있어야 한다. COUPLE,WLM,XESDATA CD SET,SDUMP,MAXSPACE=2500M 121 © IBM Corporation 2007 IBM Global Services DB2 DUMP Command로 Dump 받기 DB2 hang, wait, looping 상황에서는 DUMP command를 이용해 Dump를 받아야 한다. 이 때, DB2의 MSTR, DBM1, IRLM, DIST를 한 Dump dataset에 한꺼번에 받아야 한다. DUMP command를 이용한다. DUMP COMM=(your comment here) (1) *XX IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND (2) R XX,JOBNAME=(DSNPMSTR,DSNPDBM1,DSNPIRLM,DSNPDIST,CICSAOR1),END (3) 위의 예에서, (1) DUMP command를 실행시킬 때, 적절한 제목 또는 comment를 줄 수 있다. (2) DUMP command에 대한 reply가 뜨게 되며, (3) 해당 reply로 받아내고자 하는 jobname들을 주게 된다. 이 때, 여러 개의 job을 받고자 하면, 반드시 MSTR부터 시작해야 한다. 122 © IBM Corporation 2007 IBM Global Services DB2 DUMP SLIP으로 Dump 받기 ABEND가 발생할 때 Dump가 발생하지 않으면 SLIP command을 이용해 Dump를 받는다. 이 때, DB2의 MSTR, DBM1, IRLM, DIST를 한 Dump dataset에 한꺼번에 받아야 한다. 다음 SLIP command를 이용한다. SLIP SET,A=SVCD,C=04E,J=CICSAOR3,JL=(DSNP*,CICSAOR3),END (1) SLIP SET,A=SVCD,C=04E,J=DSNPDBM1,AL=(CU,P,H,S),END (2) 위의 예에서, (1) CICSAOR3에서 ABEND04E가 발생하면, DSNPMSTR, DSNPDBM1, DSNPIRLM등과 CICSAOR3를 받아 낸다. (2) DSNPDBM1에서 ABEND04E가 발생하면, current ASID, primary ASID, home ASID, secondary ASID를 받아낸다. 123 © IBM Corporation 2007 IBM Global Services DB2 DUMP 특정 reason code에 대해 Dump 받기 특정 reason code에 대해서 dump가 필요할 경우, SLIP command을 이용해 Dump를 받는다. 이 때, DB2의 MSTR, DBM1, IRLM, DIST를 한 Dump dataset에 한꺼번에 받아야 한다. 다음 SLIP command를 이용한다. SLIP SET,A=SVCD,C=04E,DATA=(15R,EQ,00C90101),JL=(DSNPMSTR,DSNPDBM1, DSNPDIST,DSNPSPAS),END 위의 예에서, ABEND04E, RC=00C90101이 발생했을 때, DB2 관련 address space들의 Dump를 받아 낸다. 124 © IBM Corporation 2007 IBM Global Services DB2 DUMP 특정 message에 대해 Dump 받기 특정 message에 대해서 dump가 필요할 경우, SLIP command을 이용해 Dump를 받는다. 이 때, DB2의 MSTR, DBM1, IRLM, DIST를 한 Dump dataset에 한꺼번에 받아야 한다. 다음 SLIP command를 이용한다. SLIP SET,IF,LPAMOD=(IGC0003E,0),DATA=(1R?+4,EQ,C4E7D9F1,+8,EQ,F6F7C5), A=SVCD,JL=(DSNPMSTR,DSNPDBM1,DSNPIRLM),END 위의 예에서, DXR167E가 발생했을 때, DB2 관련 job들의 Dump를 받아 내기 위해, DXR167E를 EBCDIC code로 변환시키면 C4E7D9F1F6F7C5이 된다. 125 © IBM Corporation 2007 IBM Global Services DB2 DUMP 특정 SQL code에 대해 Dump 받기 특정 SQL에 대해서 Dump가 필요할 경우, DB2 utility인 DSN1SDMP를 이용한다. 다음 JCL을 이용해, job을 submit한다. //LEETKDMP JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),REGION=4M //JOBLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR //DSN1SDMP EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SDMPPRNT DD SYSOUT=* //SDMPTRAC DD DSN=LEETK.DB2.TRACE,SPACE=(CYL,(1,1)),UNIT=3390, // DCB=(RECFM=VB,LRECL=8188,BLKSIZE=8192),VOL=SER=TEMP01 //SDMPIN DD * START TRACE=P CLASS(32) IFCID(58) DEST(OPX) FOR(1) ACTION(ABENDTER(00E60188)) SELECT P4,08 * SQLCODE -518 (1) DR,74,X'FFFFFDFA' //SYSTSIN (2) DD * DSN SYSTEM(dsn) RUN PROGRAM(DSN1SDMP) PLAN(DSNEDCL) END // 위의 예에서, (1) SQLCODE -518에 대해서 Dump를 받고 싶을 때, (2) 이를 hexa 값으로 바꾸어 넣어 준다. 126 © IBM Corporation 2007 IBM Global Services MEPL MEPL MEPL은 Module Entry Point List로서, DB2의 모든 load module의 CSECT와 entry point를 가진다. 각 module의 PTF level을 포함하고 있으므로 현재 DB2의 level를 파악할 수 있다. 아래의 JCL을 사용해 추출한다. //STEP1 EXEC DSNUPROC,UID=’DIAGNOSE.MEPL1’, // UTPROC=’’, // SYSTEM=’V71A’ //SYSPRINT DD SYSOUT=* //SYSIN DD * DIAGNOSE DISPLAY MEPL //* 127 © IBM Corporation 2007 IBM Global Services DB2PLI8 Catalog Statistics(DB2PLI8) INCORROUT 등 DB2 RDS 문제를 분석하기 위해서는 DB2 catalog 정보가 필요하다. 필요한 catalog 정보를 추출하기 위해 IBM에서 제공하는 PL/I 프로그램이다. IBM에서 제공되는 DB2PLI8 안에 PL/I source와 JCL이 들어 있으므로, 필요한 TABLE 이름만 넣어서 수행 시키면 된다. DSN SYSTEM(DSNP) (1) BIND PLAN(DB2PLI8) MEMBER(DB2PLI8) ACTION(REP) ISOLATION(CS) VALIDATE(RUN) RUN PROGRAM(DB2PLI8) PLAN(DB2PLI8) - LIB('DSN710P.RUNLIB.LOAD') PARM('/SYSADM.SAMPTABL') (2) 위의 예에서, (1) DB2 subsystem 이름, (2) Catalog 정보를 얻고자 하는 table name을 준다. 128 © IBM Corporation 2007 IBM Global Services TRACE TRACE TYPE DB2는 다양한 종류의 TRACE를 제공한다. 어떤 종류의 Trace의 경우 System에 과부하를 걸게 되기도 하므로 신중한 선택이 요구된다. 아래와 같은 TRACE TYPE이 있다. PERFM : Performance analysis and tuning, and includes records of specific events in the system. ACCTG : Used in accounting for a particular program or authorization ID, and includes records written for each thread. STAT : Collects statistical data broadcast by various components of DB2, at time intervals that can be chosen during installation. AUDIT : Audit data from various components of DB2. MONITOR: Makes trace data available to DB2 monitor application Programs. 129 © IBM Corporation 2007 IBM Global Services TRACE Destination block DB2 trace는 SMF, GTF등 여러 가지 방법으로 받아 내는데 이에 대한 지정을 할 수 있다. 아래와 같은 종류들이 있으며 TRACE TYPE에 따라 Default가 다르다. Type GTF SMF SRV OPn OPX PERFM Default Allowed Allowed Allowed Allowed ACCTG Allowed Default Allowed Allowed Allowed STAT Allowed Default Allowed Allowed Allowed AUDIT Allowed Default Allowed Allowed Allowed MONITOR Allowed Allowed Allowed Allowed Default 130 © IBM Corporation 2007 IBM Global Services TRACE Constraint block Trace 양을 줄이기 위해 특정한 user나 PLAN으로 trace의 발생을 제한할 수 있다. TRACE TYPE에 따라 사용할 수 있는 종류가 다르다. Type PLAN AUTHID CLASS LOCATION PERFM Allowed Allowed Allowed Allowed ACCTG Allowed Allowed Allowed Allowed STAT NO NO Allowed NO AUDIT Allowed Allowed Allowed Allowed MONITOR Allowed Allowed Allowed Allowed 131 © IBM Corporation 2007 IBM Global Services TRACE CLASS DB2 trace는 IFCID로 이루어져 있으며, 이러한 IFCID를 연관되는 것끼리 묶은 것을 CLASS라 한다. Trace type Class Description of class Accounting 1 Standard accounting data 2 Entry or exit from DB2 event signalling 3 Elapsed wait time in DB2 4 Installation-defined accounting record1 151 5 Time spent processing IFI requests 187 6 Reserved 7 Entry or exit from DB2 event signalling for package and DBRM accounting 8 Wait time for a package 10-29 Reserved 30-32 Available for local use Audit 1 Access attempts denied due to inadequate Authorization 2 Explicit GRANT and REVOKE 3 CREATE, ALTER, and DROP operations against audited tables 4 First change of audited object 5 First read of audited object 6 Bind time information about SQL statements that involve audited objects 7 Assignment or change of authorization ID 8 Utilities 9 Installation-defined audit record1 10-29 Reserved 30-32 Available for local use Statistics 1 Statistics data 2 Installation-defined statistics record1 3 Deadlock, group buffer pool, data set extension information, and indications of long-running URs and active log space shortages 4 DB2 exceptional condition 5 DB2 data sharing statistics record 6 Storage usage details 7 Reserved 8 Data set I/O statistics 199 9-29 Reserved 30-32 Available for local use 132 © IBM Corporation 2007 IBM Global Services TRACE CLASS(2) Trace type Class Description of class Performance 1 Background events 2 Subsystem events 3 SQL events 4 Reads to and writes from the buffer and EDM pools 5 Write to log; archive log 6 Summary lock information 7 Detailed lock information 8 Data scanning detail 9 Sort detail 10 BIND, commands, and utilities detail 11 Execution unit switch and latch contentions 12 Storage manager 13 Edit and validation exits 14 Entry from and exit to an application 15 Installation-defined performance record1 16 Distributed processing 17 Claim and drain information 18-19 Reserved 20 Data sharing coherency summary 21 Data sharing coherency detail 22 Authorization exit parameters 23-29 Reserved 30-32 Available for local use Monitor 1 Activate the READS IFCIDs 2 Entry or exit from DB2 event signalling 3 DB2 wait time for I/O, locks; resource usage informationI 4 nstallation-defined monitor record1 5 Time spent processing IFI requests 6 Changes to tables created with DATA CAPTURE CHANGES 7 Entry or exit from DB2 event signalling for package and DBRM accounting 8 Wait time for a package 9-29 Reserved 30-32 Available for local use 133 © IBM Corporation 2007 IBM Global Services TRACE TRACE의 예(1) -START TRACE=S 위의 예에서, Statistics trace를 start 시키면, v7의 경우 CLASS 1,2,4,5가 v8의 경우 CLASS 1,2,4,5,6이 start되고, destination은 default로 SMF가 된다. 134 © IBM Corporation 2007 IBM Global Services TRACE TRACE의 예(2) -START TRACE(A) PLAN(DSN8BC71) COMMENT(‘accounting trace for dsn8bc71’) 위의 예에서, PLAN DSN8BC71에 대해 accounting trace가 start되고, destination은 default로 SMF가 된다. 135 © IBM Corporation 2007 IBM Global Services TRACE TRACE의 예(3) ** SYS1.PARMLIB(GTFDB2) (1) TRACE=USRP USR=(FB9) ** SYS1.PROCLIB(GTFDB2) //GTFNEW (2) PROC MEMBER=GTFDB2 //IEFPROCEXECPGM=AHLGTF,PARM='MODE=EXT,DEBUG=NO,TIME=YES', // TIME=1440,REGION=2880K //IEFRDER DD DSNAME=SYS1.TRACE.DB2,DISP=SHR //SYSLIB DSNAME=SYS1.PARMLIB(&MEMBER),DISP=SHR DD S GTFDB2 (3) AHL121I TRACE OPTION INPUT INDICATED FROM MEMBER GTFDB2 SYS1.PARMLIB OF PDS TRACE=USRP USR=(FB9) AHL103I TRACE OPTIONS SELECTED --USR=(FB9) *xx AHL125A RESPECIFY TRACE OPTIONS OR REPLY U R xx,U -START TRACE(P) DEST(GTF) CLASS(3) PLAN(DSN71R) (4) 위의 예에서, (1) DB2 trace를 GTF로 받기 위해 미리 PARMLIB에 member를 만들어 둔다. (2) GTF startup JCL을 PROCLIB에 만들어 둔다. (3) GTF를 start 시킨다. 이때, 미리 PARMLIB에 만들어 둔 GTF option을 물어보는데 reply를 U로 준다. (4) PLAN DSN71R에 대해 DB2 performance trace CLASS 3을 start 시킨다. 136 © IBM Corporation 2007 IBM Global Technology Services MQ 나미경 mkna@kr.ibm.com IBM Global Services WMQ DUMP WMQ 에서 발생되는 문제에 대한 메시지는 CSQ 로 시작됩니다. 1) WMQ MSTR,MQ CHIN and CHIN dataspace Dump 받기 WMQ 문제를 분석하기 위한 자료를 얻기 위해서는 WMQ Main address space 인 MSTR 과 Channel Initiator CHIN 과 더불어 CHIN dataspace 도 받아야 합니다. DUMP COMM=(MQSERIES MAIN DUMP) *01 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND R 01,JOBNAME=(CSQ1MSTR,CSQ1CHIN),CONT *02 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND IEE600I REPLY TO 01 IS;JOBNAME=(CSQ1MSTR,CSQ1CHIN),CONT R 02,DSPNAME=('ssidCHIN'.CSQXTRDS),CONT IEE600I REPLY TO 02 IS;DSPNAME=(‘ssidCHIN,CSQXTRDS),CONT R 03,SDATA=(CSA,RGN,PSA,SQA,LSQA,TRT,SUM),END IEE600I REPLY TO 03 IS;SDATA=(CSA,RGN,PSA,SQA,LSQA,TRT,SUM),END IEA794I SVC DUMP HAS CAPTURED: 869 DUMPID=001 REQUESTED BY JOB (*MASTER*) 138 © IBM Corporation 2007 IBM Global Services WMQ TRACE –(1) WMQ 의 TRACE 는 Debugging 을 위해 GTF trace 를 이용하는 것과 Accounting 과 Statistics tracing 으로 나눌 수 있습니다. 아래의 설명 GTF trace 를 사용하는 것입니다. 1. WMQ Tracing a) Start GTF Trace WMQ Global Trace 를 받기 위해 GTF trace 를 start 합니다. START GTF.procname,,,(MODE=INT) HASP100 GTF.procname ON STCINRDR HASP373 GTF.procname STARTED *01 AHL100A SPECIFY TRACE OPTIONS R 01,TRACE=JOBNAMEP,USRP TRACE=JOBNAMEP,USRP IEE600I REPLY TO 12 IS;TRACE=JOBNAMEP,USRP *02 ALH101A SPECIFY TRACE EVENT KEYWORDS - JOBNAME=,USR= R 02,JOBNAME=(ssidMSTR,ssidCHIN,jobname),USR=(5E9,5EA,5EB,5EE,F6C) JOBNAME=(ssidMSTR,ssidCHIN,jobname),USR=(5E9,5EA,5EB,5EE,F6C) IEE600I REPLY TO 13 IS;JOBNAME=(ssidMSTR,ssidCHIN,jobname),USR=(5E9,5EA,5EB,5EE,F6C) *03 ALH102A CONTINUE TRACE DEFINITION OR REPLY END R 03,END END IEE600I REPLY TO 14 IS;END AHL103I TRACE OPTIONS SELECTED-USR=(5EA,5E9,5EB,5EE,F6C) AHL103I JOBNAME=(ssidMSTR,ssidCHIN,jobname) *04 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U R 04,U JOBNAMEP 는 batch job 이나 WMQ 와 interface 해서 사용중인 CICS name 을 지정합니다. 만약, Remote QMGR 를 사용하고 있지 않아 Channel 을 사용하지 않는 것에 대한 tracing 일 때, MQ CHIN 은 reply 시 JOBNAME 에서 제외합니다. Remote QMGR 와 관련 되어 있다면, MSTR과 CHINT 및 DSPNAME 으로 CHIN dataspace 도 지정합니다. 139 © IBM Corporation 2007 IBM Global Services WMQ TRACE –(2) WMQ 에서 발생되는 문제에 대한 메시지는 CSQ 로 시작됩니다. GTF Start 시 USRP option 에 다음과 같은 EID 가 정의 되어있어야 합니다. - 5E9 : Collect information about control blocks on entry to MQSeries - 5EA : Collect information about control blocks on exit to MQSeries - 5EB : Collect information about entry to internal MQ functions - 5EE : Collect information about exit from internal MQ functions - F6C : Collect information about CICS/MQ functions GTF 가 start 된 후에는 “DISPLAY TRACE” ,”ALTER TRACE” “STOP TRACE” 로 parameter 등을 변경할 수 있습니다. CHIN trace data 는 CHIN dataspace 에 write 되기 때문에 DUMP 를 받을 때 반드시 함께 받아야 합니다. <KEY PARMAMETER> CSQ6CHIP 의 CHIN trace table size 를 5 MB 로 지정 CSQ6SYSP 의 trace table size 를 250 으로 지정 (4 KB * 250) Start GTF Trace, PARM=MODE(INT) with REGION=2880KB GTF parameter SADMP,SDUMP,ABDUMP ,BLOK 는 최소한 10 MB 로 지정되어야 합니다. TRACE=JOBNAMEP,USRP JOBNAME=(ssidMSTR,jobname),USR=(5E9,5EA,5EB,5EE,F6C) GTF 가 start 됨. b) Start MQ Tracing : +cpf START TRACE(GLOBAL) DEST(GTF) CLASS(*) RMID(*) CSQ6SYSP 에 TRACSTR 이 YES 나 숫자로 정의 되어있다면 QMGR 가 Start 될 때 CLASS 1 이나 기타 CLASS 로 tracing 이 되는 것이므로, CLASS 를 바꾸고자 하거나 특정 RMID 를 받고자 할 때 “ALTER TRACE” Command 로 변경한다. GLOBAL tracing 시 CPU overhead 에 큰 영향을 줄 수 있습니다. 140 © IBM Corporation 2007 IBM Global Services WMQ TRACE –(3) WMQ 메시지를 이용하여 SLIP 에 의한 Dump 를 받고자 하는 경우 SLIP SET,MSGID=CSQXxxxE, JOBNAME=ssidCHIN, JOBLIST=(ssidMSTR,ssidCHIN), DSPNAME=('ssidCHIN'.CSQXTRDS), SDATA=(CSA,RGN,PSA,SQA,LSQA,TRT,SUM), MATCHLIM=1,EN c) STOP MQ Trace : +cpf STOP TRACE(*) d) STOP GTF 2. WMQ CHANNEL TRACING “START TRACE” 로 START 하거나 CSQ6SYSP 에 TRACSTR 로 정의 하여 QMGR 시동 시 trace 를 시작할 수 있습니다. Tracing data 는 CHIN address space 내에 4KB 로 저장 됩니다. 141 © IBM Corporation 2007 IBM Global Technology Services LE 최동준 cpsdjc@kr.ibm.com IBM Global Services LE 문제분석 Data 수집절차 Language Environment (LE)는 zOS와 VM 및 VSE 운영체계의 Run-time환경을 지원한다. 운영 중에 발생한 LE관련 문제를 분석하기 위해서는 Dump와 관련된 Run-time Option이 요구된다. (1) LE와 Batch (IMS, WebSphere, etc.) Run-time option에 필요 시 System Dump를 발생할 수 있도록 LE Dump Option을 지정 : - ABTERMENC(ABEND), - TERMTHDACT(UADUMP), - TRAP(ON) (2) LE와 CICS AbendU4038을 제외한 LE AbendU40xx계열의 Abend는 CICS Transaction Dump가 획득되도록 지정되어 있어야 하며 필요 시 System Dump를 발생할 수 있도록 관련 Dump Option을 지정 : 1. CICS Transaction Dump Table에 지정 : CEMT SET TRD(40xx) SYS ADD 2. LE Dump option을 지정 : - ABTERMENC(ABEND), - TERMTHDACT(UADUMP), - TRAP(ON) (3) LE와 UNIX System Services shell 1. System Dump를 dataset으로 write하기 위해 다음 command 를 issue : export _BPXK_MDUMP=filename (여기서 filename은 ‘LRECL=4160,RECFM=FBS’으로 구성되어 있어야 함) 2. LE Run-time Option을 지정 : Suboption은 ‘UADUMP (권고), UAONLY, UATRACE, UAIMM’이며, 만약 ‘UAIMM’을 지정한다면 ‘TRAP(ON,NOSPIE)’를 반드시 지정해야 함. 143 © IBM Corporation 2007 IBM Global Technology Services WAS 최동준 cpsdjc@kr.ibm.com IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 WebSphere Application Server on z/OS (WAS z/OS)의 장애발생시 문제 분석을 위해 필요한 주요 분석 Data 및 분석 절차는 대략적으로 다음과 같다 : 1. WebSphere on z/OS Diagnostic Data 2. Dumping WebSphere Application Server, CTRACE 3. LDAP trace 4. IBM HTTP Server Log, Trace : 5. JVM Debugging Tools for z/OS (1) WebSphere on z/OS Diagnostic Data WAS z/OS의 Error Log는 z/OS System Logger에 의해 관리되는 Log stream dataset이며 Log stream은 DASD나 CF (Coupling Facility)에 있는 staging data set에 있다. 1-1) WAS log stream에 저장된 data는 반드시 Log Browse Utility ‘BBORBLOG’ REXX Exec을 사용해서 format을 시켜야 하는데 error log stream output을 보기 위해서는 ISPF option 6 (Command)을 통해 BBORBLOG Browser를 invoke시켜야한다. BBORBLOG는 SBBOEXEC의 멤버 이름이며 실행 "userid.stream_name“의 형식으로 된 browser data set이 만들어 지며 BBORBLOG를 수행할 때마다 기존의 dataset은 지워지므로 보관하려면 이름을 바꾸거나 다른 dataset으로 복사해 두어야 한다 : (예) ex 'BBO.SBBOEXEC(BBORBLOG)' 'WAS_LogStream_Name‘ (예) WAS Log : 2002/09/05 20:26:10.233 01 SYSTEM=SC49 SERVER=NAMING01 JobName=BBONMS ASID=0X0060 PID=0X01060042 TID=0X23AE32E0 0X000008 c=1.19 ./bboi3pli.cpp+3712 ... BBOU0011W The function IBOIM390PrivateLocalToServer_IMContainer_Impl::beforeMethodDispatch(:: ByteString*,CORBA::Object_LocalProxy_ptr,const char*,CORBA::Long)+3712 raised CORBA system exception CORBA::INV_OBJREF. Error code is C9C21444 145 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 1-2) WAS Joblog와 Syslog : Syslog는 Master Console로 나가는 message들리 저장되는 곳이다. 주요 WAS관련 message들은 Syslog와 WAS Joblog로 나가며 Syslog나 Joblog로 부터의 output은 SPOOL Display와 SDSF를 통해 보여질 수 있다. WAS 문제분석과 연관된 주요 JES Spool DD이름은 다음과 같다 : a) JESMSGLG : 일련의 환경 변수 값과 server setting값을 포함하는 Start-up message들이 포함된다. b) JESYSMSG : 일련의 환경 변수 값과 server setting값을 포함하면서 더 많은 message와 dump정보를 나열한다. 1-3) CEEDUMP : WAS address space에서 발생하는 exception은 CEEDUMP를 발생시키는 원인이 될 수 있다. CEEDUMP는 Trace Back을 포함하는 Failing information을 낼 수도 있다. 1-4) SYSOUT : 정상적인 운영상황에서는 SYSOUT은 비어있지만 output이 SYSOUT으로 나가게 되는 경우가 발생한다. 만약 error log logstream이 connect가 될 수 없을 경우 error log로 나가게 되는 message들은 CERR로 나가게 되며 이때 SYSOUT으로 나가게 된다. ‘JVM_DEBUG=1’로 환경변수를 정의해 놓고 jvm_logfile을 정의하지 않았을 때 JVM으로 부터의 trace도 SYSOUT으로 나가게 된다. 146 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 1-5) SYSPRINT : 만약 환경변수에 ‘ras_trace_outputLocation=SYSPRINT’ 를 정의했을 경우에 WAS trace output은 SYSPRINT로 나갈 수 있다. Processing Trace Settings File: config/cells/cl6481/nodes/nd6481/servers/ws6481/trace.dat Trace: 2005/04/22 07:08:07.453 01 t=7E3E88 c=UNK key=P8 (13007002) ThreadId: 0000000a FunctionName: com.ibm.ws390.orb.CommonBridge SourceId: com.ibm.ws390.orb.CommonBridge Category: AUDIT ExtendedMessage: BBOJ0011I JVM Build is J2RE 1.4.2 IBM z/OS Persistent Reusable VM build cm142sr1a-20050209 (JIT enabled: jitc) Trace: 2005/04/22 07:08:07.464 01 t=7E3E88 c=UNK key=P8 (13007002) ThreadId: 0000000a FunctionName: com.ibm.ws390.orb.CommonBridge SourceId: com.ibm.ws390.orb.CommonBridge Category: AUDIT ExtendedMessage: BBOJ0051I PROCESS INFORMATION: STC26724/WS6481S , ASID=103(0x67), PID=68157916(0x41001dc) Trace: 2005/04/22 07:08:07.489 01 t=7E3E88 c=UNK key=P8 (13007002) ThreadId: 0000000a FunctionName: printProperties SourceId: com.ibm.ws390.orb.CommonBridge Category: AUDIT ExtendedMessage: BBOJ0077I java.vendor = IBM Corporation Trace: 2005/04/22 07:08:07.492 01 t=7E3E88 c=UNK key=P8 (13007002) 147 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 (2) Dumping WebSphere Application Server address spaces : WAS 문제 분석을 위해 필요한 dump는 특정한 WAS address space뿐만 아니라 WAS와 관련된 address space들 (OMVS,TCP/IP,HTTP address space)에 대한 dump도 요구될 수 있다. 다음과 같은 dump command를 이용하여 관련 address space들과 data space들에 대한 dump를 획득할 수 있다 : DUMP COMM=(description of problem) JOBNAME=(OMVS,WAS Serverproc,HTTP server,TCP/IP address space),DSPNAME=('OMVS'.*), SDATA=(CSA,GRSQ,LPA,NUC,PSA,RGN,SQA,TRT,SUM) WAS address space의 구조는 하나의 server control region과 daemon region 및 여러 개의 servant region들로 구성될 수 있으므로 정확한 문제 분석을 위해 관련된 address space들에 대한 dump가 요구될 수 있으므로 DUMP MAXSPACE가 적어도 2,500M는 정의가 되어야 한다 : IEACMDxx member COM='CHNGDUMP SET,SDUMP, MAXSPACE=2500M,ADD' 2-1) WebSphere Application Server CTRACE (SYSBBOSS) : WAS z/OS Daemon이나 Subcomponent에 대해 사용하며 고객 Application에는 사용할 수 없다. 문제 분석을 위해서 format된 CTRACE를 획득하기 위해서는 몇 개의 단계를 따르면 된다. 1. Component Trace를 위한 절차 : (a) WAS z/OS Trace를 위해 CTIBBOxx Parmlib member를 만든다. ‘ras_trace_outputLocation-BUFFER’를 지정할 때에만 사용된다. 148 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 WAS z/OS는 Default CTRACE PARMLIB member를 제공한다 : TRACEOPTS /* Start a ctrace writer. Remove comments to start the PROC */ /* during CB Series address space initialization. */ WTRSTART(BBOWTR) /* Indicate that tracing is active for CB Series: */ ON /* Connect to ctrace external writer (BBOWTR): */ WTR(BBOWTR) (*) BBOWTR started task는 WAS가 start시키지 않으므로 직접 start를 시켜줘야 한다. (b) WAS z/OS Trace를 위해 Buffer개수를 지정한다 : WAS z/OS는 MVS MODIFY (F) command를 이용하여 Trace Option들을 지정할 수 있다. MODIFY was_server_name,TRACETOSYSPRINT=YES MODIFY was_server_name,TRACEALL=n (여기서 n은 Trace Level) (*) Trace Level은 0 (None), 1 (exceptions), 2 (basic/exception) 및 3 (detail Basic/Exception tracing)로 되어있다. 정상적인 운영상황과 production환경에서는 1(exception)로 사용하다 문제가 발생하여 분석이 필요한 경우 3 (detailed tracing)으로 변경할 것을 권고한다. 149 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 2. Trace data를 획득하기 위한 절차 : (a) 먼저 trace data set (DCB ; PS, VB, 32760, 32760)을 Allocate시켜 놓아야 한다. z/OS parmlib member인 CTIBBO00에 default로 자동적으로 CTRACE Writer address space를 start시킨다. 만약 CTRACE Writer가 start되어 있지 않다면 command를 이용해서 start시킬 수 있다 : TRACE CT,WTRSTART=BBOWTR 이때 다음과 같은 message가 발생한다 : ITT110I INITIALIZATION OF TRACE WRITER BBOWTR COMPLETE. (b) 필요한 trace spec을 가지고 Daemon address space를 start시킨다 (c) WebSphere for z/OS server를 start시킨다 (d) Trace data 수집 : 문제 분석을 위해 Trace data가 필요하면 다음과 같은 절차를 수행하면 된다 : - Operator command를 이용하여 WAS를 CTRACE로 부터 DISCONNECT시킨다 : TRACE CT,ON,COMP=SYSBBOSS REPLY x,WTR=DISCONNECT,END - Operator command를 이용하여 CTRACE address space를 STOP시킨다 : . TRACE CT,WTRSTOP=BBOWTR 150 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 (예) WAS CTRACE Syslog output SY1 TRACE CT,ON,COMP=SYSBBOSS SY1 *04 ITT006A SPECIFY OPERAND(S) FOR TRACE CT COMMAND. SY1 REPLY 4,WTR=DISCONNECT,END SY1 IEE600I REPLY TO 04 IS;WTR=DISCONNECT,END SY1 ITT038I ALL OF THE TRANSACTIONS REQUESTED VIA THE TRACE CT COMMAND WERE SUCCESSFULLY EXECUTED. SY1 IEE839I ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,016K) ISSUE DISPLAY TRACE CMD FOR SYSTEM AND COMPONENT TRACE STATUS ISSUE DISPLAY TRACE,TT CMD FOR TRANSACTION TRACE STATUS SY1 TRACE CT,WTRSTOP=BBOWTR SY1 ITT038I ALL OF THE TRANSACTIONS REQUESTED VIA THE TRACE CT COMMAND WERE SUCCESSFULLY EXECUTED. SY1 IEE839I ST=(ON,0064K,00128K) AS=ON BR=OFF EX=ON MT=(ON,016K) ISSUE DISPLAY TRACE CMD FOR SYSTEM AND COMPONENT TRACE STATUS ISSUE DISPLAY TRACE,TT CMD FOR TRANSACTION TRACE STATUS SY1 AHL904I THE FOLLOWING TRACE DATASETS CONTAIN TRACE DATA : ITSOWAS.BOSS.CTRACE SY1 ITT111I CTRACE WRITER BBOWTR TERMINATED BECAUSE OF A WTRSTOP REQUEST 151 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 (3) LDAP trace : z/OS Secureway Security Server의 LDAP (Lightweight Directory Access Protocol) component는 Java Naming and Directory Interface (JNDI),CORBA (MOFW) naming과 interface repository service 를 위한 directory service를 제공하며 DB2 table에 directory의 내용이 저장된다. LDAP은 또한 security와 authorization관련 문제의 분석에 매우 유용하게 쓰이는 trace를 가지고 있다. LDAP server는 STC로 혹은 z/OS Shell로 부터 수행되는데 MVS MODIFY (F) command를 이용하여 SDSF나 OP Console로 부터 LDAP server로 dynamic하게 debugging facility에 대한 구동과 정지를 시킬 수 있다 : f ldap,appl=debug=<nnnnn> : nnnn은 Decimal로 정의된 Debug Level내지 Debug Keyword이다. (Debug Keyword 예) 모든 error condition에 대한 trace를 위해서는 ‘ERROR’를 지정하면 된다. LDAP server를 start시키기 전에 LDAP_DEBUG 환경변수를 지정해 놓으며 server가 지정된 환경변수를 먼저 사용하게 된다 : (예) export LDAP_DEBUG=‘ERROR+TRACE’ LDAP server가 start될 때 ‘-d’ parameter를 지정할 수도 있다. 여기에 지정된 Debug Level은 기존에 지정되어 있는 Debug Level을 ‘Replace,Add 혹은 Delete’시킬 수 있다 : (예) s ldapsrv,parms=‘-d ERROR’ : LDAP Debug Level이 ‘ERROR’로 된다. Debug Trace를 끝내려면 '0'로 세팅한다 152 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 (4) IBM HTTP Server Log, Trace : Server Error Log는 Client에서 발생한 error도 포함되는데 timeout과 access error등에 대한 정보가 포함되어 있는데 Error log는 httpd.conf에 ErrorLog directory로 지정되어 있는 HFS File에 저장된다. (예) ErrorLog /web/logs/errorlog Server는 Access Log file에 activity를 기록하고 매일 기록을 저장하며 Access log는 httpd.conf에 AccessLog directory로 지정되어 있는 HFS File에 저장된다. (예) AccessLog /web/logs/accesslog 153 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 4-1) HTTP –vv Tracing : Server trace는 여러 level의 Debugging이 있지만 –vv trace가 가장 많이 사용된다. –vv trace를 기동시키는 방법은 2가지가 있다 : 1) Started Procedure에 –vv parameter를 이용하여 기동시키는 방법 : //IMWPROC PROC LEPARM=,ICSPARM=’-vv -r /web/httpd.conf’ //********************************************************************* //WEBSRV EXEC PGM=IMWHTTPD,REGION=0K,TIME=NOLIMIT, // PARM=(ⓒ&LEPARM/&ICSPARMⓒ) //********************************************************************* //SYSIN DD DUMMY //OUTDSC OUTPUT DEST=HOLD //SYSPRINT DD SYSOUT=*,OUTPUT=(*.OUTDSC) //SYSERR DD SYSOUT=*,OUTPUT=(*.OUTDSC) //STDOUT DD SYSOUT=*,OUTPUT=(*.OUTDSC) //STDERR DD SYSOUT=*,OUTPUT=(*.OUTDSC) //SYSOUT DD SYSOUT=*,OUTPUT=(*.OUTDSC) //CEEDUMP DD SYSOUT=*,OUTPUT=(*.OUTDSC) 2) Console command를 이용하여 server를 기동시키는 방법 : f imwebsrv,appl=-vv 여기서 imwebsrv는 IBM HTTP Server이름이며 다음의 message가 발생한다 : IMW3518I Second level tracing (-vv) enabled. Trace를 중지시키는 command : f imwebsrv,appl=-nodebug Command에 의해서 Trace가 중지될때 발생하는 message : MW3508I Debug has been disabled for all modules. 154 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 (5) JVM Debugging for z/OS JVM은 WAS의 수행환경에서 핵심부분을 차지하고 있고 대부분의 poduct들은 USS Run-time환경에서 수행되고 있는데 Production WebSphere z/OS환경에서 JVM 문제분석 시 JVM Trace를 이용하여 필요한 분석 data를 획득할 수 있다. 5-1) JVM_DEBUG JVM Application에서 발생한 event를 detail하게 보려면 current.env에 JVM Messaging을 이용하면 된다. 이때 JVM_TRACE도 ON되게 된다 : JVM_DEBUG=1 current.env file > Each server instance has its own set of environment files. ....................... > Server region needs current.env and jvm.properties files. ....................... > Both files live in the same directory: /WebSphere390/CB390/ BBOLANG=ENUS controlinfo/envfile/<sysplex>/<server_instance>/ CBCONFIG=/Websphere390/CB390 management GUI. current.env files are managed via the systems DAEMON_PORT=5555 > jvm.properties are managed by hand. DAEMON_SSL_PORT=5556 DATASHARING=1 DM_GENERIC_SERVER_NAME=CBDAEMON DM_SPECIFIC_SERVER_NAME=DAEMON01 ICU_DATA=/usr/lpp/WebSphere/bin IR_GENERIC_SERVER_NAME=INTFRP01 .......................... JVM_DEBUG=1 RESOLVE _IPNAME=ws11.washington.ibm.com SM_DEFAULT_ADMIN=CBADMIN ......................... ......................... SRVIPADDR=None SYS_DB2_SUB_SYSTEM_NAME=JUDY TRACEALL=1 TRACEBUFFLOC=BUFFER TRACEPARM=00 155 © IBM Corporation 2007 IBM Global Services WebSphere (WAS) 문제분석 Data 수집 절차 5-2) JRas System management problem에 사용한다. trace.settings file을 current.env file과 같은 directory에 둔다. /WebSphere390/CB390/controlinfo/envfile/<sysplex_name>/<sysmgmt_serverinstance> J2EE server나 Java BOs와 같이하는 server에도 사용한다. 156 © IBM Corporation 2007 IBM Global Technology Services VTAM 최동준 cpsdjc@kr.ibm.com IBM Global Services VTAM 문제분석 command VTAM Dump 및 VTAM Trace 를 받기 전에 아래의 command 를 사용하여 문제를 파악한다. (1) D NET,PENDING pending 상태에 있는 resource를 보여준다. (2) D NET,CDRMS cross-domain resource를 보여준다. (3) D NET,ID=name named device의 상태를 보여준다. (4) D NET,BFRUSE VTAM buffer statistics를 보여준다. (5) D NET,ACT,ID=name 해당 resource를 activate 시킨다. (6) D NET,INACT,ID=name 해당 resource를 deactivate 시킨다. 158 © IBM Corporation 2007 IBM Global Services VTAM Trace (1) VTAM Trace를 받는 절차 VTAM Trace를 받기 위한 운영절차는 다음의 순서를 따라야 한다. 1. 대상 Resource를 준비 상태로 만든다. 2. GTF(Generalized Trace Facility)를 start한다. 3. VTAM Trace를 start한다. 4. Error를 발생시킨다. 5. VTAM Trace를 stop한다. 6. GTF를 stop한다. 7. 획득한 Trace를 IPCS나 ACF/TAP Service Tool을 이용하여 Format한다. (2) 사전 준비 작업 GTF Trace Option을 지정해 주어야 하며 Option 및 Start/Stop하는 방법은 아래 설명을 참조한다. (3) VTAM Trace를 위한 GTF Option 및 Start 방법 3-1) GTF trace option - TRACE=USR - 'user-defined' 모든 event - VATM trace인 경우 Buffer, Line, SIT, TG, GPT, VIT, SMS 등 3-2) GTF trace option - TRACE=USRP - ‘user-defined' 선택적 event - GTF trace option 'USR="에 Event ID를 정의 - USR=(FE1,FE2,FE3,FE4,FEF,FF0,FF1,FF2) 3-3) GTF trace option - TRACE=RNIO - TYPE=IO VTAM Trace만 trace됨 159 © IBM Corporation 2007 IBM Global Services VTAM Trace (4) GTF를 start하는 방법의 예 S GTF AHL121I SYS1.PARMLIB INPUT INDICATED AHL103I TRACE OPTION SELECTED -- SYSM,TRC,DSP,PCI,RNIO,USR *xx AHL125A RESPECIFY TRACE OPTIONS OR REPLY U R xx,u or R xx, TRACE=RNIO,USR *yy AHL102A CONTINUE TRACE DEFINITIONS OR REPLY END R yy,END AHL102I TRACE OPTIONS SELECTED -- XXX,USR,PNIO,YYY,ZZZ,… *zz AHL125A RESPECIFY TRACE OPTIONS OR REPLY U (5) GTF를 stop하는 방법의 예 STOP GTF (6) VTAM Trace를 start하는 방법 VTAM trace를 start하는 방법은 두가지로 나눌 수 있다 : (a) VTAM start시 start option에 의해서 (b) VTAM start후 MODIFY TRACE command에 의해서 trace를 start할 수 있다. (7) VTAM start시 trace하는 방법 7-1) Trace option의 source - VTAM default는 NOTRACE이고, - Start option list는 ATCSTRxx 또는 ATCSTR00이다. 7-2) Start trace option format TRACE|NOTRACE,TYPE=BUF,ID=nodename(,EVERY) TRACE|NOTRACE,TYPE=IO,ID=nodename(,EVERY) 160 © IBM Corporation 2007 IBM Global Services VTAM Trace (8) Trace 시작 및 종료 Command 아래의 VTAM Command를 이용하여 각종 Trace를 GTF Trace에 출력시킬 수 있다. MODIFY TRACE command를 이용하여 trace를 start 할 수 있고, MODIFY NOTRACE command를 이용하여 trace를 stop시킨다. 8-1) MODIFY TRACE Command MODIFY (F) procname, TRACE, TYPE= - BUF|IO, ID=nodename, SCOPE=all|only (사용 예) F NET,TRACE,TYPE=IO,ID=pu/lu name F NET,TRACE,TYPE=BUF,ID=pu/lu name 8-2) MODIFY NOTRACE command MODIFY NOTRACE command는 trace를 중단시킨다. start시 사용된 nodename과 type이 일치하여야 한다. MODIFY (F) procname, NOTRACE,TYPE= - BUF|IO, ID=nodename, SCOPE=all|only 161 © IBM Corporation 2007 IBM Global Services VTAM Trace (9) Trace의 종류 및 Command 사용법 VTAM의 Procedure 명을 NET이라고 가정하고, Trace의 지정할 수 있는 Node에 대한 내용은 다음과 같다. 9-1) BUFFER Trace F NET, TRACE, TYPE=BUF, ID=nodename [,SCOPE=ALL|ONLY] - nodename는 Active 상태의 PU명, NCP명 및 LU명 - SCOPE = ALL은 하위 NODE 전체를 포함 - Trace data 길이는 GTF Header를 포함해서 256 Byte (주) TSO인 경우 SYS1,PARMLIB의 Member TSOKEY00에 CONFTXT=YES로 지정된 경우 Data를 Trace하지 않는다. 9-2) RNIO Trace 36 Byte 까지의 PIU data를 Trace F NET, TRACE, TYPE=IO, ID=node name [,SCOPE=ALL|ONLY] (10) TSO Trace TSO user address space 내의 VTAM 부분(VTIOC)인 data를 trace한다. F NET, TRACE, TYPE=TSO, ID=TSO user id 162 © IBM Corporation 2007 IBM Global Services VTAM Trace (11) VTAM Internal Trace (VIT) VTAM 내부의 event를 trace한다. F NET, TRACE, TYPE=VTAM, OPT=ALL, MODE=EXT OPTION=( API, : application program interface CIO, : channel input and output MSG, : messages NRM, : network resource management PIU, : path information unit flows SSCP) : system service control point MODE=INT : trace 내용이 internal trace table에 기록됨. MODE=EXT : trace 내용이 SYS1.TRACE 에 기록됨. (12) Trace를 Format하는 방법 IPCS 나 ACF/TAP 을 이용해서 print 할 수 있다. 163 © IBM Corporation 2007 IBM Global Technology Services TCP/IP 최동준 chcpsdjc@kr.ibm.com IBM Global Services TCP/IP 문제분석 Data 수집 절차 1. TCP/IP Component 및 Packet Trace Network 문제가 발생하였을 경우, 문제 해결을 위해서 각종 Trace가 필수적이다.TCP/IP 환경에서도 각종 Trace가 필요한데,주요 Trace가 Component Trace(CTRACE) 와 Packet Trace이다. Component Trace는 VTAM Internal Trace(VIT)와 같은 것으로 TCP/IP의 내부적인 Control 흐름을 Trace하는 것이고, Packet Trace는 VTAM Buffer Trace의 기능과 같은 것으로 TCP/IP로 들어오고 나가는 Data를 trace하는 것이다. (1) TCP/IP Component Trace를 받는 방법 1-1) SYS1.PARMLIB member (CTIEZB00)를 수정 /****************************************************************** /* /* TCP/IP for MVS /* SMP/E Distribution Name: CTIEZB00 /* /* MEMBER: CTIEZB00 TRACEOPTS /* --------------------------------------------------------------/* ON OR OFF: PICK 1 /* --------------------------------------------------------------ON /* OFF /* --------------------------------------------------------------/* BUFSIZE: A VALUE IN RANGE 128K TO 16M /* --------------------------------------------------------------BUFSIZE(256K) 165 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 /* --------------------------------------------------------------/* OPTIONS: NAMES OF FUNCTIONS TO BE TRACED, OR "ALL" /* --------------------------------------------------------------/* OPTIONS( /* 'ALL */ ' */ /* ,'MINIMUM ' */ /* ,'ARP /* ,'CLAW /* ,'CONFIG ' /* ,'CTC /* ,'ENGINE ' /* ,'FIREWALL' */ /* ,'ICMP /* ,'INIT /* ,'INTERNET' */ /* ,'IOCTL ' /* ,'LCS /* ,'MESSAGE ' */ /* ,'OPCMDS ' */ /* ,'OPMSGS ' */ /* ,'PASAPI ' */ /* ,'PFS */ /* ,'QUEUE ' */ /* ,'RAW /* ,'SERIAL ' */ /* ,'SNMP */ /* ,'SOCKET ' */ /* ,'STORAGE ' */ /* ,'SYSCALL ' */ /* ,'TCP /* ,'TELNET ' */ /* ,'TELNVTAM' */ /* ,'TIMER ' */ /* ,'UDP ' */ /* ,'VTAM ' */ /* ,'VTAMDATA' */ /* ,'WORKUNIT' */ /* ) ' */ ' ' */ */ */ ' */ */ ' */ ' */ */ ' ' */ ' ' */ */ ********************************************************************** (주)원하는 trace option을 166 선택하거나, ALL을 선택. © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 1-2) SYS1.PROCLIB(CTTCP)를 수정 ********************************************************************** //CTTCP PROC //* REFER: SYS1.PROCLIB(CTTCP) //* COMPID: OPER //* DOC: TH //* DOC: THIS PROCEDURE IS THE IPCS CTRACE1 EXTERNAL WRITE //* PROCEDURE //* USED BY TCP/IP //* //IEFPROC EXEC PGM=ITTTRCWR //TRCOUT01 DD DSNAME=MEGA.IPCS.CTRACE1,UNIT=SYSDA, // VOL=SER=STORGE, // SPACE=(4096,(100,10)),DISP=(NEW,CATLG),DSORG=PS // ********************************************************************** (주)충분한 Trace를 받기 위해 Space를 조정한다. 1-3) TCP/IP Start-up시 PARMLIB을 가지고 CTRACE를 Start CTRACE 를 start 하는 방법은 두 가지 방법이 있다 : (a) PARMLIB(CTIEZBnn)을 가지고 TCP/IP Start-up 시 start 하는 방법. (b) Trace command 로 TCP/IP Start-up후 원하는 시점에 start 하는 방법. (아래 4번째 step). S tcpip_procedure_name,PARMS=CTRACE(CTIEZB00) 1-4) Trace Command에 의한 CTRACE Start TRACE CT,ON,COMP=SYSTCPIP,SUB=(tcpip_proc),PARM=CTIEZB00 167 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 1-5) Component Trace Status를 display. DISPLAY TRACE,COMP=SYSTCPIP,SUB=(tcpip_procedure_name) 1-6) External Writer를 Start Trace output 을 external writer (proc CTTCP에 지정된 dataset)에 보관하거나 Data Space에 보관할 수 있다. TRACE CT,WTRSTART=CTTCP 1-7) External Writer를 Connect. TRACE CT,ON,COMP=SYSTCPIP,SUB=(tcpip_procedure_name) R nnnn,WTR=CTTCP,END 1-8) Error가 발생할 때까지 Trace를 받는다. 1-9) External Writer를 Disconnect TRACE CT,ON,COMP=SYSTCPIP,SUB=(tcpip_procedure_name) R nn,WTR=DISCONNECT,END 1-10) External Writer를 Stop. TRACE CT,WTRSTOP=CTTCP 1-11) Component Trace를 Stop. TRACE CT,OFF,COMP=SYSTCPIP,SUB=(tcpip_procedure_name) 168 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 1-12) TRACE DATA를 DUMP안에 받는 방법 MEMBER(CTIEZB00) 안의 BUFSIZE 의 값을 최대한 늘려준다.(MAX 16M) 다음과 같이 COMMAND 로 TCP/IP ADDRESS SPACE 및 DATA SPACE를 DUMP를 받는다. DUMP COMM=(your dump title here) R n,JOBNAME=tcpipproc,DSPNAME='TCPIPPROC'.TCPIPDS1,CONT R n,SDATA=(nuc,rgn,csa,sqa),END (2) TCP/IP Packet Trace를 받는 방법 2-1) SYS1.PROCLIB를 Update 충분한 packet trace를 받게 space를 조정한다. //PTTCP PROC //* CTWDASD PROC //* REFER: SYS1.PROCLIB(CTWDASD) //* COMPID: OPER //* DOC: THIS PROCEDURE IS THE IPCS CTRACE1 EXTERNAL WRITE PROCEDURE //* USED BY TCP/IP //* //IEFPROC EXEC PGM=ITTTRCWR //TRCOUT01 DD DSNAME=TCPIP.PTRACE1.PTRACE,UNIT=SYSDA, // // VOL=SER=STORGE, SPACE=(40960,(1024,100)),DISP=(NEW,CATLG),DSORG=PS // 169 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 2-2) Packet Ttrace를 Start. V TCPIP,tcpipproc,PKT 2-3) External Writer를 Start. TRACE CT,WTRSTART=PTTCP,WRAP 2-4) External Writer를 Connect. TRACE CT,ON,COMP=SYSTCPDA,SUB=(tcpip_procedure_name) R nnnn,WTR=PTTCP,END 2-5) Error가 발생할 때까지 Packet Trace를 받는다. 2-6) External Writer를 Disconnect. TRACE CT,OFF,COMP=SYSTCPDA,SUB=(tcpip_procedure_name) R nn,WTR=DISCONNECT,END 2-7) External Writer를 stop. TRACE CT,WTRSTOP=PTTCP 170 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 (3) TCP/IP Component Trace 및 Packet Trace Output을 보는 방법 OS/390 V2.5 이상부터는 IPCS를 이용하여 Component Trace 및 Packet trace를 분석 할 수 있다. 3-1) TRACE DATASET 명을 지정 IPCS PRIMARY OPTION MENU 에서 0(DEFAULTS)을 선택하고, TRACE DATASET 명을 지정. 3-2) IPCS main panel에서 2 (ANALYSIS)를 선택 --------------------- IPCS PRIMARY OPTION MENU ---------------OPTION ===> 2 0 DEFAULTS - Specify default dump and options 1 BROWSE - Browse dump data set 2 ANALYSIS 3 UTILITY - Analyze dump contents - Perform utility functions 4 INVENTORY - Inventory of problem data 5 SUBMIT 6 COMMAND T TUTORIAL X EXIT - Submit problem analysis job to batch - Enter subcommand, CLIST or REXX exec - Learn how to use the IPCS dialog - Terminate using log and list defaults Enter END command to terminate IPCS dialog 171 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 3-3) ANALYSIS panel에서 7 (TRACES)을 선택 ------------- IPCS MVS ANALYSIS OF DUMP CONTENTS ----------OPTION ===> 7 To display information, specify the corresponding option number. 1 SYMPTOMS 2 STATUS - Symptoms - System environment summary 3 WORKSHEET - System environment worksheet 4 SUMMARY - Address spaces and tasks 5 CONTENTION - Resource contention 6 COMPONENT - MVS component data 7 TRACES - Trace formatting Enter END command to terminate MVS dump analysis. 3-4) 1 (CTRACE)을 선택 ------------------- IPCS Trace Processing ----------------OPTION ===> 1 To display trace information, enter the corresponding option number 1 CTRACE - Component trace 2 GTFTRACE - Generalized trace facility 3 MTRACE - Master trace 4 SYSTRACE - System traces 5 CPUTRACE - Hardware instruction trace buffer 6 MERGE - Merge multiple traces T TUTORIAL - Details on these traces Enter END command to terminate IPCS trace processing. 172 © IBM Corporation 2007 IBM Global Services TCP/IP 문제분석 Data 수집 절차 3-5) D (DISPALY)를 선택 ---------------- CTRACE PRIMARY OPTION MENU --------------OPTION ===> d To display CTRACE information, enter the corresponding option. Q QUERY - Specify parameters for QUERY report D DISPLAY - Specify parameters to display CTRACE entries S START - Start CTRACE subcommand as specified below R RESET - Reset the CTRACE parameters END/PF3 = terminate CTRACE processing. 3-6) TRACE의 PARAMETER 지정 Component trace 인 경우,Component 항에 SYSTCPIP 로 지정 Packet trace 인 경우,Component 항에 SYSTCPDA 로 지정 ------------------ CTRACE DISPLAY PARAMETERS ------------------COMMAND ===> S System ===> (System name or blank) Component ===> SYSTCPIP (Component name (required)) Subnames ===> GMT/LOCAL ===> G Start time Stop time Limit Report type User exit (G or L, GMT is default) ===> (mm/dd/yy,hh:mm:ss.dddddd ===> ===> 0 mm/dd/yy,hh.mm.ss.dddddd) Exception ===> ===> FULL ===> (SHort, SUmmary, Full, Tally) (Exit program name) Override source ===> Options ===> To enter/verify required values, type any character Entry IDs ===> Jobnames ===> ASIDs ===> OPTIONS ===> SUBS === CTRACE COMP(SYSTCPIP) FULL ENTER = update CTRACE definition. END/PF3 = return to previous panel. 173 © IBM Corporation 2007 IBM Global Technology Services Online Dump 받는 법(DB2 Data Sharing기준) DUMP COMM=(Your Dump Title) *XX IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND R XX, JOBNAME=(xxxx1,xxxx2,xxxx3,xxxx4), SDATA=(ALLNUC,ALLPSA,CSA,GRSQ,LPA,LSQA,NUC,PSA, RGN,SQA,SUM,SWA,TRT,COUPLE,WLM,XESDATA),END © Copyright IBM Corporation 2007