Sun Java System Calendar Server 管理ガイド |
第 16 章
削除ログデータベースの管理Calendar Server には、削除された予定や仕事 (作業) を格納するための削除ログデータベース (ics50deletelog.db) が用意されています。従来のリリースでは、Calendar Server は削除された予定や作業をデータベースに維持していませんでした。どのコンポーネントが削除されたのかを特定するには、ユーザーは予定または仕事 (作業) の一意の識別子 (uid) または定期予定 ID (rid) を必ず保存しなければなりません。この制限は、WCAP コマンドを使用してクライアントユーザーインタフェース (UI) を作成するインストールに直接影響しました。
この章で説明する内容は次のとおりです。
削除ログデータベースの作成Calendar Server は、その他の Calendar Server データベースファイルと同様に削除ログデータベース (ics50deletelog.db) を csdb ディレクトリ内に作成します。Calendar Server は、予定と仕事を次のように削除ログデータベースに書き込みます。
繰り返される予定または仕事の個々のインスタンスが削除された場合、Calendar Server は削除された予定または仕事のインスタンスを削除ログデータベース (ics50deletelog.db) に書き込みます。
削除されたコンポーネントが、予定データベースまたは仕事データベースから実際に削除されたかどううかを確認するには、fetch_deletedcomponents WCAP コマンドを使用します。
繰り返される予定または仕事のすべてのインスタンスを削除すると、Calendar Server は予定データベースまたは仕事データベースからマスターコンポーネントを削除し、それを削除ログデータベースに書き込みます。削除ログデータベース内のマスターコンポーネントには、繰り返しパラメータ rrules、rdates、exrules、exdates が含まれます。
削除ログデータベースの照会削除ログデータベースからエントリを返すには、展開モードまたは圧縮モードの fetch_deletedcomponents WCAP コマンドを使用します。
recurring パラメータを 1 に設定すると、fetch_deletedcomponents は繰り返さない予定と、繰り返す予定のマスターコンポーネントを返します。ただし、繰り返される予定の個々のインスタンスは返しません。
繰り返しチェーンのすべてのインスタンスを削除すると、マスターコンポーネントは dtstart、dtend、rrules、rdates、exrules、exdates、uid パラメータを返します。
また fetch_deletedcomponents は、削除された繰り返しインスタンスに関連付けられているアクティブな状態のマスターコンポーネントを返しません。アクティブな状態のマスターコンポーネントを返すには、fetchcomponents_by_lasmod WCAP コマンドを使用します。fetch_deletedcomponents コマンドは、fetchcomponents_by_lasmod コマンドと組み合わせて使用する必要があります。
WCAP コマンドの詳細については、『Sun Java System Calendar Server 6 2004Q2 Developer's Guide』を参照してください。
削除ログデータベースの破棄Calendar Server は、削除ログデータベースの自動破棄と削除ログデータベースの手動破棄の両方をサポートしています。
削除ログデータベースの自動破棄
削除ログデータベースのエントリを Calendar Server に自動破棄させることができます。
表 16-1 は、自動破棄を制御する ics.conf ファイルのパラメータを示しています。
たとえば、削除ログデータベースで 2 日 (172800 秒) 以上が経過したエントリを Calendar Server に自動破棄させるには、表 16-1 のパラメータを次のように設定します。
service.admin.purge.deletelog="yes"
caldb.berkeleydb.purge.deletelog.interval=600
caldb.berkeleydb.purge.deletelog.beforetime=172800パラメータの設定が完了したら、新しい値が適用されるように Calendar Server を再起動します。
削除ログデータベースの手動破棄
削除ログデータベース (ics50deletelog.db) のエントリを手動で削除するには、cspurge ユーティリティを使用します。
cspurge -e endtime -s starttime
endtime と starttime は、対象範囲の開始と終了を世界標準時形式 (GMT または UTC とも呼ばれる) で指定します。
Solaris オペレーティングシステムで cspurge を実行するには、Calendar Server を稼動しているユーザーとグループ (デフォルトでは icsuser と icsgroup)、または root としてログインする必要があります。
たとえば、2003 年 7 月 1 日から 2003 年 7 月 31 日までのエントリを破棄するには、次のように実行します。
cspurge -e 20030731T235959Z -s 20030701T120000Z
詳細については、付録 D 「Calendar Server のコマンド行ユーティリティのリファレンス」の「cspurge」を参照してください。
削除ログデータベース用のコマンド行ユーティリティの使用表 16-2 は、削除ログデータベース (ics50deletelog.db) をサポートする Calendar Server のコマンド行ユーティリティを示しています。
これらのユーティリティの構文など、詳細については付録 D 「Calendar Server のコマンド行ユーティリティのリファレンス」を参照してください。