イベントフィルタでは、送信するイベントの種類と、どのような条件下で送信するかを指定します。CIM_IndicationFilter クラスのインスタンスを作成し、そのプロパティの値を定義することによって、イベントフィルタを作成します。各イベントフィルタは、そのフィルタが属する名前空間に属するイベントに対してのみ有効です。
CIM_IndicationFilter クラスは文字列型のプロパティを持ちます。これらのプロパティの設定により、フィルタを一意に識別したり、照会文字列を指定したり、照会文字列の構文解析を行う照会言語を指定したりできます。現在は、WQL (WBEM Query Language) だけがサポートされます。
表 4–6 CIM_IndicationFilter プロパティ
プロパティ |
説明 |
必須/任意 |
---|---|---|
SystemCreationClassName |
このフィルタを作成するクラスがあるシステム名、またはこのクラスが適用されるシステム名 |
任意。値は、CIM オブジェクトマネージャにより決定される |
SystemName |
このフィルタがあるシステム名、またはこのフィルタが適用されるシステム名 |
任意。このキープロパティのデフォルトは、CIM オブジェクトマネージャが動作しているシステム名 |
CreationClassName |
このフィルタの作成に使用するクラス名またはサブクラス名 |
任意。CIM オブジェクトマネージャは、このキープロパティのデフォルトとして CIM_IndicationFilter を割り当てる |
Name |
フィルタの固有名 |
任意。CIM オブジェクトマネージャは一意の名前を割り当てる |
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_solarisdiskdrive" |
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 オブジェクトマネージャリポジトリに格納します。
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);