This document describes how to set up the RPC server front-end for an RPC
batch server environment under BS2000 with the print file/work file server
NATPWSV2
.
For the generation of the Natural RPC batch server, the non-reentrant
part of the Natural batch driver (macro NAMBS2
) has to be
assembled with the new keyword parameter SERVER=YES
.
Example:
SERVFRNT NAMBS2 CODE=FRONT, - APPLNAM=NATSERV, - NUCNAME=RPCSERV, - DYNPAR=SYSDTA, For server parameters - SERVER=YES, Generate RPC server - ROLLTSZ=384, Roll thread size in KB - . All other parameter definitions as for . the generation of the non-reentrant part . of the Natural batch driver END
For the generation of the reentrant part of the Natural RPC batch server, you can use the same keyword parameter definitions as for the generation of the Natural batch driver.
For the generation of the module BS2STUB
(front-end part of the RPC
batch server), you have to define the necessary common memory pools. If you
intend to use the print file/work file server
NATPWSV2
, define a
print file/work file control pool and replace the module NATWKFB2
with the module NATFSTB2
in the Natural reentrant part.
RPCSTUB2 BS2STUB PARMOD031,PROGMOD=ANY,UNRES=*DBLOPT ADDON NAME=RPCSERV, Name of reentrant part (load pool) - . . . ADDON definition for Natural Buffer Pool . ADDON definition for Natural Editor Pool . ADDON definition for Natural Swap Pool . ADDON NAME = PWK#POOL, Name of print file/work file control pool - TYPE=PWK, Pool type - SIZE=1MB, Pool size in MB - STAT=LOCAL, Pool status is local - SCOP=GLOBAL, Scope is global - POSI=ABOVE, Pool position is above - PFIX=YES, Pool address is fixed - ACCS=WRITE No pool protection ADDEND
The Natural RPC batch server stores the different client context in user threads. These user threads are managed either in the swap pool or in the Natural roll file. Hence, a Natural roll file and a Natural swap pool is required.
For the processing of print files and work files, a print file/work file server has to be generated (see Print File/Work File Server NATPWSV2), using the new type "PWK".
Data interchange between RPC batch server and print file/work file server takes place in a common memory pool (print file/work file control pool), using the new type "PWK".
Communication between RPC batch server (module NATFSTB2
)
and print file/work file server (module NATPWSV2
) is accomplished
by way of P1
forward eventing. If you intend to work with the
print file/work file server, then the module NATWKFB2
has to be
replaced by the module NATFSTB2
in the link job for the reentrant
part.
Example of linking the environment-dependent nucleus for the RPC batch server:
/START-PROGRAM $BINDER START-LLM-CREATION INTERNAL-NAME=SERVER, - SLICE-DEFINITION=*BY-ATTRIBUTES(RESIDENCY-MODE=*YES) INCLUDE-MODULES NATSFED2,LIB=(NATvrs.MOD) Must be bound as first module INCLUDE-MODULES RPCSFE,LIB=(NATvrs.MOD) RPC front-end stub INCLUDE-MODULES SERVFRNT,LIB=(user-lib) Non-reentrant part of Natural batch INCLUDE-MODULES SERVRENT,LIB=(user-lib) Reentrant part of Natural batch INCLUDE-MODULES RPCSTUB2,LIB=(user-lib) BS2STUB (see previous example) INCLUDE-MODULES SWPRMSRV,LIB=(user-lib) Swap pool parameter module INCLUDE-MODULES NATPRMSV,LIB=(user-lib) Natural parameter module INCLUDE-MODULES ADAUSER,LIB=(ADAvrs.MOD) INCLUDE-MODULES SSFB2C,LIB=(ADAvrs.MOD) MODIFY-SYMBOL-ATTRIBUTES ADD-MODE=*31,RES-MODE=*ANY,READ-ONLY=*NO MODIFY-SYMBOL-VISIBILITY - SYMBOL-NAME = *ALL, - SYMBOL-TYPE = *DEFINITIONS, - VISIBLE = *NO(KEEP-RESOLUTION=*YES) SAVE-LLM LIB=NATURAL.USER.MOD,LOAD-ADDR=X'10000000',ELEMENT=BATCH.SERVER END
where:
vrs |
is the relevant product version of Natural for Mainframes or Adabas for Mainframes and |
user-lib |
is the user library. |
For information on how to generate the swap pool parameter module, refer to the section Defining the Natural Swap Pool, Keyword Parameters of Macro NTSWPRM.
Example of linking the environment-independent nucleus for the RPC batch server:
/START-PROGRAM $BINDER START-LLM-CREATION INTERNAL-NAME=RCPSERV, - SLICE-DEFINITION=*BY-ATTRIBUTES(RESIDENCY-MODE=*YES) INCLUDE-MODULES NATINV,LIB=(NATvrs.MOD) Must be bound as first module INCLUDE-MODULES NATURAL,LIB=(NATvrs.MOD) Natural nucleus REMARK INCLUDE-MODULES NATWKFB2,LIB=(NATvrs.MOD) Is replaced by INCLUDE-MODULES NAFSTB2,LIB=(NATvrs.MOD) print/work file server stub . ALL OTHER . MODULES INCLUDE-MODULES NATLAST,LIB=(NATvrs.MOD) MODIFY-SYMBOL-ATTRIBUTES ADD-MODE=*ANY,RES-MODE=*ANY,READ-ONLY=*NO MODIFY-SYMBOL-VISIBILITY - SYMBOL-NAME = *ALL, - SYMBOL-TYPE = *DEFINITIONS, - VISIBLE = *NO(KEEP-RESOLUTION=*YES) SAVE-LLM LIB=NATURAL.USER.MOD END
where vrs represents the relevant product version of Natural for Mainframes.
Example of parameters for the Natural batch server:
AUTO=ON, STACK=(LOGON DFSERVER), RPC=( SERVER=ON, SRVNODE='10.20.91.202:3860:TCP',SRVNAME=DFSRV1, RPCSIZE=128,MAXBUFF=30, TRACE=2 ), RCA=BROKER,RCALIAS=(BROKER,BKIMBTIA), MADIO=0,MAXCL=0,MT=0,MENU=OFF, PRINT=((10),AM=STD),WORK=((1-10),AM=STD)
Example of parameters for the Natural RPC server client:
STACK=(LOGON DFCLIENT), RPC=( DFS=(DFSRV1,BKR043,,,NOSERVDIR), RPCSIZE=128,MAXBUFF=30 ), RCA=BROKER,RCALIAS=(BROKER,BKIMBTIA), MADIO=0,MAXCL=0,MT=0,ETID=' '
The Natural RPC batch server requires the file named P10 for the output
of server messages. If the print file/work file server is used, this file has
to be defined using the FILE
instruction in the job control for
the print file/work file server, unless it is defined in the job control of the
Natural RPC batch server.
Example of a start job:
/.SERVER LOGON /SYSFILE SYSOUT=SERVER.OUT /SYSFILE SYSLST=SERVER.LIST /FILE NATvrs.EDIT.WORKFILE,LINK=CMEDIT /FILE NATvrs.SERVER.ROLLFILE,LINK=PAMNAT,SHARUPD=YES /FILE SERVER.MSG,LINK=P10 Is required for the server messages /FILE ADAvrs.MOD,LINK=DDLIB /FILE ADAPARM,LINK=DDLNKPAR /FILE EXXvrs.LIB,LINK=BLSLIB01 Broker /FILE EXXvrs.LIB,LINK=ETBLIB Load library /SYSFILE SYSDTA=SERVERPARMS /EXEC BATCH.SERVER /LOGOFF N
where vrs represents the relevant product version of Natural for Mainframes, Adabas for Mainframes or EntireX Communicator.
For information on how to generate and start the EntireX Broker, refer to the EntireX Communicator documentation.