GDE 概要

GT.Mグローバル・ディレクトリ・エディタ(GDE)は、グローバル・ディレクトリを作成、検査、および変更するためのユーティリティです。GDEはMで書かれたプログラムで、$gtm_dist/mumps -run ^GDE を使ってシェルから呼び出すことができます。

GDEはMプログラムなので、DO ^GDE を使ってGT.MプロセスからGDEを起動することもできます。もし DOを使用してGDEを起動し、そのプロセスによって現在開かれているグローバルのマップを変更する場合は、プロセスがHALTして、プロセスを再起動して修正されたマッピングを取得する必要があります。FISは、ユーザーが通常はシェルからGDEを実行することを期待しています - $gtm_dist/mumps -run GDE

GDEへの入力はコマンドファイルにすることができます。運用環境では、コマンドファイルを使用してデータベース構成を定義し、バージョン管理下に置くことを、FISは推奨します。

注意 注意

グローバル・ディレクトリには、データベースの属性とマッピングルールが格納されます。プロセスはマッピング・ルールを使用して、どのデータベースファイルにグローバル変数ノードが含まれているかを判断します。MUPIP CREATEは、データベース属性を使用して新しいデータベースファイルを作成します。MUPIP CREATEでデータベース属性を適用してデータベースファイルを作成すると、GT.Mは、次のMUPIP CREATEまで属性を使用しません。もしMUPIP SET(またはDSE)を使用してデータベースファイルの属性を変更する場合は、後続のMUPIP CREATEに使用されるグローバルディレクトリに対して常に同等の変更を行います。逆に、もしGDEで属性を変更する場合は、MUPIP SETまたはDSEを使用して既存のデータベースファイルを明示的に変更する必要があります。

現在(Current)のグローバル ディレクトリを識別する

プロセス起動時に、環境変数 gtmgbldir は、プロセスのグローバルディレクトリを指定します。Mのアプリケーション・コードは、プロセスの起動時に $gtmgbldir から初期化される $ZGBLDIR 組み込み特殊変数を介して、グローバルディレクトリにアクセスして変更することができます。Mアプリケーションコードは、拡張グローバル参照である || または {} シンタックスも使用できます。

$gtmgbldir / $ZGBLDIRはパス名であることに注意してください。もし、それらパス名が "/" で始まらない場合、パス名は相対パスであり、GT.Mは現在の作業ディレクトリで始まるグローバルディレクトリを検索します。

プロセスによって使用されるグローバルディレクトリを変更するには、gtmgbldir の新しい値を指定します。

例:

$ export gtmgbldir=/home/jdoe/node1/prod.gld

GDEを起動し、gtmgbldir のグローバルディレクトリが存在しない場合、GDEは特定のニーズに合わせてグローバルディレクトリを構築するための出発点またはテンプレートである最小限のデフォルトグローバルディレクトリを作成します。

デフォルトのグローバルディレクトリを保持するには、変更を加えずにGDEを終了します。

例:

$ export gtmgbldir=/home/jdoe/node1/prod.gld

デフォルトのグローバルディレクトリを作成する

gtmgbldir からGDEとグローバルディレクトリが存在しないことを呼び出す時、GDEはデフォルトのグローバルディレクトリを生成します。そのグローバルディレクトリには必要なコンポーネントの最小セットとデータベース特性値が含まれてます。それは開発やテスト作業などを目的として使用することができます。デフォルトのグローバルディレクトリもまた、カスタム グローバルディレクトリの構築のためにスターティングポイントやテンプレートとしてサービスします。

デフォルトのグローバルディレクトリを保持するには、変更を加えずにGDEをQUITします。

例:

$ gtmgbldir=/usr/accntg/jones/mumps.gld
$ export gtmgbldir
$ $gtm_dist/mumps -dir
GTM>do ^GDE
%GDE-I-GDUSEDEFS, Using defaults for Global Directory
/usr/accntg/jones/mumps.gld
GDE> EXIT
%GDE-I-VERIFY, Verification OK
%GDE-I-GDCREATE, Creating Global Directory file
/usr/accntg/jones/mumps.gld

グローバル ディレクトリ内のグローバル変数をマッピングする

マッピングは、グローバル変数名またはサブツリーまたは添字範囲をデータベースファイルに接続するプロセスです。

完全なマッピングには次の4つのコンポーネントがあります:

  • 名前(NAME)

  • 領域(REGION)

  • セグメント(SEGMENT)

  • ファイル

これらのコンポーネントは任意の順序で定義できますが、最終的な結果は名前(NAME)からファイル(FILE)へ完全な論理パスでなければなりません:

NAME(s) ---> REGION ---> SEGMENT ---> FILE

デフォルトのグローバルディレクトリは、名前(NAME)、領域(REGION)、セグメント(SEGMENT)、ファイル(FILE) のこれらのエントリで構成され1つの完全なマッピングを含みます。

* ---> DEFAULT ---> DEFAULT ---> mumps.dat
(NAME) (REGION) (SEGMENT) (FILE)

アスタリスク "*" ワイルドカードは可能なすべてのグローバルの名前(NAMEs)を識別します。 続いての編集では、個々のグローバル名または名前の接頭辞のためにエントリを作成します。

領域(REGIONs)とセグメント(SEGMENTs)はファイルの作成を制御するために使用される情報を格納します。データベースファイルの作成がCREATEコマンドを使っている時にのみ、領域(REGION)とセグメント(SEGMENT)を保管する特性はMUPIPに渡されます、ですので引き続いて、グローバルディレクトリ上のこれらの特性への変更は既存の1つのデータベースには効果がありません。

EXITでは、GDEはすべての有効なグローバル変数のノードが正確に1つの領域にマップされるようにグローバルディレクトリを検証します; すべての領域(Region)に少なくとも1つのグローバル変数ノードがマッピングされており、それが正確に1つのセグメントにマップされていること; すべてのセグメントには1つの領域(Region)がマッピングされていること; 各領域(Region)およびセグメントの属性が内部的に一貫していることが必要です。GDEは構造的に不健全なグローバルディレクトリを作成せず、グローバルディレクトリを検証するまで終了しません。情報メッセージは、構造的な不一致を通知します。

デフォルトのグローバル ディレクトリを検査する

グローバルディレクトリは次のようになります:

                      *** TEMPLATES ***
                                                                          Std      Inst
                                             Def     Rec   Key Null       Null     Freeze   Qdb
 Region                                     Coll    Size  Size Subs       Coll Jnl on Error Rndwn
 ----------------------------------------------------------------------------------------------------
 <default>                                     0    4080   255 NEVER      Y    Y   DISABLED DISABLED
                  Jnl File (def ext: .mjl)  Before  Buff      Alloc      Exten   AutoSwitch
 ------------------------------------------------------------------------------------------
 <default>        <based on DB file-spec>   Y       2308       2048       2048      8386560
 Segment          Active              Acc Typ Block      Alloc Exten Options
 ------------------------------------------------------------------------------
 <default>          *                 BG  DYN  4096       5000 10000 GLOB =1000
                                                                     LOCK = 40
                                                                     RES  =   0
                                                                     ENCR = OFF
                                                                     MSLT =1024
 <default>                            MM  DYN  4096       5000 10000 DEFER
                                                                     LOCK = 40
                                                                     MSLT =1024
         *** NAMES ***
 Global                             Region
 ------------------------------------------------------------------------------
 *                                  DEFAULT
                                *** REGIONS ***
                                                                                                Std      Inst
                                 Dynamic                          Def      Rec   Key Null       Null     Freeze   Qdb
 Region                          Segment                         Coll     Size  Size Subs       Coll Jnl on Error Rndwn
 --------------------------------------------------------------------------------------------------------------------------
 DEFAULT                         DEFAULT                            0     4080   255 NEVER      Y    Y   DISABLED DISABLED
                          *** JOURNALING INFORMATION ***
 Region                          Jnl File (def ext: .mjl)  Before Buff      Alloc      Exten   AutoSwitch
 --------------------------------------------------------------------------------------------------------
 DEFAULT                         $gtmdir/$gtmver/g/gtm.mjl
                                                           Y      2308       2048       2048      8386560
                                *** SEGMENTS ***
 Segment                         File (def ext: .dat)Acc Typ Block      Alloc Exten Options
 -------------------------------------------------------------------------------------------
 DEFAULT                         $gtmdir/$gtmver/g/gtm.dat
                                                     BG  DYN  4096       5000 10000 GLOB=1000
                                                                                    LOCK=  40
                                                                                    RES =   0
                                                                                    ENCR=OFF
                                                                                    MSLT=1024
                                  *** MAP ***
   -  -  -  -  -  -  -  -  -  - Names -  -  - -  -  -  -  -  -  -
 From                            Up to                            Region / Segment / File(def ext: .dat)
 --------------------------------------------------------------------------------------------------------------------------
 %                               ...                              REG = DEFAULT
                                                                  SEG = DEFAULT
                                                                  FILE = $gtmdir/$gtmver/g/gtm.dat
 LOCAL LOCKS                                                      REG = DEFAULT
                                                                  SEG = DEFAULT
                                                                  FILE = $gtmdir/$gtmver/g/gtm.dat

そこにはクローバルディレクトリに5つの主要なセクションがあります:

  • テンプレート(TEMPLATES)

  • 名前(NAMES)

  • 領域(REGIONS)

  • セグメント(SEGMENTS)

  • マップ(MAP)

グローバルディレクトリ内の各セクションの機能は、以下のように説明されます:

テンプレート(TEMPLATES)

グローバル・ディレクトリのこのセクションは、領域(region)またはセグメント定義の一部として、GT.Mに渡されるすべてのデータベースまたはファイルパラメータのデフォルト値を提供します。GDEはこれらに必要な値の1つが明示的に定義されていない領域(REGION)やセグメント(SEGMENT)の定義を完全なものにするためにテンプレートを使用します。

新しいグローバルディレクトリを作成する時に、GDEは初期デフォルト値を提供します。 次にテンプレート(TEMPLATE)コマンドで適切な -REGION または -SEGMENTの修飾子を使用して任意の値を変更ができます。

名前(NAMES)

Mプログラムは、モノリシックなグローバル変数の名前空間を見ます。グローバルディレクトリのNAMESセクションは、グローバル名またはサブスクリプト範囲を持つグローバル名が異なるデータベースファイルに存在するように名前空間を分割します。Mグローバルは、1つ以上のデータベースファイルに存在することができ、各データベースファイルは多数のMグローバルを格納することができます。

領域(REGIONS)

領域(REGION)セクションはグローバルディレクトリ内のすべての領域(REGIONs)をリストします。各領域(Region)は、Mのグローバル変数またはノードのセットに対する共通の特性を定義します。したがって、NAMESセクションの複数の名前セットが単一の領域(Region)にマップされます。

個々の領域(REGION)を作成または変更した時は、適切な修飾子を指定してこれらの値を割り当てます。もし特定のパラメータの値を指定しない場合、GDEはテンプレート(TEMPLATES)セクションからデフォルト値を割り当てます。

セグメント(SEGMENTS)

グローバルディレクトリのこのセクションは、現在定義されたセグメントをリストします。領域(REGION)がグローバル変数のプロパティを指定している間に、セグメント(SEGMENT)はファイルのプロパティを指定します。領域(REGIONs)とセグメント(SEGMENTs)の間に一対一のマッピングがあります。個々のセグメント(SEGMENTs)を作成または変更する時は、適切な修飾語句を指定することによってこれらの値を割り当てます。もし特定のパラメータの値を指定しない場合、GDEはテンプレート(TEMPLATES)セクションからデフォルト値を割り当てます。

マップ(MAP)

グローバルディレクトリのこのセクションはファイルへのセグメントへの領域への名前の現在のマッピングを示します。デフォルトのグローバルディレクトリには、このセクションに2つの行があります: 1つはすべてのグローバルの宛先を指定し、もう1つはローカル変数名を持つM LOCKリソースを指定します。もし新しいマッピングコンポーネントの定義(すなわち、新しい名前(Names)、領域(Regions)、またはセグメント(Segments))を追加する場合は、このセクションではそのマッピングの現ステータスを表示します。マッピングのいくつかのコンポーネントは、"NONE" を表示する定義が現在されていません。なぜならGDEは定義されているマッピングのすべての要素が必要なので、すべてのマッピングが完了するまで、グローバルディレクトリを、終了:EXIT(と、保存:save)ができなくなります。

グローバル ディレクトリ略語

GDEはグローバルディレクトリの出力を表示するには、次の略語を使用しています。次のリストは、関連する修飾子を使用してグローバルディレクトリの省略形を示しています。個々の修飾子の機能の説明については、"GDEコマンドの概要"を参照してください。

Abbreviation           Full Form
Acc                    ACCESS_METHOD
Alloc                  ALLOCATION
AutoSwitch             AUTOSWITCHLIMIT
Block                  BLOCK_SIZE
Buff                   BUFFER_SIZE 
Def Coll               COLLATION_DEFAULT
Exten                  EXTENSION_COUNT
File                   FILE_NAME
GLOB                   GLOBAL_BUFFER_COUNT
Inst Freeze On Error   INST_FREEZE_ON_ERROR
JNL                    JOURNAL
KeySize                KEY_SIZE
LOCK                   LOCK_SPACE
MSLT                   MUTEX_SLOTS
Null Subs              NULL_SUBSCRIPTS
Qdb Rndwn              QDBRUNDOWN
Std Null Coll          STDNULLCOLL
Rec Size               RECORD_SIZE
RES                    RESERVED_BYTES
Region                 REGION
Typ                    DYNAMIC_SEGMENT

グローバル ディレクトリをカスタマイズする

GT.Mをインストールして操作を確認したら、必要に応じてグローバルディレクトリを作成します。カスタマイズされたグローバルディレクトリを作成するには、適切なGDEコマンドと修飾子を使用して、それぞれの必要なグローバルディレクトリを構築します。GDEコマンドはこの章の後半で説明します。

標準テキストエディタでGDEコマンドのテキストファイルを作成し、GDEでこのファイルを処理することもできます。プロダクション環境では、GDEを使ったインタラクティブな使い方よりも優れた設定管理ができます。

ジャーナリング情報のセクションを追加する

グローバルディレクトリで一つの領域(REGION)をADDまたはCHANGE する時、もし -JOURNAL オプションを選択する場合は、次のセクションでグローバルディレクトリが追加され、そして、SHOW を起動して表示します。カラムはジャーナルオプションで選択された値の表示を提供し、または、FISによりデフォルトが 明示的に定義されていない任意のオプションにより提供されます。

                 *** JOURNALING INFORMATION ***
 Region            Jnl File (def ext: .mjl)  Before Buff      Alloc      Exten   AutoSwitch
 ------------------------------------------------------------------------------------------
 DEFAULT           $gtmdir/$gtmver/g/gtm.mjl
                                             Y      2308       2048       2048      8386560

ジャーナリングの詳細については、この章と 第6章:“GT.M ジャーナリング の JOURNALの修飾子のセクションを参照してください。

inserted by FC2 system