On Tue, May 3, 2016 at 11:39 AM, michelbutz <michealb...@comcast.net> wrote:
> I have seen examples in the DFSMS advanced services using CVAFDIR one of > the parameters is the DEB of the VTOC is there a way to get that > Normally when you open a dataset its in the DCB > > <quote> The data extent block (DEB) can be obtained by opening a DCB for INPUT, using the RDJFCB and OPEN TYPE=J macros. (After issuing an OPEN TYPE=J macro, the DCB's DCBDEBA field contains the DEB's address.) The DCB's DDNAME must identify a DD statement allocated to the unit whose VTOC is to be accessed. Once your program issues the RDJFCB macro, it must initialize the JFCBDSNM field with the data set name of the format-4 DSCB: 44 bytes of X'04'. The RDJFCB macro is described under RDJFCB Macro Specification <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/rdjfcb.htm?lang=en-us#rdjfcb>; the OPEN macro is described under OPEN - Initialize Data Control Block for Processing the JFCB <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/openj.htm?lang=en-us#openj> . For an extended address volume the DCB macro must point to a DCBE where the EADSCB=OK keyword is specified. If you do not code this option, the OPEN function will issue ABEND 113-48 and message IEC142I. </quote> So you need to allocate the volume, either with JCL or DYNALLOC, and specify both DISP=SHR and VOL=SER=aaaaaa. One convention is to use a data set name of FORMAT4.DSCB as the DSN, e.g. //VTOC DD DISP=SHR,UNIT=SYSALLDA,VOL=SER=aaaaaa,DSN=FORMAT4.DSCB You have a DCB with a DDNAME=VTOC. You do a RDJFCB on the DD. You then modify the data set name in the returned. <quote> - Changing the data set name field or member field in the JFCB. See RDJFCB Security <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/rjsec.htm?lang=en-us#rjsec> and RDJFCB Use by Authorized Programs <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/sysmcrd.htm?lang=en-us#sysmcrd>. You can open a VTOC by reading the JFCB, changing the data set name to 44 bytes of X'04' and then issuing the OPEN macro with TYPE=J. Use BSAM or EXCP. If you use BSAM, also code RECFM=F, KEYLEN=44 and BLKSIZE=96 on the DCB macro. For an extended address volume the DCB macro must point to a DCBE where the EADSCB=OK keyword is specified. You'll find examples of opening an EXCP DCB for a VTOC in Example of Using the CVAFFILT Macro <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/fltxmp.htm?lang=en-us#fltxmp> andExample of using the CVAFSEQ macro to process a volume in physical sequential order <https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/ex2cvafseq.htm?lang=en-us#ex2cvafseq> . </quote> -- The unfacts, did we have them, are too imprecisely few to warrant our certitude. Maranatha! <>< John McKown ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN