auto_reval - 自動再有効化および無効化構成パラメーター
この構成パラメーターは、再有効化および無効化セマンティクスを制御します。
- 構成タイプ
- データベース
- パラメーター・タイプ
- オンラインで構成可能
- Db2® pureScale® 環境のメンバーにより構成可能
- 伝搬クラス
- 即時
- デフォルト [範囲]
- DEFERRED [IMMEDIATE、 DISABLED、 DEFERRED、 DEFERRED_FORCE]
この構成パラメーターは動的であり、その値の変更は即時に有効になります。 変更を有効にするためにデータベースに再接続する必要はありません。
新規データベースを作成した場合、デフォルトでは、この構成パラメーターは DEFERRED に設定されます。
バージョン 9.5 以前のデータベースをアップグレードした場合、auto_reval は DISABLED に設定されます。 再有効化の動作は、以前のリリースと同じです。
このパラメーターを IMMEDIATE に設定した場合、すべての従属オブジェクトはオブジェクトが無効化された直後に再有効化されることになります。 これは、ALTER TABLE、ALTER COLUMN、または CREATE OR REPLACE などのいくつかの DDL ステートメントに適用されます。 従属オブジェクトの再有効化を行うための DDL の変更を他に一切必要としないので、再有効化を即座に完了できます。
このパラメーターを DEFERRED に設定した場合、すべての従属オブジェクトは次回アクセスされたときに再有効化されることになります。 将来のアクセスに対するオブジェクトの再有効化の影響を減らすために、オブジェクトの無効化が発生する原因となる変更への対処を終了したら、SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS プロシージャーを実行して影響を受ける無効なオブジェクトを再有効化し、db2rbind コマンドを実行して無効パッケージを再有効化することを強くお勧めします。
このパラメーターを IMMEDIATE または DEFERRED のどちらかに設定した場合、再有効化操作が失敗すると、無効な従属オブジェクトは次回アクセスされるまで無効のままになります。
このパラメーターを DEFERRED_FORCE に設定した場合は、DEFERRED に設定したときと同じ動作になるとともに、エラー・フィーチャーを備えた CREATE がさらに使用可能になります。
場合によっては、明示的に指定した構文が auto_reval の設定をオーバーライドすることもあります。 例えば、ALTER TABLE ステートメントの DROP COLUMN 節を CASCADE も RESTRICT も指定せずに使用した場合、セマンティクスは auto_reval によって制御されます。 一方 CASCADE または RESTRICT を指定した場合は、それまでのカスケードまたは制限セマンティクスが使用され、auto_reval によって指定される新しいセマンティクスをオーバーライドします。
ビューへの同時アクセスによって無効なビューの自動再検証がトリガーされると、デッドロックが発生する可能性があります。 デッドロックが発生した場合は、ビューを手動で再検証することをお勧めします。