Sun Java System Calendar Server 6.3 管理ガイド

第 18 章 削除ログデータベースの管理

Calendar Server には、削除された予定や仕事 (作業) を格納するための削除ログデータベース (ics50deletelog.db) が用意されています。

初期のリリースでは、Calendar Server は削除された予定や作業をデータベースに維持していませんでした。カレンダの予定と作業のローカルコピーを格納するユーザーインタフェースでは、どの予定が削除されたかを判断することが困難でした。クライアントソフトウェアは、どのコンポーネントが削除されたかを判断するために、すべての予定または仕事 (作業) の一意の識別子 (uid) または定期予定 ID (rid) を、データの Calendar Server コピーと比較するしかありませんでした。この制限は、WCAP コマンドを使用してクライアントユーザーインタフェース (UI) を作成するインストールに直接影響しました。この制限を解決するため、削除ログデータベースが作成されました。

削除ログは、データベースファイルと同様に管理する必要があります。次の節で、削除ログファイルの管理について説明します。

18.1 削除ログデータベースの作成

Calendar Server は、その他の Calendar Server データベースファイルと同様に削除ログデータベース (ics50deletelog.db) を csdb ディレクトリ内に自動的に作成します。Calendar Server は、予定と仕事を次のように削除ログデータベースに書き込みます。

18.2 削除ログデータベースの照会

ここでは、削除ログデータベースを照会する方法について説明します。

削除ログデータベースからエントリを返すには、展開モードまたは圧縮モードの fetch_deletedcomponents WCAP コマンドを使用します。

次に、それぞれのモードを使用する場合とその方法について説明します。

WCAP コマンドについては、『Sun Java System Calendar Server 6.3 WCAP Developer’s Guide 』を参照してください。

18.3 削除ログデータベースの破棄

ここでは、削除ログデータベースを破棄する方法について説明します。Calendar Server では、削除ログデータベースを破棄する方法として、自動と手動の 2 つが用意されています。

ここでは、次の内容について説明します。

18.3.1 削除ログの破棄の調整

削除ログデータベースを破棄する前に、サービスを受けるエンドユーザーに十分注意する必要があります。エンドユーザーが Communications Express を使用している場合、デフォルトのパラメータ設定で十分です。しかし、予定と作業のローカルコピーを格納した、Connector for Microsoft Outlook や Sync Tool などのクライアントユーザーインタフェースを使用している場合は、自動破棄構成パラメータの設定をそれぞれの必要に応じて調整する必要があります。一般に、30 日間またはそれ以上のエントリを削除ログに格納しておく必要があります。このため、削除ログのサイズが非常に大きくなります。この調整を行わないと、データベースに問題が生じることがあります。破棄間隔も、ユーザーの必要に合わせて調整してください。たとえば、データを破棄できるようになるまで 30 日間削除ログデータベースに格納しておく場合、1 分ごとに破棄を実行しても無駄になる可能性があります。しかしどんなものでも日々古くなっていくので、毎日の破棄は妥当なことです。

同様の問題は、手動で cspurge を実行する場合にも起きる可能性があります。削除ログから削除しすぎると、Connector for Microsoft Outlook および Sync Tool のユーザーがサーバーデータベースと同期できなくなることがあります。

削除ログデータベースを破棄するまでかなりの時間が経過した場合、ファイルが非常に大きくなる原因になります。この場合、巨大な破棄が行われたときに、日常のトランザクションログが非常に大きくなります。なぜなら、各項目を破棄するというトランザクションは、トランザクションログに記録されてからアーカイブおよびホットバックアップにアーカイブされるからです。トランザクションログがこのように大きくなった場合、システムに問題があると疑われ、何が起きたかを把握するために多くの時間が費やされてしまいます。

18.3.2 削除ログデータベースの自動破棄

削除ログデータベースのエントリを指定した間隔で Calendar Server に自動破棄させることができます。自動破棄はデフォルトで無効になっています。

ics.conf の次のパラメータにより自動破棄機能が制御されます。

表 18–1 削除ログデータベースの自動破棄に適用される構成パラメータ

パラメータ 

説明 

service.admin.purge.deletelog

削除ログデータベース (ics50deletelog.db) エントリの自動破棄を有効化 (yes) または無効化 (no) します。

デフォルトは "no" です。

caldb.berkeleydb.purge.deletelog.interval

削除ログデータベース (ics50deletelog.db) のエントリを自動的に破棄する間隔を秒単位で指定します。

デフォルトは 60 秒です。

caldb.berkeleydb.purge.deletelog.beforetime

削除ログデータベース (ics50deletelog.db) から自動的に破棄するエントリの存続時間を秒単位で指定します。

デフォルトは 518400 秒 (6 日) です。

たとえば、5 分 (600 秒) おきに、2 日 (172800 秒) を経過した削除ログデータベースのエントリを Calendar Server に自動破棄させるには、「18.3.2 削除ログデータベースの自動破棄」のパラメータを次のように設定します。

service.admin.purge.deletelog="yes"
 caldb.berkeleydb.purge.deletelog.interval=600
 caldb.berkeleydb.purge.deletelog.beforetime=172800

パラメータの設定が完了したら、新しい値が適用されるように Calendar Server を再起動します。

18.3.3 削除ログデータベースの手動破棄

cspurge ユーティリティーを使用して、削除ログデータベース (ics50deletelog.db) のエントリを手動で破棄することもできます。

このユーティリティーの使用方法は次のとおりです。

cspurge -e endtime -s starttime

endtimestarttime の変数は、対象範囲の開始と終了を世界標準時形式 (GMT または UTC とも呼ばれる) で指定します。

cspurge を実行するには、Calendar Server を稼動しているユーザーとグループ (デフォルトでは icsusericsgroup )、またはスーパーユーザー (root) としてログインする必要があります。

たとえば、2003 年 7 月 1 日から 2003 年 7 月 31 日までのエントリを破棄するには、次のように実行します。

cspurge -e 20030731T235959Z -s 20030701T120000Z

詳細は、「D.13 cspurgeを参照してください。

18.4 削除ログデータベース用の Calendar Server ユーティリティーの使用

次の表は、削除ログデータベース (ics50deletelog.db) をサポートする Calendar Server ユーティリティーを示しています。

表 18–2 削除ログデータベースをサポートするユーティリティー

ユーティリティー 

説明 

cspurge

削除ログデータベースのエントリを手動で破棄します。 

csbackupcsrestore

削除ログデータベースのバックアップと復元をサポートします。 

csstats

削除ログデータベースの統計情報をレポートします。 

csdb

削除ログデータベースのチェック、復元、再構築をサポートします。 

cscomponents

削除ログデータベースのエントリの数をリスト表示します (読み取り専用情報)。 

これらのユーティリティーの構文など、詳細は 付録 D 「Calendar Server のコマンド行ユーティリティーのリファレンス」を参照してください。