Page 1 of 1

JES2 Log Exits

PostPosted: Wed Feb 06, 2013 11:45 pm
by brks
Hi All,

I am trying to implement the JES2 Exit to display the JOB ouput as
follows.

I want to implement page and bytes wise instead of Lines and fail the
job if it exceeds 4GB memory limit.

in my configuration it gives this

$HASP375 ESTIMATE EXCEEDED BY 6,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 12,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 18,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 24,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 30,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 36,000 LINES
$HASP375 ESTIMATE EXCEEDED BY 42,000 LINES


want to implement like this

$HASP375 ESTIMATE EXCEEDED BY 1,199,988 KBYTES
$HASP375 ESTIMATE EXCEEDED BY 170,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 172,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 174,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 176,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 178,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 180,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 182,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 184,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 186,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 1,299,987 KBYTES
$HASP375 ESTIMATE EXCEEDED BY 188,000 PAGES
$HASP375 ESTIMATE EXCEEDED BY 190,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 192,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 194,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 196,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 198,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 200,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 202,000 PAGES 1 % SPOOL
$HASP375 ESTIMATE EXCEEDED BY 1,399,986 KBYTES 1 % SPOOL

Here is my JESPARM

SYS0.PARMLIB(JES2PZ1)
 /*                           *---------------------------------------* 
                             *   Default Estimated Sysout Bytes/Job  * 
                             *---------------------------------------* 
                                                                     */
ESTBYTE  NUM=99999,          /* 99999000 Bytes for 1st Message  ohwnc*/
         INT=99999,          /*  then 99999000 Byte Intervals   ohwnc*/
         OPT=0               /* Allow Jobs to Continue          ohwnc*/
                             /*                                      */
/*                           *---------------------------------------* 
                             *   Default Estimated Execution Time    * 
                             *---------------------------------------* 
                                                                     */
ESTIME   NUM=2,              /* 2 minutes for 1st Message       ohwnc*/
         INT=1,              /*  then at 1 minute Intervals     ohwnc*/
         OPT=NO              /* No HASP308 message              ohwnc*/
                             /*                                      */
/*                           *---------------------------------------* 
                             *   Default Estimated Sysout Lines/Job  * 
                             *---------------------------------------* 
                                                                     */
ESTLNCT  NUM=12,             /*12000 LINES FOR 1ST MESSAGE      ohwnc*/
         INT=6000,           /*  THEN AT 6000 LINE INTERVALS    ohwnc*/
         OPT=0               /* Allow Jobs to Continue          ohwnc*/
                             /*                                      */
/*                           *---------------------------------------* 
                             *   Default Estimated Sysout Pages/Job  * 
                             *---------------------------------------* 
                                                                     */
ESTPAGE  NUM=40,             /* 40 PAGES FOR 1ST MESSAGE        ohwnc*/
         INT=10,             /*  THEN AT 10 PAGE INTERVALS      ohwnc*/
         OPT=0               /* Allow Jobs to Continue          ohwnc*/
                             /*                                      */
/*                           *---------------------------------------* 
                             *   Default Estimated Sysout Cards/Job  * 
                             *---------------------------------------* 
                                                                     */
 ESTPUN   NUM=100,            /* 100 Cards for 1st Message       ohwnc*/
          INT=2000,           /*  then at 2000 Card Intervals    ohwnc*/
          OPT=0               /* Allow Jobs to Continue          ohwnc*/
                              /*                                      */
 /*                           *---------------------------------------* 
                              *   Functional Subsystem Definition     * 
                              *---------------------------------------* 
                                                                      */



I ran the command $D EXIT(9) it is showing disabled.

$D EXIT

$HASP823 EXIT(9) 068
$HASP823 EXIT(9) STATUS=DISABLED,ENVIRON=USER,ROUTINES=(),
$HASP823 SPLEVEL=CHECK,TRACE=YES,USECOUNT=0


can you please suggest.

Thanks.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 12:10 am
by Robert Sample
It is NOT clear what you are wanting to do. Does this
I want to implement page and bytes wise instead of Lines and fail the
job if it exceeds 4GB memory limit.
mean you want to change the message from lines to bytes / pages, or does it mean you want to limit memory usage of the program / address space? If the former, WHY? The values for exit 9 are for lines since it relates to SYSOUT only. If the latter, then exit 9 is NOT the way to do it. since exit 9 is described in the manual as
22.1 Function This exit allows you to choose how JES2 will process jobs or transaction programs that have exceeded the estimates for either:
Output records
Lines of SYSOUT data
Pages of SYSOUT data
Bytes of SYSOUT data

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 3:02 am
by brks
Hi Robert,

Thanks for responding to the post,

Yes i want to change the message from lines to bytes / pages for all the jobs since out product creates pages and want to see how much bytes it is using, by the lines can't get more info, that is the reason want to change.

Thanks.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 4:05 am
by Robert Sample
1. Do you have any experience writing or modifying JES exits? If not, be aware that it is not as easy as you might think.
2. Has your site management agreed to changing the messages for everyone? A JES exit changes things for the entire LPAR, not just your application or user id.
3. What is a "page"? If you're using 11-inch paper, a page at 6 lines per inch is 66 lines, but at 8 lines per inch it is 88 lines. 11 inches, however, is not always the standard.
4. What additional information do you think you can get by changing the messages? The basic data has not changed.
5. What is a "line"? 80 bytes, 120 bytes, 121 bytes, 132 bytes, 133 bytes, 255 bytes -- there is justification for using each of these values, and others, for a line length. A page of 88 lines of 255 bytes each would be many more bytes than a page of 60 lines at 80 bytes each.

I recommend taking another close look at this whole idea. While something could be done for it, a forum would definitely NOT be the place to get help for something of this nature. Plan on paying a consultant to come in and help you achieve whatever your goal is with this.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 4:39 am
by steve-myers
Exit 9 is pretty slippery because the terms used are slippery. Output intended for page oriented printers does not have lines as lines, JES2 can count pages pretty well, and bytes, but it can't really count lines. For line oriented output, JES2 counts a page when it sees an ASA 1 go by, or the equivalent "machine" carriage control instructions. If no explicit new page instructions pass by, JES2 does not count pages. Another issue with exit 9 is it is a common storage exit. Refreshing it is difficult without an IPL. Finally, exit 9 does not write the messages and cannot be used to write your own messages.

A forum intended for beginners is not an appropriate place to discuss JES2 exits.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 8:45 am
by brks
Hi Robert and Steve,

Thanks for responding to my response, I have a test LPAR, where i am going to test, just want to know what changes i have to make.

Thanks.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 3:32 pm
by Robert Sample
Start by reading the JES2 Installation Exits manual for your release of z/OS. Then, determine based upon what you are wanting to do, which exit you need to modify. As Steve pointed out, exit 9 is not the one you want to change for what you posted that you want to do. Then, find the exit source in your site's installed data sets -- and this is something nobody on this forum can help you with. Only someone working at your site could possibly tell you what the data set is called. Then, code up the Assembler language program for the exit you are changing (or modify the current exit Assembler code) to meet your need. Assemble and link the replaced (or modified) code using SMP/E to receive and apply the exit code changes. Depending upon the exit and the changes, you might only have to bring JES2 down and back up, or you might have to IPL the LPAR to pick up the new exit. Test to make sure your code is doing what you want.

Re: JES2 Log Exits

PostPosted: Thu Feb 07, 2013 7:25 pm
by nevilh
I want to implement page and bytes wise instead of Lines and fail the
job if it exceeds 4GB memory limit.
Firstly I would like to say I agree with Steve, you need to differentiate between Page-Mode outputs and Line-mode outputs.
A job that produces Line-mode output will not produce $HASP375 ESTIMATE EXCEEDED BY xxx PAGES unless you start playing with exit 9.
To change the message to the Bytes exceeded message all you need to do modify the ESTBYTE and ESTLNCT parameters. If my maths is correct at the moment you will start producing messages after the job has produced 12000 lines (1.5 million bytes) and a message will be produced every 6000 (.75million bytes) lines. With ESTBYTE set to 99999 you will not produce the BYTES exceeded message until you have produced a 100 million bytes of output (about 750000 lines) . So basically if you want to change the message from lines exceeded to bytes exceeded all you have to do is increase the ESTLNCT parameter and decrease the ESTBYTE parameter.
As for failing the job if it exceeds 4GB memory I would thing IEFUSI is the way to go.

Re: JES2 Log Exits

PostPosted: Sat Feb 09, 2013 12:15 am
by brks
Hi Robert,Steve and Nevilh,

Thanks for your suggestions, I appreciate it, I will change the ESTLNCT parameter and decrease the ESTBYTE parameter in the JES2PARM and also i will check the current exit Assembler code.

Thanks.