Calendar Server には、削除された予定や仕事 (作業) を格納するための削除ログデータベース (ics50deletelog.db) が用意されています。
初期のリリースでは、Calendar Server は削除された予定や作業をデータベースに維持していませんでした。どのコンポーネントが削除されたのかを特定するには、ユーザーは予定または仕事 (作業) の一意の識別子 (uid) または定期予定 ID (rid) を必ず保存しなければなりません。この制限は、WCAP コマンドを使用してクライアントユーザーインタフェース (UI) を作成するインストールに直接影響しました。この制限を解決するため、削除ログデータベースが作成されました。
この章で説明する内容は次のとおりです。
Calendar Server は、その他の Calendar Server データベースファイルと同様に削除ログデータベース (ics50deletelog.db) を csdb ディレクトリ内に自動的に作成します。Calendar Server は、予定と仕事を次のように削除ログデータベースに書き込みます。
繰り返されない予定と仕事
繰り返されない予定または仕事を削除すると、Calendar Server はそれを予定データベース (ics50events.db) または仕事データベース (ics50todos.db) から消去し、削除ログデータベース (ics50deletelog.db) に書き込みます。
定期的な予定と仕事
定期的な予定または仕事の個々のインスタンスが削除された場合、Calendar Server は削除された予定または仕事のインスタンスを削除ログデータベース (ics50deletelog.db) に書き込みます。
定期的な予定または仕事のすべてのインスタンスを削除すると、Calendar Server は予定データベースまたは仕事データベースからマスターコンポーネントを削除し、それを削除ログデータベースに書き込みます。削除ログデータベース内のマスターコンポーネントには、繰り返しパラメータ rrules、rdates、exrules、exdates が含まれます。
削除ログデータベースからエントリを返すには、展開モードまたは圧縮モードの fetch_deletedcomponents WCAP コマンドを使用します。
展開モード (recurring = 0)
recurring パラメータが 0 の場合、fetch_deletedcomponents は、条件と一致する定期的な予定のすべてのインスタンスを返しますが、定期的な予定のマスターコンポーネントは返しません。
圧縮モード (recurring = 1)
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 2005Q4 Developer’s Guide』を参照してください。
Calendar Server は、「削除ログデータベースの自動破棄」と 「削除ログデータベースの手動破棄」の両方をサポートしています。
削除ログデータベースのエントリを Calendar Server に自動破棄させることができます。
次の表は、自動破棄を制御する ics.conf ファイルのパラメータを示しています。
表 18–1 削除ログデータベースの自動破棄に適用される設定パラメータ
パラメータ |
説明 |
---|---|
削除ログデータベース (ics50deletelog.db) エントリの自動破棄を有効化 (yes) または無効化 (no) します。 デフォルトは "no" です。 |
|
削除ログデータベース (ics50deletelog.db) のエントリを自動的に破棄する間隔を秒単位で指定します。 デフォルトは 60 秒です。 |
|
削除ログデータベース (ics50deletelog.db) から自動的に破棄するエントリの存続時間を秒単位で指定します。 デフォルトは 86400 秒 (1 日) です。 |
たとえば、5 分 (600 秒) おきに、2 日 (172800 秒) を経過した削除ログデータベースのエントリを Calendar Server に自動破棄させるには、「削除ログデータベースの自動破棄」のパラメータを次のように設定します。
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 とも呼ばれる) で指定します。
cspurge を実行するには、Calendar Server を稼動しているユーザーとグループ (デフォルトでは icsuser と icsgroup)、またはスーパーユーザー (root) としてログインする必要があります。
たとえば、2003 年 7 月 1 日から 2003 年 7 月 31 日までのエントリを破棄するには、次のように実行します。
cspurge -e 20030731T235959Z -s 20030701T120000Z
詳細は、「cspurge」を参照してください。
次の表は、削除ログデータベース (ics50deletelog.db) をサポートする Calendar Server ユーティリティーを示しています。
表 18–2 削除ログデータベースをサポートするユーティリティー
ユーティリティー |
説明 |
---|---|
cspurge |
削除ログデータベースのエントリを手動で破棄します。 |
csbackup と csrestore |
削除ログデータベースのバックアップと復元をサポートします。 |
csstats |
削除ログデータベースの統計情報をレポートします。 |
csdb |
削除ログデータベースのチェック、復元、再構築をサポートします。 |
cscomponents |
削除ログデータベースのエントリの数をリスト表示します (読み取り専用情報)。 |
これらのユーティリティーの構文など、詳細は 付録 D 「Calendar Server のコマンド行ユーティリティーのリファレンス」 を参照してください。