DSEのコマンドと修飾子

DSEコマンドの一般的なフォーマット:

command [-qualifier[...]] [object[,...]]

DSEは、時間を表現する値を除いて、以下の修飾子の値のすべての数値入力を16進数として解釈します:CHANGE -FILEHEADER: -BLK_SIZE=, DECLOCATION=, -KEY_MAX_SIZE=, -RECORD_MAX_SIZE, -REFERENCE_COUNT=, -TIMERS_PENDING and -WRITES_PER_FLUSH、そして、REMOVEおよびRESTOREコマンドで使用する場合は、 -VERSION= の値を指定します。これらの規則は、DSEおよびMUPIP INTEGによって提供されるディスプレイに対応しています。

ADD

ブロックにレコードを追加します。 0より大きいレベルのブロックに対するADDコマンドのフォーマットは次のとおりです:

ADD [-B[LOCK]=[block] {-OFFSET=offset|-RECORD=record} -STAR -POINTER=block

または

ADD [-B[LOCK]=[block] {-OFFSET=offset|-RECORD=record} -KEY=key -POINTER=pointer

レベル0ブロックのADDコマンドのフォーマットは次のとおりです:

ADD [-B[LOCK]=[block] {-OFFSET=offset|-RECORD=record} -KEY=key -DATA=string

ADDコマンドは、ブロック内のレコードを配置するために -OFFSET または -RECORD 修飾子のどちらかを必要とし、ブロックにキーを定義するために-KEY または -STAR 修飾子のどちらかを必要とします。

-STAR 修飾子は、レベル0(データブロック)では無効です。 ADDコマンドは、レベル0で -DATA 修飾子が必要とし、または、レコードの内容を提供するため他のレベルで -POINTER 修飾子 が必要です。

ADD の修飾子

-B[LOCK]=block-number

新しいレコードを受け取るためにブロックを指定します。

-BLOCK= 修飾子のないコマンドでは、DSEは、DSE操作によって処理される最後のブロックを使用しています。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

-D[ATA]=string

データブロックに追加されたレコードのデータフィールドを指定します。\a\bというフォームの文字列とエスケープ・コードの前後に引用符を使用します。ここで、「a」と「b」は、非印字文字を表す16進数です。\\ は、単一のバックスラッシュに変換されます。 \'\' はNULL値に変換されます。

次の修飾子とは同時利用できません: -STAR,-POINTER

-K[EY]=key

新しいレコードのキーを指定します。引用符("")で、先頭のキャレット記号(^)を含むM-スタイルのグローバルリファレンスで囲みます。

次の修飾子とは同時利用できません:-STAR

-O[FFSET]=offset

指定されたオフセットの後で、次のレコードの境界に、新しいレコードを追加します。

次の修飾子とは同時利用できません: -RECORD, -STAR

-P[OINTER]=pointer

インデックスブロックに追加されたレコードのブロックポインタフィールドを指定します。レベル0では、-POINTER 修飾子を使用できません。ディレクトリ・ツリーのレベル0にポインタを追加するには、バイト列を指定するか、一時的にブロック・レベルを変更する必要があります。

次の修飾子とは同時利用できません: -DATA

-R[ECORD]=record-number

新しいレコードのレコード番号を指定します。

次の修飾子とは同時利用できません: -OFFSET,-STAR

-S[TAR]

指定されたブロックの最後で、スター・レコードを追加します(つまり、インデックス・ブロックの最後のレコードを識別するレコード)レベル0では、-STAR 修飾子を使用できません。

次の修飾子とは同時利用できません: -DATA,-KEY,-OFFSET,-RECORD

ADDの例

DSE>add -block=6F -record=57 -key="^Capital(""Mongolia"")" -data="Ulan Bator"

このコマンドは、指定された場所に キー ^Capital("Mongolia") を持つ新しいレコードを追加します。このコマンドはレベル0ブロックにのみ適用できます。

例:

DSE>add -star -bl=59A3 -pointer=2

このコマンドは、ブロック 59A3 でスター・レコードを追加します。このコマンドは、ブロック > レベル0 に適用可能であることに注意してください。

例:

DSE>add -block=3 -record=4 -key="^Fruits(4)" -data="Grapes"

Suppose your database has 3 global nodes -- ^Fruits(1)="Apple", ^Fruits(2)="Banana", and ^Fruits(3)="Cherry", then the above command adds a new node ^Fruits(4)="Grapes" at record 4. データベースに、3つのグローバルノードがあると仮定します -- ^Fruits(1)="Apple", ^Fruits(2)="Banana", ^Fruits(3)="Cherry"、上記のコマンドはレコード4に新しいノード^Fruits(4)="Grapes" を追加します。このコマンドはレベル0ブロックにのみ適用できます。上記のコマンドの結果として解釈される出力は、次のようになります:

Block 3  Size 4B  Level 0  TN 6 V5
Rec:1 Blk 3 Off 10 Size 14 Cmpc 0 Key ^Fruits(1)
   10 : | 14 0 0 0 46 72 75 69 74 73 0 BF 11 0 0 41 70 70 6C 65|
      | . . . . F r u i t s . . . . . A p p l e|
Rec:2 Blk 3 Off 24 Size D Cmpc 8 Key ^Fruits(2)
   24 : | D 0 8 0 21 0 0 42 61 6E 61 6E 61           |
      | . . . . !. . B a n a n a           |
Rec:3 Blk 3 Off 31 Size D Cmpc 8 Key ^Fruits(3)
   31 : | D 0 8 0 31 0 0 43 68 65 72 72 79           |
      | . . . . 1 . . C h e r r y           |
Rec:4 Blk 3 Off 3E Size D Cmpc 8 Key ^Fruits(4)
   3E : | D 0 8 8 41 0 0 47 72 61 70 65 73           |
      | . . . . A . . G r a p e s           |

例:

$dse add -star -bl=1 -pointer=2

このコマンドは、ブロック1 にスター・レコードを追加します。このコマンドは、ブロック > レベル0 に適用可能であることに注意してください。

例:

$ dse add -block=4 -key="^Vegetables" -pointer=7 -offset=10

このコマンドは、キー ^Vegetables がブロック7を指しているブロックを作成します。

例:

DSE> add -record=2 -key="^foo" -data=\'\' 

この例では、現在のデータベース・ブロックの2番目のレコードとして新しいノード (set ^foo="") を追加します。

ALL

現在のグローバル・ディレクトリで定義されているすべてのGDS領域に修飾子で指定されたアクションを適用します。

ALLコマンドの形式は次のとおりです:

AL[L]  -B[UFFER_FLUSH]
-C[RITINIT]
-[NO]F[REEZE]
-O[VERRIDE]]
-REF[ERENCE]
-REL[EASE]
-REN[EW]
-S[EIZE]
-W[CINIT]           
  • これは非常に強力なコマンドです。注意して使用してください。

  • データベース構造が重複している場合は特に注意してください  (例えば、別々のアプリケーションのグローバルディレクトリからアクセスされる重複領域)。

  • このタイプのデータベース構造を使用する場合は、DSEで使用する重複領域を除外する特殊なグローバルディレクトリを構築する必要があります。

ALLの修飾子

-BUFFER_FLUSH

現在のグローバル・ディレクトリのすべての領域について、ファイル・ヘッダとすべてのプールされたバッファをディスクにフラッシュします。

次の修飾子とは同時利用できません: -RENEW

-C[RITINIT]

現在のディレクトリのすべての領域のクリティカル・セクションを初期化します。

次の修飾子とは同時利用できません: -RENEW, -RELEASE, -SIEZE

注意 注意

同時更新中にCRITINITを使用しないでください。データベースが損傷する可能性があります。

-[NO]F[REEZE]

現在のグローバル・ディレクトリのすべての領域をフリーズまたは更新しません。

  • FREEZE修飾子は、他の プロセス によって以前にフリーズされたものを除く、すべてのGDS領域をフリーズします。特定の プロセス によってフリーズされた領域は、そのプロセスに関連付けられています。

  • フリーズされた領域は、次の2つの方法のいずれか1つで更新のためにフリーズ解除される可能性があります:領域をフリーズさせたプロセス は、-NOFREEZE修飾子で領域をフリーズ解除することがあります; または、別のプロセス は、 -OVERRIDE修飾子と一緒にフリーズをオーバーライドすることもできます。FREEZEの操作方法の詳細については、 “FREEZE ” を参照してください。

  • デフォルトでは、 -NOFREEZE修飾子は、プロセスによって以前にフリーズされたGDS領域のみをフリーズ解除します。ある領域がフリーズ解除されると、それはどの process によっても更新されてもよいです。グローバル・ディレクトリのすべてのGDS領域をフリーズ解除するには、 -OVERRIDE修飾子を使用します。

  • DSEは、終了時に保持されるFREEZEを解放します。したがって、ALL -FREEZEコマンドの実行後に同じDSE呼び出しまたはSPAWNを使用して操作を実行します。

次の修飾子とは同時利用できません: -RENEW

-O[VERRIDE]

-FREEZEまたは-NOFREEZE操作をオーバーライドします。

-NOFREEZEと一緒に使用すると、-OVERRIDE は他のユーザーによってフリーズされたGDS領域を含むすべてのGDS領域をフリーズ解除します。

-FREEZEと一緒に使用すると、 -OVERRIDE は他のプロセスによってそれらフリーズを含むGDS領域をすべてフリーズし、そのようなフリーズをすべて現在の プロセスに関連付けます。現在のプロセスでは、-NOFREEZEを使用してデータベースをフリーズ解除する必要があります; -NOFREEZEを試行する他のプロセスも -OVERRIDE修飾子を含める必要があります。

意味があるのは唯一:[NO]FREEZE

-REF[ERENCE]

現在のグローバル・ディレクトリのすべての領域について、参照カウント・フィールド(reference count field)を1にリセットします。

  • 参照カウント(Reference count) は、読み取り/書き込みアクセス権を持つデータベースにアクセスするプロセスの数を追跡するファイル・ヘッダー要素フィールドです。

  • この修飾子は、DSEが、現在のグローバル・ディレクトリのデータベースに接続されている唯一のプロセスである場合に使用するためのものです。他のユーザーが接続されている場合に使用すると、誤った値が生成されます。

次の修飾子とは同時利用できません: -RENEW

-REL[EASE]

現在のグローバル・ディレクトリのすべての領域のクリティカルセクションを解放(Release)します。

次の修飾子とは同時利用できません: -CRITINIT, -RENEW, -SEIZE

-REN[EW]

クリティカルセクション (-CRITICAL) とバッファー (-WCINIT) を再初期化し、参照カウント (-REFERENCE_COUNT) を1にリセットし、現在のグローバル・ディレクトリのすべての領域に対してフリーズ (-NOFREEZE) をクリアします。

  • -RENEW は、確認を必要とします。

  • RENEWアクションを実行すると、影響を受けるデータベース領域のすべての現在のアクセス機構が、次のアクセスの試行で致命的なエラーを受け取るようになります。

  • この操作は危険で劇的で、複数のデータベースがハングアップして他の解決策の試行に失敗した場合の最後の手段です; このオプションを使用する正当な理由はほとんどありません。

-S[EIZE]

現在のグローバル・ディレクトリのすべての領域のクリティカル・セクションを捕捉します。-SEIZE 修飾子は、DSEがデータベースからブロックを読み取ることができないときに生成されるDSEBLKRDFAILエラーが発生したときに役立ちます。

次の修飾子とは同時利用できません:-RENEW, -RELEASE, -CRITINIT

-W[CINIT]

現在のグローバル・ディレクトリのすべての領域のバッファを再初期化します。

-WCINITは確認を必要とします。

注意 注意

この操作では、同時更新の実行中にデータベースを破損する可能性があります。

次の修飾子とは同時利用できません: -RENEW

ALLの例

例:

DSE> all flush -buffer_flush

このコマンドは、ファイル・ヘッダーとキャッシュ・バッファをすべての領域のディスクにフラッシュします。

例:

DSE> ALL -CRITINIT

このコマンドは、カレント・ディレクトリのすべての領域のクリティカル・セクションを初期化します。

例:

DSE> ALL -FREEZE
DSE> SPAWN "mumps -dir"

最初のコマンドは、現在のグローバルディレクトリのすべての領域をフリーズします。2番目のコマンドは、子(シェル)プロセスを作成し、 "mumps -dir"コマンドを実行します。次に、GTMプロンプトでS ^A=1と入力します。DSE FREEZE が適切に設定されているため、コマンドがハングすることに注意してください。

例:

DSE> ALL -NOFREEZE -OVERRIDE

このコマンドは、他のユーザーが置いたFREEZEを含む現在のすべての領域でFREEZEを削除します。

例:

DSE> ALL -REFERENCE

このコマンドは、ファイル・ヘッダーの参照カウントフィールドを1に設定します。

例:

DSE> ALL -RELEASE

このコマンドは、現在のグローバル・ディレクトリのすべての領域に対して、現在のプロセスが所有するクリティカル・セクションを解放します。

例:

DSE> ALL -RENEW

このコマンドは、クリティカル・セクション、バッファを再初期化し、参照カウントを1にリセットし、現在のグローバルディレクトリのすべての領域に対してフリーズをクリアします。

例:

DSE> ALL -SEIZE

このコマンドは、現在のグローバル・ディレクトリのすべての領域のすべてのクリティカルセクションを捕捉します。

例:

DSE> WCINIT

このコマンドは、現在のグローバルディレクトリのすべての領域のバッファを再初期化します。

Buffer_flush (バッファ フラッシュ)

ファイルヘッダと現在の領域のバッファをディスクにフラッシュします。

BUFFER_FLUSHコマンドの形式は次のとおりです:

B[UFFER_FLUSH]

BUFFER_FLUSHコマンドには修飾子はありません。

CHange

CHANGEコマンドは、ブロック、ファイル、またはレコードヘッダーのフィールドを変更します。

CHANGEコマンドのフォーマット:

CH[ANGE]

CHANGEコマンドには、変更のターゲットを定義するために、-FILEHEADER修飾子または暗黙的または明示的な-BLOCK修飾子に加えて、関連する1つ以上の修飾子があります。

-BL[OCK]=block-number と1つ以上の以下のような修飾子:

-BS[IZ]=block-size
-L[EVEL]=level
-TN[=transaction-number]
-OF[FSET]=offset
-RE[CORD]=record-number
-CM[PC]=compression-count
-RS[IZ]=record-size

または

-F[ILEHEADER] と1つ以上の次のような修飾子:

-AB[ANDONED_KILLS]=value
-AVG_BLKS_READ=Average-blocks-read
-B_B[YTESTREAM]=transaction-number
-B_C[OMPREHENSIVE]=transaction-number
-B_D[ATABASE]=transaction-number
-B_I[NCREMENTAL]=transaction-number
-B_R[ECORD]=transaction-number
-BLK_SIZE=block-size
-BLO[CKS_FREE]=free-blocks
-CU[RRENT_TN]=transaction-number
-COM[MITWAIT_SPIN_COUNT]=boolean
-DEC[LOCATION]=value
-DEF[_COLLATION]=value
-ENCRYPTION_HASH
-FL[USH_TIME][=delta-time]
-FR[EEZE]=value
-FU[LLY_UPGRADED]=boolean
-GV[STATSRESET]
-HARD_SPIN_CPUNT=Mutex-hard-spin-sount
-[HEXLOCATION]=value
-INT[ERRUPTED_RECOV]=boolean
-JNL_YIELD_LIMIT=journal-yeild-limit
-KE[Y_MAX_SIZE]=key-max-size
-KI[LL_IN_PROG]=value
-M[ACHINE_NAM]=value
-N[ULL_SUBSCRIPTS]=value
-NO[CRIT]
-OV[ERRIDE]
-Q[DBRUNDOWN]
-RC_SRV_COUNT
-RE_READ_TRIGGER=read-trigger
-REC[ORD_MAX_SIZE]=record-max-size
-REF[ERENCE_COUNT]=reference-count
-REG[_SEQNO]=sequence-number
-RESERVED_BYTES=reserved-bytes
-SLEEP_SPIN_COUNT=mutex-sleep-spin-count
-SPIN_SLEEP_TIME=mutex-sleep-time
-STRM_NUM=stream-number STRM_REG_SEQNO=hexa
-TIM[ERS_PENDING]=integer
-TO[TAL_BLKS]=total-blocks
-TR[IGGER_FLUSH]=trigger-flus
-UPD_RESERVED_AREA=reserved-area
-UPD_WRITER_TRIGGER_FACTOR=trigger-factor
-W[RITES_PER_FLUSH]=writes-per-flush
-WAIT_DISK=wait-disk
-Zqgblmod_S[EQNO]=sequence-number
-Zqgblmod_T[rans]=sequence-number

CHANGE -BLock 修飾子

このセクションでは、-BLOCK とそのすべての修飾子について説明します。

-BL[OCK]=block_number

変更するブロックを指定します。qualifier is incompatible with thequalifier and all qualifiers related to. -BLOCK 修飾子は、 -FILEHEADER 修飾子および -FILEHEADER に関連するすべての修飾子と同時利用できません。

-BLOCK がデフォルトの修飾子です。On commands with neither a nor a -BLOCK 修飾子も -FILEHEADER 修飾子もどちらも指定されていないコマンドでは、DSEはDSE操作で処理された最後のブロックを使用します。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

次の修飾子とは同時利用できません: -FILEHEADER と-FILEHEADER を使用した修飾子

次の修飾子は、ブロックヘッダで動作します。

-BS[IZ]=block_size

指定されたブロックのブロック・サイズ・フィールドを変更します。

  • block_size は16進形式です。

  • ブロックサイズを小さくすると、既存のデータが失われる可能性があります。

[注意] 注意

ブロック・サイズは、常にファイル・ヘッダーのブロック・サイズ以下でなければなりません。

次の修飾子でのみ使用してください: -BLOCK, -LEVEL, -TN

-L[EVEL]=level

指定されたブロックのレベルのフィールドを変更します。

[注意] 注意

DSEでは、ビットマップ・レベルが破損して任意の値をとるときに、ビットマップ・ブロックのレベルを-1(ビットマップ・ブロックのレベルの値)に変更できます。16進形式の -1、つまりFFを指定する必要があることに注意してください。

次の修飾子でのみ使用してください: -BLOCK, -BSIZ, -TN

例:

DSE >change -level=FF

-TN[=transaction_number]

現在のブロックのトランザクション番号を変更します。

  • When a CHANGE command does not include a -TN=, DSE sets the CHANGEコマンドに -TN= が含まれていない場合、DSEはトランザクション番号を現在のトランザクション番号に設定します。

  • ブロック・トランザクション番号の操作は、 MUPIP BACKUP -BYTESTREAM と -ONLINEに影響します。

次の修飾子でのみ使用してください: -BLOCK, -BSIZ, -LEVEL

-OF[FSET]=offset

ブロック内のターゲット・レコードのオフセットをバイト単位で指定します。オフセットがレコードの先頭を指していない場合、DSEは最後の有効なレコードの先頭に丸めます(たとえば、 CHANGE -OFFSET=10 は、-OFFSET=A で始まり、最後のレコードであった場合)。

次の修飾子でのみ使用してください: -BLOCK, -CMPC, -RSIZ

-RE[CORD]=record_number

ターゲット・レコードのレコード番号を指定します。

次の修飾子でのみ使用してください: -BLOCK, -CMPC, -RSIZ

-CM[PC]=compression_count

指定されたレコードの圧縮カウント・フィールドを変更します。

  • 圧縮カウントは、同じブロック内の以前のキーに共通するキーの先頭でバイト数を指定します。

  • 圧縮カウントはブロックの「前面」から伝播するため、ブロック内のすべてのレコードのキーを変更する可能性があります。1つのレコードだけを変更することを目標とする場合は、新しいレコードを追加して古いレコードを削除することをお勧めします。

次の修飾子でのみ使用してください: -BLOCK, -RECORD, -OFFSET, -RSIZE

-RS[IZ]=record_size

指定されたレコードのレコードサイズフィールドを変更します。

注意 注意

-RSIZ を変更すると、ブロック内のすべてのレコードに影響します。

次の修飾子でのみ使用してください: -BLOCK, -RECORD, -CMPC, -OFFSET

例:

DSE> change -record=3 -rsiz=3B -block=2

このコマンドは、レコード 3 のブロック 2 のレコードサイズを59(Hex:3B)バイトに変更します。

CHANGE -FIleheader 修飾子

このセクションでは、 -FILEHEADER 修飾子と、ファイル・ヘッダで動作するその他の修飾子について説明します。

-FI[LEHEADER]

関連する修飾子で指定したファイル・ヘッダ要素を変更します。

次の修飾子とは同時利用できません: -BSIZ, -CMPC, -TN, -LEVEL, -OFFSET, -RECORD, -RSIZ

-AB[ANDONED_KILLS]=value

破棄されるKillフィールドの値を変更します。値は、「NONE」または正の整数にすることができます。

次の修飾子でのみ使用してください: -FILEHEADER; decimal

-BLK[_SIZE]=block_size

現在のファイルの10進数のブロックサイズ・フィールドを変更します。

  • DSEでは、ブロックサイズを任意の値に変更することはできません。ブロックサイズは常に512の倍数に丸められます。

  • CHANGE -BLK_SIZE修飾子は、FISからの指示を受け取ったときにのみ使用し、-FILEHEADER修飾子との組み合わせでのみ使用します。このDSEコマンドは、データベースの作業ブロック・サイズを変更することはできず、非常に限られた異常な状況下でのみ有効です。データベース・ファイルのブロック・サイズを変更する必要がある場合は、MUPIP EXTRACT(または適切な代替)でデータをアンロードし、グローバル・ディレクトリをGDEで変更して新しいブロックサイズを指定し、MUPIP CREATEでデータベースを再作成し、MUPIP LOAD(または適切な代替)でデータを再ロードします。

次の修飾子でのみ使用してください: -FILEHEADER

-BLO[CKS_FREE]=free blocks

現在のファイルのフリー・ブロック・フィールドを変更します。

これを使用して、MUPIP INTEG が訂正を必要としていると報告する値を修正しますが、INTEGによって報告された「正しい」値が次回の更新で古くなる可能性があることに注意してください。INTEGレポートからデルタ値を計算し、DSEで領域をFREEZEし、現在の -FILEHEADER値をDUMPする必要があり、次に、デルタを適用し、-BLOCKS_FREEをCHANGEし、最後にFREEZEを -OFFにする必要があります。

次の修飾子でのみ使用してください: -FILEHEADER

-B[YTESTREAM]=transaction_number

最後の増分バックアップのファイル・ヘッダー内のトランザクション番号を、指定された値に変更します。この修飾子は、-FILEHEADER 修飾子と組み合わせてのみ使用してください。以前のバージョンとの互換性の問題については、-B_COMPREHENSIVEとして指定することができます。

-D[ATABASE]=transaction_number

最後の包括バックアップのファイル・ヘッダー内のトランザクション番号を、指定された値に変更します。この修飾子は、-FILEHEADER 修飾子と組み合わせてのみ使用してください。以前のバージョンとの互換性の問題については、これを-B_COMPREHENSIVEとして指定することができます。

-B_R[ECORD]=transaction_number

Changes the transaction number in the file header field that maintains this information about the last -RECORD 最後の -RECORDバックアップに関するこの情報を維持するファイル・ヘッダー・フィールドのトランザクション番号を変更します。

-CO[RRUPT_FILE]=boolean

領域がMUPIP JOURNAL -RECOVERコマンドで正常にリカバリを完了したかどうかを示します。可能な値は、T[RUE]またはF[ALSE]です。

このフラグを変更しても、データベースが壊れたり、データベースが破損することはありません。CORRUPT_FILEがTRUEに設定されている場合、DSE DUMPコマンドは次のようなメッセージを表示します:

%GTM-W-DBFLCORRP, /home/gtmnode1/mumps.dat Header indicates database file is corrupt
注意 注意
CHANGE -FILEHEADER -CORRUPT=TRUE の後、このファイルはDSE以外の将来のGT.Mアクセスには使用できません。通常の状態では、このフラグを手動で変更する必要はありません。MUPIP SET -PARTIAL_BYPASS_RECOVは、このフラグをfalseに設定します。

次の修飾子でのみ使用してください: -FILEHEADER

-COM[MITWAIT_SPIN_COUNT]=value

GT.MがSMPマシン上で実行されているときにCPUを譲る前にスピン(spin)すべきブロック更新を完了するブロックを制御するのを待っているGT.Mプロセスの回数を指定します。単一プロセッサーシステム上で実行すると、GT.Mはこのパラメーターを無視します。SMPシステムでは、あるプロセスに別のプロセスが持つクリティカル・セクションが必要なときに、クリティカル・セクションが短い場合(GT.Mで設計されているように)、クリティカル・セクションのプロセスがすぐにリリースされることを期待して少しスピン(spinning)することは、CPU使用率の増加を犠牲にしてパフォーマンスを向上させる方法が提供されます。最終的に、クリティカル・セクションを待っているプロセスは、スピンして少しでもそれが必要なクリティカル・セクションにならなければ、CPUを譲ります。負荷の重いシステムでは、COMMITWAIT_SPIN_COUNTを増やしてもスループットのためにCPUをトレードオフすることはできませんが、両方を低下させる可能性があります。COMMITWAIT_SPIN_COUNTを0に設定すると、待機プロセスは、スピンまたは譲渡の代わりに小さなスリープのシーケンスを実行します。

デフォルト値は16です。

次の修飾子でのみ使用してください: -FILEHEADER

-CU[RRENT_TN]=transaction_number

現在の領域の現在のトランザクション番号を変更します。

  • -CURRENT_TNを上げると、「"block transaction number too large" ブロックトランザクション番号が大きすぎます」というエラーを修正できます。

  • この修飾子は、MUPIP BACKUP -INCREMENTALおよび-ONLINEに影響します。

  • -BLOCK修飾子とともに使用すると、CURRENT_TNはトランザクション番号をブロックヘッダーに配置します。

次の修飾子でのみ使用してください: -FILEHEADER

-DECLOCATION

ファイル・ヘッダーのオフセットを指定します。-VALUEが指定されている場合、GT.Mはそれをその場所に置きます。

次の修飾子でのみ使用してください: -FILEHEADER; decimal

-E[NCRYPTION_HASH]

ハッシュ・ライブラリを変更すると、データベース・ファイル・ヘッダーに格納されているパスワードのハッシュを変更します。キー管理と参照実装の詳細は、 第12章:“データベース暗号化を参照してください。

注意 注意

不正確なハッシュはデータベースを役に立たなくします。

次の修飾子でのみ使用してください: -FILEHEADER

-FL[USH_TIME][=delta_time]

flush_timeのデフォルト間隔(delta_time)を変更します。

  • 入力した時間は、0〜1時間の間でなければなりません。入力は10進数として解釈されます。

  • 値なしの -FLUSH_TIMEは、-FLUSH_TIMEをデフォルト値(BGの場合は1秒、MMの場合は30秒)にリセットします。

  • delta_time の単位は、時間:分:秒:センチ秒(1/100秒)です。たとえば、フラッシュ時間間隔を1秒に変更する場合、delta_timeは 00:00:01:00 になります。30分に変更するには、delta_timeは 00:30:00:00 になります。修飾子の有効な値は、1センチ秒(1/100秒)〜1時間です。

次の修飾子でのみ使用してください: -FILEHEADER

-FR[EEZE]=value

更新する領域の可用性を設定します。可能な値は、T[RUE]またはF[ALSE]です。データベースの「フリーズ」(データベース書込みを無効にする)またはデータベースの「フリーズ解除」に使用します。

次の修飾子でのみ使用してください: -FILEHEADER

FREEZEを操作する方法については、「一般データベース管理」の章の “FREEZE ” を参照してください。

DSEは、それがEXITした時に、-FREEZE をリリースします。データベースを保持するには、CHANGE -FILEHEADER -FREEZE=TRUE 、つぎにSPAWNを実行して他の操作を実行します。

-FU[LLY_UPGRADED]=boolean

データベースがV4データベース形式からV5データベース形式に完全にアップグレードされたかどうかを示すフラグを設定します。値は、T[RUE]またはF[ALSE]のいずれかです。

次の修飾子でのみ使用してください: -FILEHEADER

-GV[STATSRESET]

すべてのデータベース・ファイル・ヘッダーのグローバル・アクセス統計を0にリセットします。これにより、データベース・ファイル・ヘッダーに以前に蓄積されたすべての統計が消去されることに注意してください。

次の修飾子でのみ使用してください: -FILEHEADER

-HEXLOCATION

ファイル・ヘッダーのオフセットを指定します。-VALUEが指定されている場合、GT.Mはそれをその場所に置きます。

次の修飾子でのみ使用してください: -FILEHEADER; hexadecimal

-INT[ERRUPTED_RECOV]=boolean

MUPIP JOURNAL -RECOVERコマンドによるリカバリが中断されたかどうかを示すフラグを設定します。値は、T[RUE]またはF[ALSE]のいずれかです。

次の修飾子でのみ使用してください: -FILEHEADER

-K[EY_MAX_SIZE]=key_max_size

最大許容キーサイズの10進数の値を変更します。KEY_MAX_SIZE を小さくすると、既存のデータへのアクセスを制限し、GT.Mにエラーを報告させることができます。互換性のないキーとレコード・サイズを作成しないでください。

DSEを使用してキー・サイズを永続的に変更する前に、GDEを使用して、適切なグローバル・ディレクトリにその領域のキー・サイズが同じであることを確認してください。これは、将来のMUPIP CREATEを準備し、キーとレコードサイズの値の一貫性チェックを実行します。キーおよびレコードサイズの詳細については、 第4章: “グローバル・ディレクトリ・エディタを参照してください。

次の修飾子でのみ使用してください: -FILEHEADER; decimal

-KI[LL_IN_PROG]=value

プログレス・フィールドのKILLの値を変更します。値は、「NONE」または正の整数にすることができます。

次の修飾子でのみ使用してください: -FILEHEADER; decimal

-N[ULL_SUBSCRIPTS]=value

GT.Mがデータベースのキーにnull添字を受け入れるかどうかを制御します。

  • 値は、T[RUE]、F[ALSE]、ALWAYS、NEVER、EXISTINGのいずれかです。null_subscript のこれらの値の詳細については、GDEの章を参照してください。

  • null 添字を禁止すると、既存のデータへのアクセスを制限し、GT.Mにエラーを報告させることができます。

  • デフォルト値は never です。

  • DSEは null 添字の照合順序を変更できません。代わりに、GDEを使用してnull添字の照合順序を変更し、MUPIP EXTRACTで現在のコンテンツを抽出し、MUPIP CREATEで更新された照合順序でデータベース・ファイルを作成し、MUPIP LOADEでコンテンツをロードします。

次の修飾子でのみ使用してください: -FILEHEADER

-OV[ERRIDE]

別のプロセスが所有するFREEZEを、解放または「盗む("steals")」します。

次の修飾子でのみ使用してください: -FREEZE

-[NO]Q[DBRUNDOWN]

データベースの即時停止(quick rundown)を有効にするかどうかを示すフラグを設定します。デフォルト値は、 -NOQDBRUNDOWN です。

詳細については、“領域(Region)修飾子” を参照してください。

-REC[ORD_MAX_SIZE]=record_max_size

最大許容レコード・サイズの10進数の値を変更します。-RECORD_MAX_SIZE修飾子は、-FILEHEADER 修飾子と組み合わせてのみ使用してください。RECORD_MAX_SIZEを小さくすると、既存のデータへのアクセスを制限し、GT.Mにエラーを報告させることができます。互換性のないキーとレコード・サイズを作成しないでください。

DSEを使用してレコード・サイズを永続的に変更する前に、GDEを使用して、適切なグローバル・ディレクトリにその領域の同じレコードサイズが含まれていることを確認します。これは、将来のMUPIP CREATEを準備し、キーとレコードサイズの値の一貫性チェックを実行します。キーおよびレコードサイズの詳細については、 第4章: “グローバル・ディレクトリ・エディタを参照してください。

-REF[ERENCE_COUNT]=reference_count

読み取り/書き込み権限を持つデータベースにアクセスするプロセスの数を追跡するフィールドを設定します。MUPIP INTEGおよびDSEは、-REFERENCE_COUNTの10進数を使用します。適切な参照カウントを正確に決定するには、CHANGE -FILEHEADER -REFERENCE_COUNT を、DSEを実行しているプロセスがデータベース・ファイルへの排他的(スタンドアロン)アクセス権を持つ場合に制限します。DSEがデータベースファイルに単独でアクセスする場合、 -REFERENCE_COUNTは1でなければなりません。これは情報フィールドであり、処理には何の影響もありません。

-REG[_SEQNO]=sequence-number

LMS環境では、 "Region Seqno"(領域シーケンス番号)フィールドが設定されます。詳細は、 第7章: “データベース・レプリケーションを参照してください。

-RESYNC_S[EQNO]=sequence-number

LMS環境では、 "Resync Seqno"(再同期シーケンス番号)フィールドが設定されます。詳細は、 第7章: “データベース・レプリケーションを参照してください。

-RESYNC_T[N]=sequence-number

LMS環境では、 "Resync transaction"(再同期トランザクション)フィールドが設定されます。詳細は、 第7章: “データベース・レプリケーションを参照してください。

-STRM_NUM=stream-number -STRM_R[EG_SEQNO]=str_num's_region_sequence_number

ストリームとそのReg Seqnoを変更します。同じCHANGE -FILEHEADER コマンドの一部として -STRM_NUM と -STRM_REG_SEQNOを一緒に使用してください。

次の修飾子でのみ使用してください: -FILEHEADER; hexa

-TI[MERS_PENDING]=timers_pending

-TI[MERS_PENDING]=timers_pending

時間指定されたフラッシュを考慮するプロセスの数を追跡するフィールドを設定します。適切な値は0,1,2です。

CHANGE -TIMERS_PENDING 修飾子は、FISからの指示を受けた場合にのみ使用してください。

次の修飾子でのみ使用してください: -FILEHEADER; decimal

-TO[TAL_BLKS]=total_blocks

現在のファイルの合計(total)ブロック・フィールドを変更します。次の修飾子でのみ使用してください: -FILEHEADER; decimal

注意 注意

合計ブロック・フィールドは、常にデータベースの実際のサイズを反映する必要があります。このフィールドは、データベースのサイズが反映されなくなった場合にのみ変更してください。

-TR[IGGER_FLUSH]=trigger_flush

キャッシュで変更されたキューをフラッシュするための、バッファ内の、トリガしきい値の10進値を設定します。

CHANGE-TRIGGER_FLUSH 修飾子は、FISからの指示を受け取ったときにのみ使用し、-FILEHEADER修飾子との組み合わせでのみ使用します。

-WR[ITES_PER_FLUSH]=writes_per_flush

各フラッシュで書き込むブロックの10進数を設定します。デフォルト値は7です。

次の修飾子でのみ使用してください: -FILEHEADER

CHANGEの例

例:

DSE> change -block=3 -bsiz=400

このコマンドは、ブロック3 のサイズを1024バイトに変更します。

例:

DSE> change -block=4 -tn=10000

このコマンドを変更すると、ブロック4 のトランザクション番号が65536(Hex:10000)に設定されます。

例:

DSE> change -block=2 -record=4 -CMPC=10 -key="^CUS(""Jones,Vic"")"

このコマンドは、キー ^CUS(Jones,Vic) の圧縮カウントを10に変更します。キー CUS(Jones,Tom) が既に存在すると仮定すると。次の表は、GT.Mがこの場合のCMPCの値をどのように計算するかを示しています。

レコード キー

圧縮カウント

レコードの中のキーの結果

CUS(Jones,Tom)

0

CUS(Jones,Tom)

CUS(Jones,Vic)

10

Vic)

CUS(Jones,Sally)

10

Sally)

CUS(Smith,John)

4

Smith,John)

例:

DSE> dump -fileheader

このコマンドは、ファイル・ヘッダーのフィールドを表示します。

例:

DSE> change -fileheader -blk_siz=2048

このコマンドは、ファイル・ヘッダーのブロック・サイズ・フィールドを2048バイトに変更します。ブロック・フィールドは、常に512バイトの倍数でなければなりません。

例:

DSE> change -fileheader -blocks_free=5B

このコマンドは、ファイル・ヘッダーのブロック空きフィールドを91(16進数:5B)に変更します。例:

例:

DSE> change -fileheader -b_record=FF

このコマンドは、RECORDバックアップ・トランザクションをFFに設定します。

例:

DSE> change -fileheader corrupt_file=FALSE

このコマンドは、CORRUPT_FILEフィールドをfalseに設定します。

例:

DSE> change -fileheader -current_tn=1001D1BF817

このコマンドは、現在のトランザクション番号を1100000000023(Hex:1001D1BF817)に変更します。このコマンドを実行すると、その後のトランザクション番号は1001D1BF817より大きくなります。

例:

DSE> change -fileheader -flush_time=00:00:02:00
このコマンドは、ファイル・ヘッダーのフラッシュ時間フィールドを2秒に変更します。

例:

DSE> change -fileheader -freeze=true

このコマンドは、デフォルトの領域を更新できないようにします。

例:

DSE> change -fileheader -key_max_size=20

このコマンドは、最大キーサイズを20に変更します。デフォルトの最大キーサイズは64です。

例:

DSE> CHANGE -FILEHEADER -NULL_SUBSCRIPTS="EXISTING"

このコマンドは、ファイル・ヘッダーの Null 添字フィールドをEXISTINGに変更します。DSEはnull添字の照合順序を変更できないことに注意してください。null 添字の照合の変更の詳細については、GDEの章を参照してください。

例:

DSE> change -fileheader -reserved_bytes=8 -record_max_size=496

このコマンドは、デフォルト領域の最大レコードサイズを496に設定します。

例:

DSE> change -fileheader -reference_count=5

このコマンドは、ファイル・ヘッダーの参照カウント・フィールドを 5 に設定します。

例:

DSE> change -fileheader -timers_pending=2

このコマンドは、ファイル・ヘッダーのタイマー保留フィールドを 2 に設定します。

例:

DSE> change -fileheader -TOTAL_BLKS=64

このコマンドは、データベースの合計サイズを100(Hex:64)ブロックに設定します。

例:

DSE> change -fileheader -trigger_flush=1000

このコマンドは、ファイル・ヘッダーのFlush Triggerフィールドを1000に設定します。Flush Trigger のデフォルト値は960です。

例:

DSE> change -fileheader -writes_per_flush=10

このコマンドは、ファイル・ヘッダーの書き込み/フラッシュ・フィールドの数を 10 に変更します。書き込み/フラッシュの回数のデフォルト値は 7 です。

例:

DSE> change -fileheader -zqgblmod_seqno=FF

このコマンドは、ZGBLMOD_SEQNOフィールドを 255(Hex:FF)に変更します。

CAche

BGアクセス方式を持つデータベースのキャッシュ上で動作します。CACHEコマンドの形式は次のとおりです:

CA[CHE] -ALL
-RE[COVER]
-SH[OW]
-VE[RIFY]                

CACHEの修飾子

-RE[COVER] [-ALL]

BGアクセス・メソッドを持つデータベースのキャッシュを「クリーン」状態にリセットします。

  • -ALL が指定されている場合、DSEにはキャッシュ・リカバリのための現在のグローバル・ディレクトリのすべての領域が含まれます。

  • DSE -CACHE -VERIFY コマンドによってキャッシュが「クリーンでない("NOT clean")」と報告された場合に限り、DSE -RECOVERを試みます。

-SH[OW]

キャッシュ・データの構造情報を表示します。すべての値は、8バイトの16進数形式です。データベースの暗号化がオンになっている場合、SHOW は、暗号化されたグローバル・バッファ・セクションに関する情報を共有メモリに与える要素を追加で表示します。

-VE[RIFY] [-ALL]

現在の領域のグローバル・バッファ内のGDSブロックの内部整合性とキャッシュデータ構造の整合性を検証します。

  • -ALLを指定すると、DSEは現在のグローバル・ディレクトリのすべての領域でキャッシュ検証を実行します。

  • 時間、領域、およびキャッシュがクリーンか否かを示すブーリアン(boolean)の結果を報告します。レポートで「クリーンではない」が表示された場合は、できるだけ早くDSE CACHE -RECOVER を実行してクリーンな状態でキャッシュをリセットしてください。

CACHEの例

例:

DSE> CACHE -VERIFY

このコマンドは、現在の領域のグローバルバッファ内のGDSブロックの内部整合性と同様に、キャッシュ・データ構造の整合性をチェックします。

例:

DSE> CACHE -VERIFY -ALL
Time 26-FEB-2011 14:31:30 : Region DEFAULT : Cache verification is clean
Time 26-FEB-2011 14:31:30 : Region DEFAULT : キャッシュの検証はクリーンです
Execute CACHE recover command if Cache verification is "NOT" clean.
キャッシュの検証が"NOT"クリーンならば、CACHE recoverコマンドを実行します。

このコマンドは、すべての領域のデータベース・キャッシュの状態を報告します。

例:

DSE> CACHE -RECOVER

このコマンドは、現在の領域のキャッシュ・データ構造を再初期化し、BGアクセスを持つデータベースのキャッシュを「クリーン("clean")」状態に戻します。

例:

DSE> CACHE -SHOW
File    /home/jdoe/node1/areg.dat
Region  AREG
Region AREG : Shared_memory       = 0x00002B6845040000
Region AREG :  node_local         = 0x0000000000000000
Region AREG :  critical           = 0x0000000000010000
Region AREG :  shmpool_buffer     = 0x0000000000023000
Region AREG :  lock_space         = 0x0000000000125000
Region AREG :  cache_queues_state = 0x000000000012A000
Region AREG :  cache_que_header   = 0x000000000012A030 : Numelems = 0x00000407 : Elemsize = 0x00000098
Region AREG :  cache_record       = 0x0000000000150458 : Numelems = 0x00000400 : Elemsize = 0x00000098
Region AREG :  global_buffer      = 0x0000000000177000 : Numelems = 0x00000400 : Elemsize = 0x00000400
Region AREG :  db_file_header     = 0x0000000000277000
Region AREG :  bt_que_header      = 0x00000000002B7000 : Numelems = 0x00000407 : Elemsize = 0x00000040
Region AREG :  th_base            = 0x00000000002C71D0
Region AREG :  bt_record          = 0x00000000002C7200 : Numelems = 0x00000400 : Elemsize = 0x00000040
Region AREG :  shared_memory_size = 0x00000000002D8000
DSE>

CLose

CLOSEコマンドは、現在開いている出力ファイルを閉じます。

CLOSEコマンドのフォーマットは:

CL[OSE]

CLOSEコマンドには修飾子はありません。

CRitical

現在の領域のクリティカル・セクションのステータスと内容を表示および/または変更します。CRITICALコマンドの形式は次のとおりです:

CR[ITICAL] -A[LL] 
-I[NIT]
-O[WNER]
-REL[EASE]
-REM[OVE]
-RES[ET]
-S[EIZE]
  • クリティカル・セクション・フィールドは、プロセス識別番号(PID)によって、データベースへの更新を現在管理しているプロセスを識別します。

  • クリティカル・セクションを鉄道線路の共通セグメントと考えてください。列車が可能な限り迅速に共通セグメントを移動するのと同じように、プロセスがクリティカル・セクションを通じて可能な限り早く移動し、他のプロセスがそれを使用できるようにします。

  • デフォルトでは、CRITICAL コマンドは、クリティカル・セクションのステータスを表示する -OWNER修飾子を想定しています。

CRITICAL の修飾子

-A[LL]

すべての地域からクリティカル・セクションを所有するプロセスのすべてのIDを表示します。ある領域にクリティカル・セクションを所有するプロセスがない場合、ALLは各領域で「CRITは現在所有されていません("the CRIT is currently unowned")」というメッセージを表示します。

-I[NIT]

クリティカル・セクションを再初期化します。

  • -INIT と -RESET の修飾子を合わせると、すべてのGT.Mプロセスがそのデータベース・ファイルにアクティブにアクセスし、エラーを通知します。

  • 他のプロセスがデータベースに損傷を与える危険性があるため、他のプロセスはこの領域にアクティブにアクセスしているとき、FISは、-RESET パラメータなしで -INITを使用することを推奨しています。

次の修飾子でのみ使用してください: -RESET

-O[WNER]

クリティカル・セクションの先頭にプロセスのIDを表示します。DSEは、現在のプロセスがクリティカル・セクションを所有している場合に警告メッセージを表示します。

単独で使う

例:

DSE> critical -OWNER
Write critical section is currently unowned
書き込みクリティカル・セクションは現在所有されていません

-REL[EASE]

DSEを実行しているプロセスがセクションを所有している場合、クリティカル・セクションを解放します。

単独で使ってください。

-REM[OVE]

クリティカル・セクションの書き込み所有権を終了します。クリティカル・セクションが、存在しない、または、もはやGT.Mイメージを実行していないことがわかっているプロセスによって所有されている場合は、これを使用します。

単独で使ってください。

注意 注意

クリティカル・セクションの書き込み所有者がアクティブなGT.MプロセスであるときにCRITICAL -REMOVEを使用すると、データベース構造が損傷する可能性があります。

-RES[ET]

クリティカル・セクションがオンラインで再初期化を経由した回数を表示します。

-RESET を -INIT とともに使用すると、領域のクリティカル・セクションを取得しようとしているプロセスでエラーが発生します。FISの指針のもとで、特定の種類のハングをクリアする方法として -RESET -INIT を使用します。

次の修飾子でのみ使用してください: -INIT

-S[EIZE]

クリティカル・セクション(使用可能な場合)を取得します。

  • SEIZE を使用して、データベースの更新を一時的に中断することもできます。

  • 続いて、CRITICAL -RELEASEコマンドを実行して、通常の操作に戻します。

CRITICALの例

例:

DSE> critical -OWNER Write critical section owner is process id 4220

このコマンドは、クリティカル・セクションを保持するプロセスのIDを表示します。軽くロードされた(またはロードされていない)システム(例えば、テキスト環境)でプロセスIDをキャッチすることは、奇跡を起こすようなものであることに注意してください。したがって、1つのセッションで DSE CRIT -SEIZE コマンドを使用してクリティカル・セクションを人工的に保持し、別のセッションを使用して所有者を表示できます。

Dump

ブロック、レコード、またはファイル・ヘッダーを表示します。DUMPは、主要なDSE検査コマンドの1つです。

DUMPコマンドの形式は次のとおりです:

D[UMP]  -A[LL]
-B[LOCK]=block_number
-C[OUNT]=count
-F[ILEHEADER]
-G[LO]
-G[VSTATS]
-[NO]C[RIT]
-[NO]H[EADER]
-O[FFSET]=offset
-R[ECORD]=record-number
-U[PDPROC]
-Z[WR]

MUPIP INTEGによって報告されたエラーメッセージを使用して、何をダンプしてデータベースで調べるかを決定します。DUMPは、レコードをシーケンシャル・ファイルに転送して、今後の学習やMUPIP LOADへの入力にも使用できます(OPENセクションを参照)。DUMPコマンドでは、-BLOCK、-HEADER、-RECORD、または-FILEHEADERのいずれかを使用してオブジェクトを指定する必要があります。

DUMPの修飾子

-A[LL]

When used with the -A[LL] -FILEHEADER と一緒に使用すると、 -A[LL] 修飾子はデータベースの追加情報を表示し、そのほとんどはFISで問題を診断するのに便利です。DSE DUMP -FILEHEADER -ALLコマンドで表示されるすべての要素の完全な説明は、この本の範囲を超えています。-FILEHEADERまたは-UPDPROC( -ALL はUPDPROC情報を表示するため、実際は冗長です)とともに使用してください。

-B[LOCK]=block-number

ダンプの開始ブロックを指定します。オブジェクト修飾子のないコマンドの場合、DSEは、DSE操作で処理された最後のブロックを使用します。ブロックがアクセスされていない場合(つまり、最初のブロック指向コマンドの場合)、DSEはブロック 1 を使用します。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER と -UPDPROC

-C[OUNT]=count

ブロック数、ブロック・ヘッダー、またはレコードをDUMPに指定します。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER と -UPDPROC

-F[ILEHEADER]

ファイル・ヘッダー情報をダンプします。データベース・ファイル・ヘッダーのDSEダンプは、16進形式で表示されるすべてのフィールドに 0x 接頭辞を出力します。ファイル・ヘッダ・フィールドの説明については、「はじめに("Introduction")」を参照してください。

次の修飾子でのみ使用してください: -ALL または -UPDPROC

-G[LO]

グローバル出力(GO)形式で、指定されたレコードまたはブロックを現在の出力ファイルにダンプします。ZWR形式は、-GLOに問題のあるものも含め、すべての可能なコンテンツ値を扱うため、FISでは、-GLOではなく-ZWRを使用することを強く推奨しています。GLO形式はUTF-8モードではサポートされていません - UTF-8モードでZWR形式を使用してください。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER, -UPDPROC と -ZWR

-G[VSTATS]

グローバル変数とデータベース・ファイルのアクセス統計情報を表示します。

-NO[CRIT]

別のプロセスがクリティカル・セクションを保持していても、DSE DUMPが動作することを許可します。このモードの結果は矛盾する可能性があるため、クリティカル・セクションのメカニズムが正常に動作していない場合にのみ使用してください。

-[NO]H[EADER]

指定されたブロックまたはレコードのダンプがヘッダーに制限されているか、除外されているかを指定します。 -HEADER はヘッダーのみを表示し、-NOHEADER はヘッダーが表示されていないブロックまたはレコードを表示します。 -[NO]HEADER 修飾子を指定しないDUMPは、ブロック/レコードとヘッダーの両方をダンプします。

デフォルトでは、DUMPはすべての情報をブロックまたはレコードに表示します。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER, -GLO, -UPDPROC と -ZWR

-O[FFSET]=offset

ダンプの開始レコードのオフセットをバイト単位で指定します。オフセットがレコードの先頭を指していない場合、DSEは最後の有効なレコードの開始点に切り捨てます(たとえば、DUMP -OFF=10 は、オフセット10を含むレコードの先頭の場合は -OFF=A で始まります)。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER, -RECORD

-R[ECORD]=record_number

ダンプの開始レコードのレコード番号を指定します。ブロック内の最後の実際のレコードよりも大きなレコード番号をダンプしようとすると、DSEエラーメッセージにブロック内の最後のレコードの番号が表示されます。

次の修飾子とは同時利用できません: -ALL, -FILEHEADER, -OFFSET

-U[PDPROC]

ファイル・ヘッダー要素でヘルパー・プロセス・パラメータを表示します。

次の修飾子でのみ使用してください: -FILEHEADER

-Z[WR]

指定したレコードをZWRITE(ZWR)形式で現在の出力ファイルにダンプします。

次の修飾子とは同時利用できません: -ALL, -GLO, -HEADER と -FILEHEADER

DUMPの例

例:

DSE> DUMP -FILEHEADER

このコマンドは、次のような出力を表示します:

File    /home/jdoe/.fis-gtm/V6.1-000_x86_64/g/gtm.dat
Region  DEFAULT
File            /home/jdoe/.fis-gtm/V6.1-000_x86_64/g/gtm.dat
Region          DEFAULT
Date/Time       27-JAN-2014 03:13:40 [$H = 63214,11620]
  Access method                          BG  Global Buffers                1024
  Reserved Bytes                          0  Block size (in bytes)         1024
  Maximum record size                   256  Starting VBN                   513
  Maximum key size                       64  Total blocks            0x000000C9
  Null subscripts                     NEVER  Free blocks             0x00000056
  Standard Null Collation             FALSE  Free space              0x00000000
  Last Record Backup     0x0000000000000001  Extension Count                100
  Last Database Backup   0x0000000000000001  Number of local maps             1
  Last Bytestream Backup 0x0000000000000001  Lock space              0x00000028
  In critical section            0x00000000  Timers pending                   0
  Cache freeze id                0x00000000  Flush timer            00:00:01:00
  Freeze match                   0x00000000  Flush trigger                  960
  Current transaction    0x0000000000002712  No. of writes/flush              7
  Maximum TN             0xFFFFFFFF83FFFFFF  Certified for Upgrade to        V6
  Maximum TN Warn        0xFFFFFFFD93FFFFFF  Desired DB Format               V6
  Master Bitmap Size                    496  Blocks to Upgrade       0x00000000
  Create in progress                  FALSE  Modified cache blocks            0
  Reference count                         1  Wait Disk                        0
  Journal State               [inactive] ON  Journal Before imaging        TRUE
  Journal Allocation                   2048  Journal Extension             2048
  Journal Buffer Size                  2308  Journal Alignsize             4096
  Journal AutoSwitchLimit           8386560  Journal Epoch Interval          30
  Journal Yield Limit                     8  Journal Sync IO              FALSE
  Journal File: /home/jdoe/.fis-gtm/V6.1-000_x86_64/g/gtm.mjl
  Mutex Hard Spin Count                 128  Mutex Sleep Spin Count         128
  Mutex Queue Slots                    1024  KILLs in progress                0
  Replication State                     OFF  Region Seqno    0x0000000000000001
  Zqgblmod Seqno         0x0000000000000000  Zqgblmod Trans  0x0000000000000000
  Endian Format                      LITTLE  Commit Wait Spin Count          16
  Database file encrypted             FALSE  Inst Freeze on Error         FALSE
  Spanning Node Absent                 TRUE  Maximum Key Size Assured      TRUE

特定のファイル・ヘッダー要素は、データベースの現在の状態に応じて表示されることに注意してください。たとえば、ジャーナリングがデータベースで有効になっていない場合、DSEはジャーナルデータ要素フィールドを表示しません。

例:

$ dse dump -fileheader -updproc

このコマンドは、次のヘルパー・プロセス・パラメータとともにファイル・ヘッダー要素を表示します。

Upd reserved area [% global buffers]   50  Avg blks read per 100 records                200
Pre read trigger factor [% upd rsrvd]    50  Upd writer trigger [%flshTrgr]                 33

詳細は、 GT.Mデータベース構造(GDS) のファイル・ヘッダー要素のセクションを参照してください。

EValuate

16進数を10進数に変換します。逆もまた同様です。

EVALUATEコマンドの形式は次のとおりです:

EV[ALUATE]  -D[ECIMAL]
-H[EXADECIMAL]
-N[UMBER]=number     

-DECIMAL および -HEXADECIMAL修飾子は、数値の入力基数を指定します。 -NUMBER修飾子は必須です。デフォルトでは、EVALUATEはその数値を16進数として扱います。

Evaluateの修飾子

-D[ECIMAL]

入力の数値に10進数を指定します。

次の修飾子とは同時利用できません: -HEXADECIMAL

-H[EXADECIMAL]

入力の数値を16進数で指定します。

次の修飾子とは同時利用できません: -DECIMAL

-N[UMBER]=number

評価する数値を指定します。必須です。

EVALUATEの例

例:

DSE> evaluate -number=10 -decimal
Hex:  A   Dec:  10

このコマンドは、10進数の 10 に相当する16進数を表示します。

例:

DSE> evaluate -number=10 -hexadecimal
Hex:  10   Dec:  16

このコマンドは、16進の10に相当する10進数を表示します。

例:

$ dse evaluate -number=10
Hex:  10   Dec:  16

このコマンドは、16進 10 に相当する10進数を表示します。-NAMEで修飾子を指定しない場合、EVALUATEは16進数の入力とみなします。

EXit

EXITコマンドは、DSEセッションを終了します。

EXITコマンドのフォーマット:

EX[IT]

EXITコマンドは、修飾子がありません。

Find

指定されたブロックまたは領域を検索します。FINDコマンドの形式は次のとおりです:

F[IND]  -B[LOCK]=block-number
-E[XHAUSTIVE]
-F[REEBLOCK] /H[INT]
-K[EY]=key
-[NO]C[RIT]
-R[EGION][=region]
-S[IBLINGS]
  • DSEセッションの開始時に、FIND -REGIONコマンドを使用してターゲット領域を選択します。

  • FINDコマンドは、-FREEBLOCK修飾子と-REGION修飾子を併用する以外は、インデックス・ツリーを使用してブロックを検索します。FINDは、インデックス・ツリー構造内のブロックのみを検索できます。ツリーへのアタッチメントから独立したキーを見つける必要がある場合は、RANGEコマンドを使用します。

FINDの修飾子

-B[LOCK]=block_number

検索するブロックを指定します。

-BLOCK= 修飾子のないコマンドの場合、DSEはDSE操作で処理された最後のブロックを使用します。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

次の修飾子とは同時利用できません: -KEY, -REGION

-E[XHAUSTIVE]

目的のパスまたは兄弟(木構造中の兄弟関係にあるノード) のインデックス構造全体を検索します。

  • FIND -EXHAUSTIVE は、ツリー内にあるが正しくインデックス付けされていないブロックを見つけます。

  • FIND -EXHAUSTIVEは、「二重に割り当てられた("doubly allocated")」ブロックへのすべてのパスを探します。

[注意] 注意

二重に割り当てられたブロックは、不適切なデータの混在を引き起こす可能性があります。KILLが発生しない限り、二重割り当てによって追加のデータが永久に失われることはありません。ただし、アプリケーション・プログラムがエラーや不適切な結果を生成する可能性があります。ブロックが二重に割り当てられると、KILLは適切な範囲外のデータを削除する可能性があります。二重に割り当てられたブロックの修復の詳細は、「データベース整合性の維持」を参照してください。

次の修飾子とは同時利用できません: -KEY, -REGION, -FREEBLOCK

-F[REEBLOCK]

-HINT で指定されたブロックに最も近い空きブロックを検出します。FREEBLOCK はビットマップを開始点または終了点として受け入れます。

  • -FREEBLOCK 修飾子は、-BLOCKおよび-HINT以外のすべての修飾子と互換性がありません(同時利用できません)。

  • -FREEBLOCK修飾子を指定する場合は、-HINT修飾子が必要です。

  • FIND -FREEBLOCKはビットマップを使用してターゲットを特定するため、このコマンドを使用する前に「FREE」と誤ってマークされたブロックを修正してください。間違ってマークされた空きエラーを修正する方法については、MAP -BUSYを参照してください。

-HINT で必須です; -BLOCKおよび[NO] CRITと互換性があります(同時利用可能)。

-H[INT]=block_number

-FREEBLOCK検索の開始点を指定します。

FIND -FREE -HINT は、ヒント(hint)に最も近いフリーブロックを探します。これにより、Bツリーに追加するブロックの検索、または、DSEの終了時に失われる別な方法でSAVEで作成されたブロック・コピーの保持用のツールが提供されます。FIND -FREEはビットマップを使用してターゲットを特定するため、このコマンドを使用する前に「FREE」と誤ってマークされたブロックを修正してください。

必須:-FREEBLOCK; -BLOCK と [NO]CRITと互換性があります(同時利用可能)。

-K[EY]=key

指定されたキーまたはキーが存在しない場合は、キー含むブロックをデータベースで検索します。キーが存在する場合は、そのキーを含むブロックで検索します。

  • M-スタイルのキーは引用符( "")で囲みます。FIND -KEY は、適切にインデックス付けされたキーの検索に役立ちます。-KEY修飾子は、他のすべての修飾子と互換性がありません。

  • FIND -KEY= はインデックスを使用して、キーを含むレベルゼロ(0)ブロックまたはデータブロックを検索します。キーが存在しない場合は、インデックスを使用してキーが存在するブロックを探します。FINDは、現在作成されているインデックスでのみ機能することに注意してください。言い換えれば、コマンドが発行された時点でインデックスが指す場所だけを、「正しい」場所として見つけることはできません。これらの2つの場所は同じである必要があります; ただし、現在のデータベースの完全性の問題を説明するすべての情報を検索し、理解し、考慮する必要があります。

  • DSEはキーを指定するときに ^#t を有効なグローバル名として受け入れます。

[NO]CRIT だけ互換性があります(同時利用可能)。

-[NO]C[RIT]

別のプロセスがクリティカル・セクションを保持している場合でもFINDが動作するようにします。

このモードの結果は矛盾する可能性があるため、クリティカル・セクションのメカニズムが正常に動作していない場合にのみ使用してください。

-R[EGION][=region]

名前付きグローバル・ディレクトリ領域に切り替えます。

-REGION指定された領域がない場合、または -REGION="*" はデータベース内の既存の領域をすべて表示します。

単独で使ってください。

-S[IBLINGS]

指定したブロックのブロック番号とその論理兄弟を16進数形式で表示します。

論理兄弟は、もしあれば、データベース・ツリー構造内で与えられたブロックの左右に論理的に存在するブロックです。

次の修飾子とは同時利用できません: -FREEBLOCK, -HINT, -KEY, -REGION

FINDの例

例:

DSE> find -exhaustive -block=180
Directory path
Path--blk:off
1:10 2:1E
Global paths
Path--blk:off
6:51 1A4:249 180

このコマンドは、ブロックへのポインタのBツリー・インデックスを調べることによってブロック180の位置を突き止めます。このコマンドは、ツリーに接続されているブロックも検出しますが、ブロック内の最初のキーがインデックスパスと一致しません。

例:

DSE> find -free -hint=180
Next free block is D8F.

このコマンドは、ブロック180に「最も近い」空きブロックを見つけます。

このコマンドは、Bツリーに追加するブロックの検索や、DSEの終了時に失われる別の方法でSAVEで作成されたブロックコピーの保持用のツールとして使用できます。

例:

DSE>find -key="^biggbl(1)"

このコマンドは、キー ^biggbl(1) をデータベースに配置します。

例:

DSE> find -freeblock -hint=232

このコマンドは、ブロック232の後の空きブロックの検索を開始します。

例:

DSE> FIND -FREEBLOCK -HINT=232 -NOCRIT

このコマンドは、他のプロセスがクリティカルセクションを保持していても、ブロック232の後のフリーブロックを検索します。

例:

DSE> find -sibling -block=10

このコマンドは、FIND -BLOCKのように動作します; 同じレベルのブロック180の前後に論理的に落ちるブロックの数を報告します。このコマンドは、以下の出力を生成します:

Left sibling    Current block   Right sibling
        0x0000000F      0x00000010      0x00000011

Help

HELPコマンドはDSEコマンドを説明します。HELPコマンドのフォーマット:

-H[ELP] [help topic]

Integrit(完全な整合性)

単一の非ビットマップ・ブロックの内部整合性をチェックします。INTEGRITは、16進表記のエラーを報告します。

INTEGRITコマンドの形式は次のとおりです:

I[NTEGRIT] -B[LOCK]=block-number
[注意] 注意

MUPIP INTEGとは異なり、このコマンドはブロック内のエラーのみを検出し、誤って別のブロックを指すインデックスなどのエラーは検出できません。複数のブロックをチェックするユーティリティについては、「一般データベース管理」の章の “INTEG ”を参照してください。

Integritの修飾子

-B[LOCK]=block_number

チェックするDSEのブロックを指定します。-BLOCK= 修飾子のないコマンドでは、DSEは、DSE操作によって処理される最後のブロックを使用しています。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

-NO[CRIT]

別のプロセスがクリティカル・セクションを保持していても、DSE INTEGが動作することを許可します。このモードの結果は矛盾する可能性があるため、クリティカル・セクションのメカニズムが正常に動作していない場合にのみ使用してください。

Maps

ビットマップを検査または更新します。MAPSコマンドの形式は次のとおりです:

M[APS] -BL[OCK]=block-number
-BU[SY]
-F[REE]
-M[ASTER]
-R[ESTORE_ALL]

MAPSはブロックを -BUSY または -FREE のいずれかとフラグを立てることができます。-MASTER修飾子は、ローカル・ビットマップの現在の状態をマスター・マップに戻して反映します。-RESTORE_ALL修飾子は、すべてのマップを再構築するため、重要な情報を破壊する可能性があるため、注意して使用する必要があります。

デフォルトでは、MAPSは指定されたブロックのビットマップの状態を表示します。

MAPの修飾子

-BL[OCK]=block_number

MAPSのターゲット・ブロックを指定します。-BLOCK修飾子は、-RESTORE_ALL修飾子と互換性がありません(同時利用不可)。

-BLOCK= または -RESTORE_ALL修飾子が指定されていないコマンドでは、DSEはDSE操作で処理された最後のブロックを使用します。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

次の修飾子とは同時利用できません: -RESTORE_ALL

-BU[SY]

ブロックのローカル・マップで現在のブロックをビジーとしてマークし、マスター・ビットマップを適切に更新します。BUSYはビットマップ・ブロックを受け入れます。

-BLOCK だけ互換性があります(同時利用可能)。

-F[REE]

現在のブロックをブロックのローカル・マップで空きとしてマークし、マスター・ビットマップを適切に更新します。

-BLOCK だけ互換性があります(同時利用可能)。

-M[ASTER]

現在のブロックのローカル・マップに関連付けられたマスター・ビットマップのビットを、そのローカル・マップがいっぱいかどうかによって設定します。MASTERはビットマップ・ブロックを受け入れます。

-BLOCKとのみ使用してください。

-R[ESTORE_ALL]

すべてのローカルビットマップとマスタービットマップを、データベースファイルで使用されるブロックを反映するように設定します。

-RESTORE_ALLは、データベースの内容が正しいとわかっているが、多数のビットマップが修正を必要とする場合にのみ使用してください。

注意 注意

-RESTORE_ALL修飾子はすべてのマップを再構築し、重要な情報を破壊する可能性があるため、十分注意して使用する必要があります。

単独で使ってください。

例:

DSE> MAPS -BLOCK=20 -FREE

このコマンドはブロック20に空きとしてフラグを立てます。サンプルDSE DUMP出力ブロック0は、次のとおりです。

Block 0  Size 90  Level -1  TN 10B76A V5   Master Status: Free Space
                Low order                         High order
Block        0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       20: |  :XXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       40: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       60: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       80: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       A0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       C0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block       E0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      100: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      120: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      140: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      160: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      180: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      1A0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      1C0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
Block      1E0: |  XXXXXXXX  XXXXXXXX  XXXXXXXX  XXXXXXXX  |
'X' == BUSY  '.' == FREE  ':' == REUSABLE  '?' == CORRUPT

BLOCK 20はREUSABLEとマークされていることに注意してください。これはFREEを意味しますが、Before-Imageジャーナル・レコードが必要です。

例:

DSE> maps -block=20 -busy

このコマンドは、ブロック20をビジーとしてマークします。ブロック0のサンプルDSE DUMP出力は、次のとおりです。

Block 0  Size 90  Level -1  TN 1 V5   Master Status: Free Space
                Low order                         High order
Block        0: |  XXX.....  ........  ........  ........  |
Block       20: |  X.......  ........  ........  ........  |
Block       40: |  ........  ........  ........  ........  |
Block       60: |  ........  ........  ........  ........  |
Block       80: |  ........  ........  ........  ........  |
Block       A0: |  ........  ........  ........  ........  |
Block       C0: |  ........  ........  ........  ........  |
Block       E0: |  ........  ........  ........  ........  |
Block      100: |  ........  ........  ........  ........  |
Block      120: |  ........  ........  ........  ........  |
Block      140: |  ........  ........  ........  ........  |
Block      160: |  ........  ........  ........  ........  |
Block      180: |  ........  ........  ........  ........  |
Block      1A0: |  ........  ........  ........  ........  |
Block      1C0: |  ........  ........  ........  ........  |
Block      1E0: |  ........  ........  ........  ........  |
'X' == BUSY  '.' == FREE  ':' == REUSABLE  '?' == CORRUPT

ブロック20はビジーとマークされていることに注意してください。

OPen

グローバル変数データを順次出力するためのファイルを開くには、OPENコマンドを使用します。OPENコマンドのフォーマットは:

OP[EN] F[ILE]=file
  • 情報をダンプするファイルをOPENします。

  • OPENコマンドに -FILE修飾子がない場合、DSEは現在の出力ファイルの名前を報告します。

OPENの修飾子

-F[ILE]=file-name

OPENするファイルを指定します。

OPENの例

例:

DSE> OPEN
Current output file:  var.out

このコマンドは、現在の出力ファイルを表示します。この場合、出力ファイルは var.out です。

例:

DSE> OPEN -FILE=var1.out

コマンド OPEN -FILE=var1.out は、出力ファイルを var1.out に設定します。

OVerwrite

現在のブロック内に与えられたオフセットに指定された文字列を上書きします。このコマンドを使用する場合は十分注意してください。

OVERWRITEコマンドの形式は次のとおりです:

OV[ERWRITE] -D[ATA]=string
-O[FFSET]=offset

OVERWRITEの修飾子

-B[LOCK]=block number

特定のブロックを上書きするようにDSEに指示します。ブロック番号を指定しない場合、デフォルトは現在のブロックです。

-D[ATA]=string

書き込まれるデータを指定します。\a または \ab という形式の文字列およびエスケープコードの前後に引用符を使用します。ここで、 "a" と "b" は、非印字文字を表す16進数です。\\ は、単一のバックスラッシュに変換されます。

-O[FFSET]=offset

現在のブロックの上書きを開始するオフセットを指定します。

Overwriteの例

例:

DSE>overwrite -block=31 -data="Malvern" -offset=CA

このコマンドは、指定された場所のデータを上書きします。

Page

1つのフォーム・フィード(FF)を出力デバイスに送信します。PAGEを使用してダンプファイルにフォームフィードを追加すると、ハードコピーファイルを読みやすくなります。MUPIP LOADでダンプ・ファイルを使用する場合は、PAGEは使用しないでください。

PAGEコマンドの形式は次のとおりです:

P[AGE]

PAGEコマンドには修飾子はありません。

RAnge

RANGEコマンドは、データベース内の最初のキーが指定されたキーの範囲内にあるすべてのブロックを検出します。RANGEコマンドは、 -FROM と -TO で指定された範囲が小さい場合を除き、非常に時間がかかることがあります。FIND -KEY および/または FIND -KEY -EXHAUSTIVE を最初に使用して、キーが索引ツリーに表示されているかどうかを素早く判断します。

RANGEコマンドの形式は次のとおりです:

RA[NGE] -F[ROM]=block-number
-T[O]=block-number
-I[NDEX]
-LOS[T]
-[NO]C[RIT]
-[NO]BU[SY]
-S[TAR]
-LOW[ER]=key
-U[PPER]=key                

RANGEの修飾子

-F[ROM]=block_number

範囲検索の開始ブロック番号を指定します。DSE RANGE はビットマップを開始点または終了点として受け入れます。

デフォルトでは、RANGEはファイルの先頭で処理を開始します。

-T[O]=block-number

範囲検索の終了ブロック番号を指定します。DSE RANGE はビットマップを開始点または終了点として受け入れます。デフォルトでは、RANGEはファイルの最後で処理を停止します。

-I[NDEX]

インデックス・ブロックへの検索を制限します。

-LOS[T]=block_number

FIND -BLOCK で見つからないブロックに検索を制限します。

-LOW[ER]=key

キー範囲の下限を指定します。

-[NO]BU[SY]=busy/free

検索をBUSYまたはFREEブロックに制限します。

-[NO]C[RIT]

別のプロセスがクリティカル・セクションを保持していても、DSE RANGE が動作することを許可します。このモードの結果は矛盾する可能性があるため、クリティカル・セクションのメカニズムが正常に動作していない場合にのみ使用してください。

-S[TAR]

単一のスター・キーを含むインデックス・ブロックを含みます。

-U[PPER]=key

キー範囲の上限を指定します。

RANGEの例

例:

DSE> range -lower="^abcdefgh" -upper="^abcdefghi" -from=A -to=CC

このコマンドは、ブロック10とブロック204の間で指定されたキーを検索します。ブロックの範囲(FROMとTOの間)は、有効なブロックを16進数で指定する必要があります。

例:

DSE> range -lower="^abcdefgh" -upper="^abcdefghi" -from=A -to=CC -noindex

このコマンドは、ブロック10とブロック204の間で、指定されたキーのデータ・ブロックのみを検索します。

例:

DSE> range -lower="^abcdefgh" -upper="^abcdefghi" -from=A -to=CC -index

このコマンドは、ブロック10とブロック204の間で指定されたキーのインデックス・ブロックのみを検索します。

例:

DSE> range -lower="^abcdefgh" -upper="^abcdefghi" -lost

このコマンドは、指定されたキーを検索している間に失われたブロックを含み、現在インデックスされていないブロックのみを報告します。

例:

DSE> range -lower="^Fruits(15)" -upper="^Fruits(877)" -from=A -to=F
Blocks in the specified key range:
Block: 0000000A Level: 0
Block: 0000000B Level: 0
Block: 0000000C Level: 0
Block: 0000000D Level: 0
Block: 0000000E Level: 0
Block: 0000000F Level: 0
Found 6 blocks

このコマンドは、 ^Fruits(15) と ^Fruits(877) の間のキーを検索します。

REMove

1つ以上のレコードまたは保存バッファを削除します。

REMOVEコマンドの形式は次のとおりです:

REM[OVE]    -B[LOCK]=block-number
-C[OUNT]=count
-O[FFSET]=offset
-R[ECORD]=record-number
-V[ERSION]=version-number

バージョン番号は10進数で指定します。

REMOVEの修飾子

-B[LOCK]=block_number

削除されるレコードまたはバッファに関連付けられたブロックを指定します。

-BLOCK= 修飾子のないコマンドでは、DSEは、DSE操作によって処理される最後のブロックを使用しています。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

BLOCKは、データベースではなく保存されたブロック・コピーのセットを処理するため、現在のデータベース・サイズよりも高いブロックを受け入れます。また、保存されたブロックが現在のデータベース・サイズ外にある可能性があります(たとえば、MUPIP REORG -TRUNCATEの同時実行など) 。

-C[OUNT]=count

削除するレコード数を指定します。

デフォルトでは、REMOVEは1つのレコードを削除します。

次の修飾子とは同時利用できません: -VERSION

-O[FFSET]=offset

削除されるレコードのオフセット(バイト単位)を指定します。オフセットがレコードの先頭を指していない場合、DSEはオフセットを含むレコードの先頭に丸めます(たとえば、REMOVE -OFF=10は、それが最後のレコード境界境界であった場合は OFF=A で始まります)。

次の修飾子とは同時利用できません: -VERSION, -RECORD

-R[ECORD]=record_number

削除するレコードを識別する番号を指定します。-RECORD修飾子は、-OFFSETおよび-VERSION修飾子と互換性がありません。

次の修飾子とは同時利用できません: -VERSION, -OFFSET

-V[ERSION]=version_number

削除する保存バッファのバージョン番号を10進数で指定します。ブロックのバージョンが複数ある場合は、-VERSION が必要です; それ以外の場合、REMOVEはその唯一のバージョンで動作します。-VERSIONは、-BLOCKを除くすべての修飾子と互換性がありません。

指定されたバージョンの-BLOCK= ブロックが現在のリージョンに1つしかない場合、DSE REMOVEのデフォルトはそのバージョンになります。

次の場合にのみ使用してください:-BLOCK ; decimal

REStore

RESTOREコマンドは、保存されたブロックのバージョンを復元します。

RES[TORE]   -B[LOCK]=block-number
-F[ROM]=from
-R[EGION]=region
-V[ERSION]=version-number  

バージョン番号は10進数で指定します。

RESTOREの修飾子

-B[LOCK]=block_number

復元するブロックを指定します。

-BLOCK= 修飾子のないコマンドでは、DSEは、DSE操作によって処理される最後のブロックを使用しています。ブロックがアクセスされていない場合(つまり、最初のブロック指向コマンドの場合)、DSEはブロック 1 を使用します。

BLOCKは、データベースではなく保存されたブロック・コピーのセットを処理するため、現在のデータベース・サイズよりも高いブロックを受け入れます。また、保存されたブロックが現在のデータベース・サイズ外にある可能性があります(たとえば、MUPIP REORG -TRUNCATEの同時実行など) 。

-F[ROM]=block_number

復元するSAVEバッファのブロック番号を指定します。

DSEは、-BLOCK修飾子で指定されたブロックを、-FROM修飾子で指定されたブロックでリストアします。指定した -FROM=ブロックのバージョンが1つだけの場合、DSE RESTOREのデフォルトはそのバージョンになり、オリジナルのブロック・トランザクション番号が常に復元されます。

デフォルトでは、RESTORE はターゲットブロック番号を-FROMブロック番号として使用します。

-R[EGION]=region

復元する保存済みバッファの領域を指定します。

デフォルトでは、RESTOREは現在の領域からSAVEバッファを使用します。

-V[ERSION]=version_number

復元するブロックの10進数バージョン番号を指定します。バージョン番号は必須です。

SAve

SAVEコマンドは、ブロックのバージョンを保存するか、または現在のDSEセッションの保存されたバージョンのリストを表示します。SAVEは128個のバージョンを保持できます。保存された情報は、DSEが終了すると失われます。

SAVEされたブロックを永続的な場所に移動するには、RESTOREコマンドを使用します。また、安全機能としてSAVEを使用して、変更する前にデータベース・ブロックのコピーを保持します。

SAVEコマンドの形式は次のとおりです:

SA[VE] -B[LOCK]=block-number
-C[OMMENT]=string
-L[IST]
-[NO]C[RIT]

SAVEの修飾子

-B[LOCK]=block_number

復元するブロックを指定します。

-BLOCK= 修飾子のないコマンドでは、DSEは、DSE操作によって処理される最後のブロックを使用しています。ブロックがアクセスされていない時、つまり、最初のブロック指向のコマンドで、DSEはブロック1(1)を使用します。

-C[OMMENT]=string

ブロックで保存するコメントを指定します。コメントは引用符( "")で囲みます。

次の修飾子とは同時利用できません: -LIST

-L[IST]

指定されたブロックの保存されたバージョンを一覧表示します。-LIST修飾子は、 -COMMENT 修飾子と互換性がありません。

デフォルトでは、 SAVE -LIST はすべてのSAVEされたブロックのディレクトリを提供します。

LISTは、データベースではなく保存されたブロックのコピーのセットを扱うため、現在のデータベース・サイズよりも高いブロックを表示することがあります。また、保存されたブロックが現在のデータベースサイズ外にある状況があります(たとえば、MUPIP REORG -TRUNCATE );

次の修飾子とは同時利用できません: -COMMENT

-[NO]C[RIT]

別のプロセスがクリティカルセクションを保持していても、DSE SAVEが動作することを許可します。このモードの結果は矛盾する可能性があるため、クリティカル・セクションのメカニズムが正常に動作していない場合にのみ使用してください。

SHift

SHIFTコマンドを使用して、ブロック内のデータをシフトしたり、ブロックをゼロで埋めたり、ブロックを短くしたりします。SHIFTコマンドの形式は次のとおりです:

SH[IFT]  -B[ACKWARD]=b_shift
-BL[OCK]=block_number
-F[ORWARD]=f_shift
-O[FFSET]=offset

b_shift は常にオフセット以下でなければなりません。これは、逆方向のDSE SHIFTが最大OFFSETバイト数に制限されていることを意味します。これにより、シフトが意図的にまたは意図せずにブロック境界を越えないことが保証されます。

SHIFTの修飾子

-B[ACKWARD]=shift

ブロック・ヘッダーの方向にデータをシフトするバイト数を指定します。

次の修飾子とは同時利用できません:-FORWARD

-BL[OCK]=block_number

DSE SHIFTを実行するブロック番号を指定します。

-F[ORWARD]=shift

ブロックの終わりに向かってデータをシフトするバイト数を指定します。

次の修飾子とは同時利用できません: -BACKWARD

-O[FFSET]=offset

シフトするブロックの開始オフセット(バイト単位)を指定します。

-SPawn

SPawn

SPAWNコマンドを使用して、現行のDSE環境を終了せずに、シェルへのアクセスのために子プロセスをフォークします。

SPAWNコマンドのフォーマットは:

SP[AWN] [shell-command]
  • SPAWNコマンドは、生成されたサブプロセスによる実行のためのオプションのコマンド文字列を受け入れます。SPAWNにコマンド文字列パラメータがない場合、作成されたサブプロセスはシェルプロンプトを発行し、有効なシェルコマンドを受け入れます。サブプロセスを終了するには、シェルのlogoutコマンドを使用します。

  • SPAWNコマンドは修飾子を持ちません。

  • DSE SPAWNは引数付きで動作します。引数にスペースが含まれている場合は、引用符で囲みます。

SPAWNコマンドは修飾子を持ちません。

DSE SPAWNは引数付きで動作します。引数にスペースが含まれている場合は、引用符で囲みます。

SPAWNの例

例:

DSE> SPAWN "mumps -run ^GDE"

このコマンドは、DSEセッションを中断し、シェルコマンド mumps -run ^GDE を実行します。

Wcinit

現在の領域のグローバル・バッファーを再初期化するには、WCINITコマンドを使用します。キャッシュを消去するので、FISのガイダンス以外ではWCINITコマンドを使用しないでください。

注意 注意

通常のデータベース操作の進行中に発行されたWCINITコマンドは、データベースに致命的なダメージを与える可能性があります。

WCINITコマンドの形式は次のとおりです:

W[CINIT]
  • WCINITコマンドには修飾子はありません。

  • WCINITコマンドを発行すると、DSEはCONFIRMATION:プロンプトを発行します。 「YES」と応答してWCINITコマンドを確認する必要があります。

    WCINITを確認しないと、DSEは次のメッセージを発行します:

     アクションが取られていない場合は、グローバルバッファを初期化するためにCONFIRMATIONプロンプトでyesを入力します。
  • WCINIT操作はMUPIP RUNDOWNにより安全に実行されます。このコマンドは、FISの指示の下でのみ使用してください。

inserted by FC2 system