This document applies under CICS only. It covers the following topics:
See also:
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 PSEUDO
=ON
is
forced for Natural server sessions under CICS. Because of the same reason
RELO
=ON
is forced for Natural server sessions using
TYPE
=GETM
threads.
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 PROGRAM
or
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
TERMVAR
(&TID
) in the macro
NTCICSP
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.