6.10. イベントのメモリー管理
ストリームモードでは、デシジョンエンジンは自動メモリー管理を使用して、KIE セッションに保存されているイベントを維持します。デシジョンエンジンは、時間制約が原因でルールと一致しなくなったイベントを KIE セッションから取り除き、取り除かれたイベントが使っていたリソースを解放します。
デシジョンエンジンは、明示的な有効期限または推論された有効期限のいずれかを使用して、古いイベントを取り消します。
明示的な有効期限: デシジョンエンジンは、
@expiresタグを宣言するルールで明示的に有効期限が切れるよう設定されているイベントを削除します。有効期限が明示的な DRL ルールスニペット
declare StockPoint @expires( 30m ) end
declare StockPoint @expires( 30m ) endCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例のルールは、
StockPointイベントが 30 分後に有効期限となるよう設定し、他のルールがイベントを使用しない場合は KIE セッションから削除するよう設定します。推論された有効期限: デシジョンエンジンは、ルールの時間制約を解析することで、特定のイベントに関する有効期限の補正値を暗黙的に算出できます。
時間制約のある DRL ルール
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例のルールでは、デシジョンエンジンは、
BuyOrderイベントが発生するたびに、デシジョンエンジンがイベントを最大 10 秒間保存し、一致するAckOrderイベントを待つ必要があることを自動的に計算します。10 秒後に、デシジョンエンジンは有効期限を推論し、KIE セッションからイベントを削除します。AckOrderイベントは既存のBuyOrderイベントとのみ一致するため、一致が発生しない場合はデシジョンエンジンが有効期限を推論し、イベントをすぐに削除します。デシジョンエンジンは、KIE ベース全体を分析して、すべてのイベントタイプの補正値を見つけ、他のルールが削除を保留しているイベントを使用しないようにします。暗黙的な有効期限が明示的な有効期限の値と衝突するたびに、デシジョンエンジンはこの 2 つのうちの大きい方の時間枠を使用して、イベントをより長く保存します。