イベントフィルタでは、送信するイベントの種類と、どのような条件下で送信するかを指定します。CIM_IndicationFilter クラスのインスタンスを作成し、そのプロパティの値を定義することによって、イベントフィルタを作成します。各イベントフィルタは、そのフィルタが属する名前空間に属するイベントに対してのみ有効です。
CIM_IndicationFilter クラスは、一意のフィルタ識別、照会文字列の指定、照会文字列を構文解析する照会言語の指定が可能な文字列プロパティを保持します。現在は、WQL (WBEM Query Language) だけがサポートされます。
表 3-6 CIM_IndicationFilter プロパティ
プロパティ |
説明 |
必須/任意 |
---|---|---|
SystemCreationClassName |
このフィルタを作成するクラスがあるシステム名、またはこのクラスが適用されるシステム名 |
任意。値は、CIM Object Manager により決定される |
SystemName |
このフィルタがあるシステム名、またはこのフィルタが適用されるシステム名 |
任意。このキープロパティのデフォルトは、CIM Object Manager が動作しているシステム名 |
CreationClassName |
このフィルタの作成に使用するクラス名またはサブクラス名 |
任意。CIM Object Manager は、このキープロパティのデフォルトとして CIM_IndicationFilter を割り当てる |
Name |
フィルタの固有名 |
任意。CIM Object Manager は一意の名前を割り当てる |
SourceNamespace |
CIM インジケーション生成元であるローカル名前空間へのパス |
任意。デフォルトは null |
Query |
インジケーションをどのような条件のときに生成するかを定義する照会式。現在は、Level 1 の WQL 式だけがサポートされる。WQL 照会式の詳細は、第 5 章「WBEM 照会の作成」を参照 |
必須 |
QueryLanguage |
照会を表現する言語 |
必須。デフォルトは WQL |
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 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); |
CIMClass cimfilter = cc.getClass(new CIMObjectPath (“CIM_IndicationFilter”), true); CIMInstance ci = cimfilter.newInstance(); // test_a クラスが名前空間内に存在するものとする String filterString = "select * from CIM_InstCreation where sourceInstance isa test_a" ci.setProperty("query", new CIMValue(filterString)); CIMObjectPath filter = cc.createInstance(newCIMObjectPath(), ci);