システム環境設定

本章では、OSIシステムを運用するために必要な環境設定の方法および例について説明します。

1. 概要

OSIシステムのインストールが完了したら、OSIシステム環境の基本項目を設定します。

OSIシステム環境の設定項目は以下のとおりです。

2. システム環境設定ファイル

OSIシステムに必要なシステム設定値のうち、動的に適用できない項目のほとんどは環境設定ファイルに記述され、指定された値はOSIシステムの起動時に適用されます。

2.1. openframe_osi.conf

OSIシステムを運用するには、openframe_osi.confファイルに以下のサブジェクトを設定した後、ofconfigツールを使用してOpenFrameシステムに適用する必要があります。

サブジェクト 説明

osi

OSIシステムのすべてのモジュールが共通して参照するサブジェクトです。設定値は、OSIのすべてのモジュールに適用されます。

osi.[IMSID]

OSIで各IMSシステムのIMSIDで区分されます。設定値は、IMSシステムのすべてのモジュールに適用されます。IMSIDは、4桁の英数字で指定します。

osi.[osiotmasvrname]

OSIとIBM MQの連携やOTMA機能を使用するための設定です。1つのOTMAサーバーに1つのサブジェクトが必要です。osiotmasvrnameには、MQユーザー・サーバーに設定されたサーバー名を指定します。

ssm.[IMSID][SSM]

OSIでIMSシステムごとにMultipleRMを使用するために、Tmax XAサーバーに適用する項目を設定します。

  1. OpenFrame環境設定のサブジェクトの設定方法については、OpenFrame OSI『環境設定ガイド』を参照してください。

  2. ofconfigツールの使用方法と詳細については、OpenFrame Base『ツールリファレンスガイド』を参照してください。

2.2. osi.ofsys.seq

OSIシステムでリージョン・サーバーを除くBase、Batch、TACFサーバーの名前を指定し、osibootを実行するときに起動するTmaxサーバーを選択することができます。OTMAサーバーもこれに含まれます。

以下は、osi.ofsys.seqの例です。

#BASE
TPFMAGENT
ofrsasvr
ofrlhsvr
ofrdmsvr
ofrdsedt
ofrcmsvr
ofruisvr
ofrsmlog

#BATCH
obmjmsvr
obmjschd
obmjinit
obmjhist
obmjspbk
ofrpmsvr
obmtsmgr
obmjtimr

#TACF
tmsvr

#OSI
#IMSAOTMA

2.3. TCacheの設定

OSIは、マルチノード・クラスタリング機能をサポートするために、RTSDを含むリージョン間で共有が必要な情報をDBテーブルで管理しています。TCacheを使用してDBテーブルからアクセスするデータを共有メモリにキャッシュすることで、読み取り性能を保証しています。TCacheはノードごとに設定する必要であり、使用する共有メモリ・キーとリージョン別のリソース情報を設定します。

基本設定の詳細については、『Tmax TCacheガイド』を参照してください。

以下は、pfmtcache.confの例です。LOCK_WAITTIMEは、使用するTCacheバージョンに合わせて設定してください。

# 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

# lock wait time for earlier than r11724
# LOCK_WAITTIME=1000                  # read, write lock wait time (default: 1000)

# lock wait time for r11724 and later
# WRITE_LOCK_WAITTIME=1000            # write lock wait time (default: 1000, recommed larger value than READ_LOCK_WAITTIME)
# READ_LOCK_WAITTIME=1000             # read lock wait time (default: 0)

# 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

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

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

3. ライブラリの設定

システムを起動する前に、システムの運用に必要な情報を準備しておく必要があります。本節では、OSIの運用に必要な情報をタイプごとに準備する手順について説明します。ほとんどの情報は、RDB表のレコード形式で保存され、MDAやMFSなどの一部は、データセットまたはUNIXファイル形式で保存されます。

以下は、OSIの運用に必要なライブラリです。

ライブラリ 説明

DBDLIB

OpenFrame HiDBを使用するためのDBD情報が含まれるライブラリです。

DFSRESLB

データセットを動的に使用するために必要な情報が含まれるライブラリです。

FORMAT

OSIでマッピング機能をサポートするためのMFS情報が含まれるステージング・ライブラリです。

FORMATA / FORMATB

OSIでマッピング機能をサポートするためのMFS情報が含まれ、実際にオンラインで使用されるライブラリです。

IMSACB

PSBとDBDを統合管理するためのACB情報が含まれるステージング・ライブラリです。

IMSACBA/IMSACBB

PSBとDBDを統合管理するためのACB情報が含まれ、実際にオンラインで使用されるライブラリです。

MODBLKS

OSIを運用するためのシステム情報が含まれるステージング・ライブラリです。

MODBLKSA / MODBLKSB

OSIを運用するためのシステム情報が含まれ、実際にオンラインで使用されるライブラリです。

MODSTAT

動的変更をサポートするデータセットの現在のアクティブなデータセット情報が含まれるライブラリです。

PSBLIB

アプリケーション・プログラムを使用するためのPSB情報が含まれるライブラリです。

RESLIB

データセットの動的使用に必要なMDA情報が含まれるライブラリです。(DFSRESLBと同じ)

STEPLIB

アプリケーション開発者が作成したプログラムの共有オブジェクト形式の実行モジュールを管理するためのディレクトリです。

  1. 各ライブラリのデータセットの使用方法とPDSの詳細については、OpenFrame Base『データセットガイド』を参照してください。

  2. 各ライブラリのIDCAMSの使用方法については、OpenFrame Batch『ユーティリティリファレンスガイド』を参照してください。

  3. 各ライブラリのDBD、PSB、ACB、MDAの情報登録と管理およびOpenFrame HiDBの作成については、OpenFrame HiDB『HiDBガイド』を参照してください。

  4. ライブラリの設定に使用されるツールの使用方法と詳細については、OpenFrame OSI『ツールリファレンスガイド』を参照してください。

3.1. DBDLIB

DBDは、OpenFrame HiDBの特性を定義する一連のマクロ・パラメータ・ステートメントです。データベース構造、アクセス・メソッド、データベース内のセグメント、フィールド、セグメント・タイプ間の関係を定義します。

データセットの作成

DBDLIBを使用するには、システムを準備する際にデータセットを作成する手順が必要です。DBDLIBはPDS形式で構成され、個々の環境設定ファイルはDBDLIBのメンバー形式で保存されます。OSIでDBDLIBを作成するには、pdsgenツールを使用します。

以下は、pdsgenを使用してDEFVOLボリュームにIMS.DBDLIBを作成する例です。

$ 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.
DBD情報の登録

OSIでDBDを使用するには、dbdgenツールを使用してDBD情報を登録する必要があります。

以下は、DBD制御文が含まれているOIVPIDBDファイルでdbdgenを使用してDBD情報を登録する例です。

$ 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)

現在のバージョンでは、dbdgenを実行するとDBDスクリプトに記述されているデータベース・スキーマ情報がメタ表に保存され、実際にDBDLIBには何も保存されません。

3.2. DFSRESLB

PSBリソースを使用するプログラムを起動するには、使用するPSB情報とDBDに定義したデータセット情報をプログラムに送信できる方法が必要です。

OpenFrame BatchはJCLを使用してアプリケーション・プログラムを実行するため、JCLのDDステートメントを使用してPSB情報とDBDのデータセット情報をプログラムに送信できます。ただし、OSIは1つのリージョンで複数のプログラムを実行する必要があり、リージョンを起動するときに使用するJCLにはすべてのDFD文を記述できないため、OpenFrame Batchとは異なる方法で必要な情報をプログラムに送信する必要があります。したがってOSIでは、データセットの動的使用に必要な情報をDFSRESLBに保存する方法を使用します。

動的DDの割り当てについては、IBM IMS DFSMDA macroマニュアルを参照してください。

データセットの作成

DFSRESLBを使用するには、システムを準備する際にデータセットを作成する手順が必要です。DFSRESLBはPDSデータセット形式で構成され、個々の設定ファイルはDFSRESLBのメンバー形式で保存されます。OSIでDFSRESLBを作成するためにpdsgenツールを使用します。

以下は、pdsgenを使用してDEFVOLボリュームにIMS.RESLIBを作成する例です。

$ 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.
MDA情報の登録

OSIでMDAを使用するには、imsdalocツールを使用してMDA情報を登録する必要があります。

以下は、MDAを定義するスクリプトが含まれているOIVPIDBDファイルを使用してDFSRESLBにMDA情報を登録する例です。

<OIVPIDBD>

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

imsdalocを使用してMDA情報を登録します。

$ 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 / FORMATB

FORMATは、OSIでマッピング機能をサポートするためのMFS情報が含まれるステージング・ライブラリです。

マッピング機能とは、フォーマットを使用してフォーマット内に定義されているフィールドとアプリケーション・データ間の関係をマッピングする機能です。 MODBLKSとIMSACBデータセットを準備します。

データセットの作成

FORMATを使用するには、システムを準備する際にデータセットを作成する手順が必要です。

FORMATはPDS形式で構成され、各環境設定ファイルはMFDLIBのメンバー形式で保存されます。OSIでFORMATを作成するにはpdsgenツールを使用します。

以下は、pdsgenを使用してDEFVOLボリュームにOSI.IMSA.MFSLIBを作成する例です。

$ 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.
マップ情報の登録

以下は、OIVP001.TXTファイルを使用してOSI.IMSA.MFSLIBにマップ情報を登録する例です。

<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

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 / IMSACBB

OSIでPSBとDBD情報は個別に管理、運用されるのではなく、PSBとDBDが1つのライブラリで統合管理されます。PSBとDBDが統合されたライブラリをACBと呼びます。MODBLKSと同様に3つのデータセットを準備します。

データセットの作成

ACBLIBを使用するには、システムを準備する際にデータセットを作成する手順が必要です。ACBLIBはPDS形式で構成され、個々の環境設定ファイルはACBLIBのメンバー形式で保存されます。OSIでPSBLIBを作成するためにはpdsgenツールを使用します。

以下は、pdsgenを使用してDEFVOLボリュームにIMS.ACBLIBを作成する例です。

$ 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.
ACB情報の登録

OSIでACBを使用するには、acbgenツールを使用してACB情報を登録します。

以下は、PSBLIBのOIVPI002という名前のPSBに対してACBLIBにACB情報を登録する例です。

$ 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.

現在のバージョンでは、acbgenを実行すると、DBDメタ情報およびPSBメタ情報を使用してACBメタ情報を作成した後、各メタ表に保存されます。実際にACBLIBには何も保存されません。

3.5. MODBLKS / MODBLKSA / MODBLKSB

IMS/DCでマクロを使用して登録および管理するシステム定義を、OSIではOSD(Online System Definition)と呼ばれる構造に置き換えられます。

OSDは、OSIを運用するために必要な各種システムの設定情報のうち、動的に運用できる情報を保存するリージョンです。OSDは、実際にデータが保存されるデータセットとOSDを管理するためのモジュールで構成されます。OSDは、システムが起動する際にRTSD(RunTime System Definition)という別のリージョンがアクティブ化され、システム情報の動的な管理およびOSDの変更を容易にします。

データセットは、ステージング・ライブラリとサフィックスAとBが付けられた3つを準備します。データは、AとBに直接登録できますが、動的に変更する場合は、ステージング・ライブラリに保存された情報を動的変更ツールとコマンドを使用して適用します。

現在のバージョンでOSDのデータは、データセットではなく、メタ表に保存および管理されます。ステージング・ライブラリを含む3つのデータセットは、制御リージョンの起動時にのみ必要であり、実際にデータセットには何も保存されません。

表の作成

OSDを使用するには、システムを準備する際にメタ表を作成する必要があります。メタ表は、osiinitツールを使用して作成できます。

以下は、osiinitツールを使用してOSDのAPPLCTNマクロ関連の情報を保存するメタ表をDEFVOL表領域に作成する例です。

$ 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...

メタ表の詳細については、リソース表を参照してください。

データセットの作成

IMS/DCで制御リージョンを起動するJCLをOSIでそのまま使用するには、システムを準備する際にデータセットを作成する必要があります。データセットは、idcamsを使用して作成できます。

以下は、idcamsツールを使用してDEFVOLボリュームにOSDデータセットを作成する例です。

$ 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.
リソース情報の登録

作成したOSD表にシステムの運用時に使用するリソース情報を設定する方法は、IMS/DCでマクロを使用してリソースを定義する方法と類似しています。

OSIでは、osisdgenツールがこの機能を提供しています。osisdgenは、バッチ・ジョブ環境ではなく、UNIX環境で動作するプログラムです。また、設定するセキュリティ情報が含まれている入力ファイルと、リソース情報を保存するリージョンのIMSIDを使用して実行されます。リソース情報は、既存のIMS/DCのマクロ構文をサポートしています。

以下は、リソース定義スクリプトが保存されているosi_sdlib.datファイルを使用して、IMSAリージョンにリソース情報を登録する例です。

<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

osisdgenを使用してリソース情報を登録します。

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

データセットに登録されているリソースを起動中のOSIシステムに適用するためには、以下のコマンドを実行します。

$ 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

OSIで使用されるMODBLKS、IMSACB、FORMATデータセットのアクティブ・ライブラリ情報が含まれるライブラリです。

初めてMODSTATを作成したためレコードがない場合は、OSIの起動時に、上記の3つのライブラリのステージング・ライブラリの内容を、サフィックスAとBが付いているすべてのデータセットにコピーした後、Aが付けられたデータセットをアクティブ・ライブラリに指定します。OSIは、システムが起動されるたびにリソースを読み込んで使用します。

現在のバージョンでは、MODSTATのアクティブ・ライブラリ情報は、データセットではなく、メタ表にレコード形式で保存および管理されます。データセットは、制御リージョンの起動時にのみ必要であり、データセットには何も保存されません。

表の作成

MODSTATリソースを保存および管理するには、システムを準備する際にメタ表を作成する必要があります。メタ表は、osiinitツールを使用して作成できます。

以下は、osiinitツールを使用してDEFVOL表領域にMODSTAT表を作成する例です。

$ 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...

メタ表の詳細については、リソース表を参照してください。

データセットの作成

IMS/DCで制御リージョンを起動するJCLをOSIでそのまま使用するには、システムを準備する際にデータセットを作成する必要があります。データセットは、idcamsを使用して作成できます。

以下は、idcamsツールを使用してMODSTATデータセットをDEFVOLボリュームに作成する例です。

$ 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

PSBは、アプリケーションで使用されるデータベースまたはメッセージを使用するための制御ブロックであるPCBの集合体です。通常、1つのユーザー・プログラムごとに1つのPSBが構成されます。

PCB(Program Communication Block)は、アプリケーションでOpenFrame HiDBのVIEWやメッセージ・ソースまたはメッセージの宛先と通信するためにシステムで提供される制御ブロックです。IO PCB/ALT PCBは、OSIで提供されるメッセージ・キューにデータを読み書きするために使用されるリソースであるため、OSIが起動されている場合のみ使用できます。IO PCBは、OSIで実行されるプログラムとして、PSBの定義と関係なく、プログラムの最初のパラメータとして提供されるIOPCB-MASKを利用してのみ使用できますが、ALT PCBは、PSBに必要な分だけ定義して使用することができます。

データセットの作成

PSBLIBを使用するには、システムを準備する際にデータセットを作成する手順が必要です。

PSBLIBはPDS形式で構成され、個々の環境設定ファイルはPSBLIBのメンバー形式で保存されます。OSIでPSBLIBを作成するには、pdsgenツールを使用します。

以下は、pdsgenを使用してDEFVOLボリュームにIMS.PSBLIBを作成する例です。

$ 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.
PSB情報の登録

OSIでPSBを使用するには、psbgenツールを使用してPSB情報を登録します。

以下は、PSBを定義するスクリプトが保存されているOIVPI002ファイルを使用して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

psbgenを使用してPSB情報を登録します。

$ 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)

現在のバージョンでは、psbgenを実行すると、PSBスクリプトに記述されているメタ情報がメタ表に保存され、PSBLIBには何も保存されません。

3.8. RESLIB

データセットを動的に使用するために必要なMDA情報が含まれるライブラリです。詳細については、DFSRESLBを参照してください。

3.9. STEPLIB

OSIサーバーで動作するアプリケーション・プログラムは、COBOLプログラミング言語で開発されます。

アプリケーションの開発者は、作成したプログラムをコンパイルした後、作成されたバイナリをSTEPLIBにデプロイする必要があります。コンパイル前に、必要に応じて前処理を行います。デプロイされたプログラムは、OSD表にプログラム・リソース定義を登録した後、OSIシステムを起動すると動作します。

データセットの作成

FORMATと同様に、pdsgenを使用して作成します。

以下は、pdsgenを使用してDEFVOLボリュームにOSI.IMSA.STEPLIBを作成する例です。

$ 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. ストレージの設定

ストレージとして機能するシステム表を作成します。

4.1. MQ

OSIは、端末とアプリケーションの間でメッセージを送受信するために、TPモニターであるTmaxの機能を使用します。すべてのメッセージは、MQ(Message Queue)表に保存されます。OSIシステムを運用するには、Master、MPP(Terminal)、BMP表およびMQデータセットが必要です。

現在のバージョンでは、すべてのメッセージがMQ表に保存されます。MQデータセットは、制御リージョンの起動時にのみ必要であり、データセットには何も保存されません。

表の作成

MQシステム表は、osiinitツールを使用して作成します。

以下は、osiinitツールを使用して3つのMQ表を作成する例です。

$ 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...

MQシステム表の詳細については、リソース表を参照してください。

データセットの作成

IMS/DCで制御リージョンを起動するJCLをOSIでそのまま使用するには、システムを準備する際にデータセットを作成する必要があります。データセットは、idcamsを使用して作成できます。

以下は、idcamsツールを使用してDEFVOLボリュームにMQデータセットを作成する例です。

$ 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.

データセットの使用方法については、OpenFrame Base『データセットガイド』を参照してください。

4.2. REGION

OSIシステムの運用に使用されるユーザー・サーバー(従属リージョン)のリージョンID、ジョブ名、PSB名、プログラム名などの情報が保存されます。

表の作成

REGION表は、osiinitを使用して作成します。

以下は、osiinitツールを使用してREGION表を作成する例です。

$ 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...

$ osiinit create -t OFM_OSI_REGION_SVR -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_SVR...
 > "OFM_OSI_REGION_SVR" created...

REGION表の詳細については、リソース表を参照してください。

4.3. RTSD

OSIでは、各制御リージョンの起動時にシステム定義リソースをRTSD(RunTime System Definition)というリージョンにコピーして管理します。システムの運用中には、同じIMSシステム内にあるすべてのリージョン・サーバーが同じRTSDリソースを共有することになります。

表の作成

RTSD表は、osiinitツールを使用して作成します。

以下は、osiinitツールを使用してDEFVOL表領域にAPPLCTN表とTRANSACT表を作成する例です。

$ 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...

RTSD表の詳細については、リソース表を参照してください。