全体の使用上の注意
CHECKPOINTで指定したテーブルにジャーナル イメージが書き込まれるすべてのデータ テーブルに対してREADロックが設定されます。このロックのため、チェックポイント操作が終了するまで新しいトランザクションは開始することができません。さらに、更新トランザクションが終了してからチェックポイント操作が行なわれます。
この動作によりジャーナルに保存されるチェックポイントが、トランザクションのない時点を正確に表わすことができます。チェックポイント操作が終了すると、ロックが解除されます。
各チェックポイント登録項には、システムによってイベント番号が割り当てられます。 さらに、この番号はCHECKPOINTリクエスト処理の結果として返されます。この番号はリクエストの実行に関する他の情報とともに、データ ディクショナリ テーブルに格納されます。このテーブルのデータは、DBC.EventsVシステム ビューから見直すことができます。
明示的なトランザクションまたは複文リクエストにCHECKPOINTリクエストが入っている場合、そのCHECKPOINTリクエストは、トランザクションまたはリクエスト内のどのINSERT、UPDATE、またはDELETEリクエストよりも前になければなりません。
ストアド プロシージャと埋め込みSQLの使用上の注意
- ストアド プロシージャと埋め込みSQLのCHECKPOINTはデータを返すリクエストです。
- CHECKPOINTはデータを返すリクエストですが、選択カーソルと関連付けることはできません。
- checkpoint_labelまたはlabel_host_variableのどちらとして指定するにしても、チェックポイント ラベルは有効なSQL識別子でなければなりません。
- label_host_variableを指定する場合は、クライアント言語のSQL文字列のルールに従ってホスト変数を指定しなければなりません。また、ホスト変数の先頭にコロンを付ける必要があります。詳細については、<SQLストアド プロシージャおよび埋め込みSQL>を参照してください。
- host_variable_nameによって識別されるメイン ホスト変数は、INTEGERに準拠した型でなければなりません。
- CHECKPOINTを動的SQL文として実行することはできません。
CHECKPOINTを実行すると、同期ポイントが生成され、table_nameで指定したジャーナル テーブルに記録されます。
NAMED句を指定した場合は、チェックポイント ラベルが同期ポイントと関連付けられます。同期ポイントを固有に識別する32ビット整数が、ホスト変数指定で定義したメイン ホスト変数内に返されます。
Preprocessor2に対してTRANSACT(2PC) オプションを指定した場合は、CHECKPOINTが無効になります。