Page 1 of 1

Looking for example of dynamic allocation of SYSOUT pipe

Posted: Mon Nov 02, 2009 10:59 pm
by sctebnt
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.

Posted: Tue Nov 03, 2009 8:56 am
by dovetail
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.

Posted: Tue Nov 03, 2009 10:19 am
by sctebnt
Thanks the syntax you provided does define a dynamic SYSOUT for my job to use but the command results in a system generated DDNAME.

I need to also have the dynamic sysout be defined with a specific DDNAME. Is there a supported option that will allow me to specify the ddname to use?

Posted: Tue Nov 03, 2009 10:42 am
by dovetail
Sorry, there is currently not a way for todsn to use a specific DDNAME. Why would you need a specific name?

Posted: Tue Nov 03, 2009 10:58 am
by sctebnt
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).

Posted: Tue Nov 03, 2009 11:30 am
by dovetail
I understand. I guess we never considered that using a specific DDNAME would be important. We will consider adding support for this in a future release.

Have you considered preallocating the DD in the job's JCL? You could then just have:

cat $FILELST \
| todsn //DD:OUTPUT

Posted: Tue Nov 17, 2009 4:30 pm
by dovetail
We have added support in Co:Z 1.5.0 for specifying the dynamically allocated DDNAME in the todsn command.

For example:

cat /etc/profile |
todsn -x "dd(mydd) recfm(v,b) lrecl(133) sysout(b) spin(unalloc)" //SYSOUT


Thank you for your suggestion.

Re: Looking for example of dynamic allocation of SYSOUT pipe

Posted: Wed Jan 16, 2013 11:36 am
by tsdjim
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.

Re: Looking for example of dynamic allocation of SYSOUT pipe

Posted: Wed Jan 16, 2013 12:32 pm
by dovetail
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?

Re: Looking for example of dynamic allocation of SYSOUT pipe

Posted: Thu Jan 17, 2013 10:52 am
by tsdjim
It works just fine, just had some extra characters which I did not see. Thanks