|
Use the IXZXIXMB macro to build a mailbox for a JES dispatchable
unit (JDU) that intends to receive mail. In addition to defining a
mailbox, a JDU can also use IXZXIXMB to request that it be notified
of system events. JES XCF stores messages in the mailbox until the
JDU receives the messages.
Refer to Building a Mailbox (IXZXIXMB Macro) for a description
of using IXZXIXMB to build a mailbox.
EnvironmentThe requirements for the caller
are:
Table 1. EnvironmentVariable |
Value |
---|
JES environments: |
- JES2 or JES3 main task
- JES2 or JES3 subtask
- JES3 FSS
|
Minimum authorization: |
Supervisor state with PSW key 0 or 1 |
Dispatchable unit mode: |
Task |
Cross memory mode: |
Any PASN, any HASN, any SASN |
AMODE: |
31 |
ASC mode: |
Primary |
Interrupt status: |
Enabled for I/O and external interrupts |
Locks: |
No locks held |
Control parameters: |
None |
Programming RequirementsJES2 programs must
include the $MODULE macro so it is invoked before IXZXIXMB is invoked.
JES3 programs must include the ENVIRON= keyword on the IATYMOD
macro so it is invoked before IXZXIXMB is invoked.
When the
exit routine identified by POSTXIT= receives control, it is passed
a parameter list. To map this parameter list, use mapping macro IXZYIXPE.
IXZYIXPE is described in z/OS MVS Data Areas, Vol 3
RestrictionsJES2 programs must include
the $MODULE macro so it is invoked before IXZXIXMB is invoked.
JES3 programs must include the ENVIRON= keyword on the IATYMOD
macro so it is invoked before IXZXIXMB is invoked.
When the
exit routine identified by POSTXIT= receives control, it is passed
a parameter list. To map this parameter list, use mapping macro IXZYIXPE.
IXZYIXPE is described in z/OS MVS Data Areas, Vol 3
Input Register InformationBefore issuing
the IXZXIXMB macro, the caller does not have to place any information
into any register unless using it in register notation for a particular
parameter, or using it as a base register.
Output Register InformationWhen IXZXIXMB
returns control, the general purpose registers (GPRs) contain: - Register
- Content
- 0
- Reason code
- 1
- Used as a work register by the system
- 2-13
- Unchanged
- 14
- Used as a work register by the system
- 15
- Return code
When IXZXIXMB returns control, the access registers
(ARs) contain: - Register
- Content
- 0,1
- Used as work registers by the system
- 2-13
- Unchanged
- 14,15
- Used as work registers by the system
Some callers depend on register contents remaining
the same before and after issuing a service. If the system changes
the contents of registers on which the caller depends, the caller
must save them before issuing the service, and restore them after
the system returns control.
Performance ImplicationsNone
Syntax
>>-+-------+--IXZXIXMB----MBOXNAME=mboxname--------------------->
'-label-'
>----,POSTXIT=postxit------------------------------------------->
>------,POSTDATA=postdata-+-------------------------+----------->
| .-NULL-----. |
'-,POSTALET=-+----------+-'
'-postdata-'
.-,SYSEVENT=NO--.
>----,GROUPTOKEN=grouptoken----+---------------+---------------->
'-,SYSEVENT=YES-'
>--+------------------+--+------------------+------------------->
'-,RTNCODE=rtncode-' '-,RSNCODE=rsncode-'
.-,MF=S-------------------------------.
>--+-------------------------------------+---------------------><
| .-,0D-----. |
'-,MF=-+-(L-,mfctrl-+---------+-)---+-'
| '-,mfattr-' |
| .-,COMPLETE-. |
'-(E-,mfctrl-+-----------+-)-'
Parameters- label
- Specifies an optional symbol, starting in column 1, to be used
as the name on the IXZXIXMB macro invocation.
Default: no
name
- MBOXNAME=mboxname
- Specifies the name (RS-type) or address (in GPR2-GPR12) of a required
16-character input field that contains the mailbox name. Valid characters
are A-Z, 0-9, $, #, @, and embedded and trailing blanks. The mailbox
name must not duplicate another name on the member where the
IXZXIXMB service is invoked, nor should the name begin with SYSJES.
IBM recommends the use of 2-part mailbox names. The first
part of the name might identify your company or department. The second
part might identify the function you are providing. For example,
if the Dave, Alan, Susan, and Don Corporation used JES XCF to provide
an accounting function, they might name the mailbox:
DASDCORP␢ACCOUNT
DASDCORP ACCOUNT
Default: none
- POSTXIT=postxit
- Specifies the name (RS-type) or address (in GPR2-GPR12) of a required
fullword input field that contains the address of the POST exit routine.
A POST exit routine (provided by the caller) receives control whenever
a message is placed in the mailbox. This exit allows the caller to
post a routine to retrieve the message from the mailbox and process
its contents. Refer to POST Exit Routine for
details on coding a POST exit routine.
Default: none
- POSTDATA=postdata
- Specifies the name (RS-type) or address (in GPR2-GPR12) of a required
fullword input field needed by the POST exit routine to process post
requests. The data is produced by the creator of the mailbox, and
a pointer is returned in the parameter list passed to the POST exit
routine. Use the POSTALET= parameter to specify an access list entry
table (ALET) if you want to store this data in a data space or another
address space.
Default: none
- POSTALET=postalet | NULL
- Specifies the name (RS-type) or address (in GPR2-GPR12) of an
optional fullword input field that contains an ALET if you choose
to store the POSTDATA information in either a data space or another
address space which is specified by the POSTDATA= keyword. Be certain
to put this ALET on the primary address space number-access list (PASN-AL).
Default: NULL, indicating the data resides in the primary
address space.
- GROUPTOKEN=grouptoken
- Specifies the name (RS-type) or address (in GPR2-GPR12) of a required
fullword input field that contains the group token. Refer to Retrieving the JES XCF Group Token for the procedure for retrieving
the JES XCF group token.
Default: none
- SYSEVENT=NO | YES
- Specifies whether (YES) or not (NO) JES XCF should inform the
JDU of sysplex system events. Select YES only if the JDU needs to
monitor sysplex system events.
Default: NO
- RTNCODE=rtncode
- Specifies the name (RS-type) of an optional fullword output field
or register (GPR2-GPR12) into which the return code is copied from
GPR 15.
Default: none
- RSNCODE=rsncode
- Specifies the name (RS-type) of an optional fullword output field
or register (GPR2-GPR12) into which the reason code is copied from
GPR 0.
Default: none
- MF=S | L | E
- Specifies the form of the macro as standard (S), list (L), or
execute (E). This keyword is optional.
- MF=S
- Specifies the standard form of the macro; that is, to build the
in-line parameter list and invoke the desired service. Processing
also includes checking for all required keywords and supplying defaults,
if any, for omitted optional parameters.
- MF=(L,mfctrl{,mfattr | 0D})
- Specifies the list form of the macro; that is, defining an area
to be used for the parameter list. If you code MF=L, do not code
anything else except a label, macro name, and the following values:
- mfctrl
- Specifies the name of a storage area to contain the parameters.
- mfattr | 0D
- Specifies an optional 1- to 60-character input string, which can
contain any value that is valid on an assembler DS pseudo-op. You
can use this parameter to force boundary alignment of the parameter
list. If you do not code mfattr, the system provides a value
of 0D, which forces the parameter list to a doubleword boundary.
Default: 0D
- MF=(E,mfctrl,COMPLETE)
- Specifies the execute form of the macro; that is, builds the parameter
list specified by mfctrl. Processing also includes checking
for all required keywords and supplying defaults, if any, for omitted
optional parameters.
- mfctrl
- Specifies the name (RS-type) or address (in GPR1-GPR12) of a storage
area for the parameter list.
- COMPLETE
- Specifies the desired degree of macro parameter syntax checking.
Syntax checking includes checking for all required keywords and supplying
default values, if any, for all omitted optional parameters.
Default: COMPLETE
Default: S
ABEND CodesWhen control returns to your
program, if you receive a return code of X'C', it indicates
that processing failed because the IXZXIXMB service ended abnormally,
and you will also receive an associated ABEND code. Refer to z/OS MVS System Codes
for a description of the possible following ABEND codes: - DC5
- JES XCF detected an unrecoverable error during attach or detach
processing.
- EC5
- JES XCF detected an unrecoverable error while attempting recovery
from a previous abend.
Return and Reason CodesWhen the IXZXIXMB
macro returns control to your program, GPR 15 (and rtncode if you coded RTNCODE) contains the return code and GPR 0
(and rsncode if you coded RSNCODE) contains
the reason code.
Return Code (hex) |
Reason Code (hex) |
Meaning and Action |
---|
0 |
0 |
Meaning: Processing was successful. The
mailbox was built. Action: None
|
4 |
4 |
Meaning: Processing failed because the
parameter list passed to the IXZXIXMB service contained an eyecatcher
that was not valid. Action: Check the parameter list to
be certain it was not overlaid with other data.
|
4 |
8 |
Meaning: Processing failed because the
parameter list passed to the IXZXIXMB service had a version indicator
that was not valid. Action: The caller might need to be
recompiled. Check the parameter list to be certain it was not overlaid
with other data.
|
4 |
C |
Meaning: Processing failed because the
POSTXIT= parameter was not specified. Action: Be certain
you specified POSTXIT= on the IXZXIXMB call. POSTXIT= is required
and must provide an address of a routine to be called when
a message is placed in the mailbox.
|
4 |
10 |
Meaning: Processing failed because the
POSTDATA= parameter was not specified. Action: Be certain
you specified POSTDATA= on the IXZXIXMB call. POSTDATA= is required
and must provide the address of the data area to be passed
to the POST exit routine.
|
4 |
14 |
Meaning: Processing failed because the
group token passed to the IXZXIXMB service was not valid. Action: Verify that the correct group token is being passed to IXZXIXMB.
|
4 |
18 |
Meaning: Processing failed because the
IXZXIXMB service was issued on a member that is detaching. Action: Check to be certain this is not a symptom of a serialization
problem within your JES XCF group.
|
4 |
1C |
Meaning: Processing failed because the
mailbox name specified contains characters that are not valid. Action: Be certain you specified MBOXNAME= correctly. Only
A-Z, 0-9, $, #, @, and embedded and trailing blanks are valid.
|
4 |
20 |
Meaning: Processing failed because the
mailbox specified is already defined. Action: Be certain
you named the mailbox correctly. If you specified an incorrect name,
correct the error and rerun the program that issues IXZXIXMB. If the
specified mailbox has already been built, you need not rebuild it
unless it was built with incorrect parameter specifications. If this
is case, delete the mailbox and then rebuild it.
|
C |
0 |
Meaning: Processing failed because the
IXZXIXMB service abended. Action: Refer to z/OS MVS System Codes
for a description of the abend code and its associated reason codes.
|
|