イベントフィルタでは、送信するイベントのタイプと、どのような条件の下で送信するかを指定しますす。アプリケーションでは、CIM_IndicationFilter クラスのインスタンスを作成し、そのプロパティの値を定義することによって、イベントフィルタを作成します。イベントフィルタは特定のネームスペースに属します。個々のイベントフィルタは、そのフィルタが属するネームスペースに属するイベントに対してのみ有効です。
CIM_IndicationFilter クラスには、フィルタを特定して照会文字列を指定するためにアプリケーションが設定できる文字列プロパティ、およびこの文字列を解析するための照会言語があります。現在は、WQL (WBEM Query Language) だけがサポートされます。
表 6–1 CIM_IndicationFilter クラスのプロパティ
プロパティ |
説明 |
必須/任意 |
---|---|---|
SystemCreationClassName |
このフィルタを作成するクラスがあるシステムの名前、またはこのクラスが適用されるシステムの名前。 |
任意。このキープロパティのデフォルトは CIM_System.CreationClassName。 |
SystemName |
このフィルタがあるシステムの名前、またはこのフィルタが適用されるシステムの名前。 |
任意。このキープロパティのデフォルトは、CIM Object Manager が動作しているシステムの名前。 |
CreationClassName |
このフィルタの作成に使用するクラスまたはサブクラスの名前。 |
任意。CIM Object Manager は、このキープロパティのデフォルトとして CIM_IndicationFilter を割り当てる。 |
Name |
このフィルタの固有名。 |
必須。クライアントアプリケーションは固有名を指定する必要がある。 |
SourceNamespace |
CIM インジケーション生成元であるローカルネームスペースへのパス。 |
任意。デフォルトは \root\cimv2。 |
Query |
インジケーションをどのような条件のときに生成するかを定義する照会式。現在は、Level 1 の WQL 式だけがサポートされる。WQL 照会式の作成方法については、照会を参照。 |
必須。 |
QueryLanguage |
照会を表現する言語。 |
必須。デフォルト WQL (WBEM Query Language)。 |
CIM_IndicationFilter クラスのインスタンスを作成します。以下に例を示します。
CIMClass cimfilter = cc.getClass (new CIMObjectPath(“CIM_IndicationFilter”), true, true, true, null);CIMInstance ci = cimfilter.newInstance(); |
イベントフィルタの名前を指定します。以下に例を示します。
Name = “filter_all_new_solarisdiskdrives” |
WQL 文字列を作成し、返されるイベントインジケーションを指定します。以下に例を示します。
String filterString = “SELECT * FROM CIM_InstCreation WHERE sourceInstance is ISA Solaris_DiskDrive”; |
cimfilter インスタンスの各プロパティ値に、フィルタの名前、CIM イベントを選択するフィルタ文字列、照会文字列を解析する照会言語を設定します。
現在、照会文字列の解析に使用できるのは WQL だけです。以下に例を示します。
ci.setProperty(“Name”, new CIMValue("filter_all_new_solarisdiskdrives”)); ci.setProperty("Query", new CIMValue(filterString)); ci.setProperty("QueryLanguage", new CIMValue("WQL");)
cimfilter インスタンスから filter というインスタンスを作成し、それを CIM Object Manager Repository に格納します。以下に例を示します。
CIMObjectPath filter = cc.createInstance(new CIMObjectPath(), ci); |