Solaris WBEM Services の管理

第 2 章 CIM Object Manager

Common Information Model (CIM) Object Manager は、WBEM クライアントアプリケーションや管理リソースとの間で CIM データを送受信するソフトウェアです。

この章の内容は次のとおりです。

CIM Object Manager について

CIM Object Manager は、WBEM 対応のシステム上で CIM オブジェクトを管理します。CIM オブジェクトは、プリンタ、ディスクドライブ、CPU などの管理リソースを表したモデルです。CIM オブジェクトは内部的には Java クラスとして格納されます。

WBEM クライアントアプリケーションが CIM オブジェクトの情報にアクセスすると、CIM Object Manager はそのオブジェクトに適したプロバイダか、CIM Object Manager Repository に接続します。プロバイダとは管理オブジェクトと通信してデータにアクセスするクラスです。WBEM クライアントアプリケーションが CIM Object Manager Repository に無い管理リソースのデータを要求すると、CIM Object Manager はその管理リソースのプロバイダにその要求を転送します。プロバイダは情報を動的に取得します。

CIM Object Manager は起動時に次のことを行います。

通常の操作では、CIM Object Manager は次のことを行います。

WBEM クライアントアプリケーションは、CIM クラスの作成や CIM インスタンスの更新などの WBEM 操作を行う場合、CIM Object Manager にアクセスして接続を確立します。WBEM クライアントアプリケーションは、CIM Object Manager に接続されると、CIM Object Manager への参照を取得し、この参照を使ってサービスや操作を要求します。

init.wbem コマンド

/etc/init.d/init.wbem start | stop | status

init.wbem ユーティリティは、インストール時や、システムのリブートの度に自動的に起動されます。このユーティリティは CIM Object Manager と Solaris Management Console (SMC) サーバーを起動し、これらが連動してシングルプロセスで実行されます。また、これは CIM Object Manager および SMC サーバーを停止させたり、サーバーからステータスを入手したりするのに使用することもできます。

一般には CIM Object Manager を停止する必要はありませんが、既存のプロバイダを変更する場合は、変更したプロバイダを使用する前に CIM Object Manager を停止してから再起動する必要があります。

init.wbem コマンドには、次の 3 つのオプションがあります。

Solaris Management Console サーバー

Solaris Management Console (SMC) サーバーは、フロントエンドの GUI である smc(1M) に対するバックエンドです。SMC のフロントエンドの GUI は、User Manager、Disk Manager、ログビューアなどの Solaris の管理アプリケーションを提供します。SMC サーバーは、コンソールにダウンロードのためのツールを提供し、またコンソールおよびそのツールのために認証、承認、ロギング、メッセージング、および保持などの一般サービスを実行します。

システムのブート

init.wbem スクリプトが /etc/init.d ディレクトリにインストールされています。このスクリプトへのリンクは /etc/rc2.d/S90wbem にあり、init state 2 に入った時 (通常はブート時) に start オプションで実行されます。その他のリンクは /etc/rc0.d/K36wbem/etc/rc1.d/K36wbem、および /etc/rcS.d/K36wbem にあり、それぞれ init state 0、1、および S に入った場合 (通常、システムの停止時やシステム管理者モードに入った時、シングルユーザーモードに入った時) に stop オプションで実行されます。

CIM Object Manager の停止および起動

プロバイダを変更する場合は、変更したプロバイダを使用する前に CIM Object Manager を停止し、再起動する必要があります。

CIM Object Manager を停止する方法
  1. システムプロンプトで次のコマンドを入力して、スーパーユーザーになります。


    % su
    
  2. メッセージに従い、スーパーユーザーのパスワードを入力します。

  3. 次のコマンドを実行して、CIM Object Manager を停止します。


    # /etc/init.d/init.wbem stop
    
CIM Object Manager を再起動する方法
  1. システムプロンプトで次のコマンドを実行して、スーパーユーザーになります。


    % su
    
  2. メッセージに従い、スーパーユーザーのパスワードを入力します。

  3. 次のコマンドを入力して、CIM Object Manager を再起動します。


    # /etc/init.d/init.wbem start
    

CIM Object Manager Repository のアップグレード

Solaris 8 10/00 (WBEM Services 2.2) またはそれより前のバージョンから Solaris 8 1/01 (WBEM Services 2.3) へアップグレードする場合は、CIM Object Manager Repository のデータストアのフォーマットをアップグレードする必要があります。

Solaris 8 10/00 (WBEM Services 2.2) またはそれより前のバージョンのデータストアのフォーマット 

Solaris 8 1/01 (WBEM Services 2.3) のデータストアのフォーマット 

JavaSpacesTM

Reliable Log 

JavaSpaces データストアを新しい Reliable Log Repository のフォーマットへアップグレードするには、wbemconfig convert コマンドを使用します。このコマンドは、元々ある CIM 用の MOF データはすべて問題無く変換することができますが、ユーザーが変更した CIM や Solaris の MOF データは正しく変換できず、データが破壊されます。変更を行った CIM や Solaris の MOF データを新しいレポジトリへ再コンパイルするには、クラス定義を含む MOF ファイルで mofcomp コンパイラを実行します。

wbemconfig convert コマンドは、変換されたデータを格納する /var/sadm/wbem/logr/ というディレクトリを作成します。


警告 - 警告 -

ユーザーのデータが破壊されるのを防ぐため、CIM Object Manager を init.wbem stop コマンドで必ず停止させてから wbemconfig convert コマンドを使用してください。



注 -

wbemconfig convert コマンドは JVMTM (Java Virtual Machine) を起動してレポジトリの変換を行うため、オリジナルの JavaSpaces データストアの作成に使用したものと同じバージョンの JVM を実行している必要があります。wbemconfig convert コマンドが完了した後は、希望するバージョンの JVM へ変更することができます。


CIM Repository データストアのフォーマットのアップグレードには、次の 2 段階のプロセスがあります:

Solaris の新しいバージョンをインストールする前に行うプロセス
  1. スーパーユーザー (root) としてログインし、JavaSpaces ソフトウェアを保存します。以下のコマンドを実行します。


    # cp /usr/sadm/lib/wbem/outrigger.jar /usr/sadm/lib/wbem/outrigger.jar.tmp
    
  2. ユーザーのマシンにインストールされている JDK のバージョンを確認して記録します。たとえば、次のようにします。


    # /usr/bin/java -version
    java version "1.2.1"
    Solaris VM (build Solaris_JDK_1.2.1_04c, native threads, sunwjit)

    オリジナルの JavaSpaces データストアが作成された時に使用された JDK のバージョンと同じバージョンを実行している必要があります。

Solaris の新しいバージョンをインストールした後に行うプロセス
  1. スーパーユーザーとしてログインし、CIM Object Manager を停止させます。


    # /etc/init.d/init.wbem stop
    
  2. 「Solaris の新しいバージョンをインストールする前に行うプロセス」の手順 1 で保存した JavaSpace ソフトウェアを復元します。


    # mv /usr/sadm/lib/wbem/outrigger.jar /usr/sadm/lib/wbem/outrigger.jar.2
    # mv /usr/sadm/lib/wbem/outrigger.jar.tmp /usr/sadm/lib/wbem/outrigger.jar
    
  3. 以前ユーザーのマシンにあった古いバージョンの JDK を、現在の (新しくインストールされた) JDK とは別のロケーションにインストールします。JDK は、http://java.sun.com/products/ からダウンロードすることができます。

  4. シンボリックリンク /usr/java を、古いバージョンの JDK のロケーションを指すよう変更します。たとえば、Solaris_JDK_1.2.1_04c を /old_sdk にインストールした場合、次のようにします。


    # rm /usr/java
    # ln -s /old_sdk/Solaris_JDK_1.2.1_04c /usr/java
    
  5. JavaSpaces データストアを Reliable Log フォーマットへ変換します。


    # /usr/sadm/lib/wbem/wbemconfig convert
    
  6. 新しいバージョンの Solaris に含まれている outrigger.jar ファイルを復元します。


    # mv /usr/sadm/lib/wbem/outrigger.jar.2 /usr/sadm/lib/wbem/outrigger.jar
    
  7. シンボリックリンク /usr/java を、新しいバージョンの Solaris に含まれている新しいバージョンの JDK のロケーションを指すよう変更します。


    # rm /usr/java
    # ln -s /usr/java1.2 /usr/java
    
  8. CIM Object Manager を再起動します。


    # /etc/init.d/init.wbem start
    

Solaris プロバイダの CLASSPATH の設定

Solaris プロバイダの CLASSPATH を設定するには、クライアント API を使用して Solaris_ProviderPath クラスを作成し、その pathurl プロパティをユーザーのプロバイダクラスファイルのロケーションに設定します。Solaris_ProviderPath クラスは ¥root¥system のネームスペースに保存されます。

プロバイダの CLASSPATH をユーザーのプロバイダの クラスファイルのロケーションに設定することができます。そのクラスパスを jar や、そのクラスを含むディレクトリに設定することができます。Java が CLASSPATH に使用する標準の URL フォーマットを使用してください。

プロバイダの CLASSPATH 

構文 

ディレクトリへの絶対パス 

file:///a/b/c/

CIM Object Manager を開始した位置からの (/)、ディレクトリへの相対パス

file://a/b/c

プロバイダの CLASSPATH を設定する方法
  1. Solaris_ProviderPath クラスのインスタンスを作成します。たとえば、次のように実行します。


    /* Create a namespace object initialized with root¥system
    (name of namespace) on the local host. */
    CIMNameSpace cns = new CIMNameSpace("", "root¥system");
    
    // Connect to the root¥system namespace as root. 
    cc = new CIMClient(cns, "root", "root_password");
    
    // Get the Solaris_ProviderPath class 
    cimclass = cc.getClass(new CIMObjectPath("Solaris_ProviderPath");
    
    // Create a new instance of Solaris_ProviderPath.
    class ci = cimclass.newInstance();
  2. pathurl プロパティをユーザーのプロバイダクラスファイルのロケーションに設定します。たとえば、次のようにします。


    ...
    /* Set the provider CLASSPATH to //com/mycomp/myproviders/.*/
    ci.setProperty("pathurl", new CIMValue(new String("//com/mycomp/myproviders/"));
    ...

  3. インスタンスを更新します。たとえば、次のようにします。


    // Pass the updated instance to the CIM Object Manager
    cc.setInstance(new CIMObjectPath(), ci);

例外メッセージ

CIM Object Manager は、MOF の構文や意味が正しくない場合、例外メッセージを生成します。例外メッセージの説明については、第 6 章「CIM 例外メッセージ」を参照してください。