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 [email protected] with the message: INFO IBM-MAIN