규칙의 수명 주기

규칙의 수명 주기에서 각 단계에는 여러 개의 원인과 영향이 있을 수 있습니다. <lifeCycleActions> 요소에 정의된 대로 수명 주기 조치 내에 표현식을 작성하고 포함함으로써 규칙 작성자는 각 단계에서 수행할 조치를 정의할 수 있습니다.

규칙의 수명 주기에서의 단계

다음은 규칙의 수명 주기에서 네 개의 기본 단계입니다.
로드
규칙을 실행 중인 ACT(Active Correlation Technology) 엔진으로 로드합니다. 이는 <onLoad> 요소 내에서 조치를 트리거합니다.
활성화
<onActivation> 요소 내에서 조치를 트리거하는 규칙의 활성화입니다.
비활성화
<onDeactivation> 요소 내에서 조치를 트리거하는 규칙의 비활성화입니다.
로드 해제
규칙을 실행 중인 ACT(Active Correlation Technology) 엔진에서 로드 해제합니다. 이는 <onUnload> 요소 내에서 조치를 트리거합니다.

활성화 및 비활성화 단계는 규칙의 수명 주기에서 여러 번 발생할 수 있지만 로드와 로드 해제 단계는 한 번만 발생합니다.

일반적으로는 수명 주기 조치를 정의할 필요가 없습니다. 다음 예와 같은 경우에 사용자는 특정 수명 주기 조치를 정의하고 싶게 됩니다.
  • 특정 규칙이 로드되면 해당 규칙 내에서 액세스해야 하는 외부 시스템(예: 데이터베이스 관리자)에 대한 연결을 작성하고 싶어할 수 있습니다. 이 동일한 규칙이 로드 해제될 때에는 연결을 끊고 필요한 모든 정리 프로세스를 실행하고 싶어합니다.
  • 특정 규칙이 활성화되면 해당 규칙에서 특정 자원을 사용 가능한지 확인하고 싶어할 수 있습니다.
  • 임계값 규칙이 비활성화되었지만 임계값에 도달하지 않았고 기간이 아직 종료되지 않은 경우 메시지를 이 정보와 함께 누군가에게 전달하고 싶어할 수 있습니다.
규칙의 활성화외 비활성화는 수명 주기에서 여러 번 발생할 수 있으므로 이러한 단계에 코딩한 조치를 자주 실행할 수 있습니다.

각 수명 주기 단계의 원인과 영향

표 1에서는 각 수명 주기 단계의 원인과 영향을 나열합니다.

표 1. 각 수명 주기 단계의 원인과 영향
수명 주기 단계 원인 영향
로드 다음과 같은 상황입니다.
  • 규칙이나 규칙 블록이 추가되거나 대체되고 이로 인해 새 규칙이 로드됩니다.
  • 규칙 세트가 ACT(Active Correlation Technology) 엔진에서 교체되고 이로 인해 새 규칙 세트의 규칙이 로드됩니다.
<onLoad> 요소 내의 조치가 실행됩니다.
활성화 규칙이 활성화됩니다. 규칙은 다음 방법을 사용하여 활성화할 수 있습니다.
  • <activationInterval> 요소 내의 정의에 따라
  • act_lib 변수를 통해 사용 가능한 activate() 메소드를 통해서
  • ACT(Active Correlation Technology) 엔진에서 activate() 메소드에 대한 어플리케이션 호출을 통해서
규칙이 비활성이면 <onActivation> 요소 내의 조치가 실행됩니다.
비활성화 규칙이 비활성화됩니다. 규칙은 다음 방법을 사용하여 비활성화할 수 있습니다.
  • <activationInterval> 요소 내의 정의에 따라서. 예외로 <activationByGroupingKey> 요소 내의 <deactivateOnEvent> 요소는 규칙 비활성화를 초래하지 않습니다.
  • act_lib 변수를 통해 사용 가능한 deactivate() 메소드를 통해서
  • ACT(Active Correlation Technology) 엔진에서 deactivate() 메소드에 대한 어플리케이션 호출을 통해서
규칙이 활성이면 <onDeactivation> 요소 내의 조치가 실행됩니다.
로드 해제 다음과 같은 상황입니다.
  • ACT(Active Correlation Technology) 엔진이 종료되고 이로 인해 규칙이 로드 해제됩니다.
  • 규칙이나 규칙 블록이 추가되거나 대체되고 이로 인해 이전 규칙이 로드 해제됩니다.
  • 규칙 세트가 ACT(Active Correlation Technology) 엔진에서 제거되거나 교체되고 이로 인해 이전 규칙 세트의 규칙이 로드 해제됩니다.
규칙이 활성이면 <onDeactivation> 요소 내의 조치가 실행되고 뒤이어 <onUnload> 요소 내이 조치가 실행됩니다. 그렇지 않은 경우 <onUnload> 요소 내의 조치만이 실행됩니다.