연속 규칙은 연속 패턴에 의해 정의됩니다. 이는 이벤트의 특정
순서가 시간 간격 내에 도달하는지 여부를 감지합니다. 연속된 순서가 있거나 무작위일 수 있습니다.
연속 규칙은 상태 규칙입니다.
개요
연속 패턴은 일정 기간 동안 이벤트의 순서를
확인하고 순서가 완료되었는지 여부를 감지합니다.
완료되지 않은 순서는 지정된 순서에 하나 이상의 이벤트를 포함하지만 모두를 포함하지는 않습니다.
시간 기간은 <timeWindow> 요소가 규칙 언어로 정의한 대로 필수 시간
창으로 표시됩니다. 순서에서 각 이벤트는 규칙 내의 별도의 <eventSelector>
요소로 정의됩니다. 이벤트의 순서는 다음과 같은 순서로 발견될 수 있습니다.
- 규칙에서 <eventSelector> 요소가 코딩된 순서.
이 경우에는 규칙이 첫 번째 <eventSelector> 요소에 의해 정의된 이벤트를
발견하면 순서 감지가 시작됩니다.
이제 규칙은 두 번째 <eventSelector> 요소가 정의한 이벤트를 기다립니다.
- 무작위 순서. 이 경우에는 규칙이 <eventSelector>
요소에 의해 정의된 이벤트 중 하나를 발견하면 순서 감지가 시작됩니다.
이제 규칙은 <eventSelector> 요소에 의해 정의된 또 다른 이벤트 중 하나를
기다립니다.
연속 패턴은 다음과 같은 기본 방법에서 다른 규칙 패턴과 다릅니다.
- 규칙이 어떤 이벤트를 승인하는지 정의하기 위한 여러 개의 <eventSelector>
요소가 있습니다. 최소 두 개의 <eventSelector> 요소가 필요합니다.
- 이벤트가 <eventSelector> 요소 중 하나가 정의한 기준에 부합하면
해당 <eventSelector> 요소는 해당 규칙 인스턴스 내에서 이후의 이벤트 처리에서
제외됩니다.
- <eventSelector> 요소의 별명 속성은 연속 규칙 내에서만
올바르며 연속 규칙에서 특정 이벤트 선택자가 선택한 이벤트에 고유한 이름을
지정합니다.
필터링 선언문 또는 조치 내의 표현식에서
act_eventList 변수를 사용하여 별명 이름으로 연속 규칙의 이벤트에 액세스할 수 있습니다.
이 규칙 패턴의 사용 예제
전체 순서 감지를 설명하는 시나리오:
IT 환경에서, 관리자는 DB2
® 힙 크기 값이 WebSphere
® Application
Server에 영향을 미치는지 여부를 확인한 후, 영향을 미칠 경우에 이 문제점을 정정하려고 합니다.
지정된 기간 동안에 다음 이벤트가 다음 순서대로 발생할 경우, 관리자는
DB2 힙 크기를 늘린 후 데이터베이스 관리자를 다시 시작합니다.
- WebSphere Application
Server 자원 할당 예외. 이 경우, 이벤트가 WASResourceAllocationException 유형이라고 가정합니다.
- "힙 부족으로 인해 명령문을 처리할 수 없음"이라는
DB2 오류 메시지가 발생합니다.
이 경우, 이벤트가 DB2NotEnoughHeap 유형이라고 가정합니다.
이 시나리오의 경우, 연속 규칙에 두 개의 <eventSelector> 요소가 정의되어 있고
이벤트는 무작위 순서가 아니라 <eventSelector> 요소가 코딩된 순서대로 도달해야 합니다.
첫 번째 <eventSelector> 요소에서
WASResourceAllocationException 이벤트를 확인하고
두 번째 <eventSelector> 요소에서
DB2NotEnoughHeap 이벤트를 확인합니다.
다음 이벤트가 지정된 시간 창 내에서
시스템에 제공되었다고 가정합니다.
- WASResourceAllocationException
- DB2BackupStarted
- WASResourceAllocationException
- WASResourceAllocationException
- DB2NotEnoughHeap
규칙 작동은 다음과 같습니다.
- 첫 번째 이벤트인 WASResourceAllocationException을 승인합니다.
첫 번째
<eventSelector> 요소의 기준에 부합하므로 첫 번째 <eventSelector>
요소는 이제 이 규칙 내에서 이후의 이벤트 처리에서 제외됩니다.
- 두 번째 이벤트인 DB2BackupStarted는 무시합니다.
- 세 번째 이벤트인 WASResourceAllocationException은 무시합니다.
- 네 번째 이벤트인 WASResourceAllocationException은 무시합니다.
- 다섯 번째 이벤트인 DB2NotEnoughHeap을 승인하고 순서를 완료합니다.
<onDetection> 규칙 응답 조치가 실행됩니다. 이 조치는 DB2 힙 크기의 값을 늘리고 데이터베이스 관리자를 다시 시작하도록 정의되어 있습니다.
이 규칙은 초기 상태로 돌아갑니다.
첫 번째 <eventSelector> 요소가 이제는
이후에 이 규칙이 처리하는 이벤트에 포함됩니다.
완료되지 않은 순서 감지를 설명하는 시나리오:
비즈니스 조직에서는
모든 고객의 주문을 수령한 후 한 시간 이내에 주문이 배송 준비가 되기를 원하며 그렇지 않은 경우에는
통지를 받고자 합니다.
이 시나리오의 경우,
연속 규칙에 두 개의 <eventSelector> 요소가 정의되어 있고
이벤트는 무작위 순서가 아니라 <eventSelector> 요소가 코딩된 순서대로
도달해야 합니다. 첫 번째 <eventSelector> 요소는
operationType=Order가 있는
Netsales 이벤트를 확인하고 두 번째 <eventSelector> 요소는
operationType=Delivery가 있는
Netsales 이벤트를 확인합니다.
다음 이벤트가 지정된 한 시간의 시간 창 내에서 시스템에
제공되었다고 가정합니다.
- operationType=Order가 있는 Netsales 이벤트
- operationType=Order가 있는 Netsales 이벤트
규칙 작동은 다음과 같습니다.
- 첫 번째 이벤트를 승인합니다. 첫 번째
<eventSelector> 요소의 기준에 부합하므로 첫 번째 <eventSelector>
요소는 이제 이 규칙 내에서 이후의 이벤트 처리에서 제외됩니다.
- 두 번째 이벤트는 무시합니다.
- operationType=Delivery가 있는 Netsales 이벤트가 지정된 시간 창 내에
수신되지 않았기 때문에 <onTimeOut> 규칙 응답 조치가 실행됩니다.
이 조치는 비즈니스 경영진에게 고객의 주문이 수령된 후 1시간 이내에
배송 준비가 되지 않았음을 통지하기 위해 정의됩니디.
이 규칙은 초기 상태로 돌아갑니다.
첫 번째 <eventSelector> 요소가 이제는
이후에 이 규칙이 처리하는 이벤트에 포함됩니다.