I am trying to dynamically allocate a SYSOUT fileref using TODSN.
When I run the following:
cat $FILELST \
| todsn -L e -x 'alloc DD(MYDATA) sysout(S) recfm(VB) LRECL(133)' \
//SYSOUT &
I get this error:
cozserver(6): command: todsn '-L' 'e' '-x' 'alloc DD(MYDATA) sysout(S) recfm(
cozserver(6)[D]: CoZServer path: /apps/coz/current/bin:.
cozserver(6)[D]: CoZServer libpath: /apps/coz/current/bin:.
cozserver(6)[D]: arg[0] = 'todsn'
cozserver(5)[D]: fd_map[0] = 0
cozserver(6)[D]: arg[1] = '-L'
cozserver(5)[D]: fd_map[1] = 4
cozserver(6)[D]: arg[2] = 'e'
cozserver(5)[D]: fd_map[2] = 2
cozserver(6)[D]: arg[3] = '-x'
cozserver(5)[D]: fd_map[3] = 6
cozserver(6)[D]: arg[4] = 'alloc DD(MYDATA) sysout(S) recfm(VB) LRECL(133)'
cozserver(6)[D]: arg[5] = '//SYSOUT'
cozserver(6)[D]: fd_map[0] = 0
cozserver(6)[D]: fd_map[1] = 4
cozserver(6)[D]: fd_map[2] = 2
cozserver(6)[D]: fd_map[3] = 6
cozserver(5)[D]: Started "todsn", pid=17435117
cozserver(6)[D]: Started "todsn", pid=658713
todsn: version: 1.3.2 2009-07-14
todsn: Copyright (C) Dovetailed Technologies, LLC. 2006. All rights reserved.
todsn[D]: <0> sourceCodePage defaulted to COZ_CLIENT_CODEPAGE=ISO8859-1
todsn: version: 1.3.2 2009-07-14
todsn: Copyright (C) Dovetailed Technologies, LLC. 2006. All rights reserved.
todsn(DD:SASLOG)[N]: <0> srcCr: 0x0d srcLf: 0x0a srcNl: 0x0a
todsn[W]: DatasetHandler: <0> prohibited BPXWDYN alloc keyword was ignored: "DD"
todsn[D]: <0> sourceCodePage defaulted to COZ_CLIENT_CODEPAGE=ISO8859-1
todsn(SYSOUT)[N]: <0> srcCr: 0x0d srcLf: 0x0a srcNl: 0x0a
todsn(DD:SASLOG): <0> opts=wb,type=record,noseek,recfm=* maxreclen=251 recfmF
cozserver(5)[D]: relaying error_status packet from FD_ERRPT: rc=0, errno=0, errn
I need to be able to define a TODSN dynamically for SYSOUT files that will not exist in the JCL of my COZLNCH program. I need to specify the DD Name used by the dynamic sysout and need to specify the properties.
Any help is appreciated.
Looking for example of dynamic allocation of SYSOUT pipe
When you use the "-x" option you can specify most of the BPXWDYN keywords, but you don't specify "alloc" or ddname. Try this:
cat $FILELST \
| todsn -L e -x 'sysout(S) recfm(V,B) lrecl(133) spin(unalloc)' //SYSOUT
Note that BPXWDYN requires that the recfm keyword have the values comma separated. Also, the spin(unalloc) keyword will allow the print file to be available to be immediately processed after the file is complete.
cat $FILELST \
| todsn -L e -x 'sysout(S) recfm(V,B) lrecl(133) spin(unalloc)' //SYSOUT
Note that BPXWDYN requires that the recfm keyword have the values comma separated. Also, the spin(unalloc) keyword will allow the print file to be available to be immediately processed after the file is complete.
I am looking into moving SAS code from Z/OS to Unix distributed. In this SAS we have code (FILENAME statement) to dynamically define SYSOUTs for reports. Our users, documentation and output processing tools expect the output to be in specifically named DDs. Having the system generated DD names will make it difficult for our users to support the batch jobs and will require significant modification to our output processing tools (Control-D).
Re: Looking for example of dynamic allocation of SYSOUT pipe
I need to send a Linux file to a dynamically allocated DD SYSOUT and I tried to following syntax taken from this forum, however I get a rc=103 BPXWDYN parameter error. Is my syntax correct:
todsn -x "dd(SYSOUT) recfm(F) lrecl(133) sysout(x) spin(unalloc)" //SYSOUT < /file/name
I have the latest version of the CO:Z toolkit.
todsn -x "dd(SYSOUT) recfm(F) lrecl(133) sysout(x) spin(unalloc)" //SYSOUT < /file/name
I have the latest version of the CO:Z toolkit.
Re: Looking for example of dynamic allocation of SYSOUT pipe
It works for me:
todsn -x "dd(SYSOUT) recfm(f) lrecl(133) sysout(x) spin(unalloc)" //SYSOUT < /etc/profile
todsn(SYSOUT)[N]: 10248 bytes read; 246 records/32718 bytes written in 0 milliseconds.
Could it be that DD SYSOUT is already allocated?
If you get a BPXWDYN error, don't you get any messages?
todsn -x "dd(SYSOUT) recfm(f) lrecl(133) sysout(x) spin(unalloc)" //SYSOUT < /etc/profile
todsn(SYSOUT)[N]: 10248 bytes read; 246 records/32718 bytes written in 0 milliseconds.
Could it be that DD SYSOUT is already allocated?
If you get a BPXWDYN error, don't you get any messages?
Re: Looking for example of dynamic allocation of SYSOUT pipe
It works just fine, just had some extra characters which I did not see. Thanks