複数のユーザーが、同時にデータベースの 1 つのコピーで同じ文書を編集したり、複製と複製の合間に別々のレプリカで同じ文書を編集したりする場合があります。この状況が発生すると、Domino® では、1 回の編集セッションの結果がメインの文書に保存され、その後行われた編集セッションの結果が返答文書として保存されます。この返答文書のタイトルは「複製と保存の競合文書」となります。Domino では、各文書編集セッションの日時を記録する [$Revisions] フィールドを使用して、メインの文書にする文書と返答文書にする文書が判断されます。
複製の競合
複数のユーザーが、複製と複製の合間に同じ文書を編集し、変更内容を別々のレプリカに保存すると、複製の競合が発生します。Domino で編集セッションが保存される方法は、次の規則によって決まります。
- 編集、保存された回数が最も多い文書がメインの文書になります。それ以外の文書は複製と保存の競合文書になります。
- 文書が編集、保存された回数がすべて等しい場合は、最後に保存された文書がメインの文書になります。それ以外の文書は複製と保存の競合文書になります。
- あるレプリカで編集された文書が別のレプリカで削除されている場合は、削除が優先されます。ただし、編集された文書が繰り返し編集されている場合と、編集が削除より後に行われている場合は除きます。
保存の競合
複数のユーザーが同時に同じサーバーの同じ文書を開き、編集すると、別々のフィールドを編集した場合でも、保存の競合が発生します。この状況が発生すると、初めに保存された文書がメインの文書になります。2 番目の文書を保存しようとすると、ダイアログボックスにユーザーが競合文書を保存しようとしていることが表示され、保存すると、この文書は複製と保存の競合文書になります。
注: ACL や設計を変更しても複製や保存の競合は発生しません。最後に行われた変更が必ず有効になります。
複製や保存の競合を防止する
次の方法を使用すると、複製や保存で競合を起きにくくするか、まったく起こらなくすることができます。
- フォームのプロパティで [複製競合のマージ] を選択して、フィールドが競合していない場合は、自動的に競合が 1 つの文書にマージされるようにします。このプロパティは複製の競合だけに適用され、保存の競合には適用されません。
- フォームのプロパティでバージョン管理を行うように指定して、文書を編集すると自動的に新しい文書になるようにします。
- LotusScript® を使用して独自の競合ハンドラを記述します。
- ユーザーがデータベース内の文書をロックできるようにします。
- データベース ACL でユーザーに [作成者] 以下のアクセス権を割り当てて、ユーザーが他のユーザーの文書を編集できないようにします。
- データベースのプロパティで [$Revisions フィールドのエントリ制限] に 0 より大きい値が設定されている場合は、それより大きい値を指定して上限値を増やすか、-1 を指定して制限を取り消します。
- サーバー管理者と協力して、レプリカの数を最小限に保つようにします。