インスタンスの削除には、deleteInstance メソッドを使用します。
クライアントアプリケーションを CIMOM に接続する
CIMObjectPath を使って、削除されるオブジェクトの CIM オブジェクトパスを含むオブジェクトを構築する
enumerateInstance を呼び出して、指定のインスタンスとそのサブクラスのすべてのインスタンスを取得する
deleteInstance を呼び出して各インスタンスを削除する
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();
}
}
}