データベース・オブジェクトの自動再有効化

自動再有効化 は、実行時にアクセスする際に、無効なデータベース・オブジェクトを自動的に再有効化するためのメカニズムです。

通常、データベース・オブジェクトは 1 つ以上の異なる基本オブジェクトに依存しています。 データベース・オブジェクトが依存している基本オブジェクトの状況に何らかの方法により重要な変更が加えられると (基本オブジェクトが変更されたりドロップされたりする場合など)、従属のデータベース・オブジェクトが無効になります。 無効なデータベース・オブジェクトを再び使用できるようにするには、その前に再有効化する必要があります。 再検証は、 Db2® ソフトウェアが無効な従属オブジェクトの定義を再処理して、オブジェクトがその基本オブジェクトの現在の状態で更新され、無効な従属オブジェクトが使用可能な有効なオブジェクトに戻されるようにするプロセスです。 自動再有効化は、実行時にアクセスされた時に、無効なデータベース・オブジェクトを自動的に再有効化するためのメカニズムです。

一般に、データベース・マネージャーが無効オブジェクトの再有効化を試みるのは、次にそのオブジェクトが使用されるときです。 自動の妥当性再検査は、auto_reval 構成パラメーターを使用して有効にします。 デフォルトでは、この構成パラメーターは DEFERRED に設定されます。ただし、バージョン 9.5 以前からアップグレードされたデータベースの場合は、auto_reval は DISABLED に設定されます。

オブジェクトのドロップ時に影響を受ける従属オブジェクト、およびそれらの従属オブジェクトの再検証時に影響を受ける従属オブジェクトについては、 DROP ステートメントを参照してください。

以下のリストは、自動再有効化が現在サポートされているデータ定義言語 (DDL) ステートメントを示しています。
  • ALTER MODULE DROP FUNCTION
  • ALTER MODULE DROP PROCEDURE
  • ALTER MODULE DROP TYPE
  • ALTER MODULE DROP VARIABLE
  • ALTER NICKNAME (ローカル名またはローカル・タイプの変更)
  • ALTER TABLE ALTER COLUMN
  • ALTER TABLE DROP COLUMN
  • ALTER TABLE RENAME COLUMN
  • CREATE OR REPLACE ALIAS
  • CREATE OR REPLACE FUNCTION
  • CREATE OR REPLACE NICKNAME
  • CREATE OR REPLACE PROCEDURE
  • CREATE OR REPLACE SEQUENCE
  • CREATE OR REPLACE TRIGGER
  • CREATE OR REPLACE VARIABLE
  • CREATE OR REPLACE VIEW
  • DROP FUNCTION
  • DROP NICKNAME
  • DROP PROCEDURE
  • DROP SEQUENCE
  • DROP TABLE
  • DROP TRIGGER
  • DROP TYPE
  • DROP VARIABLE
  • DROP VIEW
  • RENAME TABLE

将来のアクセスに対するオブジェクトの再有効化の影響を減らすために、オブジェクトの無効化が発生する原因となる変更への対処を終了したら、SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS プロシージャーを実行して影響を受ける無効なオブジェクトを再有効化し、db2rbind コマンドを実行して無効パッケージを再有効化することを強くお勧めします。

重要: ソース派生ルーチン、外部 Java ルーチン、および外部 C ルーチンの自動再検証はサポートされていません。 これらのタイプのルーチンが無効になった場合は、いったんドロップしてから再作成する必要があります。