On Thu, 3 Apr 2014 11:34:01 +0300, Binyamin Dissen wrote:

>I don't see that you dump the S99MSG. stem or check RESULT - the perm concat
>seems to be failing.
>
OK.  I stand corrected.  PERMC appeared in z/OS 2.1; we have only 1.13.
But that's reported in RESULT, which I failed to check; allocation messages
go to the terminal; S99MSG is never set.

Revised EXEC and output below:

user@HOST: cat `whence catdd`                                                   
               
/* Rexx */ signal on novalue /* ***************
   Doc: determine DDNAME leakage.
*/
address 'SH' 'set -x; uname -a'
call AllocIt 'alloc dd(FOOBAR)  shr dsn(SYS1.INJECT.ERROR)'
say

call AllocIt 'alloc dd(SYSLIB)  shr dsn(SYS1.MACLIB)'
call AllocIt 'alloc rtddn(CAT1) shr dsn(SYS1.MODGEN)'
say; say 'Allocated:'
call DDinfo

call AllocIt 'concat ddlist(SYSLIB,'CAT1')'
say; say 'Catenated:'
call DDinfo

call AllocIt 'free  dd(SYSLIB)'
say; say 'Freed; note that' CAT1 'is not freed:'
call DDinfo

call AllocIt 'alloc dd(SYSLIB)  shr dsn(SYS1.MACLIB)'
call AllocIt 'concat ddlist(SYSLIB,'CAT1') permc'
say; say 'Catenated, with PERMC; note that' CAT1 'is not catenated:'
call DDinfo

return( 0 )

AllocIt: procedure expose SIGL CAT1 CAT2
    A = arg(1) copies( 'msg(2)', 1 )
    call BPXWDYN A
    say right( SIGL, 3 ) RESULT value( 'S99MSG.0' ) A
    return( RESULT )

DDinfo:
    do I = 1 until last<>0
        Call bpxwdyn 'info inrelno('I')' ,
                     'inrtddn(ddn) inrtdsn(dsn) inrtlst(last)'
        say I ddn copies( '(catenated)', ddn='') dsn;  end I
    return( 0 )
/* **************************************** */

user@HOST: catdd                                                                
               
sh:0+ uname -a 
OS/390 MVS3 23.00 03 2818
IKJ56228I DATA SET SYS1.INJECT.ERROR NOT IN CATALOG OR CATALOG CAN NOT BE 
ACCESSED    
  5 386400258 S99MSG.0 alloc dd(FOOBAR)  shr dsn(SYS1.INJECT.ERROR) msg(2)

  8 0 S99MSG.0 alloc dd(SYSLIB)  shr dsn(SYS1.MACLIB) msg(2)
  9 0 S99MSG.0 alloc rtddn(CAT1) shr dsn(SYS1.MODGEN) msg(2)

Allocated:
1 SYSLIB  SYS1.MACLIB
2 SYS00001  SYS1.MODGEN
 13 0 S99MSG.0 concat ddlist(SYSLIB,SYS00001) msg(2)

Catenated:
1 SYSLIB  SYS1.MACLIB
2  (catenated) SYS1.MODGEN
 17 0 S99MSG.0 free  dd(SYSLIB) msg(2)

Freed; note that SYS00001 is not freed:
1 SYS00001  SYS1.MODGEN
 21 0 S99MSG.0 alloc dd(SYSLIB)  shr dsn(SYS1.MACLIB) msg(2)
 22 -23 S99MSG.0 concat ddlist(SYSLIB,SYS00001) permc msg(2)

Catenated, with PERMC; note that SYS00001 is not catenated:
1 SYS00001  SYS1.MODGEN
2 SYSLIB  SYS1.MACLIB
user@HOST: 

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to