Service Registry 3 2005Q4 開発者ガイド

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

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

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

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

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

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

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


    asant run -Did=id_string