System Environment Configuration

This chapter describes the environment configuration methods required for OSI system operation.

1. Overview

After the installation of the OSI system is complete, users must change the default configuration of items for the OSI system environment, as required by the system.

Configure the following for the OSI system environment.

2. Configuring System Configuration Files

Among system configuration values that are required by the OSI system, the items that cannot be dynamically applied are mostly described in the configuration file and the values specified are applied when the system is started.

2.1. openframe_osi.conf

To operate the OSI system, configure the following subjects in the openframe_osi.conf file, and then apply them to the OpenFrame system by using the ofconfig tool.

Subject Description

osi

Common reference item for all modules of OSI. The values specified in this item are applied to all modules of OSI.

osi.[IMSID]

Identification for each IMS system in OSI. The values specified in this item are applied to all modules of the respective IMS system. IMSID must be four alphanumeric characters.

osi.[osimqsvrname]

Name of a queue trigger monitor of IBM Websphere MQ in OSI. Each osimqsvr server requires one subject item. osimqsvrname must match with the server name specified in the MQ user server configuration.

ssm.[IMSID].[SSM]

Identification applied in the Tmax XA server for each IMS system to use MultipleRM in OSI.

  1. For more information about subjects and settings for OpenFrame configuration, refer to OpenFrame Configuration Guide.

  2. For more information about the usage and functions of the ofconfig tool, refer to OpenFrame Tool Reference Guide.

2.2. osi.ofsys.seq

You can choose which Tmax server to run with osiboot in OSI, by specifying the name of Base/Batch/TACF servers including the osimqsvr server, but except for region servers.

The following is a sample file of osi.ofsys.seq.

#BASE
TPFMAGENT
ofrsasvr
ofrlhsvr
ofrdmsvr
ofrdsedt
ofrcmsvr
ofruisvr
ofrsmlog

#BATCH
obmjmsvr
obmjschd
obmjinit
obmjhist
obmjspbk
ofrpmsvr
obmtsmgr
obmjtimr

#TACF
tmsvr

#OSI
#osimq001

2.3. Configuring TCache

For supporting multi-node clustering, OSI manages that information that needs to be shared between regions, including runtime system definition (RTSD), in DB tables. This guarantees enhanced read performance by using TCache to cache the data accessed from DB table into the shared memory. TCache needs to be configured for each node, involving configuration of shared memory key and resource for each region.

For more information about default setting, refer to Tmax TCache Guide.

The following is an example of pfmtcache.conf.

# the configuration file of TCACHE
SHMKEY=0x70005                      # the key of shared memory
IPCPERM=0600                        # permission of the shared memory
SIZE_LOCAL=32                       # L1 cache size in kilo-bytes
LIB_PTHREAD=libpthread.so           # the pthread library file name
INVALIDATE_TYPE=0                   # Invalidate type 0:multi-node 1:multi-domain
AGENT_SVC=SPFMAGENT                 # multi-node sync. svc SPFMAGENT|2 = SPFMAGENT01, SPFMAGENT02

# cache for OSI Region Status
CACHE_NAME=OFM_OSI_REGION_STATUS    # table name
SIZE_MEM=32                         # the total cache memory size in kilo-bytes
SIZE_HASH=32                        # the number of hash key (MAX=65536)
SIZE_KEY=4                          # the number of digits of the index column
SIZE_REC=8                          # the size of a single record in bytes
INV_TIMEOUT=0                       # invalidation timeout in sec

# cache for IMSA Region
CACHE_NAME=IMSA                     # IMSID
SIZE_MEM=65535                      # the total cache memory size in kilo-bytes
SIZE_HASH=32                        # the number of hash key (MAX=65536)
SIZE_KEY=13                         # the number of digits of the index column
SIZE_REC=289                        # the size of a single record in bytes
INV_TIMEOUT=0                       # invalidation timeout in sec

3. Configuring Libraries

All information required for system operation must be prepared before booting the system. This section describes the process of preparing such information by type. Most of the information is saved as records in RDB tables, and others such as MDA or MFS are stored in datasets or Unix files.

The following libraries are required in OSI operation.

Library Description

DBDLIB

Stores DBD information for using OpenFrame/HiDB.

DFSRESLB

Stores information needed for dynamic usage of datasets.

FORMAT

Staging library which stores MFS information for mapping support in OSI.

FORMATA / FORMATB

Stores MFS information for mapping support in OSI and is actually used online.

IMSACB

Staging library which stores ACB information for integrated management of PSB and DBD.

IMSACBA/IMSACBB

Stores ACB information for integrated management of PSB and DBD and is actually used online.

MODBLKS

Staging library which stores system information required for OSI operation.

MODBLKSA / MODBLKSB

Stores system information for OSI operation and is actually used online.

MODSTAT

Stores the current ACTIVE dataset information for the dataset that supports dynamic change.

PSBLIB

Stores PSB information for using application programs.

RESLIB

Stores MDA information needed for dynamic usage of datasets. (Same as DFSRESLB)

STEPLIB

Directory for shared object form execution module management of programs that application developers wrote.

  1. For more information about dataset usage and PDS, refer to OpenFrame Dataset Guide.

  2. For more information about the usage of IDCAMS, refer to OpenFrame Utility Reference Guide.

  3. For more information about registering and managing DBD, PSB, ACB and MDA information as well as creating OpenFrame/HiDB, refer to OpenFrame HiDB Guide.

  4. For more information about tools used during library configuration, refer to OpenFrame Tool Reference Guide.

3.1. DBDLIB

DBD is a set of macro parameter statements that define the characteristics of OpenFrame/HiDB and the relationships between segments, fields, and segment types within the database structure, access methods and databases.

Creating Datasets

Using DBDLIB requires a procedure for creating datasets during the system preparation process. DBDLIB is composed in the PDS form and the individual environment configuration files are stored as DBDLIB members. To create DBDLIB in OSI, a tool named pdsgen is used.

The following example creates IMS.DBDLIB in a volume named DEFVOL by using pdsgen.

$ pdsgen IMS.DBDLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS IMS.DBDLIB is created.
Registering DBD Information

Using DBD in OSI requires a tool called dbdgen, to register DBD information.

The following example registers DBD information with a file named OIVPIDBD which contains the DBD control statement, by using dbdgen.

$ dbdgen OIVPIDBD
dbdgen version 7.2.0(0) oframe@tmax:ofsrc/ims(#3) 2020-08-08 16:21:16
Database Description Block Generation Program

dbdgen: force flag on; the tool overwrites existing data
dbdgen: 1 files are requested in total
------------------------------------------------------------
dbdgen: processing DBD script "OIVPIDBD"
------------------------------------------------------------

dbdgen: processing DBD "OIVPIDBD"
dbdgen: removing existing DBD OIVPIDBD metadata
dbdgen: successfully processed DBD "OIVPIDBD"
dbdgen: successfully processed for the requested DBDs (total 1)

In the current version, executing dbdgen stores the database schema information described in the DBD script to metatables, and DBDLIB stores no actual data.

3.2. DFSRESLB

Running a program using PSB resources requires a method of sending the PSB information and the dataset information defined in DBD, to the program to run.

OpenFrame/Batch runs an application program by using JCL, at which point the JCL DD statements send the PSB information and DBD dataset information to the program. On the other hand, OSI runs multiple programs in a single region, and the JCL required to startup the region cannot contain all DD statements. Therefore, OSI is required to use a different method than OpenFrame/Batch to send necessary information to the program. Hence, OSI stores information necessary for dynamic usage of datasets, in DFSRESLB.

For more information about dynamic DD allocation, refer to IBM IMS DFSMDA macro.

Creating Datasets

For DFSRESLB, datasets need to be created in the system preparation process. DFSRESLB is composed in the PDS dataset format and individual configuration files are stored in the member format of DFSRESLB. To create DFSRESLB in OSI, use the pdsgen tool.

The following example creates IMS.RESLIB in a volume named DEFVOL, by using pdsgen.

$ pdsgen IMS.RESLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS IMS.RESLIB is created.
Registering MDA Information

To use MDA in OSI, the MDA information has to be registered using the imsdaloc tool.

The following example registers the MDA information to DFSRESLB, with a file named OIVPIDBD which contains the script defining MDA.

<OIVPIDBD>

  DFSMDA    TYPE=DATABASE,DBNAME=OIVPIDBD
  DFSMDA    TYPE=DATASET,DSNAME=IMS.TEST.OIVPI,DDNAME=OIVPI
  END

Register the MDA information by using imsdaloc.

$ imsdaloc -l IMS.RESLIB -v DEFVOL OIVPIDBD
imsdaloc version 7.2.0(0) oframe@tmax:ofsrc/ims(#3) 2020-08-08 16:21:16
Dynamic Allocation Block Generation Program

IMSDALOC FCOUNT=1,RESLIB=IMS.RESLIB,VOLSER=DEFVOL
------------------------------------------------------------
*** processing filepath="OIVPIDBD"
------------------------------------------------------------
mdaparser: *** dfsmda_statement matched!
mdaparser: *** dfsmda_statement matched!
mdaparser: *** end_statement matched!
mdaparser: *** mda_generation finished!!!
------------------------------------------------------------
*** ims_parse_mda("OIVPIDBD") success.
------------------------------------------------------------
  MDA TYPE=DATABASE,DBNAME=OIVPIDBD
    DATASET TYPE=DATASET,DDNAME=OIVPI,DSNAME=IMS.TEST.OIVPI,DISP=
------------------------------------------------------------
*** ims_print_mda("OIVPIDBD") success.
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.

3.3. FORMAT, FORMATA and FORMATB

FORMAT is a library that stores the information supporting the mapping function in OSI.

The mapping function here, refers to connecting fields and applications that are defined in the format by using FORMAT. Prepare three datasets in the same way as in MODBLKS and IMSACB.

Creating Datasets

Using FORMAT requires creating datasets during the system preparation process.

FORMAT is composed in the PDS format and the individual environment configuration files are stored as MFSLIB members. To create FORMAT in OSI, use the pdsgen tool.

The following example creates OSI.IMSA.MFSLIB in a volume named DEFVOL, by using pdsgen.

$ pdsgen OSI.IMSA.MFSLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS OSI.IMSA.MFSLIB is created.
Registering Map Information

The following example registers map information to OSI.IMSA.MFSLIB, by using a file named OIVP001.TXT.

<OIVP001.TXT>

         PRINT ON,NOGEN
*******************************************************************
         TITLE 'FORMAT SET FOR OPENFRAME ONLINE IVP'
*******************************************************************
OIVP001  FMT
         DEV   TYPE=(3270,2),                                          X
               FEAT=IGNORE,                                            X
               DSCA=X'00A0',                                           X
               PFK=(PFKFIELD,                                          X
               12='/FOR OIVP006O')
         DIV   TYPE=INOUT
         DPAGE CURSOR=((7,40)),                                        X
               FILL=PT
CURDATE  DFLD  POS=(1,2),                                              X
               LTH=8,                                                  X
               ATTR=(PROT,ALPHA,NORM,NOMOD)
         DFLD  '** WELCOME TO OPENFRAME ONLINE **',                    X
               POS=(2,24),                                             X
               ATTR=(PROT,ALPHA,HI,NOMOD),                             X
               EATTR=YELLOW
         DFLD  '-------------------------------------------------------X
               -----------------------',                               X
               POS=(3,2),                                              X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=YELLOW
         DFLD  '** OSI INSTALLATION VERIFICATION PROCEDURE **',        X
               POS=(4,17),                                             X
               ATTR=(PROT,ALPHA,HI,NOMOD),                             X
               EATTR=GREEN
         DFLD  'CODE ',                                                X
               POS=(7,34),                                             X
               ATTR=(PROT,ALPHA,NORM,NOMOD)
CODE     DFLD  POS=(7,40),                                             X
               LTH=4,                                                  X
               ATTR=(NOPROT,ALPHA,NORM,MOD),                           X
               EATTR=HREV
         DFLD  ' ',                                                    X
               POS=(7,45),                                             X
               ATTR=(PROT,ALPHA,HI,NOMOD)
         DFLD  'INQR  INQUIRY ACCOUNT INFORMATION',                    X
               POS=(10,23),                                            X
               ATTR=(PROT,ALPHA,HI,NOMOD)
         DFLD  'INSR  INSERT NEW ACCOUNT',                             X
               POS=(11,23),                                            X
               ATTR=(PROT,ALPHA,HI,NOMOD)
         DFLD  'UPDT  UPDATE ACCOUNT INFORMATION',                     X
               POS=(12,23),                                            X
               ATTR=(PROT,ALPHA,HI,NOMOD)
         DFLD  'DELT  DELETE ACCOUNT',                                 X
               POS=(13,23),                                            X
               ATTR=(PROT,ALPHA,HI,NOMOD)
         DFLD  '-------------------------------------------------------X
               -----------------------',                               X
               POS=(18,2),                                             X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=YELLOW
ERRMSG   DFLD  POS=(19,2),                                             X
               LTH=79,                                                 X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=TURQ
         DFLD  'ENTER APPROPIATE CODE.',                               X
               POS=(20,2),                                             X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=PINK
         DFLD  '-------------------------------------------------------X
               -----------------------',                               X
               POS=(21,2),                                             X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=YELLOW
         DFLD  '[SYS INFO] - OSI IVP STARTING NOW',                    X
               POS=(22,2),                                             X
               ATTR=(PROT,ALPHA,HI,NOMOD),                             X
               EATTR=RED
CURTIME  DFLD  POS=(22,71),                                            X
               LTH=8,                                                  X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=RED
         DFLD  '-------------------------------------------------------X
               -----------------------',                               X
               POS=(23,2),                                             X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=YELLOW
         DFLD  'CopyRight(c) 2007, TmaxSoft, All Rights Reserved.',    X
               POS=(24,31),                                            X
               ATTR=(PROT,ALPHA,NORM,NOMOD),                           X
               EATTR=BLUE
         FMTEND
*********************************************************************
         EJECT
*********************************************************************
OIVP001I MSG   TYPE=INPUT,                                             X
               SOR=(OIVP001,IGNORE),                                   X
               NXT=OIVP001O
         SEG
         MFLD  'OIVPMPP1',                                             X
               LTH=8
         MFLD  CODE,                                                   X
               LTH=4
         MSGEND
*********************************************************************
OIVP001O MSG   TYPE=OUTPUT,                                            X
               SOR=(OIVP001,IGNORE),                                   X
               NXT=OIVP001I
         SEG
         MFLD  (CURDATE,DATE2)
         MFLD  CODE,                                                   X
               LTH=4
         MFLD  ERRMSG,                                                 X
               LTH=79
         MFLD  (CURTIME,TIME)
         MSGEND
*********************************************************************
         END

Register map information by using osimfsgen.

$ osimfsgen -m OSI.IMSA.MFSLIB OIVP001.TXT
osimfsgen 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001.mfs] create ok.
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001I.mfs] create ok.
[/home/oframe/products/ofsrc/OpenFrame/volume_default/OSI.IMSA.MFSLIB/OIVP001O.mfs] create ok.

3.4. IMSACB, IMSACBA and IMSACBB

In OSI, the PSB and DBD information is not managed and operated individually, but rather managed as a single integrated library. Such library is called ACB. Prepare three data sets in the same way as in MODBLKS.

Creating Datasets

Using ACBLIB requires creating datasets during the system preparation process. ACBLIB is composed in the PDS format and the individual environment configuration files are stored as ACBLIB members. To create PSBLIB in OSI, use the pdsgen tool.

The following example creates IMS.ACBLIB in a volume named DEFVOL, by using pdsgen.

$ pdsgen IMS.ACBLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS IMS.ACBLIB is created.
Registering ACB Information

To use ACB in OSI, the ACB information has to be registered using a tool called acbgen.

The following example registers the ACB information to ACBLIB for a PSB named OIVPI002 of PSBLIB.

$ acbgen build -p IMS.PSBLIB -d IMS.DBDLIB -l IMS.ACBLIB PSB=OIVPI002
acbgen version 7.2.0(0) oframe@tmax:ofsrc/ims(#3) 2020-08-08 16:21:16
Application Control Block Generation Program

ACBGEN COMMAND=BUILD,OPERAND=(PSB=OIVPI002),ACBLIB=IMS.ACBLIB
------------------------------------------------------------
*** ACBGEN BUILD PSB=OIVPI002
------------------------------------------------------------
*** BUILDING PSB BLOCK....... PSBNAME=OIVPI002
*** BUILDING DBD BLOCK....... DBDNAME=OIVPIDBD
*** BUILDING DBD BLOCK....... DBDNAME=OIVPIX1
------------------------------------------------------------
PROGRAM COMPLETED SUCCESSFULLY.

In the current version, executing acbgen generates ACB meta information based on the DBD and PSB meta information, and stores the ACB meta information to each metatable. ACBLIB stores no actual data.

3.5. MODBLKS, MODBLKSA and MODBLKSB

In OSI, the system definition that registers and manages using macros in IMS/DC is replaced by a structure called Online System Definition (OSD).

OSD is the region used for storing the various system configuration information that can be dynamically operated and is required for using OSI. OSD is composed of modules, where actual datasets are stored and OSD is managed. When the system is started, a separate area called RunTime System Definition (RTSD)is activated and allows easy dynamic management of system information and easy modification of OSD.

Prepare three datasets including a staging library and those suffixed 'A' and 'B' each. Data can be registered directly to A and B, but when applying dynamic changes, apply the information stored in the staging library by using the dynamic change tool and commands.

In the current version, OSD stores and manages data in metatables, not datasets. The three datasets including the staging library are required only when starting up the control region, and store no actual data.

Creating Tables

Using OSD requires creating metatables during the system preparation process. Metatables are created by using a tool called osiinit.

The following example creates a metatable to store information about the APPLCTN macro, retrieved from OSD, in a tablespace named DEFVOL, by using the osiinit tool.

$ osiinit create -t OFM_OSI_SD_APPLCTN -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_SD_APPLCTN...
 > "OFM_OSI_SD_APPLCTN" created...

For more information about metatables, refer to Resource Tables.

Creating Datasets

The JCL for starting up the control region in IMS/DC can also be used as it is in OSI, by creating datasets during the system preparation process. Datasets can be created by using a tool called idcams.

The following example creates an OSD dataset in a volume named DEFVOL, by using the idcams tool.

$ idcams define -t CL -n OSI.IMSA.DEFLIB -o KS -k 10,0 -l 100,32760 -s 1024,128,128 -v DEFVOL
idcams version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
Access Method Services for Catalogs

IDCAMS COMMAND=DEFINE,TYPE=CL,NAME=OSI.IMSA.DEFLIB,RELATE=,CATALOG=

tbESQL Precompiler 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.


/home/oframe/products/ofsrc/OpenFrame/tsam/temp/OSI_IMSA_DEFLIB.tbc is precompiled successfully!

COMPLETED SUCCESSFULLY.
Registering Resource Information

The method of configuring resource information, used in operating the system in the OSD tables, is similar to the method of defining resources using macros in IMS/DC.

A tool called osisdgen provides this function in OSI. osisdgen is a tool program which operates in the Unix environment, which is not a batch job environment. osisdgen performs tasks with the input file containing the resource information to be configured and IMSID of the region which is used for storing the resource information. The resource information also supports the macro syntax that has been used in the existing IMS/DC.

The following example registers resource information in a region named IMSA, by using the osi_sdlib.dat file, which contains certain resource definition scripts.

<osi_sdlib.dat>

TYPE
TERMINAL NAME=OIVPTRM1,                                                X
         FEAT=(PFK,CARD,PEN)
NAME     N031E01

APPLCTN PSB=OIVPI001,PGMTYPE=(,,),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP1,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

APPLCTN PSB=OIVPI002,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP2,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL,MAXRGN=1

APPLCTN PSB=OIVPI003,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP3,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

APPLCTN PSB=OIVPI004,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP4,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        SPA=(60,STRUNC),MODE=SNGL

APPLCTN PSB=OIVPI005,PGMTYPE=(TP,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPMPP5,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        SPA=(60,STRUNC),MODE=SNGL

APPLCTN PSB=OIVPIL02,PGMTYPE=(BATCH,,1),SCHDTYP=PARALLEL
TRANSACT CODE=OIVPBMP2,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

APPLCTN PSB=OIVPIL03,PGMTYPE=BATCH,SCHDTYP=PARALLEL
TRANSACT CODE=OIVPBMP3,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

APPLCTN PSB=OIVPIL04,PGMTYPE=BATCH,SCHDTYP=PARALLEL
TRANSACT CODE=OIVPBMP4,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

APPLCTN PSB=OIVPIL05,PGMTYPE=BATCH,SCHDTYP=PARALLEL
TRANSACT CODE=OIVPBMP5,MSGTYPE=(SNGLSEG,RESPONSE,1),PRTY=(1,5),        X
        MODE=SNGL

Register the resource information by using osisdgen.

$ osisdgen osi_sd.dat IMSA
[2020-12-21T16:59:20.510891] [osisdgen(21666)         ] [M] [OSI7203M] Processing result : Success[20], Ignore[0], Error[0]

Execute the following commands to deploy the resources registered in the dataset to the running OSI system.

$ dfsuocu0 IMSA MODBLKS
- ACTIVE MODBLKS is MODBLKSA
- Succeeded to copy MODBLKS to MODBLKSB

$ imscmd IMSA /MOD PREPARE MODBLKS
IMS control region : [IMSA]
Requested command  : [MOD PREPARE MODBLKS]
----------------------------------------
ACTIVE DD: MODBLKSA IMSACBA FORMATA
MODIFY PREPARE COMMAND COMPLETED
*20356/170207*
----------------------------------------
Command '/MOD PREPARE MODBLKS' execution done

$ imscmd IMSA /MOD COMMIT
IMS control region : [IMSA]
Requested command  : [MOD COMMIT]
----------------------------------------
ACTIVE DD: MODBLKSB IMSACBA FORMATA
MODIFY COMMIT COMMAND COMPLETED
*20356/170211*
----------------------------------------
Command '/MOD COMMIT' execution done

3.6. MODSTAT

MODSTAT is a library that stores information about Active Library for MODBLKS, IMSACB and FORMAT datasets used in OSI.

To create MODSTAT for the first time, copy the contents of the staging library for all three libraries metioned above, to all data sets suffixed 'A' and 'B', when booting OSI. Then, specify the datasets suffixed 'A' to the active library. OSI reads and uses the active library resources whenever the system is booted.

In the current version, the active library information for MODSTAT is stored and managed as records in metatables, not datasets. These datasets are required only when starting up the control region, and store no actual data.

Creating Tables

Storing and managing MODSTAT resources requires creating metatables during the system preparation process. Metatables are created by using a tool called osiinit.

The following example creates a MODSTAT table in a tablespace named DEFVOL, by using the osiinit tool.

$ osiinit create -t OFM_OSI_MODSTAT -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_MODSTAT...
 > "OFM_OSI_MODSTAT" created...

For more information about metatables, refer to Resource Tables.

Creating Data Sets

The JCL for starting up the control region in IMS/DC can also be used as it is in OSI, by creating datasets during the system preparation process. Datasets can be created by using a tool called idcams.

The following example creates a MODSTAT dataset in a volume named DEFVOL, by using the idcams tool.

$ idcams define -t CL -n OSI.IMSA.MODSTAT -o KS -k 8,0 -l 160,160 -s 1024,128,128 -v DEFVOL
idcams version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
Access Method Services for Catalogs

IDCAMS COMMAND=DEFINE,TYPE=CL,NAME=OSI.IMSA.MODSTAT,RELATE=,CATALOG=

tbESQL Precompiler 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.


/home/oframe/products/ofsrc/OpenFrame/tsam/temp/OSI_IMSA_MODSTAT.tbc is precompiled successfully!

COMPLETED SUCCESSFULLY.

3.7. PSBLIB

Program Communication Block (PSB)is a collection of PCBs which are control blocks for using the databases or messages used in applications. There is usually one PSB per user, for each program.

PCB is a control block provided by the system to communicate with views, message sources, or message destinations for OpenFrame/HiDB in applications. IO PCB/ALT PCB is a resource used for reading and writing data in message queues provided in OSI within PCB and therefore it can only be used when IO PCB/ALT PCB is started. IO PCB can be used only by using IOPCB-MASK, which is provided as the program’s first parameter, for programs that run in OSI regardless of PSB’s technology. However, multiple ALT PCBs can be used as needed.

Creating Datasets

Using PSBLIB requires creating datasets during the system preparation process.

PSBLIB is composed in the PDS format and the individual environment configuration files are stored as PSBLIB members. To create PSBLIB in OSI, use a tool called pdsgen.

The following example creates IMS.PSBLIB in a volume named DEFVOL, by using pdsgen.

$ pdsgen IMS.PSBLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS IMS.PSBLIB is created.
Registering PSB Information

To use PSB in OSI, PSB information has to be registered using a tool called psbgen.

The following example registers the PSB information by using a file named OIVPI002, which contains the scripts defining PSB.

<OIVPI002>

 PCB   TYPE=TP,MODIFY=YES
 PCB   TYPE=DB,DBDNAME=OIVPIDBD,KEYLEN=10,PROCOPT=A
 SENSEG  NAME=DBSEG
 PSBGEN  LANG=COBOL,PSBNAME=OIVPI002
 END

Register the PSB information by using psbgen.

$ psbgen OIVPI002
psbgen version 7.2.0(0) oframe@tmax:ofsrc/ims(#3) 2020-08-08 16:21:16
Program Specification Block Generation Program

psbgen: force flag on; the tool overwrites existing data
psbgen: 1 files are requested in total
------------------------------------------------------------
psbgen Processing PSB script "OIVPI002"
------------------------------------------------------------

psbgen: Processing PSB "OIVPI002"
psbgen: removing existing PSB OIVPI002 metadata
psbgen: successfully processed PSB "OIVPI002"

psbgen: successfully processed for the requested PSBs (total 1)

In the current version, executing psbgen stores the meta information described in the PSB scripts to metatables. PSBLIB stores no actual data.

3.8. RESLIB

RESLIB is a library that stores MDA information, which is required for using datasets dynamically. For more information, refer to DFSRESLB.

3.9. STEPLIB

The application program running in the OSI server is developed by using the COBOL programming language.

Application developers have to place the binaries created after compiling their programs, to STEPLIB. Perform preprocessing as needed before compiling. The programs can be run by starting the OSI system after registering program resource definitions in the OSI tables.

Creating Datasets

In the same way as when creating FORMAT, use pdsgen to create datasets.

The following example creates OSI.IMSA.STEPLIB in a volume named DEFVOL, by using pdsgen.

$ pdsgen OSI.IMSA.STEPLIB DEFVOL -f LB -l 32760
pdsgen version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
PDS Dataset Generation Program

pdsgen: *** PDS OSI.IMSA.STEPLIB is created.

4. Configuring Storage

OSI requires system tables to be used as storage, for the system operation.

4.1. MQ

OSI basically uses the functions of Tmax, a TP-monitor, to send messages between terminals and applications, while storing all messages in Message Queue (MQ) tables. To operate the OSI system, prepare Master, MPP (terminal), BMP tables and MQ datasets.

In the current version, all messages transferred during operation are stored in MQ tables. MQ datasets are required only when starting up the control region, and store no actual data.

Creating Tables

MQ system tables are created by using the osiinit tool.

The following example creates three MQ tables by using the osiinit tool.

$ osiinit create -t OFM_OSI_MQ_MASTER -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_MQ_MASTER...
 > "OFM_OSI_MQ_MASTER" created...

$ osiinit create -t OFM_OSI_MQ -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_MQ...
 > "OFM_OSI_MQ" created...

$ osiinit create -t OFM_OSI_MQ_BMP -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_MQ_BMP...
 > "OFM_OSI_MQ_BMP" created...

For more information about MQ system tables, refer to Resource Tables.

Creating Datasets

The JCL for starting up the control region in IMS/DC can also be used as it is in OSI, by creating datasets during the system preparation process. Datasets can be created by using a tool called idcams.

The following example creates an MQ dataset in a volume named DEFVOL, by using the idcams tool.

$ idcams define -t CL -n OSI.IMSA.MQLIB -o KS -k 32,0 -l 10000,32000 -s 1024,128,128 -v DEFVOL
idcams version 7.1.0(0) oframe@tmax:ofsrc/base(#1) 2020-06-29 17:30:26
Access Method Services for Catalogs

IDCAMS COMMAND=DEFINE,TYPE=CL,NAME=OSI.IMSA.MQLIB,RELATE=,CATALOG=

tbESQL Precompiler 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.


/home/oframe/products/ofsrc/OpenFrame/tsam/temp/OSI_IMSA_MQLIB.tbc is precompiled successfully!

COMPLETED SUCCESSFULLY.

For more information about dataset usages, refer to OpenFrame Dataset Guide.

4.2. REGION

Region ID of the user server (dependent region), job name, PSB name, program name and other necessary information for operating the OSI system are stored in REGION tables.

Creating Tables

To create REGION tables, use the osiinit tool.

The following example creates a REGION table by using the osiinit tool.

$ osiinit create -t OFM_OSI_REGION -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_REGION...
 > "OFM_OSI_REGION" created...

For more information about REGION tables, refer to Resource Tables.

4.3. RTSD

System definition resources are copied and managed in a separate area called RunTime System Definition (RTSD), at the point where each control region is started in OSI. During the system operation, all region servers present in the same IMS system can share the same RTSD resources.

Creating Tables

To create RTSD tables, use the osiinit tool.

The following example creates the APPLCTN and TRANSACT tables in a tablespace named DEFVOL, by using the osiinit tool.

$ osiinit create -t OFM_OSI_RTSD_APPLCTN -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_RTSD_APPLCTN...
 > "OFM_OSI_RTSD_APPLCTN" created...

$ osiinit create -t OFM_OSI_RTSD_TRANSACT -st DEFVOL
osiinit version 7.2.0(0) oframe@tmax:ofsrc/osi(#1) 2020-11-12 19:43:54
Initialize OpenFrame OSI System Tables

Creating OFM_OSI_RTSD_TRANSACT...
 > "OFM_OSI_RTSD_TRANSACT" created...

For more information about RTSD tables, refer to Resource Tables.