Thank You Michael and Seymour for your thought invoking responses.  I will use 
RENT.


   Thanks Again,  Dave

 

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Toole, Michael
Sent: Wednesday, August 21, 2013 3:03 PM
To: [email protected]
Subject: Re: JES2 EXIT 40 ASMA90 Parm Question

Reentrant code considerations are contingent on the calling environment.    An 
exit routine called from the JES2 main task must be reentrant in the JES2 
sense. The JES2 dispatching unit, commonly called JES2 processors, running 
under a processor control element (PCE) perform the processing for the JES2 
main task. The JES2 dispatcher controls what PCE is currently active (that is, 
what JES2 processor is currently running). Because a JES2 processor doesn't 
relinquish control to another JES2 processor involuntarily, an exit routine, 
invoked out of a JES2 main task processor may use a nonreentrant work area; the 
work area is serialized if the exit routine doesn't issue a $WAIT macro or 
until the exit routine or service called from an exit routine does issue the 
$WAIT macro. When the exit routine issues the $WAIT macro directly or through a 
called routine, control returns to the JES2 dispatcher and the serialization on 
the nonreentrant work area ceases. The nonreentrant work area may also be 
passed between exit routines, or between an exit routine and JES2, before a 
$WAIT macro call. Work areas to be used "across" a $WAIT must either be within 
the processor work area established as part of the processor control element 
(PCE) or else must be directly owned by the processor. In the same JES2 
reentrant sense, an exit routine may search or manipulate a JES2 queue 
providing it has ownership of the queue and doesn't issue a $WAIT macro until 
this action is completed.    An exit routine called from a JES2 subtask, from 
the user environment, or from the FSS environment must be reentrant in the MVS 
sense. The exit routine must be capable of taking an MVS interrupt at any point 
in its processing. The exit routine must be able to handle the simultaneity of 
execution with other subtasks and user address space, or functional subsystem 
(FSS) routines and with the JES2 main task.    The following actions may 
produce unpredictable results:  
Modifying control block fields designed for use by the JES2 main task only (for 
example, $DOUBLE, $GENWORK, and so on.) Accessing checkpointed data from the 
subtask, user, or FSS environment.

Mike
Michael K. Toole
Sr. I.T. Consultant
The Auto Club Group
1 Auto Club Drive
Dearborn, Mi.  48126
313-336-1783
[email protected]

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Hansen, Dave L - Eagan, MN
Sent: Wednesday, August 21, 2013 11:40 AM
To: [email protected]
Subject: JES2 EXIT 40 ASMA90 Parm Question

CROSS-POSTED to ASSEMBLER-LIST and IBM-MAIN

   Dear Group,

      I worked with IBM to determine the best way to move print from one JES2 
spool to another was by using EXIT 40.
     Last time I was assembling a CSECT I needed the PARM RENT.  In 
SYS1.SHASSAMP is HASIASM which has NORENT.  In SYS1.SHASSAMP is HASX40A which 
is what I am modifying.
     I added the SYS1.SHASMAC DD to the JCL.
    The z/OS V1R13.0 JES2 Installation Exits talks about Exit 40: Modifying 
SYSOUT characteristics.  I have RMODE ANY.  It also says I need AMODE 31.  The 
HLASM V1R5 Language Reference has figure 26 AMODE/RMODE Defaults.  It says 
RMODE 31 (was ANY) defaults to AMODE 31.  I think I have meet the requirements.

   The first two lines in HASX40A are:
*PROCESS USING(WARN(15)),SUPRWARN(324,420,436,437)
         ACONTROL CPAT(NOSYSL,NOCASE),FLAG(PAGE0)
   But the *PROCESS generates two messages.  It looks like WARN(15) may be 
obsolete.
** ASMA437N Attempt to override invocation parameter in a *PROCESS statement. 
Suboption 15 of USING option ignored.
** ASMA420N Error in a *PROCESS statement parameter - USING(WARN(15))


   My program assembles clean with this JCL:
//ASM     EXEC PGM=ASMA90,
//             PARM='NORENT,DECK,NOOBJ,USING(WARN(3))',
//             REGION=6M
//SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB
//         DD  DISP=SHR,DSN=SYS1.SHASMAC
//         DD  DISP=SHR,DSN=SYS1.MODGEN,VOL=SER=S7XPA2,UNIT=3390
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
//SYSUT2   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
//SYSUT3   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DISP=SHR,DSN=SYS2.LIBRSRC.CNTL(HASX40)
//SYSPUNCH DD  DSN=&&OBJ,DISP=(,PASS),SPACE=(CYL,(3,1)),
//             UNIT=SYSDA,DCB=BLKSIZE=1600
//*
//LKED    EXEC PGM=IEWL,PARM='XREF,LIST,RENT,REFR,AC=0'
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,1))
//SYSPRINT DD  SYSOUT=*
//OBJ      DD  DSN=&&OBJ,DISP=(OLD,DELETE)
//SYSLMOD  DD  DISP=SHR,DSN=SYS2.LINKLIB
//SYSLIN   DD  *
  INCLUDE OBJ
  ENTRY HASX40
 NAME  HASX40(R)
/*

Q).  Do I want NORENT for my JES2 EXIT 40?  It deals with being reentrant.  Not 
sure what this exit should have.

Q).  Does my PARM=USING(WARN(3)) override the *PROCESS USING(WARN(15))?  Then I 
can remove USING from the *PROCESS (and maybe not get any messages).


   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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to