Jisktod
機能
障害が発生したISAMファイルのキーファイルから,有効なレコードをできる限り抽出し,順編成ファイルに回復します。また,このコマンドは,回復するISAMファイルに排他モードでロックをかけます。回復するISAMファイルにアクセスしている場合は,このコマンドを実行する前に必ずアクセスしていない状態にしてください。
ISAMファイルの以下に示す論理構造を検証し,キーファイルで管理している有効レコードを順編成ファイルへ出力します。
-
定義ファイルの論理構造
-
データファイルのサイズとレコードの論理構造
-
キーファイルの論理構造とデータファイルとの整合性
論理構造を検証した結果,不正を検出した場合は,指定されたメッセージ出力レベルに応じて,詳細なメッセージを出力します。致命的な不正を検出した場合は,コマンドは異常終了し,順編成ファイルは作成されません。ただし,不正の内容によっては,できる限り有効レコードを抽出します。
レコードを抽出するとき,レコード種別,およびレコード長は,キー定義ファイルに基づいて決定されます。そのため,キー定義ファイルが破壊されている場合は,レコードを抽出できません。
出力された順編成ファイルは,既存のファイルの変換コマンド(Jisconv)で,ISAMファイルに変換できます。変換先のレコード種別,およびレコード長は,順編成ファイルと同じにしてください。
形式
Windowsの場合
Jisktod [-k キー項目名] [-l メッセージの出力レベル] [-b バッファサイズ] [-d ワークフォルダ名] 抽出対象のISAMファイル名 順編成ファイル名 Jisktod -c [-k キー項目名] [-l メッセージの出力レベル] [-b バッファサイズ] [-d ワークフォルダ名] 検証対象のISAMファイル名
UNIXの場合
Jisktod [-k キー項目名] [-l メッセージの出力レベル] [-b バッファサイズ] [-T ワークディレクトリ名] 抽出対象のISAMファイル名 順編成ファイル名 Jisktod -c [-k キー項目名] [-l メッセージの出力レベル] [-b バッファサイズ] [-T ワークディレクトリ名] 検証対象のISAMファイル名
実行権限
Windowsの場合:Administrators権限(WindowsのUAC機能が有効な場合は管理者コンソールから実行)
UNIXの場合:スーパーユーザー権限またはJP1/Base管理者権限
格納先ディレクトリ
- Windowsの場合
-
インストール先フォルダ\bin\
- UNIXの場合
-
/opt/jp1base/bin/
引数
-c
ISAMファイルの論理構造の検証だけを実行したい場合に指定します。指定したISAMファイルの各キーファイルからレコードが抽出できるかどうかを検証します。ISAMファイルの論理構造を検証した結果,各キーファイルから抽出できるレコード件数やエラーの内容を標準エラー出力にメッセージを出力します。
このオプションを指定する場合は,検証したいISAMファイル名を指定してください。
このオプションを省略した場合は,ISAMファイルの論理構造の検証を実行したあとに有効なレコードをできる限り抽出し,順編成ファイルに回復します。このオプションを省略する場合は,有効レコードを抽出するISAMファイル名と,抽出した有効レコードを出力する順編成ファイル名を指定してください。
-kオプションを指定した場合は,検証したいキーファイルを特定できます。
-kオプションを省略した場合は,キー定義ファイルに定義されているすべてのキーファイルを検証します。対象のキーファイルが存在しない場合は,検証処理をスキップし,次のキーファイルの検証処理を実行します。
-k キー項目名
キー項目名は,キー定義情報の表示コマンド(Jisinfo)で表示されるキーファイル情報のキー項目名を指定します。
-cオプションを指定する場合(ISAMファイルの論理構造を検証したい場合)は,検証したいキーファイルのキー項目名を指定します。-cオプションを指定し,-kオプションを省略した場合,キー定義ファイルに定義されているすべてのキーファイルを検証します。
-cオプションを省略する場合(ISAMファイルから有効レコードを抽出したい場合)は,有効レコードを抽出するキーファイルのキー項目名を指定します。-cおよび-kオプションを省略した場合は,キー定義情報の表示コマンド(Jisinfo)で表示されるキーファイル情報の最初のキー項目名のキーファイルに対して,有効レコードが抽出されます。
-l メッセージの出力レベル
エラーの内容を示す詳細メッセージを標準エラー出力に出力するかどうかを指定します。指定できる値は0または1です。1を指定した場合は,詳細メッセージを含めすべてのメッセージを標準エラー出力に出力します。省略した場合は,0が設定されます。
-b バッファサイズ(MB)
ファイル入出力に使用するバッファサイズを指定します。指定できる値は0〜256(メガバイト)です。0を指定した場合はバッファを確保しません。省略した場合は,16が設定されます。
-d ワークフォルダ名
キーファイルから有効レコードを取り出しソートするために,ワークファイルを使用します。そのため,ワークファイルを作成するフォルダを指定します。このオプションを省略した場合は,環境変数のtemp,tmpで指定されたフォルダ,またはカレントフォルダを使用します。なお,このオプションはWindowsだけで使用できます。
-T ワークディレクトリ名
キーファイルから有効レコードを取り出しソートするために,ワークファイルを使用します。そのため,ワークファイルを作成するディレクトリを指定します。このオプションを省略した場合は,/tmpまたは/usr/tmpを使用します。なお,このオプションはUNIXだけで使用できます。
抽出対象のISAMファイル名
-cオプションを省略した場合に指定できます。キーファイルから有効レコードを抽出するISAMファイル名を指定します。ドライブ名およびディレクトリ名を省略した場合は,カレントドライブおよびカレントディレクトリが仮定されます。スペースを含むファイル名を指定する場合は,ダブルクォーテーションマーク(")で囲みます。
また,ファイル名の後ろに定義ファイルの拡張子※を指定した場合,指定した拡張子を取り除いた名前をISAMファイル名と仮定します。定義ファイルの拡張子※以外を指定した場合は,拡張子を含めた名前をISAMファイル名と仮定します。
- 注※
-
Windowsの場合:半角大小文字の「.KDF」
UNIXの場合:半角大文字の「.DEF」
順編成ファイル名
-cオプションを省略した場合に指定できます。抽出対象のISAMファイルで指定したISAMファイルから抽出した有効レコードを出力する順編成ファイル名を指定します。すでに存在するファイル名を指定した場合は,上書きされます。
ドライブ名およびディレクトリ名を省略した場合は,カレントドライブおよびカレントディレクトリが仮定されます。スペースを含むファイル名を指定する場合は,ダブルクォーテーションマーク(")で囲みます。
また,ISAMファイルの拡張子※は指定できません。
- 注※
-
Windowsの場合:半角の大文字または小文字の「.KDF」「.DRF」「.K01〜.K99」
UNIXの場合:半角大文字の「.DEF」「.DAT」「.K01〜.K99」
検証対象のISAMファイル名
-cオプションを指定した場合に指定できます。論理構造を検証するISAMファイル名を指定します。ドライブ名およびディレクトリ名を省略した場合は,カレントドライブおよびカレントディレクトリが仮定されます。スペースを含むファイル名を指定する場合は,ダブルクォーテーションマーク(")で囲みます。
また,ファイル名の後ろに定義ファイルの拡張子※を指定した場合,指定した拡張子を取り除いた名前をISAMファイル名と仮定します。定義ファイルの拡張子※以外を指定した場合は,拡張子を含めた名前をISAMファイル名と仮定します。
- 注※
-
Windowsの場合:半角の大文字または小文字の「.KDF」
UNIXの場合:半角大文字の「.DEF」
注意事項
-
-cオプションを省略した場合,ファイル入出力に使用するバッファは2面使用されます。したがって,-bオプションに指定した値の2倍のバッファサイズが確保されます。
-
複数のキーファイルを持つISAMファイルのうち,どれか1個でも論理構造が確保されていないキーファイルが存在すると,ファイルの変換コマンド(Jisconv)でISAMファイルに変換できないことがあります。
戻り値
0 |
正常終了 |
1 |
抽出できないレコードが存在する |
2 |
一部整合性が確保されていないが,抽出できるレコードが存在する |
3 |
引数誤り,ファイル不正,システムエラー,内部矛盾,排他エラー |
使用例
ISAMファイル(ISAMFILE)から順編成ファイル(SAMFILE)に有効レコードを抽出する例を次に示します。
-
1個のISAMファイルから順編成ファイルに抽出する例
>Jisktod ISAMFILE SAMFILE KAIU347-I 索引順編成ファイルのデータファイル検証を開始します。 ISAMファイル名 : ISAMFILE KAIU348-I 索引順編成ファイルのデータファイル検証を終了します。 ISAMファイル名 : ISAMFILE KAIU321-I 索引順編成ファイルの抽出を開始します。 キー項目名 : K01 ISAMファイル名 : ISAMFILE 出力ファイル : SAMFILE KAIU323-I 正常にキーファイルからレコードを抽出しました。 キー項目名 : K01 抽出件数 : 101 登録件数 : 101 ISAMファイル名 : ISAMFILE 出力ファイル : SAMFILE
-
2個のキーファイル(キー項目名:K01とK02)を持つISAMファイルから順編成ファイルに抽出する例
1. 各キーファイルに対してキーファイルの論理構造を検証します。
>Jisktod -c -l 1 ISAMFILE KAIU347-I 索引順編成ファイルのデータファイル検証を開始します。 ISAMファイル名 : ISAMFILE KAIU348-I 索引順編成ファイルのデータファイル検証を終了します。 ISAMファイル名 : ISAMFILE KAIU322-I 索引順編成ファイルのキーファイル検証を開始します。 キー項目名 : K01 ISAMファイル名 : ISAMFILE KAIU333-W リーフページとレコードのキーが一致していません。 キー項目名: K01 ISAMファイル名: ISAMFILE オフセット: 0x00000000 KAIU342-W 定義ファイルとキーファイルのレコード件数が一致しません。 キー項目名 : K01 有効レコード件数: 100 登録件数 : 101 ISAMファイル名 : ISAMFILE KAIU340-W キーファイルから管理されていないレコードが存在します。 キー項目名 : K01 ISAMファイル名 : ISAMFILE オフセット : 0x00000000 KAIU328-W キーファイルは一部整合性が確保できていません。 キー項目名 : K01 抽出可能件数 : 100 登録件数 : 101 ISAMファイル名 : ISAMFILE KAIU322-I 索引順編成ファイルのキーファイル検証を開始します。 キー項目名 : K02 ISAMファイル名 : ISAMFILE KAIU324-I キーファイルは正常な状態です。 キー項目名 : K02 抽出可能件数 : 101 登録件数 : 101 ISAMファイル名 : ISAMFILE
2. 手順1で検証した結果,正常なキーファイル(キー項目名:K02)を使用して,レコードを抽出します。
>Jisktod -k K02 ISAMFILE SAMFILE KAIU347-I 索引順編成ファイルのデータファイル検証を開始します。 ISAMファイル名 : ISAMFILE KAIU348-I 索引順編成ファイルのデータファイル検証を終了します。 ISAMファイル名 : ISAMFILE KAIU321-I 索引順編成ファイルの抽出を開始します。 キー項目名 : K02 ISAMファイル名 : ISAMFILE 出力ファイル : SAMFILE KAIU323-I 正常にキーファイルからレコードを抽出しました。 キー項目名 : K02 抽出件数 : 101 登録件数 : 101 ISAMファイル名 : ISAMFILE 出力ファイル : SAMFILE