カテゴリの削除を行ったときのトラブル、および対処方法について説明します。
カテゴリの削除を行うと、ddsdefコマンドが条件付き正常終了した。
資源管理ログファイルに以下のログが出力されているか確認します。
ddx00017-e ([プロセスID]) 資源管理情報の操作に失敗しました。(SQL種別=PREPARE SQLSTATE=71600 SQLMSG=JYP3913E 表“[テーブル名]”を他の利用者が占有しています.) ddh00003-e ([プロセスID]) 資源管理情報の操作に失敗しました。(テーブル名= [テーブル名])
このログが出力されている場合、資源管理上カテゴリの定義は削除されていますが、管理用の領域が削除できずに残っています。
データの抽出を行ったことのあるカテゴリを削除する場合、事前に資源管理常駐プロセスを再起動させる必要があります。
再起動しなかった場合、資源管理は管理用の領域を削除できません。
カテゴリの削除に失敗した場合、利用者が管理用の領域を削除します。
なおカテゴリ削除に失敗した場合もカテゴリ定義のバージョンが上がるため、トラブルが発生したカテゴリ定義ファイルを再度実行することはできません。
出力されたログの内容から、管理用の領域を削除するための定義ファイルを作成します。
定義ファイルの書式を以下に示します。
DROP TABLE DCSCH.[ddh00003-eのメッセージで確認したテーブル名] CASCADE;
定義ファイルを作成後、資源管理常駐プロセス(dcdaemon)を再起動してください。
資源管理常駐プロセスの再起動後、rdbddlexコマンドにより管理用の領域を削除します。
rdbddlex -d INFOSTORAGEDB [削除用定義ファイル(絶対パス)]