Asynchronous Processing

#### Search Results

Search

# Asynchronous Processing

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:

- Identifying Asynchronous Natural Sessions

- Handling Output of an Asynchronous Natural Session

- Handling Unexpected or Unwanted Input

- Other Profile Parameter Considerations

Related Topics:

- Asynchronous Natural Processing under CICS

- Asynchronous Natural Processing under Com-plete/SMARTS

## Identifying Asynchronous Natural Sessions

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.

## Handling Output of an Asynchronous Natural Session

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.

## Handling Unexpected or Unwanted Input

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.

## Other Profile Parameter Considerations

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.

### On this page

- Identifying Asynchronous Natural Sessions
- Handling Output of an Asynchronous Natural Session
- Handling Unexpected or Unwanted Input
- Other Profile Parameter Considerations