This document applies under CICS only. It covers the following topics:
Natural under CICS in the TP Monitor Interfaces documentation
Natural RPC (Remote Procedure Call) documentation
Besides being a programming language, Natural can also act as a server in a client/server environment. It can provide services, such as the execution of Natural subprograms. There are a lot of underlying protocols for the client/server communication, such as the execution of stored procedures for DB2 (see Natural for DB2) and the execution of remote procedure calls (see Natural RPC (Remote Procedure Call)).
Natural as a server runs in a separate region or within the server subsystem region, for example for DB2 stored procedures. To run Natural as a server, a service-specific server stub is required. This server stub is supplied as part of the server product. It controls all service requests and is the only interface to the Natural server front-end.
There are different server stubs for DB2, for RPC and for others.
There is nothing specific to define when installing the Natural CICS Interface in order to serve as a Natural server environment. There are no requirements on thread type or type of rolling (CICS roll facilities or roll server).
Actually, Natural server sessions may share a Natural under CICS environment with "normal", for example, terminal bound Natural sessions. The difference is that, in case of a Natural server session, the Natural CICS Interface does not deal with a principal facility, such as a terminal or printer, but with a server stub. In terms of CICS, a Natural server session is a series of asynchronous CICS tasks, and the session context (session restart data) is maintained by the server stub using a unique 8-byte session ID.
The following restrictions apply when Natural is used as a server under CICS:
Natural server sessions under CICS can only run in
pseudo-conversational mode. A Natural server session cannot run in
conversational mode, as the Natural CICS Interface always has to pass control
back to the server stub; therefore
forced for Natural server sessions under CICS. Because of the same reason
is forced for Natural server sessions using
3GL programs called by Natural should be aware of the fact that Natural server sessions are running asynchronously in CICS, that is, no CICS terminal (TCTTE) is available.
The profile parameter
ADAMODE should be
set to 1 or 2, otherwise Adabas may build a different UQE ID for each dialog
step of the Natural server session.
The profile parameter
equivalent back-end program settings by Natural are not honored, as the logic
flow at session termination from the Natural CICS Interface to the server stub
must not be interrupted and/or falsified by a potential back-end program.
Care should be taken when using the parameter
&TID) in the macro
(depending on the Natural CICS Interface version installed) in the file name
setting for Natural print and work files: As a Natural server session runs
asynchronously, there is no (unique) terminal ID or other unique four-character
session identifier to insert. In CICS/TS 1.3 and above, the CICS Interface
internally uses the
QNAME option when dealing with CICS temporary
storage for such Natural print and work files, that is internally a 16-byte
temporary storage queue name is used (the 8-byte unique server session ID is
appended to the file's
DEST specification). This means
on the other hand that such CICS temporary storage queues can only be accessed
by the originating session.