This document describes asynchronous Natural processing, a method which is available under all TP monitors supported by Natural.
An asynchronous Natural session is a session which is not associated with any terminal and therefore cannot interact with a terminal user. It can be used to execute a time-consuming task "in the background" without the user having to wait for the task to finish.
This section covers the following topics:
Related Topics:
To identify a session as being asynchronous, the Natural system
variable *DEVICE
is assigned the value ASYNCH
.
Note:
The value of *DEVICE
may be
modified by the Natural profile parameter TTYPE
and by
any SET CONTROL
'T=xxxx'
statement; see also profile
parameter TTYPE
in the
Parameter Reference documentation and terminal command
%T=
in
the Terminal Command documentation.
As an asynchronous session is a session that is not associated with
any terminal, this means that any output produced by the session cannot simply
be displayed on the screen; instead, you have to explicitly specify an output
destination. You specify this destination with the Natural profile parameter
SENDER
when invoking Natural. The SENDER
destination applies to
hardcopy output and primary reports; any additional reports are sent to the
destinations specified with the DEFINE PRINTER
statement,
just as in a synchronous online session.
As an asynchronous session can also cause a Natural error, the
destination to which any Natural error message is to be sent must also be
specified; this is done with the Natural profile parameter
OUTDEST
.
This parameter also provides an option to have error messages sent to the
operator console. After an error message has been sent, Natural terminates the
asynchronous session.
The profile parameters SENDER
and
OUTDEST
should be set accordingly to be prepared for
unexpected output by the asynchronous Natural session; otherwise, the
asynchronous Natural session may abend in such a scenario.
An asynchronous Natural session only has the Natural stack to enter
the name of Natural programs and Natural system commands to be executed. If a
Natural program or a Natural system command fails with an unhandled Natural
error or if the entire Natural stack is exhausted and NEXT
mode
would be entered, the asynchronous Natural session is terminated with
termination message NAT9943.
Depending on the TP monitor in use and depending on the TTYPE
setting, either the CLEAR
key or the EOF
indicator is
passed back to Natural on an INPUT
request by default. This
measure helps to prevent error loop situations if a program unintentionally
executes an INPUT
statement. To pass the ENTER key
indicator back, you can issue a SET CONTROL 'N'
statement prior to
the INPUT
statement.
Tip:
You can make your application compatible with asynchronous
sessions by evaluating the system variable
*SCREEN-IO
accordingly.
The following Natural profile parameters should be considered in the case of an asynchronous Natural session:
Profile Parameter | Comment |
AUTO
|
Asynchronous sessions may have non-alphabetical user
IDs. In this case, AUTO=ON will fail.
|
CM
|
An unwanted input situation may happen if the Natural
session accidentally falls onto the NEXT level. Setting
CM=OFF will terminate the session immediately in such a
situation.
|
ENDMSG
|
The error message NAT9995 (normal termination message)
can be suppressed by specifying ENDMSG=OFF .
|
IMSG
|
Natural initialization error messages and warnings can
be suppressed by specifying IMSG=OFF .
|
MENU
|
Asynchronous sessions only have the
Natural stack for command inputs; therefore, it is recommended to specify
MENU=OFF and to navigate through Natural by using direct
commands.
|
PLOG |
Dynamic parameter logging is executed by
sending all parameters line by line to the SENDER
destination.
|
PROGRAM
|
If a standard back-end program/transaction is defined in
your installation, it should be checked if this program can run asynchronously
or if it is desired to deal with terminal-bound sessions only. Specifying
PROGRAM=0 bypasses the back-end logic.
|