Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[Notes/Domino] 削除スタブを Lotus Script から削除 or 取得する方法

Notes/Dominoでちょっとコネタ記事を見ていて、削除スタブについて思い出したことがありますので、エントリしておきます。

けっこう前の話ですが、R5で運用しているクライアントで、毎日数千件の文書を削除&追加しているDBがありました(わたしが作ったもんじゃないけど)。しばらくはそれでうまくいっていたそうですが、ある時から複製(クラスタリング)がタイムアウトするという現象が発生してしまいました。そのDBで引っかかってタイムアウトしてしまうため、他のDBも複製されないという事態になり、けっこうな問題になっていました。

そこでわたしが原因を調査してみたところ、削除スタブが溜まりに溜まって(60万件くらいだったかな?)いたことが判明。削除スタブを全部削除したら問題は解決されました。(と軽く書きましたが、この結論に辿り着くまでに結構時間がかかりました……(x_x) )

たしかこの時、複製の設定のところの日数を「0」にしても完全に消えなくて、LotusScript から無理矢理消したと思います。その時使用したスクリプトが、こちらのスクリプトです。

Notes/Domino 4 and 5 Forum : RE: Clear Deletion Stubs with LotusScript (魚拓)

※上記のスクリプトを実行した場合、削除スタブが全部消去されるため、削除を反映していない複製がある場合、削除文書が復活することがあります。その点注意してください。

また、削除スタブの情報を取得するには、以下のスクリプトを使用すればよいみたいです。(試したことはありませんが(^^; )

Notes/Domino 6 and 7 Forum : RE: Get deletion stubs (魚拓)

ちなみに、上記2つのスクリプトを見て解るとおり、削除スタブは NoteID の最上位ビットが1に(つまり符号付き4バイト変数(LotusScriptではLong型)ではマイナス値に)なるようです。Note の情報を取得したり消したりする場合は、最上位ビットを0にしてから処理すればいいみたい(ただし、取得できる情報は、日付や NoteClass などの情報だけみたいです)。それさえ解ってしまえば、API で扱うのも簡単ですね。

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

トラックバック

トラックバックはありません

コメント

コメントはありません

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 3778 to the field below:

^
×