RPC Server Front-End

This document describes how to set up the RPC server front-end for an RPC batch server environment under BS2000/OSD with the print file/work file server NATPWSV2.


Setup

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.