中断したロード操作の再始動

ロード操作中に失敗や中断が発生した場合は、ロード・ユーティリティーを使用して操作を終了するか、表を再ロードするか、またはロード操作を再始動することができます。

実在しないデータ・ファイルや無効な列名などのユーザー・エラーが原因でロード・ユーティリティーを開始することすらできない場合、その操作はターゲット表を通常の状態にしたまま終了します。

ロード操作を開始すると、ターゲット表の状態は「ロード進行中」になります。 操作が失敗すると表の状態は「ロード・ペンディング」に変わります。 表のこの状態を解除するには、LOAD TERMINATE を発行して操作をロールバックするか、LOAD REPLACE を発行して表全体を再ロードするか、または LOAD RESTART を発行することができます。

一般的に、この状態における最良の選択はロード操作を再始動することです。 ロード・ユーティリティーはロード操作を最初からではなく、その進行内の最後に正常に到達した点から再開するので、この選択は時間の節約になります。 操作を再開する正確な場所は、元のコマンドで指定されたパラメーターによって異なります。 SAVECOUNT オプションが指定されており、前回のロード操作が失敗した場所がロード・フェーズである場合、ロード操作は到達した最後の整合点から再開します。 上記以外の場合、ロード操作は正常に到達した最後のフェーズ (ロード、構築、または削除フェーズ) の最初から再開します。

XML 文書をロードしている場合は、動作が若干異なります。 SAVECOUNT オプションは XML データのロードではサポートされていないため、ロード・フェーズ中に失敗したロード操作は、操作の最初から再開します。 他のデータ・タイプと同様に、構築フェーズ中にロードが失敗した場合、REBUILD モードでは索引が構築されるので、各行からすべての索引キーを取り出すために表がスキャンされます。しかし、各 XML 文書も索引キーを選択するためにスキャンされる必要があります。 キーのために XML 文書をスキャンするこの処理には、文書を再び構文解析することが必要ですが、これはコストのかかる操作になります。 さらに、内部の XML 索引 (領域の索引やパスの索引など) が、最初に再構築される必要があります。これには、XDA オブジェクトのスキャンも必要です。

ロード操作の失敗の原因となった状況を修正した後、ロード・コマンドを再発行します。 元のコマンドと同じパラメーターを正確に指定することにより、必要な一時ファイルをロード・ユーティリティーが見つけられるようにしてください。 この例外は、読み取りアクセスを許可しない場合です。 ALLOW READ ACCESS オプションを指定したロード操作は、ALLOW NO ACCESS オプションとして再開することも可能です。

注: ロード・ユーティリティーによって作成された一時ファイルを削除したり変更したりしないでください。
以下のコマンドの実行によりロード操作が発生し、そのロード操作が失敗したとします。
LOAD FROM file_name OF file_type  	
SAVECOUNT n 
MESSAGES message_file  
load_method 
INTO target_tablename
この場合、指定したロード・メソッド (load_method) を RESTART メソッドで置き換えることによってこれを再開します。
LOAD FROM file_name OF file_type  	
SAVECOUNT n 
MESSAGES message_file  
RESTART
INTO target_tablename

失敗したロードのうち、再開できないもの

操作に関連した表の状態が「ロード再始動不可」になっている場合は、失敗または中断されたロード操作を再開することができません。 表がその状態になるのには、以下の理由があります。
  • 正常に再開または終了されなかった失敗ロード操作の後ロールフォワード操作が実行された
  • 表の状態が「ロード進行中」または「ロード・ペンディング」になっている間に行われたオンライン・バックアップからリストア操作が実行された
LOAD TERMINATE コマンドまたは LOAD REPLACE コマンドのいずれかを発行する必要があります。

失敗したロードの制約

BACKUP DATABASE コマンドは、LOAD コマンドが SMS 表スペースの表で失敗し、その表の状態が「ロード・ペンディング」のままになると、入出力エラーを戻すことがあります。

表が「ロード・ペンディング」状態の場合、表データは整合していないことがあります。 表データに矛盾があると、 BACKUP DATABASE コマンドが失敗します。 その表は、その後に LOAD TERMINATELOAD RESTARTLOAD REPLACE のいずれかのコマンドが完了するまでは不整合なままになります。

データベースをバックアップする前に、表が「ロード・ペンディング」でない状態にする必要があります。