データベースに、クラスタ内のサーバーから削除するマークを付けます。
このメソッドは元に戻せません。このメソッドを使用すると、データベースから削除のマークを削除することができなくなります。
このメソッドは、isPendingDelete を true に設定し、isInService を false に設定します。
このメソッドは、データベースがクラスタ内に存在しなければならないという点で、remove メソッドと異なります。データベースがクラスタ内のサーバー上に存在しない場合、このメソッドはエラーを返しませんが、データベースは削除されません。また、データベースが使用中の場合、remove メソッドは失敗します。markForDelete メソッドは、現在のユーザーすべてが終了するまで待機し、それからデータベースを削除します。クラスタマネージャは、クラスタ内で削除のマークが付けられたデータベースを削除する責任を持っており、Adminp タスクは呼び出されません。
クラスタ内の他のサーバーでデータベースが使用可能かどうかは、cldbdir.nsf データベースを照会することによってプログラマチックに判別できます。cldbdir.nsf データベースは、すべてのクラスタ内に存在し、クラスタ内にあるデータベースすべてとそれらのレプリカの最新のリストを保持しています。 cldbdir.nsf データベースは、各データベースの有効または無効ステータスのトラッキングも行います。
データベースとレプリカすべてをドメイン全体から削除する場合は、NotesAdministrationProcess クラスの deleteReplicas メソッドを使用してください。
このメソッドを実行するには、管理者アクセス権限が必要です。
var db:NotesDatabase = session.getDatabase("Cathy/Otus", "Test¥¥MarkForDelete");
if (db.isOpen()) {
db.markForDelete();
requestScope.status = "Is in service = " + db.isInService();
requestScope.status = "¥nIs pending delete " + db.isPendingDelete();
} else {
requestScope.status = "Could not open Test¥¥MarkForDelete";
}