Solaris WBEM 開発ガイド

インスタンスの削除

インスタンスの削除には、deleteInstance メソッドを使用します。


例 4–6 インスタンスの削除

この例は、次のことを実行します。

 
import java.rmi.*;
import java.util.Enumeration;

import javax.wbem.cim.CIMClass;
import javax.wbem.cim.CIMException;
import javax.wbem.cim.CIMInstance;
import javax.wbem.cim.CIMNameSpace;
import javax.wbem.cim.CIMObjectPath;

import javax.wbem.client.CIMClient;
import javax.wbem.client.PasswordCredential;
import javax.wbem.client.UserPrincipal;

/** 
 * 指定のクラスのインスタンスをすべて返す。
 * この例は、ホスト名 (args[0])、ユーザー名 (args[1])、
 * パスワード (args[2])、名前空間 (args[3])、およびクラス名 (args[4]) という
 * 5 つの引数を取る。指定のクラス名のインスタンスをすべて削除する。
 * 指定のユーザー名は、指定の名前空間に対する書き込み権を持つ必要
 * がある
 */
public class DeleteInstances {
    public static void main(String args[]) throws CIMException {
        CIMClient cc = null;
        // 5 つの引数が指定されない場合は使用法を表示して終了する
        if (args.length != 5) {
           System.out.println("Usage: DeleteInstances host username " +
                              "password namespace classname ");
           System.exit(1);
        }
        try {
            // args[0] にはホスト名、args[3] には名前空間が含まれる。
            // 指定のホスト上の指定の名前空間を指す CIMNameSpace (cns)
            // を作成する
            CIMNameSpace cns = new CIMNameSpace(args[0], args[3]);

            // args[1] と args[2] にはユーザー名とパスワードが含まれる。
            // このユーザー名で UserPrincipal (up) を作成し、
            // このパスワードで PasswordCredential を作成する
            UserPrincipal up = new UserPrincipal(args[1]);
            PasswordCredential pc = new PasswordCredential(args[2]);

            // CIM オブジェクトマネージャに接続し、
            // 作成した CIMNameSpace、UserPrincipal、および
            // PasswordCredential のオブジェクトを渡す
            cc = new CIMClient(cns, up, pc);

            // クラス名 (args[4]) を取得し CIMObjectPath を作成する
            CIMObjectPath cop = new CIMObjectPath(args[4]);

            // クラスとその全サブクラスのインスタンスオブジェクトパスの
            // 列挙を取得する。インスタンスオブジェクトパスは、
            // CIM オブジェクトマネージャがインスタンスを検索する
            // ときに使用する参照
            Enumeration e = cc.enumerateInstanceNames(cop);

            // インスタンスオブジェクトパスの列挙を繰り返し処理する。
            // オブジェクトを構築し、列挙された各インスタンスの
            // オブジェクトパスを格納し、このインスタンスを出力
            // して、削除する
            while (e.hasMoreElements()) {
                CIMObjectPath  op = (CIMObjectPath)e.nextElement();
                System.out.println(op);
                cc.deleteInstance(op);
            } // while の終了
        } catch (Exception e) {
        // 例外が発生した場合はそれを出力する
        System.out.println("Exception: "+e);
        } // catch の終了

        // セッションの終了
        if (cc != null) {
            cc.close();
        }
    }
}