|
The parameter descriptions for REQUEST=WRITE_DATALIST are listed
in alphabetical order. Default values are underlined: - REQUEST=WRITE_DATALIST
- Use this input parameter to specify that data for a given set
of entries for a connection specified by CONTOKEN is to be written
to the cache structure. Each entry to be written to the cache structure
is identified by a write-operation-block, mapped by IXLYWOB.
- ,ANSAREA=NO_ANSAREA
- ,ANSAREA=ansarea
- Use this output parameter to specify an answer area to contain
information returned from the request. The format of the answer area
is described by the IXLYCAA mapping macro. On
a successful completion of a request, the following information is
returned in the answer area:
- If changed data is written to the cache, the total number of entries
containing either changed or locked-for-cast-out data, that are assigned
to the storage class to which the entry was written, is returned (field
CAATOTCHANGED).
- If changed data is written to the cache, the total number of data
items assigned to the cast-out class to which data was just written
is returned (field CAACOCOUNT).
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of an area (with a length of ANSLEN) where
the information returned from the request may be stored.
- ,ANSLEN=anslen
- Use this input parameter to specify the size of the storage area
specified by ANSAREA.
Use either CAALEVEL0LEN or CAALEVEL1LEN of the IXLYCAA mapping
macro to determine
the minimum size of the answer area. The answer area length must
be at least large enough to accomodate the level of the IXLYCAA mapping
appropriate to the requested function. When the value of PLISTVER
is 0 — 3, the minimum answer area length is CAALEVEL0LEN; when
the value of PLISTVER is 4 — 6, the minimum answer area length
is CAALEVEL1LEN.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 2-byte field that contains the length of the answer
area (ANSAREA).
- ,BUFADDRSIZE=31
- ,BUFADDRSIZE=64
- Use this input parameter to specify whether a 31-bit or a 64-bit
address is specified by a BUFLIST entry.
- 31
- The entry in BUFLIST is 31 bits in size.
- 64
- The entry in BUFLIST is 64 bits in size.
- ,BUFADDRTYPE=VIRTUAL
- ,BUFADDRTYPE=REAL
- Use this input parameter to specify whether the buffer addresses
specified in the BUFLIST list are virtual storage or real storage
addresses.
- VIRTUAL
- The buffer addresses are virtual storage addresses. The virtual
storage can be pageable or nonpageable. See the PAGEABLE parameter
for information about managing storage binds when specifying virtual
storage addresses.
- REAL
- The buffer addresses are real storage addresses.
Note that for WRITE_DATALIST requests, real storage addresses cannot
be used.
- ,BUFALET=NO_BUFALET
- ,BUFALET=bufalet
- Use this input parameter to specify an access list entry token
(ALET) to be used in referencing all of the buffers specified by BUFLIST.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that contains the ALET.
- ,BUFFER=buffer
- Use this input parameter to specify a buffer area to hold the
entry data to be written to the cache structure. Only
31-bit addressable virtual storage areas (below 2GB) are supported
by the BUFFER specification. High virtual
storage areas (above 2GB) can only be specified via the BUFLIST specification.
You
can define the buffer size to be a total of up to 65536 bytes. Other
requirements depend on the size you select: - If you specify a buffer size of less than or equal to 4096 bytes,
you must ensure that the buffer:
- Is 256, 512, 1024, 2048, or 4096 bytes.
- Starts on a 256-byte boundary.
- Does not cross a 4096-byte boundary.
- Does not start below storage address 512.
- If you specify a buffer size of greater than 4096 bytes, you must
ensure that the buffer:
- Is a multiple of 4096 bytes.
- Is less than or equal to 65536 bytes.
- Starts on a 4096-byte boundary.
- Does not start below storage address 512.
See the BUFSIZE parameter description for defining the
size of the buffer.
See z/OS MVS Programming: Sysplex Services Guide for
more information on buffers.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of an area (with a length of BUFSIZE) to contain the data
to be written to the entry in the structure.
- ,BUFINCRNUM=16
- For WRITE_DATALIST requests that specify a BUFLIST parameter,
the system assumes a BUFINCRNUM value of 16 that corresponds to a
buffer size of 4096.
- ,BUFLIST=buflist
- Use this input parameter to specify a list of buffers to hold
information about the entry data to be written to the cache structure.
Either 31-bit addressable (below 2GB) or 64-bit addressable
(above 2GB) real or virtual storage areas are supported for the BUFLIST specification,
depending on the specifications for the BUFADDRTYPE and BUFADDRSIZE keywords.
However, pageable high shared virtual storage areas (above 2GB) may
not be used.
BUFLIST specifies a 128-byte storage area that consists
of a list of 1 to 16 elements. The format of the list
is a set of 8-byte elements. The BUFADDRSIZE keyword denotes whether
four or eight bytes of the element are used. - If BUFADDRSIZE=31 is specified, then the first four bytes of each
element are reserved space and the last four bytes contain the address
of the buffer.
- If BUFADDRSIZE=64 is specified, then the full eight bytes specify
the address of the buffer.
For WRITE_DATALIST requests, the first
buffer pointed to by the first element in the BUFLIST can contain
up to 16 WOBs; the remainder of the buffers in BUFLIST can contain
data to be written to the entries specified by the WOBs. The first
buffer must reside in 31-bit virtual storage. All other buffers pointed
to by BUFLIST can reside in either 31-bit or 64-bit virtual storage.
Real storage addresses cannot be used for any buffers in BUFLIST.
See z/OS MVS Programming: Sysplex Services Guide for
more information on buffers.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of a 128-byte storage area that contains a list of buffer
addresses.
- ,BUFNUM=bufnum
- Use this input parameter to specify the number of buffers in the
BUFLIST list. Valid BUFNUM values are from 0 to 16. A value of zero
indicates that no data is to be written to the entry. If you do not
want buffers, but want to specify this parameter, code BUFNUM=NO_BUFNUM.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 1-byte field that contains the number of buffers
(0 to 16) in the buffer list.
- ,BUFSIZE=bufsize
- Use this input parameter to specify the size of the BUFFER area.
See the BUFFER parameter description for valid buffer sizes.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a fullword field that contains the size of the buffer
(BUFFER) in bytes.
- ,BUFSTGKEY=CALLERS_KEY
- ,BUFSTGKEY=bufstgkey
- Use this input parameter to specify a storage key that you define
and use when referencing the buffers specified by BUFLIST or the buffer
specified by BUFFER.
If you do not specify BUFSTGKEY, or if you specify BUFSTGKEY=CALLERS_KEY,
all references to the buffer(s) are performed using the caller's PSW
key.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-bit field that contains the storage key in the
format B'kkkkxxxx', where kkkk is the key and xxxx is ignored.
- ,CONTOKEN=contoken
- Use this input parameter to specify the connect token that was
returned by the IXLCONN service in the IXLCONN answer area, mapped
by IXLYCONA. The connect token uniquely identifies your connection
to the cache structure, and must be specified on each IXLCACHE invocation.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 16-byte field that contains the connect token.
- ,DATAOFFSET=dataoffset
- Use this input parameter to specify the offset in 256-byte increments
into the data block in the storage area specified by BUFFER or BUFLIST
of the first data area to be processed (the data block corresponding
to the write-operation-block located by STARTINDEX).
A value
of 0 implies that there is no actual data being passed in the storage
area specified by BUFFER or BUFLIST. When this occurs, all WOBs have
to specify an ELEMNUM of 0 to indicate that no data is being passed
in to go with those WOBs. If any WOB specifies an ELEMNUM other than
0, the request will fail with return code IXLRETCODEPARMERROR, reason
code IXLRSNCODEBADELEMNUM.
To Code: Specify the RS-type
name or address (using a register from 2 to 12) of a halfword field
that contains the offset into the data block.
- ,ENDINDEX=endindex
- Use this input parameter to specify the ending index
for the last WOB to be processed in the storage area specified by
BUFFER or BUFLIST. The index value must be greater than or equal to
the value specified for STARTINDEX, but less than or equal to 256.
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of a halfword field containing the ending
index value.
- ,LOCALREGCNTLNO
- ,LOCALREGCNTL=YES
- Use this keyword to specify whether the write operation requests
represented by the write-operation blocks should be suppressed (write
suppression) when the user's connection (local cache) is the only
registered interest in the data item for WOB_NAME in the cache structure,
and no subsystem data (data entry) for the data item is cached.
LOCALREGCNTL=YES
is only meaningful when write operations are issued to cache structures
allocated in a coupling facility that supports write suppression based
on local cache registration. If the cache structure is allocated in
a coupling facility that does not support write suppression based
on local cache registration, the write operations will be performed
as if LOCALREGCNTL=NO was specified.
- NO
- The write operations will be performed normally without write
suppression.
If a write operation is suppressed due to assignment
suppression, the data is not written, the index of the write-operation
block that failed, and the offset in the data block of the data area
for the write-operation block being processed is returned in the ANSAREA.
The WRITE_DATALIST request fails with a return code IXLRETCODEPARMERROR,
reason code IXLRSNCODENOENTRY. All prior write-operation blocks were
processed.
- YES
- Suppress the write operations when the user's connection (local
cache) is the only registered interest in a data item and the data
entry for the data item does not contain cached subsystem data. When
the write operation is suppressed, no data is written to the cache
structure.
The CAAWRITESUPPRESSVECTOR in the ANSAREA indicates
whether write-operation block write requests were suppressed during
the WRITE_DATALIST request. Each bit represents a corresponding write-operation
block in the storage area specified by BUFFER or BUFLIST for
the WRITE_DATALIST request that specified LOCALREGCNTL=YES. The CAAWRITESUPPRESSEDVECTOR
should be processed whenever the WRITE_DATALIST request completes
with a return code of IXLRETCODEOK or the return and reason code indicates
that the WRITE_DATALIST request completed prematurely and all the
write operations prior to the premature completion were processed.
When
the subsystem data is not written to the cache structure, the local
cache buffer contains the only valid copy of the subsystem data. Hardening
of the subsystem data to permanent storage should be performed to
ensure availability and successful recovery of data in the event of
a failure.
The assignment suppression control indicator and
change control indicator must be set in each write-operation block
when LOCALREGCNTL=YES is specified.
When issuing a WRITE_DATALIST
request using LOCALREGCNTL=YES to write data to a cache structure
that is in user-managed duplex mode, the following programming technique
should be followed: - When using registration, assignment or write suppression protocols
in the primary structure of a user-managed duplexed structure, unconditional
writes of changed data to the secondary structure specifying LOCALREGCNTL=NO
on the WRITE_DATALIST request and WOB_ASC = '0'b in each write-operation
block should be performed after successful write operations to the
primary structure. If write operations to the primary structure resulted
in the writes being suppressed, then those write operations should
not be issued to the secondary structure.
The storage area specified
by BUFFER or BUFLIST that contains the write-operation blocks should
be updated to remove write-operation blocks and corresponding data
areas for write operations to the primary structure that were suppressed
due to assignment suppression or write suppression conditions. The
CaaWriteSuppressVector in the ANSAREA indicates which, if any, write-operation
block write requests were suppressed. Each bit represents a corresponding
write-operation block in the storage area specified by BUFFER or BUFLIST
for the WRITE_DATALIST request that specified LOCALREGCNTL=YES.
The
WRITE_DATALIST request should be issued to the secondary structure
with the updated BUFFER or BUFLIST and LOCALREGCNTL=NO so that write
suppression is ignored.
- ,MF=S
- ,MF=(L,mfctrl)
- ,MF=(L,mfctrl,mfattr)
- ,MF=(L,mfctrl,0D)
- ,MF=(E,mfctrl)
- ,MF=(E,mfctrl,COMPLETE)
- Use MF=S to specify the standard form of the macro, which builds
an inline parameter list and generates the macro invocation to transfer
control to the service.
Use MF=L to specify the list form of the macro. Use the list form
together with the execute form of the macro for applications that
require reentrant code. The list form defines an area of storage that
the execute form uses to store the parameters. Only the PLISTVER parameter
can be coded with the list form of the macro.
Use MF=E to specify the execute form of the macro. Use the execute
form together with the list form of the macro for applications that
require reentrant code. The execute form stores the parameters into
the storage area defined by the list form, and generates the macro
invocation to transfer control to the service.
- ,mfctrl
- Use this output parameter to specify a storage area to contain
the parameters.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of the parameter list.
- ,mfattr
- Use this input parameter to specify the name of a 1- to 60-character
string that 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.
- ,COMPLETE
- Use this input parameter to require that the system check for
required parameters and supply defaults for omitted optional parameters.
Note: In the macro expansion you might see some defaults for optional
parameters that are not documented here. The ones that are not documented
do not have any effect on the macro. For example, if SMILE=var were
an optional parameter and the default is SMILE=NO_SMILE then it would
not be documented. However, if the default was SMILE=:-), then it
would be documented because a value would be the default.
- ,MODE=SYNCSUSPEND
- ,MODE=SYNCECB
- ,MODE=SYNCEXIT
- ,MODE=SYNCTOKEN
- ,MODE=ASYNCECB
- ,MODE=ASYNCEXIT
- ,MODE=ASYNCTOKEN
- Use this input parameter to specify:
- Whether the request is to be performed synchronously or asynchronously
- How you wish to be notified of request completion if the request
is processed asynchronously.
See z/OS MVS Programming: Sysplex Services Guide for
more information on understanding
synchronous and asynchronous cache operations.
- SYNCSUSPEND
- The request processes synchronously. If necessary, the request
is suspended until it can complete synchronously. To use this option,
your program must be enabled for I/O and external interrupts.
- SYNCECB
- The request processes synchronously if possible. If the request
processes asynchronously, the ECB specified by REQECB is posted when
the request completes.
- SYNCEXIT
- The request processes synchronously if possible. If the request
processes asynchronously, your complete exit is given control when
the request completes.
- SYNCTOKEN
- The request processes synchronously if possible. If the request
processes asynchronously, an asynchronous request token is returned
to the area specified by REQTOKEN. Use the returned request token
on the IXLFCOMP macro to determine whether your request has completed.
Note: ANSAREA is a required parameter when MODE=SYNCTOKEN is specified.
- ASYNCECB
- The request processes asynchronously. The ECB specified by REQECB
is posted when the request completes.
- ASYNCEXIT
- The request processes asynchronously. Your complete exit is given
control when the request completes.
- ASYNCTOKEN
- The request processes asynchronously. An asynchronous request
token is returned to the area specified by REQTOKEN. Use the returned
request token on the IXLFCOMP macro to determine whether your request
has completed.
Note: ANSAREA is a required parameter when MODE=ASYNCTOKEN is specified.
- ,PAGEABLE=YES
- ,PAGEABLE=NO
- Use this input parameter to identify whether the storage areas
specified by BUFFER or BUFLIST are in pageable or potentially pageable
storage.
- YES
- Specify this option to indicate that the BUFFER or BUFLIST buffers
reside in pageable virtual storage. XES performs the required page
fixing to fix the buffers in real storage while the cache or list
request transfers data to or from the coupling facility.
This includes storage obtained from pageable subpools, disabled
reference (DREF) storage, and may include storage that has the potential
to become pageable during the processing of a request. (An example
is address space storage owned by any swappable address space, for
which a PGSER FIX has been successfully processed, but for which the
owning address space gets swapped during processing of a cache or
list request.) This does not include implicitly non-pageable storage
(for example, storage obtained from non-pageable subpools).
The system takes responsibility for managing binds to central storage
for the duration of the cache or list request, regardless of what
address space owns the storage or whether the storage-owning address
space is swappable or nonswappable. The storage can be owned by any
address space.
High shared virtual storage areas (above 2GB) may not
be used.
- NO
- Specify this option to indicate that the BUFFER or BUFLIST buffers
reside in non-pageable virtual storage. XES does not page fix the
buffers in real storage.
This includes implicitly non-pageable storage areas (for example,
storage obtained from non-pageable subpools), and may include storage
that has the potential to become pageable during the processing of
a request (An example is address space storage owned by any swappable
address space, for which a PGSER FIX has been successfully processed,
but for which the owning address space gets swapped-out during processing
of a cache or list request.)
The system takes responsibility for managing binds to central storage
for the duration of the cache or list request, if and only if the
non-pageable storage is owned by either the requestor's address space
or the connector's address space. If the storage is owned by any other
address space, then the invoker is responsible for ensuring that the
virtual storage remains non-pageable for the duration of the request
(including the case in which the storage is owned by a swappable address
space that is swapped during processing of an IXLCACHE or IXLLIST
request). Subject to this consideration, the storage can be owned
by any address space. See z/OS MVS Programming: Sysplex Services Guide.
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=plistver
- Use this input parameter to specify the version of the macro.
See Understanding IXLCACHE Version Support for a description of the
options available with PLISTVER.
- ,REQDATA=NO_REQDATA
- ,REQDATA=reqdata
- Use this input parameter with MODE=SYNCEXIT or MODE=ASYNCEXIT
to pass any data you choose to the complete exit. The exit will get
control only if the request is processed asynchronously.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-byte field that contains the data to be passed
to the complete exit.
- ,REQECB=reqecb
- Use this output parameter with either MODE=SYNCECB or MODE=ASYNCECB
to specify the address of an ECB, which is to be posted when the request
completes if the request was processed asynchronously.
Before coding REQECB, you must ensure that:
- You initialize the ECB before you issue the request.
- The ECB resides in either common storage or the home address space
where IXLCONN was issued.
- Any tasks that wait for the ECB to be posted reside in the home
address space where IXLCONN was issued.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that contains the address of the ECB
to be posted when the request completes. The ECB must be aligned on
a fullword boundary.
- ,REQID=NO_REQID
- ,REQID=reqid
- Use this input parameter to specify a user-defined request identifier
to be associated with the request. You can specify this request identifier
on the IXLPURGE macro to cancel a request that has not yet been processed.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of an 8-byte field that contains the user-defined request
identifier.
- ,REQTOKEN=reqtoken
- Use this output parameter with either MODE=SYNCTOKEN or MODE=ASYNCTOKEN
to specify the address of a storage area to receive the request token
that is returned when the request will be processed asynchronously.
This token, which uniquely identifies the request, must be used as
input to the IXLFCOMP macro, which you use to determine if the request
has completed.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 16-byte field where the system will put the request
token.
- ,RETCODE=retcode
- Use this output parameter to specify a field to contain the return
code. (The return code is also returned in register 15.)
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that will contain the return code
when the request has completed.
- ,RSNCODE=rsncode
- Use this output parameter to specify a field to contain the reason
code returned, if applicable. (The reason code is also returned in
register 0.)
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of a 4-byte field that will contain the reason code
(if any) when the request has completed.
- ,STARTINDEX=startindex
- Use this input parameter to specify the index for
the first WOB in the storage area specified by BUFFER or BUFLIST to
be processed. Valid STARTINDEX values are from 1 to the value of ENDINDEX.
The first WOB in the storage area pointed to by the BUFFER or BUFLIST
parameter has index number 1.
To Code: Specify the RS-type
name or address (using a register from 2 to 12) of a halfword field
containing the starting index value.
- ,WORBAREA=worbarea
- Use this output parameter to contain the write-operation response
block array.
To Code: Specify the RS-type name or address
(using a register from 2 to 12) of an 192-byte area to contain the
write-operation response block data.
|