Oracle Rules Engineはライブラリとして実行され、アプリケーションまたはアプリケーション・コンポーネントでルールを使用する際に使用されます。アプリケーションまたはコンポーネントの構成には、RuleSession
コンストラクタに渡すアプリケーション名を含めることができます。アプリケーション名が含まれる場合、その名前はDMS階層内で最上位レベルになります。これによって、Oracle Rules Engineランタイムの分析が容易になります。
RuleSession
インスタンスのメトリックを保持するには、インスタンスに名前を指定する必要があります。RuleSession
の名前を構成内に含めて、RuleSession
コンストラクタに渡すことができます。名前を指定しないでDMSを構成した場合は、Oracle Rules Engineによって名前が生成されます。
この付録の内容は次のとおりです。
DMSインスツルメンテーションのサポートはカプセル化されているため、Oracle Rules Engineは、oracle.rules.rl.dmsに定義されている一連のインタフェースを使用します。RuleSession
がDMS対応で作成されている場合は、rl_dms.jarをクラスパスに含める必要があります。そうでない場合、RuleSessionの構成に失敗します。
Oracle Business RulesのDMSメトリックは、RuleSession
の主要なコンポーネントを反映した階層に編成されています。RuleSession
のメトリックに対する階層内のパスは、次のとおりです(アプリケーションで指定する部分はイタリックになっています)。
/appName/rules/rl/rule_session_name/
各RuleSession
に、workingMemoryruleset/ruleset_name/rule/rule_nameがあります。
ここには、1つ以上のルールセットがあります。main
という名前のルールセットが必ず存在し、各ルールセットには0個以上のルールがあります。ルール、ルールセット、作業メモリー、ルール・セッションおよびRLに対しては、DMS名詞が定義されます。DMS名詞タイプには、メトリックが含まれるDMSセンサーが含まれます。
表B-1に、Oracle Business Rulesのルール・メトリックを示します。
表B-1 Oracle Business Rulesのルール・メトリック(RLRuleType)
メトリック | 説明 | 単位 |
---|---|---|
|
アジェンダに追加された、このルールのアクティブ化の数 |
処理 |
|
アジェンダから削除された、このルールのアクティブ化の数 |
処理 |
|
reset()またはclearRule()によって削除されたアクティブ化の数 |
処理 |
|
現在アジェンダに存在する、このルールのアクティブ化の数 |
処理 |
|
このルールの起動済アクティブ化の数 |
処理 |
アジェンダに対するアクティブ化の追加および削除動作は、ファクトが更新されて再アサートされたときに発生します。削除された後に再度追加されたアクティブ化は有効な一致として存続します。これによって、各センサーの数が1つ増加します。これは、ファクトの更新によって、2つのトークン(削除トークンと追加トークン)がReteネットワーク上をフローするために発生します。
clearRule組込み関数を使用してルールを削除すると、そのルールのRLRuleTypeインスタンスは破棄され、すべてのデータが失われます。
表B-4に、Oracle Business RulesのRuleSessionメトリックを示します。
表B-4 Oracle Business RulesのRuleSessionメトリック(RLRuleSessionType)
メトリック | 説明 | 単位 |
---|---|---|
|
このルール・セッションで定義されたルールセットの数 |
処理 |
|
reset関数の起動回数 |
処理 |
reset関数は、RuleSessionの初期化中に1回起動されるため、reset関数の起動回数は、RuleSessionクライアントで起動された回数より常に1回多くなります。
RLRulesetTypesおよびRLRuleTypesからのメトリックは、DMSのロールアップ機能を使用して、ルール・セッション・レベルで集計されます。RLRuleTypeとは異なり、RLRuleSessionTypeのインスタンスは破棄されません。