markForDelete (NotesDatabase - JavaScript)

データベースに、クラスタ内のサーバーから削除するマークを付けます。

定義場所

NotesDatabase

構文

markForDelete() : void

使用法

データベースは、削除のマークが付けられると、データベースの新しいオープン要求を一切受け入れなくなります。すべてのアクティブなユーザーがデータベースでの作業を終了すると、クラスタマネージャは、すべての変更を別のレプリカに送信してから (別のレプリカがある場合)、そのデータベースを削除します。古くなったデータベースを削除する場合、またはあるサーバーから別のサーバーにデータベースをコピーし、元のサーバーからそのデータベースを削除する場合に、このメソッドを使用してください。クラスタからデータベースとそのレプリカすべてを削除する場合は、各サーバーのデータベースごとに削除のマークを付ける必要があります。

このメソッドは元に戻せません。このメソッドを使用すると、データベースから削除のマークを削除することができなくなります。

このメソッドは、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";
}

言語間の参照

LotusScript® NotesDatabase クラスの MarkForDelete メソッド

Java™ Database クラスの markForDelete メソッド