Installing the Natural Development Server

This document describes how to install a Natural Development Server (product code: NDV) under the runtime environment SMARTS or under Com-plete on z/VSE.

The following topics are covered:


Prerequisites

For details, refer to the section Prerequisites.

Content of the Development Server Distribution Medium

The installation medium contains the datasets listed in the table below. The sequence of the datasets and the number of library blocks needed are shown in the Software AG Product Delivery Report, which accompanies the installation medium.

Dataset Name Contents
APSvrs.LIBR Contains the load modules of the SMARTS Server.
NDVvrs.LIBR Contains the load modules of the development server. See Natural Development Server on Mainframes.
NDVvrs.LIBJ Contains Installation Job Control for customers who install without using System Maintenance Aid.
NDVvrs.SYSF Contains the FDT of the Development Server File (the layout is identical with PRDvrs.SYSF provided with a Predict version as specified under Natural and Other Software AG Products in the current Natural Release Notes for Mainframes).

The notation vrs in the dataset names and in the program samples (below) represents the version, release and system maintenance level of the product.

For the currently applicable versions refer to Empower at https://empower.softwareag.com/.

Installation Procedure

Step 1: Create a Development Server Configuration File

(Job I009, Step 8400, 8410, 8420, 8430)

Job I009, Step 8400, define sublibrary for NDV environment.

Job I009, Step 8410, catalog configuration file of development server.

For a description of the parameters, refer to Configuring the Natural Development Server.

The following parameters of the configuration file must be defined. For the other parameters, the default values may be used:

FRONTEND_NAME Specify the name of the NDV server front-end module you will create in Step 5.
PORT_NUMBER Specify the TCP/IP port number under which the server can be connected.

For detailed information on the SMARTS configuration file, refer to the SMARTS documentation, Configuration of the SMARTS Environment.

Job I009, Step 8420, catalog member SYSPARM for SMARTS configuration file.

Job I009, Step 8430, create dummy member for NDV.

Step 2: Load FDIC system file

(Job I050, Step 8403)

If you do not use Predict at all or if you have not yet migrated to a Predict version as specified under Natural and Other Software AG Products in the current Natural Release Notes for Mainframes, create the development server file, using the dataset NDVvrs.SYSF.

The layout of the Development Server File corresponds to the layout of the Predict dictionary file.

Note:
If you have a Predict version installed as specified under Natural and Other Software AG Products in the current Natural Release Notes for Mainframes, you can ignore this step.

Step 3: Link the object modules into the NDV load library

(Job I054, Step 8410)

The NDV object modules must be linked with the necessary runtime extensions of your batch installations into executable load modules.

Step 4: Create the NDV server front-end module

(Job I060, Steps 8410, 8420)

  • Job I060, Step 8410, assemble and link the NDVPARM module to create the Natural module parameter module for NDV.

  • Job I060, Step 8420, link the NDV front-end.

Under Com-plete, the following ULIB CAT entries are necessary:

PAENSTRT 128 KB Privileged=Y
NATRDEVS 128 KB Privileged=Y
NATMOPI 128 KB Privileged=Y

Step 5: Copy DDMs and processing rules to FDIC

If you use a Predict system file FDIC as Development Server File (FDIC), ignore this step.

If a Predict version as specified under Natural and Other Software AG Products in the current Natural Release Notes for Mainframes has not been installed or if you do not use a Predict system file FDIC as Development Server File (FDIC), you have to copy the existing DDMs and processing rules to the Development Server File (FDIC), using the copy function of the Natural utility SYSMAIN.

Step 6: Extend your SMARTS startup job by NDV-specific definitions

(Job I200, Step 8415)

Described in the section Configuring the Natural Development Server.

VSE Sample:

* $$ JOB JNM=NDVSRV,CLASS=C,DISP=L,LDEST=(,UID)
* $$ LST CLASS=A,DISP=H
// JOB NDVSRV   --- NDV SERVER STARTUP ---
// OPTION PARTDUMP,NOSYSDMP,LOG
/* NDV server datasets -----------------------------------
// DLBL   NDVSRVT,'SYSLST' 
// DLBL   NDVSRVC,'/SAGLIB/NDVCNFG/NDVSRV.P'     location of NDV configuration file
// DLBL   NDVSRVE,'SYSLST'                       NDV error output directed to job output
// DLBL   NDVSRVO,'SYSLST'
// DLBL   SYSPARM,'/SAGLIB/NDVCNFG/MSGQ.DMY'     location of NDV Dummy file
// DLBL   STDOUT,'CONSOLE'                       STDOUT directed to VSE console
// DLBL   STDERR,'CONSOLE'
/* Libdef's ----------------------------------------------
/*
// LIBDEF PHASE,SEARCH=(SAGLIB.NDVCNFG,                                  +
               SAGLIB.APSvrs,                                            +
			                  SAGLIB.ADAvrs)
/* *******************************************************************
// UPSI   00000000
// EXEC   TLINSP,SIZE=AUTO
* $$ SLI MEM=RJANPARM.P,S=SAGLIB.APSvrs
* $$ SLI MEM=PXANCONF.P,S=SAGLIB.APSvrs
* $$ SLI MEM=SYSPARM.P,S=SAGLIB.NDVCNFG           NDV specific SMARTS configuration file
/*
// EXEC   LISTLOG

Step 7: Debug a Natural batch job with Debug Attach for NaturalONE

(Job I200, Step 8418)

Sample JCL:

* $$ JOB JNM=NATvrBAT,CLASS=X,DISP=D
* $$ LST CLASS=A,DISP=H,DEST=(,XYZ)
// JOB NATBAT
// DLBL NATvrs,'PRD.NATvrs.LIBRARY'
// LIBDEF PHASE,SEARCH=(NATvrs.NATvrs,NATvrs.NDVvrs,...)
// EXEC  NATBATvr,SIZE=(NATBATvr,120K),PARM='SYSRDR'                   
  RCALIAS=(NATATDBG,NATADvrs),                                        
  DBGAT=(ACTIVE=ON,CLID=CLIENT,HOST=DASSERV,PORT=2500)                  
LOGON MYLIB,DBA,DBA
MYPROG
FIN
/*
/&
* $$ EOJ

Step 8: NDV clients must be defined to Natural Security

If Natural Security (NSC) is installed:

  • The NDV initial user ID (default ID is STARGATE) must be defined in Natural Security with a valid default library. Refer also to NDV configuration parameter INITIAL_USERID in the section Configuring the Natural Development Server. Alternatively, you can specify the Natural profile parameter AUTO=OFF (automatic logon) for NDV.

  • Each client user ID must be defined in Natural Security.

If the NDV initial user ID is not defined, the NDV server initialization aborts with a NAT0856 error message.

If an NDV client is not defined, the Map Environment dialog returns an NSC error.

If you logon to the server from an NDV client, make sure that the user who is defined in Natural Security has a default library or a private library defined. Otherwise, the error message NAT0815 will be displayed.

Step 9: NDV clients must be defined to the server host

If you configure the NDV server to use an external security system (see NDV configuration parameter SECURITY_MODE), the NDV clients must be defined to the external security system.

Allocating and Configuring a SMARTS Portable File System

The Natural server uses the SMARTS portable file system (PFS) as a data container for Natural work files, print files, temporary sort files and the editor work file. The SMARTS PFS is the only storage medium available for those files under SMARTS.

In order to be able to use the PFS for Natural files you have to configure Natural accordingly:

  • For work or print files, specify the access method AM=SMARTS, using the Natural profile parameters WORK and/or PRINT.

  • For temporary sort files, specify the type of storage medium STORAGE=SMARTS, using the Natural profile parameter SORT.

  • And to allocate the editor work file in the PFS, specify the work file mode FMODE=SM, using the Natural profile parameter EDBP.

If you use one of these options, you have to configure your SMARTS to use a PFS.

Step 1: Allocate a PFS

Allocate a z/VSE file (LRECL=4096) with the estimated size (the file must start at cylinder boundary) to store your PFS, and completely initialize the container to contain x'00's.

The initialization can be done using the following job (runs until no more extents are available in the file and requires extra operator intervention to continue the job after the WTOR message for the extent overflow):

// JOB PFSFMT 
// OPTION NODUMP 
// DLBL CMWKF01,'your.pfs.file.name',0,SD 
// EXTENT SYS001,volume,...
// ASSGN SYS001,DISK,VOL=volume,SHR 
// ASSGN SYS000,READER 
// UPSI 00000011 
// LIBDEF PHASE,SEARCH=(SAGLIB.NATvrs) 
// EXEC NATBATvr,SIZE=AUTO,PARM='SYSRDR' 
IM=D,MADIO=0,MT=0,OBJIN=R,ID=',',INTENS=1, 
WORK=((1),AM=STD,RECFM=FB,BLKSIZE=4096,LRECL=4096) 
EDT 
DEFINE DATA LOCAL 
1 B(B1) INIT<H'00'> 
END-DEFINE 
DEFINE WORK FILE 1 'CMWKF01' 
REPEAT 
WRITE WORK 1 B 
WHILE 1=1 
END 
.E 
RUN 
FIN 
/*

Step 2: Configure SMARTS

In the SMARTS startup JCL, add the following statements:

// DLBL APSPFS1,'your.pfs.file.name',0,DA 
// EXTENT SYSvrs,volume,...
// ASSGN SYSvrs,DISK,VOL=volume,SHR

In the SMARTS SYSPARM file, add the following statements (where vrs stands for the current Natural version, release number and system maintenance level):

RESIDENTPAGE=NCFvrAPS
CDI_DRIVER=('CIO,PAANCIO')
CDI=('PFS1,PAANPFS,CACHESIZE=2000,LRECL=4096,CONTAINER=CIO://DD:APSPFS1')
MOUNT_FS=('PFS1://','/usr/') 
ENVIRONMENT_VARIABLES=/SAGLIB/APSvrs/ENVARS.P

Create a member ENVARS.P under SAGLIB.APSvrs containing the following lines:

NAT_WORK_ROOT=/usr/natural/etc/work_file 
NAT_PRINT_ROOT=/usr/natural/etc/print_file 
NCFWFAPS_TRACE_LEVEL=0

NCFWFAPS_TRACE_LEVEL=31 may be used for diagnostic purposes. It causes all PFS accesses to be traced by Natural and to be written to the NDV server dataset STDOUT. It is recommended to set the NCFWFAPS_TRACE_LEVEL parameter value to zero.

Step 3: Verify PFS Configuration

SMARTS now should protocol the following line in SYSLST during startup:

APSPSX0050-SYSNAME CDI PFS1 PROTOCOL INITIALIZED

Once your Natural development server installation has been completed, issue a Map Environment command to the Natural Development Server, using the following session parameter:

WORK=((1),AM=SMARTS)

The following Natural program should run and display Record 01:

DEFINE DATA LOCAL
1 A(A20)
END-DEFINE
A := 'Record 01'
WRITE WORK 1 A
CLOSE WORK 1
READ WORK 1 A
WRITE A
END-WORK
END