問題 (Problem)
削除スタブはどのようなタイミングでパージされるのでしょうか。
解決策 (Solution)
削除スタブは以下のような流れでパージされます。
<削除スタブがパージされるプロセスについて(概略)>
削除スタブのパージは以下のように行われます。
- パージ対象となったもののみが、削除するアクションが実施された場合に、パージされる。
- 対象となる削除スタブは一番最初に実施された削除スタブをパージするアクションによりパージされ、パージ対象となっていないスタブはアクションが実施されてもパージされない。
<パージ対象の判断について>
パージ対象かどうかの判断は、データベースヘッダーに記録されている、NextPurge と Replication Cutoff の値に基づいて行われます。これらの値は以下の意味を持ちます。
1. NextPurge
パージを行うアクションが実施された日時が、この値よりも新しければパージ機能(パージすべき削除スタブがあるかないかのチェック)が実行されます。
パージ機能が実行されるとこの値は、パージ機能実行日+複製の設定の [指定日数間に変更がない文書を削除する] 日数の 1/3 に更新されます。
[指定日数間に変更がない文書を削除する] の日数が 3 で割り切れない場合、小数点以下は切り捨てられます。よって、これを 7 日に設定した場合は、+2 日となります。
2. Replication Cutoff
パージ機能が実行された時にこの値よりも古い削除スタブがあれば、その削除スタブがパージされます。
パージ機能が実行されるとこの値は、パージ機能実行日 - 複製の設定の [指定日数間に変更がない文書を削除する] の日数に更新されます。
(具体的な流れについて)
具体的には、以下のような流れで削除スタブのパージが行われます。
複製の設定の [指定日数間に変更がない文書を削除する] の日数は 3、NextPurge・Replication Cutoff の値は以下のようになっている場合
NextPurge: 2005/07/04 14:58:01、Replication Cutoff: 2005/06/30 14:58:01
1. 7/03 15:02 文書を削除し、削除スタブを作成します。
2. 7/03 15:07 updall を行います。
パージを行うアクション実行日 < NextPurge のためパージ機能は実行されません。そのため、NextPurge・Replication Cutoff の値は更新されず、以下のままです。
NextPurge: 2005/07/04 14:58:01、Replication Cutoff: 2005/06/30 14:58:01
当然ながら、削除スタブもパージされません。
3. 7/04 15:16 updall を行います。
パージを行うアクション実行日 > NextPurge なのでパージ機能が実行され、NextPurge・Replication Cutoff の値は以下のように値が更新されます。
NextPurge: 2005/07/05 15:16:00、Replication Cutoff: 2005/07/01 15:16:00
しかし、削除スタブが作成された日時 > Replication Cutoff のため削除スタブはパージされません。
4. 7/07 14:54 updall を行います。
パージを行うアクション実行日 > NextPurge なのでパージ機能が実行され、NextPurge・Replication Cutoff の値は以下のように値が更新されます。
NextPurge: 2005/07/08 14:54:48、Replication Cutoff: 2005/07/04 14:54:48
そして、削除スタブが作成された日時 < Replication Cutoff となるため削除スタブがパージされます。
(サーバーを長期間シャットダウンしている場合)
上記のように、パージを行うアクション実行日 > NextPurge であれば、パージ機能が実行され、対象となる削除スタブがあればパージされます。そのため、サーバーを長期間シャットダウンしているような状態でも、削除スタブがパージされないということはありません。
([指定日数間に変更がない文書を削除する]を 2 以下にした場合)
通常は複製の設定の[指定日数間に変更がない文書を削除する] 日数の 1/3 が NextPurge に設定されていきますが、これを 2 以下にすると以下のように動作します。
1. 0 にした場合
この値を 0 にした場合は、NextPurge の値には 0 が設定され、Replication Cutoff の値は設定を 0 にした日時になります。その結果全ての削除スタブがパージ対象となり、即時にパージされます。
しかし、NextPurgeの値が 0 だと、パージを行うアクションが実行されてもパージ機能は実行されず、updall 等を行っても、Replication Cutoff の値が更新されません。そのため、これ以降は常に 削除スタブが作成された日時 > Replication Cutoff となり削除スタブはパージされません。
2. 1 にした場合
この値を 1 にした場合は NextPurge の値には 設定変更日 +1 日 が設定され、Replication Cutoff の値は、設定変更日 -1 日になります。
具体的には、NextPurge: 2005/07/08 14:54:48、Replication Cutoff: 2005/07/04 14:54:48 となっている データベース で 7/07 15:17 に削除スタブを作成し、設定を 1 に変更すると以下のように更新されます。
NextPurge: 2005/07/08 15:17:45、Replication Cutoff: 2005/07/06 15:17:45
7/08 15:20 にこのデータベースへ updall を実行すると、パージを行うアクション実行日 > NextPurge なのでパージ機能が実行され、NextPurge・Replication Cutoff の値は以下のように値が更新されます。そして、削除スタブが作成された日時 < Replication Cutoff となり、削除スタブもパージされます。
NextPurge: 2005/07/09 15:20:00、Replication Cutoff: 2005/07/07 15:20:00
3. 2 にした場合
この値を 2 にした場合 NextPurge の値には 設定変更日 +2 日が設定され、Replication Cutoff の値は、設定変更日 -2 日になります。
具体的には、NextPurge: 2005/07/09 15:20:00、Replication Cutoff: 2005/07/07 15:20:00 となっているデータベースで 7/08 15:28 に 削除スタブを作成し、設定を 2 に変更すると以下のように更新されます。
NextPurge: 2005/07/09 15:28:33、Replication Cutoff: 2005/07/06 15:28:33
7/09 15:38 にこのデータベースへ updall を実行すると、パージを行うアクション実行日 > NextPurge なのでパージ機能が実行され、NextPurge・Replication Cutoff の値は以下のように値が更新されます。しかし、削除スタブが作成された日時 > Replication Cutoff のため、削除スタブはパージされません。
NextPurge: 2005/07/10 15:38:17、Replication Cutoff: 2005/07/07 15:28:33
7/10 以降にパージを行うアクションを実行すると、削除スタブが作成された日時 < Replication Cutoff となり、削除スタブがパージされます。
<パージを行うアクションについて>
削除スタブをパージするアクションは以下の 4 つとなります。これらのアクションが取られた時にパージすべき削除スタブがあれば、パージが行われます。
- ローカルでデータベースを開いた場合
- Updall をオプションでデータベースを指定しないで実行した場合
- Compact -c を実行した場合
- パージ間隔を 0 に変更した場合
上記はすなわち、以下の場合には削除スタブはパージされないということを表しています。
- Lotus Domino 上のデータベースを開いた時
- Updall をデータベース指定で実行した時
- Compact をオプション無しで実行した時
また、fixup は破損した文書は削除しますが、削除スタブはパージしません。
補足情報 (Supporting Information)
関連文書 (Related Document)
掲載内容は2008年4月15日現在の情報です。内容は事前の予告なく変更することがあります。 IBM、IBM ロゴおよび ibm.com は、世界の多くの国で登録された International Business Machines Corporation の商標です。他の製品名およびサービス名等は、それぞれ IBM または各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtml (US) をご覧ください。
