Service Registry 3.1 開発ガイド

Service Registry とリポジトリからのオブジェクトの削除

レジストリに送信したオブジェクトはどれでも、そのレジストリから削除することができます。対象オブジェクトの ID を、LifeCycleManager.deleteObjects メソッドの引数として使用します。

次のコードでは、指定されたキー文字列に対応するオブジェクトを削除したあと、正しいオブジェクトが削除されたことをユーザーが確認できるよう、そのキーを再度表示しています。

String id = key.getId();
Collection keys = new ArrayList();
keys.add(key);
BulkResponse response = blcm.deleteObjects(keys);
Collection exceptions = response.getException();
if (exceptions == null) {
    System.out.println("Objects deleted");
    Collection retKeys = response.getCollection();
    Iterator keyIter = retKeys.iterator();
    javax.xml.registry.infomodel.Key orgKey = null;
    if (keyIter.hasNext()) {
        orgKey =
             (javax.xml.registry.infomodel.Key) keyIter.next();
        id = orgKey.getId();
        System.out.println("Object key was " + id);
    }
}

Organization オブジェクトを削除しても、その Organization に属する Service オブジェクトと User オブジェクトは削除されません。これらのオブジェクトを削除する場合は、個別に削除する必要があります。

Service オブジェクトを削除すると、それに属する ServiceBinding オブジェクトも削除されます。ただし、Service オブジェクトと ServiceBinding オブジェクトを削除しても、それに関連付けられた ExtrinsicObject インスタンスとその関連リポジトリ項目は削除されません。付帯オブジェクトは個別に削除する必要があります。

ClassificationExternalIdentifier を持つオブジェクト、または Slot オブジェクトを削除すると、付帯オブジェクトも削除されます。ただし、ExternalLink オブジェクトの場合は、付帯オブジェクトは削除されません。

AuditableEvent オブジェクトは、関連付けられたオブジェクトが削除されても削除されません。レジストリの使用を続けると、これらのオブジェクトが多数蓄積されていくのがわかります。

Service Registry からのオブジェクトの削除: 例

Service Registry からオブジェクトを削除する例については、INSTALL/registry-samples/delete-object/src ディレクトリにある JAXRDelete.java を参照してください。このサンプルは、指定された一意の識別子を持つオブジェクトを削除します。

ProcedureJAXRDelete サンプルを実行する方法

  1. INSTALL/registry-samples/delete-object ディレクトリに移動します。

  2. 次のコマンドを入力します。


    Ant-base/ant run -Did=id-string