Sun ONE Calendar Server 6.0 管理者ガイド |
第 7 章
削除ログデータベースの管理Calendar Server 6.0 には、削除されたイベントや仕事 (タスク) を格納するための削除ログデータベース (ics50deletelog.db) が用意されています。従来のリリースでは、Sun ONE 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 ONE Calendar Server 6.0 Programmer's Manual』を参照してください。
削除ログデータベースの破棄Calendar Server 6.0 は、削除ログデータベースの自動破棄と削除ログデータベースの手動破棄の両方をサポートしています。
削除ログデータベースの自動破棄
削除ログデータベースのエントリを Calendar Server 6.0 に自動破棄させることができます。
表 7-1 は、自動破棄を制御する ics.conf ファイルのパラメータを示しています。
たとえば、削除ログデータベースで 2 日 (172800 秒) 以上が経過したエントリを Calendar Server に自動破棄させるには、表 7-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
詳細については、第 11 章「Calendar Server のコマンド行ユーティリティ」の「cspurge」を参照してください。
削除ログデータベース用のコマンド行ユーティリティの使用表 7-2 は、削除ログデータベース (ics50deletelog.db) をサポートする Calendar Server のコマンド行ユーティリティを示しています。
これらのユーティリティの構文など、詳細については第 11 章「Calendar Server のコマンド行ユーティリティ」を参照してください。