Hitachi

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


13.3.2 unload文

unload文には,アンロード処理に関する情報を指定します。

指定形式

 unload
 
      record = レコード型名
 
    〔server = バックエンドサーバ名〕
 
    〔area = アンロード対象のRDエリア名〕
 
      unldfile = アンロードデータファイル名
 
    〔unldinf = アンロードの実行結果ファイル名〕
 
      prefix = プリフィクス部の長さ
 
      unldkind = {lod|lod_4v}
 
    〔afmtype = {type1|type2}〕
record = レコード型名

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

アンロードを実行するレコードのレコード型名を指定します。SDBデータベース定義のRECORD句に指定したレコード型名を指定します。

4V FMBまたはSD FMBのSDBデータベースの場合は,ルートレコードのレコード型名を指定してください。4V AFMのSDBデータベースの場合は,仮想ルートレコードのレコード型名を指定してください。

server = バックエンドサーバ名

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

アンロード対象のレコードを格納しているRDエリアを管理しているバックエンドサーバの名称を指定します。

英大文字と英小文字の指定が区別されます。

このオペランドの指定は省略することができます。

area = アンロード対象のRDエリア名

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

SDBデータベースが横分割されている場合,アンロード対象のRDエリアを指定します。SDBデータベースが横分割されている場合,RDエリア単位にアンロードを実行する必要があるため,このオペランドを必ず指定してください。

例えば,次に示すようにSDBデータベースが横分割されている場合,このオペランドにRDAREA01を指定すると,RDAREA01に格納されているレコードがアンロード対象になります。

[図データ]

《インナレプリカ機能使用時の注意事項》

レプリカRDエリアに対してアンロードを実行する場合,このオペランドにはオリジナルRDエリア名を指定してください。そして,environment文のgenerationオペランドに,処理対象RDエリアの世代番号を指定してください。

unldfile = アンロードデータファイル名

〜<パス名>((1〜1,023バイト))

アンロードデータファイル名を絶対パスで指定します。アンロードデータファイルは,アンロード対象のSDBデータベースがあるサーバマシンに作成されます。そのサーバマシンのパス名を指定します。

《注意事項》

  • このオペランドに指定するファイルのディレクトリは事前に作成しておいてください。また,作成したディレクトリの実行権限,読み込み権限,および書き込み権限をHiRDB管理者に対して付与してください。ディレクトリがない場合,または権限がない場合は,pdsdbrogコマンドがエラーになります。

  • 不正なアンロードデータファイル名を指定した場合,リターンコード12でpdsdbrogコマンドが異常終了することがあります。

  • このオペランドに指定したファイルがすでに存在する場合は一度削除してから再作成されます。削除処理はファイルのオープン前に実行するため,パス名が不正な場合などは削除処理(システムコール:unlink関数)がエラーとなり,pdsdbrogコマンドが異常終了することがあります。

    参考

    アンロードデータファイルの入出力時に使用されるバッファ長は,システム定義のpd_utl_file_buff_sizeオペランドの値が適用されます。

unldinf = アンロードの実行結果ファイル名

〜<パス名>((1〜1,023バイト))

アンロードが完了すると,アンロードの実行結果が実行結果ファイルに出力されます。このオペランドには,実行結果ファイルの名称を絶対パスで指定します。実行結果ファイルは,処理対象RDエリアがあるサーバマシンに作成されます。

このオペランドを省略した場合,次に示すどれかのディレクトリ下に実行結果ファイルが作成されます(優先順位は1の指定がいちばん上位です)。

  1. システム定義のpd_tmp_directoryオペランドに指定したディレクトリ

  2. 環境変数TMPDIRに指定したディレクトリ

  3. /tmpディレクトリ

実行結果ファイルの名称はSDBROG-xxxxxxxxxになります。xxxxxxxxxは,ファイル作成時間,プロセスIDなどが含まれた文字列になります。作成されたファイルの名称はKFPB63032-Iメッセージで確認できます。

《注意事項》

  • このオペランドに指定するファイルのディレクトリは事前に作成しておいてください。また,作成したディレクトリの実行権限,読み込み権限,および書き込み権限をHiRDB管理者に対して付与してください。ディレクトリがない場合,または権限がない場合は,pdsdbrogコマンドがエラーになります。

  • このオペランドに指定したファイルがすでに存在する場合,そのファイルは上書きされます。

実行結果ファイルに出力される情報については,「13.7 アンロードの実行結果ファイルの出力形式」を参照してください。

prefix = プリフィクス部の長さ

〜<符号なし整数>((0〜32,767))(単位:バイト)

アンロードデータファイルに出力するレコードのプリフィクス部の長さをバイト単位で指定します。次に示すどれかに該当する場合には,このオペランドに1以上の値を指定してください。

  • アンロードデータファイルを入力データファイルとしてデータロードするときに,USERポインタフラグを引き継ぐ場合※1

  • アンロードデータファイルを入力データファイルとしてデータロードするときに,事前割り当てページ数を引き継ぐ場合※2

  • アンロードデータファイルを入力データファイルとしてデータロードするときに,ページ切り替えフラグを設定する場合※3

注※1

pdsdblodによるデータロード,またはレコードの格納(STORE)によるデータ格納時に設定したUSERポインタフラグを,データベースの再編成後の4V FMBのSDBデータベースに引き継ぐ場合は,dbinf文のuserpflgオペランドを必ず指定してください。

dbinf文のuserpflgオペランドの指定を省略するとUSERポインタフラグを設定しない状態でリロードされます。

注※2

pdsdblodによるデータロード,またはレコードの格納(STORE)によるデータ格納時に設定した事前割り当てページ数を,データベースの再編成後の4V FMBのSDBデータベースに引き継ぐ場合は,dbinf文のpagenumオペランドを必ず指定してください。

dbinf文のpagenumオペランドの指定を省略すると事前割り当てページを確保しない状態でリロードされます。

注※3

ページ切り替えフラグはアンロードの対象になりません。アンロードデータファイル中のプリフィクス部にページ切り替えフラグを設定する領域が用意されるだけです。

このため,データロード時にページ切り替えによる格納配置制御をする場合は当該領域を編集する必要があります。

対処方法の詳細については,「13.8 ページ切り替えフラグの扱い【4V FMB,4V AFM】」を参照してください。

アンロードデータファイルを入力データファイルとしてデータロードする場合,このオペランドで指定するプリフィクス長と,pdsdblod制御文のload文のprefixオペランドで指定するプリフィクス長を同じにする必要があります。プリフィクス長が異なると,データロードができません。

ページ切り替えフラグの設定の詳細については,「13.8 ページ切り替えフラグの扱い【4V FMB,4V AFM】」を参照してください。

《注意事項》

  • プリフィクス部が必要ない場合は0を指定してください。

  • unldkindオペランドにlod_4vを指定した場合は,このオペランドに94を指定してください。

  • プリフィクス部については,「12.6.1(3) プリフィクス部【4V FMB,4V AFM】」を参照してください。ここで説明しているL1の値をこのオペランドに指定します。

    参考

    このオペランドに1以上を指定した場合,アンロードデータファイル中のプリフィクス部は0(ゼロ)で初期化されます。

unldkind ={lod|lod_4v}

アンロードデータファイルの種類を指定します。このオペランドの指定によって,アンロードデータファイルのプリフィクス部に出力される情報が決まります。アンロードデータファイルの使用目的に従って,このオペランドを指定してください。

lod:

アンロードデータファイルをデータロードの入力データファイルとして使用する場合(UAPの入力情報として使用しない場合)に指定します。

lod_4v:

アンロードデータファイルをUAPの入力情報として使用する場合に指定します。この場合,プリフィクス部にはTMS-4V/SP情報が出力されます。出力されるTMS-4V/SP情報については,「13.6.3 プリフィクス部の出力形式(unldkindオペランドにlod_4vを指定した場合)【4V FMB,4V AFM】」を参照してください。

なお,4V DAMのSDBデータベースをアンロードする場合は,TMS-4V/SP情報の出力形式を,このオペランドの次に説明するafmtypeオペランドで指定できます。

また,作成されたアンロードデータファイルは,データロードの入力データファイルとしても使用できます。

注意事項

SD FMBのSDBデータベースの場合,lod_4vは指定できません。

《注意事項》

このオペランドにlod_4vを指定する場合の注意事項を次に示します。

  • prefixオペランドには,必ず94を指定してください。

  • dbinf文のuserpflgオペランドを指定する場合は,必ず77を指定してください。

  • dbinf文のpagenumオペランドは指定できません。

  • 4V FMBのSDBデータベースのレコードをアンロードする場合,次に示す制限があります。

    ・ルートレコード型で指定したデータベースキー(SDBデータベース定義のTYPE句のデータ種別1にKを指定した構成要素の合計長)が36バイト以下であること

    ・RDエリア分割キーが4バイト以下であること

    ・レコード型名が8バイト以下であること

    上記の制限値を超えた場合,pdsdbrogコマンドがエラーになります。

  • 4V AFMのSDBデータベースのレコードをアンロードする場合,次に示す制限があります。

    ・SDBデータベース名が4バイト以下であること(5バイト以降は切り捨てられます)

    ・afmtypeオペランドにtype2を指定した場合,レコード型名が8バイト以下であること(ただし,仮想ルートレコード型名を除く)

    ・データベースキーが32バイト以下であること

    注※ この制限値を超えた場合,pdsdbrogコマンドがエラーになります。

afmtype ={type1|type2}

4V DAMのSDBデータベースのレコードをアンロードする場合に,アンロードデータファイルのプリフィクス部に出力するTMS-4V/SP情報の出力形式を指定します。出力形式の詳細については,「13.6.3 プリフィクス部の出力形式(unldkindオペランドにlod_4vを指定した場合)【4V FMB,4V AFM】」を参照してください。

type1:

TMS-4V/SP情報にSDBデータベース名を出力する形式を選択する場合に指定します。

type2:

TMS-4V/SP情報にレコード型名を出力する形式を選択する場合に指定します。

《前提条件》

  • このオペランドは,4V DAMのSDBデータベースのレコードをアンロードする場合に指定します。4V FMBまたはSD FMBのSDBデータベースをアンロードする場合は,このオペランドを指定できません。

  • unldkindオペランドにlod_4vを指定している必要があります。

《注意事項》

  • 4V FMBまたはSD FMBのSDBデータベースをアンロードする場合にこのオペランドを指定すると,pdsdbrogコマンドがエラーになります。

  • 4V MAM,4V TAM,または4V SAMのSDBデータベースをアンロードする場合にこのオペランドにtype2を指定すると,pdsdbrogコマンドがエラーになります。4V MAM,4V TAM,および4V SAMのSDBデータベースの場合は,TMS-4V/SP情報はtype1の形式で出力されます。

    参考

    TMS-4V/SPでtype2に相当するデータベースとは,次に示す2つの条件を満たすデータベースです。

    • 動的割り当て型の4V DAMのSDBデータベースである。

    • セグメントレベルキーの定義がない。