IEHLISTは、MVS(z/OS)における、DASDボリュームまたは区分データセット・ディレクトリーのリスティングを行うユーティリティー・プログラムです。MSPではJSGLIST、VOS3ではJSFLISTとして提供されています。プログラム名は異なるものの、JCLもSYSIN制御ステートメントも含め、基本的に互換ユーティリティーです。
DASDボリュームのVTOCや区分データセットのディレクトリーのリストアップを行うことはよくあります。ボリューム内にどのようなデータセットがあるのか?、データセット内にどのようなメンバーがあるのか?、を調べることは運用や開発の現場でしばしば起こります。
IEHLISTは、古くからあるユーティリティーで、基本ユーティリティーの1つでもありますが、リストの見やすさという点では今ひとつです。z/OSであれば、VTOCやディレクトリーの各フィールドを詳細に見る必要がないのであれば、VTOCリストやメンバーリストなどはISPFをバッチで呼び出す方がより見やすいリストを得ることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
//******************************************************************** //* TSO BACTH SESSION --- ISPF SERVICE--- //******************************************************************** //ISPBATCH PROC //GENCLIST EXEC PGM=IEBGENER --- GENERATE CLIST MEMBER --- //SYSPRINT DD DUMMY //SYSIN DD DUMMY //SYSUT2 DD DISP=(,PASS),DSN=&&CLIST(ISPCMDS),UNIT=SYSDA, // SPACE=(TRK,(1,,1)),DCB=(RECFM=FB,LRECL=80) //* //ISPBATCH EXEC PGM=IKJEFT01,DYNAMNBR=256 //ISPLOG DD SYSOUT=*,DCB=(RECFM=VBA,LRECL=125,BLKSIZE=0) //ISPLIST DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=0) //SYSPROC DD DISP=(OLD,DELETE),DSN=&&CLIST //ISPPROF DD DISP=(,PASS),UNIT=SYSDA, // SPACE=(CYL,(1,1,10)),DCB=(RECFM=FB,LRECL=80) //ISPLLIB DD DISP=SHR,DSN=ISP.SISPLOAD //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU //ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB // DD DISP=SHR,DSN=ISP.SISPSENU //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * ISPSTART CMD(%ISPCMDS) /* EXECUTE CLIST MEMBER */ // PEND //*=================================================================== //STEP1 EXEC ISPBATCH //GENCLIST.SYSUT1 DD *,DLM='++' /* CLIST FOR ISPF BATCH SESSION */ /* PRINT VTOC LIST */ 代わりにLEVEL(UAP1)とDS名レベルを指定してもよい ISPEXEC LMDINIT LISTID(LID) VOLUME(WRKVOL) ISPEXEC LMDLIST LISTID(&LID) OPTION(SAVE) STATS(YES) ISPEXEC LMDFREE LISTID(&LID) END // // |
ISPFのLMサービスによる、VTOCリストの出力サンプルです。LMサービスでの出力であれば、PDFの3.4ユーティリティーに近い形のリスト出力を得ることができます。
PDSのメンバーリストであれば、次のようなCLISTをGENCLIST.SYSUT1 DDステートメントに記述すればで出力できます。
1 2 3 4 5 |
//GENCLIST.SYSUT1 DD *,DLM='++' /* PRINT PDS MEMBER LIST */ ISPEXEC LMINIT DATAID(DDVAR) DATASET('USR1.LINKLIB') ENQ(SHR) ISPEXEC LMPRINT DATAID(&DDVAR) INDEX END |
ISPFバッチは、こちらの「ISPFバッチ・セッション」にもサンプルがあります。