Lizette,
Thank you again for providing some insight into this. I also have sent a
request for help out to my local network of System Programmers. But I think
you're right, this hasn't been done much. JES Level 2 would like a contract to
continue working on this. I also am working with a co-worker on this. But
neither of us understand what JES is doing and just trying to get the example
to work is giving us "addressability" issues. So we have flipped between RENT
and NORENT. It looks like we want RENT. I'll let you all know how it goes.
Thank you, Dave
Our Source as it is today. The UNPK now addresses the Sign Character.
***START USPS CODING
CLC PDBDRMT,NODEZERO CHECK FOR '0000' OR REMOTE
BE NOROUTE IF 'YES', THEN IT'S A LOCAL NODE
LH R9,PDBDRMT LOAD HALF WORD ADDRESS OF PDBDRMT
CVD R9,PACKN CONVERT TO PACKED DECIMAL
UNPK UNPACKN,PACKN UNPACK TO ZONE DECIMAL
MVZ UNPACKN+7(1),=X'F0' REMOVE SIGN CHARACTER
MVC RMT(4),UNPACKN+4 CREATE U + PRINTER NUMBER
MVC PDBDNODE,TESTNODE CHANGE REMOTE NODE
MVC PDBDRMT,NODEZERO ZERO OUT PDBDRMT
MVC PDBUSER,UPRINTER CHANGE PDBUSER TO U----
WTO 'EXIT40(HASX40A): PDBDRMT NOT = 0000 - U PRINTER'
B RETRYRTN GO TO RETRYRTN
NOROUTE DS 0H NO REROUTE
WTO 'EXIT40(HASX40A): PDBDRMT = 0000 - LOCAL PRINTER'
RETRYRTN DS 0H RETRY POINT FOR RECOVERY
$ESTAE CANCEL CANCEL $ESTAE ENVIRONMENT
$RETURN TRACE=YES RETURN TO CALLER
EXITMSG DC C'ESTAE SET UP FOR EXIT 40' EXIT MESSAGE TEXT
*USPS
UPRINTER DS 0CL8
DC C'U'
RMT DS CL7
PACKN DS D
UNPACKN DS D
NODEZERO DC H'0' NODE ZERO
EAGAN DC H'0002' EAGAN NODE (2)
TESTNODE DC H'0099' DUMMY TEST
SANMATEO DC H'0004' SAN MATEO SMTA (4)
*END USPS CODING
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Lizette Koehler
Sent: Tuesday, September 17, 2013 11:25 AM
To: [email protected]
Subject: Re: Please help with JES2 EXIT 40
So to make sure I understand
Exit 40 Modifying SYSOUT Characteristics
JES2 passes control to this exit just before it creates JOEs for the job.
This exit can be taken:
During spin processing, called from HASPSPIN before a JOE is created for a
spin PDDB.
During unspun processing, called from HASPSPIN before a JOE is created for
a spin PDDB.
During regular processing, called from HASPHOPE before the JOEs are created
from the non-spin PDDBs.
JES2 gathers the non-spin data sets into groups after leaving this exit and the
groups will reflect the changes your routine makes.
So maybe the exit is too early for your process? I am not sure when JES2 would
have the information in the control block for you to check.
I am not sure if this will do what you want.
Rerouting job output
The $R command allows you to reroute to another destination both ready and
held output for batch jobs, started tasks, or TSO/E users. This command allows
an operator to change the specified destination on a piece of output as often
as necessary. You can issue the $R command only for output groups.
You can display the destination of output groups by entering the $DO J command
(destination appears on the ROUTECDE= parameter in the display).
Second question is the node names. Did you use NAMES on your NJE Nodes or just
node numbers? If names, you should be able to reassign the name of the node to
a different node number. So if you have N2 as NxtNde and you need for NxtNde go
to N4 you would just go into the JES2 deck and recode N4 to NxtNde and N2 to
something else. Jobs in JES2 would still go to N2 but new jobs would use N4
once you either did a $T command or cycle JES2.
>From your original posting
I have been working with IBM to Implement a JES2 EXIT
40. I am doing this without too much JES knowledge. I was asked to move
output from one MVS spool to another. We had a product (VPS) that would take
the print off the MVS spool and send it to remote printers. Now we don't run
that software at our "west side" location. I just want to change N1.U1234 to
N2.U1234. Then JES will ROUTE the output from N1 to N2.
However the change results in N1.U1234 being modified to N2.R1234. I did some
testing and things are not as I expected.
Q). On the SDSF screen - With the EXIT in place, Why
doesn't Node reflect my change to N2? RMT is now 1234. NODE is supposed to be
the "JES Print Node". I would expect the node to be the destination node.
From SDSF I entered NODE. It see N2, MN1 and OWNNODE.
So we are #2 aka MN1.
Q). Is there an advantage to using "N2" over "MN1"?
The terminology gets confusing.
I tried this just to confuse myself:
I ran three jobs to print output, but I put them on HOLD.
My OUTPUTS were:
DEFAULT=Y,DEST=N4.U9889DP,CLASS=H
DEFAULT=Y,DEST=N2.U9889DP,CLASS=H *** OWNNODE ***
DEFAULT=Y,DEST=N12.U9889DP,CLASS=H
I looked at SDSF "O" and saw: RMT is Blank and NODE is "2"
for all three. DEST is LOCAL . The output for N2.U9889DP has an extra piece
with DEST U9889DP (The actual payload to print).
Q). Why doesn't "4" or "12" show up under NODE? I used "N4"
and "N12".
I am not sure why you are not getting answers to your questions or guidance.
Perhaps no one has ever needed to do this function in an Exit.
You may need to work with JES2 L2 to get this resolved.
However, searching the internet with IBM JES2 EXIT 40 brought up this URL:
http://www.cbttape.org/xephon/xephonm/mvs0001.pdf (yes it does have a code
sample)
Lizette
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Hansen, Dave L - Eagan, MN
Sent: Tuesday, September 17, 2013 9:00 AM
To: [email protected]
Subject: Please help with JES2 EXIT 40
CROSS-POSTED to IBM_MAIN and JES2-L
Dear Group,
This simple task to move print from one JES spool to another is still
dragging on. Does anyone have a copy of a working EXIT40 that moves print
between spools?
I have modified SYS1.SHASAMP(HASX40A) with the following code:
LH R9, PDBDRMT (PDBDRMT - x'1C82' - 2 bytes in
length) - Load R9 with PDBDRMT value, fill the other half with good stuff.
MVC PDBDRMT(2),ZEROES (PDBDRMT - x'0000' - 2 bytes in length).
CVD R9,ANS (ANS - 8 bytes in length) -
Convert X'1C82' to Packed Decimal '00 00 00 00 00 07 29 8C'.
MVC INAREA(8),BLANKS (Pre load OUTAREA with 8 spaces).
MVC INAREA(1),EWE (Move "U" to position 1 of OUTAREA for a
length of 1).
UNPK NUMOUT(4),ANS (NUMOUT - 4 bytes in length) - Convert '00
00 00 00 00 07 29 8C' to 'F7 F2 F9 F8'.
If the first operand
is too short to contain all digits of the second operand,
The remaining
left-most portion of the second operand is ignored.
MVC PDBUSER(8),INAREA (Move 'E4 F7 F2 F9 F8 40 40 40' to PDBUSER).
LTORG
ANS DS CL8
BLANKS DC XL8'4040404040404040'
ZEROES DC XL2'0000'
EWE DC CL1'U'
OUTAREA DS 0CL8
INAREA DS CL1
NUMOUT DS CL4
HOLDER DS CL3
My logic was just update the PDBDNODE. But now I see the RMT field also
needs to be updated.
Thank you, Dave
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
[email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN