This document explains the features of Natural Advanced Facilities specific to a CICS environment.
NATSPOOL
accumulates all reports generated during a
Natural user session in the spool file. To physically print a report,
NATSPOOL
schedules a Natural session at the physical printer by
issuing an EXEC CICS START
command.
This new Natural session, the NATSPOOL
spool server,
retrieves various dynamic parameters from the task which has issued the
START
request.
The logical connection between the two Natural sessions used by
NATSPOOL
is shown below.
To install NAF in a CICS environment, set the NATSPOOL
parameters listed below.
You can also specify these parameters with Function 30.5 (Set Spool Option) as described in Layout of Spool File. After Natural Advanced Facilities has been installed, use Function 30.5 to set the CICS options.
Parameter | Explanation |
---|---|
INITEXI=OFF/ON |
Specifies whether the NAF initialization exit is executed. This exit requires exclusive control (ADABAS EXU USER) by the spool file. |
INITMCO=OFF/ON |
Specifies whether the initialization exit sends messages to the console. |
INITMLO=OFF/ON |
Specifies whether the initialization exit sends messages to the CICS log file. |
INITSID= name |
Specifies the CICS SYSID that performs the initialization exit. |
PRINSID= name |
Specifies the default CICS SYSID for the spool
server used if no SYSID has been specified for the printer on the
spool file (see also Function
31.4 in the section Objects - Function
31).
|
TRANP= name |
Specifies the CICS transaction ID of the spool server. The name
specified must be identical to the corresponding name specified as transaction
ID in the CICS PCT. This PCT entry must point to the Natural load module, that
is, NATP starts Natural.
For performance reasons, we highly recommend that you select different names for the spool server transaction ID and the terminal transaction ID. |
TRMTASK=OFF/ON |
Specifies that the spool server terminates and another task
starts each time a single report has been printed.
Specifiying |
You can omit a parameter or set the value (OFF/ON
or
name
) assigned to blank.
The following rule of precedence applies to the use of parameters:
For all parameters that have not been defined in NAFPRMC
or have been set to blank, the corresponding values defined in the spool file
applies.
Parameters that have been defined in the NAFPRMC
parameter module by setting the value not equal to blank rank before the values
defined on the spool file. As a result, you can use the NAFPRMC
parameter module to set certain options for certain tasks only. This can be
useful for several CICS environments sharing the same spool file.
CICS contains a facility called Intercommunication Support, which allows different CICS regions to share resources and communicate with each other. Multiple Region Operation (MRO) is a CICS facility which provides such support for regions within the same processor.
The MRO function-shipping option allows programs in the "application-owning" (local) region to access resources in the "resource-owning" (remote) region, by shipping appropriate requests to the remote region.
These requests are carried out in the remote region by a mirror transaction provided by CICS. The resources accessed can also be transactions, in which case the process is known as Remote Transaction Initiation.
Using the MRO approach, it is possible to ship the START
request of the asynchronous NATSPOOL
spool server to a remote
region (that is, to print in such a region).
The MRO option is useful if growth of tasks is anticipated, because there are constraints on the number of tasks a CICS region can manage.
When a spool server is started, three different types of dynamic parameters apply:
To allow for dedicated Natural Advanced Facilities threads of minimum size, the spool server always allocates buffers of minimum size. Most sizes are set to 0.
The spool server and the user session which started the spool server
always use the same system files (FNAT
, FUSER
,
FDIC
and FSPOOL
), the same buffer pool
(BPID
), and the same setting of the RCA
parameter.
All further parameters not mentioned above are taken from
NATPARM
.
The definition of the system file(s) in NATPARM
can be
overwritten by the user. This is accomplished by specifying any of the
corresponding file parameters (DBID
,
FNR
, FDIC
,
FNAT
, FSEC
or
FSPOOL
) dynamically when starting a Natural session. The
actual values will then be transferred by the originating terminal task to the
spool server. This holds both for spool servers started automatically and for
spool servers started by using NATSPOOL
functions.
When DBID
or FNR
are
processed, the supplied value is also applied to the spool file
specification.
Once the spool server has been started, it will observe these file
definitions for as long as the task is active. Reports will be printed only
from the file defined by the currently active FSPOOL
, even if
there are reports with the same Destination/Form on another FSPOOL
file.
In this way a unique CICS spool server is able to manage reports created on different spool files under the same CICS (for example, for production or test processing).
Before starting a spool server, NATSPOOL
checks if the
terminal status of the printer allows internally generated session requests to
create a session (TRMSTAT=INTLOG
or CREATESESS=YES
).
If this is not the case, for example after VTAM LOSTERM
errors,
NATSPOOL
forces this status and then tries to start the spool
server.
After startup of CICS, when the first Natural session is invoked, the
spool file is scanned for printers or reports interrupted during the previous
CICS session. Interrupted printers which are not in status DEAC
are reset to status FREE
, interrupted reports to status
TOBE
. 20 seconds after this first stage of initialization, all
interrupted printers are restarted with the interrupted Destination/Form. The
interval of 20 seconds allows this first stage of initialization to finish as
an exclusive user of the spool file.
The Natural initialization ensures that the spool file is to be updated under exclusive control of this first session. Other starting sessions will be delayed until this part of the initialization has finished.
If an error is encountered during scanning the spool file, the system operator is notified, the scan is terminated normally, and Natural initialization continues.
This scan is performed for the defined spool file, that is, dynamic
setting of FSPOOL
is also taken into account.
If the spool file is shared among CICS sessions, the spool file scan
must be disabled (see Function
30.5 and the NAFPARMC
parameter module in
Installing NAF under
CICS, Step 3) because it requires exclusive control of the
spool file.
If a spool server terminates normally, each printer is checked for
status INOP
. If a printer is found to be in status
INOP
and no alternate printer is available, the printer is set to
status PEND
, and the spool server tries to start again on that
printer. If the printer becomes INOP
again, the same procedure is
repeated twice. Afterwards, a restart is no longer attempted on that
printer.
Support for SNA character string (SCS) printers is provided.
The data stream to SCS printers may only contain user data and SCS control codes. It must not contain a write control character (start printer bit) or orders (such as the end-of-message character). The SCS control codes perform functions similar to orders, in that they allow the output to be formatted, however, the range of control is greater.
The only SCS control codes used by NATSPOOL
are
FF
(form feed) and NL
(new line).
It is only possible to have one spool transaction ID per Natural transaction ID.
The operation mode of the spool server can be defined with
Function 30.5
or the NAFPARMC
parameter module as described in
Installing NAF under
CICS, Steps 2.
By default, the NATSPOOL
spool server operates as a
pseudo-conversational CICS task (that is, in Terminate Task=Y
mode). The spool server will then be terminated (and another task will be
started) each time a single report has been printed. Pseudo-conversational mode
of operation is recommended if there are several physical printers active at
the same time.
Specify Terminate Task=N
to run in conversational mode.
The same CICS task prints all reports with the same Destination/Form.
Conversational mode is recommended if not many physical printers are active at
any one time, and fast printing is required. Otherwise, the maximum number of
active CICS tasks (AMXT
keyword in CICS SIT) may be reached.
Before sending output to a printer, the spool server rolls out the session to release the thread. This allows the thread to be released if the printer is interrupted while printing, for example, when running out of paper or switched off. After the output has been sent successfully, the session is rolled in again. Since relocation is turned off during this roll request, the same thread is selected.