Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


14.4.7 START(個別開始)

〈この項の構成〉

(1) 機能

HiRDB/SDに対して個別開始要求を行い,SDBデータベースに対する操作の開始処理を行います。

(2) 指定形式

 START SDBデータベース名
 
     〔ACSMODE {READ|UPDATE}〕
 
     〔ENQOPT {SHARE|EXCLUSIVE|OCCUPY|NONE}〕
 
     〔AUTODEQ {YES|NO}〕
 
     〔ACSRDAREA (RDエリア名〔,RDエリア名〕…)〕
 
     〔RDAREAVAL {YES|NO}〕
 
     〔FETCHDB_ALL ONLY〕;
注意事項
  • 最後にセミコロン( ; )の指定が必要です。

  • オペランドの指定順序は変更できません。

(3) オペランドの説明

●SDBデータベース名

〜<識別子>((1〜30バイト))

操作対象のSDBデータベース名を指定します。

SDBデータベース名に英小文字を使用している場合は,SDBデータベース名を引用符( " )で囲んでください。引用符で囲まないと,英小文字は英大文字と見なされます。

ACSMODE {READ|UPDATE}

この個別開始でのアクセスモードを指定します。

READ:参照モード

UPDATE:更新モード

レコード実現値の格納,更新,または削除を実行する場合はUPDATEを指定してください。

ENQOPT {SHARE|EXCLUSIVE|OCCUPY|NONE}

この個別開始での排他オプションを指定します。

SHARE:共用モード

EXCLUSIVE:排他モード

OCCUPY:占有モード

NONE:無排他モード

NONEを指定して個別開始を実行した場合の注意事項については,「2.9.7 排他モード指定による無排他検索機能【4V FMB,4V AFM】」を参照してください。

アクセスモードと排他オプションの指定可能な組み合わせを次の表に示します。

表14‒14 アクセスモードと排他オプションの指定可能な組み合わせ

排他オプション

アクセスモード

参照モード

更新モード

共用モード

×

排他モード

占有モード

無排他モード

×

(凡例)

○:指定できます。

×:指定できません。

なお,個別開始時には排他は掛かりません。

AUTODEQ {YES|NO

排他自動解除オプションを指定します。

YES:排他自動解除機能を使用します。

NO:排他自動解除機能を使用しません。

排他自動解除機能については,「2.9.4 排他自動解除機能」を参照してください。

ACSRDAREA (RDエリア名〔,RDエリア名〕…)

〜<識別子>((1〜30バイト))

検索対象とするRDエリアを指定します。このオペランドを省略した場合,すべてのRDエリアを指定したと仮定されます。

このオペランドの機能詳細については,次のRDAREAVALオペランドの説明を参照してください。

次の指定をした場合は,エラーになります。

  • RDエリア名を重複して指定した場合

  • 検索対象のSDBデータベースが格納されているRDエリア以外のRDエリアを指定した場合

4V MAM,4V TAM,または4V SAMのSDBデータベースの場合,このオペランドの指定は無効となります。

RDAREAVAL {YES|NO

レコードの検索時に基点条件指定がある場合でも,ACSRDAREAオペランドで指定したRDエリア指定を有効とするかどうかを指定します。この指定をRDエリア指定有効オプションといいます。

YES:

基点条件指定がある場合でも,ACSRDAREAオペランドで指定したRDエリア指定を有効とします。

NO:

基点条件指定がある場合は,ACSRDAREAオペランドで指定したRDエリア指定を有効としません。

このオペランドの指定値と,レコードの検索範囲の関係を次の表に示します。

表14‒15 RDAREAVALオペランドの指定値と,レコードの検索範囲の関係

検索時の指定

個別開始時の指定

検索範囲※2

アクセス種別

基点条件※1

RDAREAVALオペランドの指定値

ACSRDAREAオペランドのRDエリアの指定※5

基点となるRDエリア

指定なし

指定あり

ACSRDAREAオペランドに指定されたRDエリアを,格納値※3の昇順に検索します。

検索範囲の例については,「■検索範囲の例(その1)」を参照してください。

RDエリア指定検索※4

指定なし

全RDエリアを格納値の昇順に検索します。

指定あり

YES

指定あり

含む

基点条件に指定された検索開始位置から,そのRDエリアとACSRDAREAオペランドに指定されたRDエリアを格納値の昇順に検索します。

含まない

基点条件に指定された格納値を含むレコード実現値と,ACSRDAREAオペランドに指定されたRDエリアを格納値の昇順に検索します。

検索範囲の例については,「■検索範囲の例(その2)」を参照してください。

指定なし

基点条件に指定された検索開始位置から,全RDエリアを格納値の昇順に検索します。

NO

基点条件で指定された検索開始位置から,そのRDエリアだけを格納値の昇順に検索します。

基点検索

(凡例)

−:該当しません。

注※1

検索範囲の開始位置を指定するキーの条件のことを基点条件といいます。条件式の比較記号が,>,>=,および=の場合に,基点条件の指定ありとなります。例えば,「DBKEY>B」または「DBKEY=B」と指定した場合は,検索範囲の開始位置Bが指定されているため,基点条件の指定ありとなります。一方,「DBKEY<H」と指定した場合は,検索範囲の開始位置が指定されていないため,基点条件の指定なしとなります。

注※2

検索範囲の決定は,「表K-1 4V FMBのSDBデータベース検索時の検索範囲決定」,「表K-2 4V AFMのSDBデータベース検索時の検索範囲決定」,「表K-3 SD FMBのSDBデータベース検索時の検索範囲決定」に記載の契機で行われます。以降のNEXTおよびPRIOR指定の検索は,そのときに決定した検索範囲を対象に行われます。

注※3

境界値分割をしている場合は,「格納値」を「境界値に指定された値の範囲」と読み替えてください。

注※4

シーケンシャルインデクスの先頭の構成要素以外をRDエリア分割キーに指定したレコードに対して,ACSRDAREAオペランドを指定してRDエリア指定検索をする場合,次の条件をすべて満たしている必要があります。

・RDエリア分割キーに指定した構成要素よりも前の全構成要素に対してKEYDEF句を指定している。

・上記で指定したKEYDEFごとのDATAで定義したキー値が1つだけである。

上記の条件をすべて満たしていない場合は,エラーになります。

注※5

4V AFMのSDBデータベースで,ACSRDAREAオペランドの指定なしの場合は,この表で説明している検索範囲が,さらに次の範囲に限定されます。

・基点条件指定なしの場合

 表中の検索範囲で,最初に指定と一致した仮想ルートレコードのレコード実現値の子レコードを検索範囲とします。

・基点条件指定ありの場合

 表中の検索範囲で,基点条件で指定されたキー値に対応する仮想ルートレコードのレコード実現値の子レコードを検索範囲とします。

■検索範囲の例(その1)

次の条件下で,レコードの検索をした場合,点線枠内が検索範囲となります。分割条件値が昇順となるA→C→G→Hの順に検索します。

  • 基点条件の指定なし

  • ACSRDAREAオペランドにRDAREA1およびRDAREA3を指定

    [図データ]

■検索範囲の例(その2)

次の条件下で,レコードの検索をした場合,点線枠内が検索範囲となります。分割条件値が,1〜10 → 11〜20 → 31〜40となるように検索します。

  • 基点条件に「DBKEY≧5hi」を指定

  • ACSRDAREAオペランドにRDAREA2を指定

    [図データ]

FETCHDB_ALL ONLY

FETCHDB_ALLコマンドを実行する個別開始の場合に指定します。

このオペランドを指定して個別開始をした場合,FETCHDB_ALLコマンドおよびFINISHコマンド以外のDMLコマンドは実行できません。また,このオペランドを省略した場合,FETCHDB_ALLコマンドを実行できません。

(4) 使用例

■4V FMBのSDBデータベース(FMB1)の参照だけをする場合
 START "FMB1";

次の実行結果が表示されます。

 DIRECTORY CHECK DATE INFORMATION
   PDSDBDEF EXEC DATE              : 2015-12-14 16:20:46.67
   SDB DIRECTORY UPDATE DATE       : 2015-12-14 16:20:49.16
 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 HiRDB SERVER VERSION INFORMATION
   SERVER VERSION                  : 09-60
 KFPB64050-I DINF(GET DATE) command processing completed
 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 START INFORMATION
   SDB DATABASE NAME "FMB1"
   HANDLE NUMBER                   : 1
   ACSMODE                         : READ
   ENQOPT                          : SHARE
   AUTODEQ                         : NO
   RDAREAVAL                       : NO
 KFPB64050-I DINF(GET SDB SUMMARY) command processing completed
 KFPB64050-I DINF(GET SDB DETAIL) command processing completed
 KFPB64050-I START command processing completed
■4V MAMのSDBデータベース(MAB1)のレコードを更新する場合
 START "MAB1"
 NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8
 
      ACSMODE UPDATE
 NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+----8
      ENQOPT EXCLUSIVE;

次の実行結果が表示されます。

 DIRECTORY CHECK DATE INFORMATION
   PDSDBDEF EXEC DATE              : 2015-12-14 16:20:46.67
   SDB DIRECTORY UPDATE DATE       : 2015-12-14 16:20:49.16
 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 HiRDB SERVER VERSION INFORMATION
   SERVER VERSION                  : 09-60
 KFPB64050-I DINF(GET DATE) command processing completed
 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 START INFORMATION
   SDB DATABASE NAME "MAB1"
   HANDLE NUMBER                   : 1
   ACSMODE                         : UPDATE
   ENQOPT                          : EXCLUSIVE
   AUTODEQ                         : NO
   RDAREAVAL                       : NO
 KFPB64050-I DINF(GET SDB SUMMARY) command processing completed
 KFPB64050-I DINF(GET SDB DETAIL) command processing completed
 KFPB64050-I START command processing completed

(5) STARTコマンドの実行時に表示される情報

STARTコマンドを実行した場合に表示される情報について説明します。

(a) SDBディレクトリ情報ファイルの日時情報

STARTコマンドを実行した際(トランザクション内の初回のSTARTコマンド実行時),次に示すSDBディレクトリ情報ファイルの日時情報が表示されます。

 DIRECTORY CHECK DATE INFORMATION
   PDSDBDEF EXEC DATE               : 2015-12-14 16:20:46.67  ...1
   SDB DIRECTORY UPDATE DATE        : 2015-12-14 16:20:49.16  ...2
[説明]
  1. 常用常駐領域中のSDBディレクトリ情報のSDB定義の最終更新日時(pdsdbdefコマンドの実行日時)が表示されます。

  2. 常用常駐領域中のSDBディレクトリ情報の最終更新日時が表示されます。

(b) HiRDBのバージョン情報

STARTコマンドを実行した際(トランザクション内の初回のSTARTコマンド実行時),次に示すHiRDBのバージョン情報が表示されます。

 HiRDB SERVER VERSION INFORMATION
   SERVER VERSION                  : vv-rr-xn
 KFPB64050-I DINF(GET DATE) command processing completed
[説明]

下線部分に接続先のHiRDBのバージョンが表示されます。

(c) 個別開始に関する情報

STARTコマンドを実行した際,次に示す個別開始に関する情報が表示されます。

 START INFORMATION
   SDB DATABASE NAME "FMB1"                ...1
   HANDLE NUMBER              : 1          ...2
   ACSMODE                    : READ       ...3
   ENQOPT                     : SHARE      ...4
   AUTODEQ                    : NO         ...5
   ACSRDAREA                  : "RDAREA1"  ...6
                                "RDAREA2"  ...6
   RDAREAVAL                  : NO         ...7
   FETCHDB_ALL ONLY                        ...8
[説明]
  1. STARTコマンドに指定したSDBデータベース名が表示されます。

  2. ハンドル番号が表示されます。

  3. ACSMODEオペランドの指定値,または省略時解釈値が表示されます。

  4. ENQOPTオペランドの指定値,または省略時解釈値が表示されます。

  5. AUTODEQオペランドの指定値,または省略時解釈値が表示されます。

  6. ACSRDAREAオペランドの指定値が表示されます。ACSRDAREAオペランドが省略されている場合は,この項目は表示されません。

  7. RDAREAVALオペランドの指定値,または省略時解釈値が表示されます。

  8. FETCHDB_ALL ONLYオペランドが指定されている場合に表示されます。FETCHDB_ALL ONLYオペランドが省略されている場合は,この項目は表示されません。

(6) 留意事項

個別開始の実行後,個別終了を実行していない状態で,個別開始を実行することはできません。