연속 패턴

연속 규칙은 연속 패턴에 의해 정의됩니다. 이는 이벤트의 특정 순서가 시간 간격 내에 도달하는지 여부를 감지합니다. 연속된 순서가 있거나 무작위일 수 있습니다. 연속 규칙은 상태 규칙입니다.

개요

연속 패턴은 일정 기간 동안 이벤트의 순서를 확인하고 순서가 완료되었는지 여부를 감지합니다. 완료되지 않은 순서는 지정된 순서에 하나 이상의 이벤트를 포함하지만 모두를 포함하지는 않습니다.

시간 기간은 <timeWindow> 요소가 규칙 언어로 정의한 대로 필수 시간 창으로 표시됩니다. 순서에서 각 이벤트는 규칙 내의 별도의 <eventSelector> 요소로 정의됩니다. 이벤트의 순서는 다음과 같은 순서로 발견될 수 있습니다.
  • 규칙에서 <eventSelector> 요소가 코딩된 순서. 이 경우에는 규칙이 첫 번째 <eventSelector> 요소에 의해 정의된 이벤트를 발견하면 순서 감지가 시작됩니다. 이제 규칙은 두 번째 <eventSelector> 요소가 정의한 이벤트를 기다립니다.
  • 무작위 순서. 이 경우에는 규칙이 <eventSelector> 요소에 의해 정의된 이벤트 중 하나를 발견하면 순서 감지가 시작됩니다. 이제 규칙은 <eventSelector> 요소에 의해 정의된 또 다른 이벤트 중 하나를 기다립니다.
연속 패턴은 다음과 같은 기본 방법에서 다른 규칙 패턴과 다릅니다.
  • 규칙이 어떤 이벤트를 승인하는지 정의하기 위한 여러 개의 <eventSelector> 요소가 있습니다. 최소 두 개의 <eventSelector> 요소가 필요합니다.
  • 이벤트가 <eventSelector> 요소 중 하나가 정의한 기준에 부합하면 해당 <eventSelector> 요소는 해당 규칙 인스턴스 내에서 이후의 이벤트 처리에서 제외됩니다.
  • <eventSelector> 요소의 별명 속성은 연속 규칙 내에서만 올바르며 연속 규칙에서 특정 이벤트 선택자가 선택한 이벤트에 고유한 이름을 지정합니다. 필터링 선언문 또는 조치 내의 표현식에서 act_eventList 변수를 사용하여 별명 이름으로 연속 규칙의 이벤트에 액세스할 수 있습니다.

규칙 응답 실행 조건

연속 패턴을 사용하면 규칙 응답은 다음과 같은 시간에 실행됩니다.
  • <onDetection> 요소에 의해 정의된 대로 이벤트의 전체 순서가 시간 창 내에서 감지될 때
  • <onTimeOut> 요소에 의해 정의된 대로 하나 이상의 이벤트가 도달했지만 전체 순서가 시간 창 내에 도달하지 않았을 때

    연속 패턴은 해당 순서가 완료되지 않았음을 발견하는 데 유용하게 사용할 수 있습니다. 예를 들어, "system down" 이벤트가 후속 "system up" 이벤트 없이 발생한 경우, 규칙 작성자는 이러한 누락된 이벤트 유형을 처리하기 위해 <onTimeOut> 조치를 코딩할 수 있습니다.

이 규칙 패턴의 사용 예제

전체 순서 감지를 설명하는 시나리오:
IT 환경에서, 관리자는 DB2® 힙 크기 값이 WebSphere® Application Server에 영향을 미치는지 여부를 확인한 후, 영향을 미칠 경우에 이 문제점을 정정하려고 합니다. 지정된 기간 동안에 다음 이벤트가 다음 순서대로 발생할 경우, 관리자는 DB2 힙 크기를 늘린 후 데이터베이스 관리자를 다시 시작합니다.
  1. WebSphere Application Server 자원 할당 예외. 이 경우, 이벤트가 WASResourceAllocationException 유형이라고 가정합니다.
  2. "힙 부족으로 인해 명령문을 처리할 수 없음"이라는 DB2 오류 메시지가 발생합니다. 이 경우, 이벤트가 DB2NotEnoughHeap 유형이라고 가정합니다.
이 시나리오의 경우, 연속 규칙에 두 개의 <eventSelector> 요소가 정의되어 있고 이벤트는 무작위 순서가 아니라 <eventSelector> 요소가 코딩된 순서대로 도달해야 합니다. 첫 번째 <eventSelector> 요소에서 WASResourceAllocationException 이벤트를 확인하고 두 번째 <eventSelector> 요소에서 DB2NotEnoughHeap 이벤트를 확인합니다. 다음 이벤트가 지정된 시간 창 내에서 시스템에 제공되었다고 가정합니다.
  1. WASResourceAllocationException
  2. DB2BackupStarted
  3. WASResourceAllocationException
  4. WASResourceAllocationException
  5. DB2NotEnoughHeap
규칙 작동은 다음과 같습니다.
  1. 첫 번째 이벤트인 WASResourceAllocationException을 승인합니다. 첫 번째 <eventSelector> 요소의 기준에 부합하므로 첫 번째 <eventSelector> 요소는 이제 이 규칙 내에서 이후의 이벤트 처리에서 제외됩니다.
  2. 두 번째 이벤트인 DB2BackupStarted는 무시합니다.
  3. 세 번째 이벤트인 WASResourceAllocationException은 무시합니다.
  4. 네 번째 이벤트인 WASResourceAllocationException은 무시합니다.
  5. 다섯 번째 이벤트인 DB2NotEnoughHeap을 승인하고 순서를 완료합니다. <onDetection> 규칙 응답 조치가 실행됩니다. 이 조치는 DB2 힙 크기의 값을 늘리고 데이터베이스 관리자를 다시 시작하도록 정의되어 있습니다. 이 규칙은 초기 상태로 돌아갑니다.

    첫 번째 <eventSelector> 요소가 이제는 이후에 이 규칙이 처리하는 이벤트에 포함됩니다.

완료되지 않은 순서 감지를 설명하는 시나리오:
비즈니스 조직에서는 모든 고객의 주문을 수령한 후 한 시간 이내에 주문이 배송 준비가 되기를 원하며 그렇지 않은 경우에는 통지를 받고자 합니다.
이 시나리오의 경우, 연속 규칙에 두 개의 <eventSelector> 요소가 정의되어 있고 이벤트는 무작위 순서가 아니라 <eventSelector> 요소가 코딩된 순서대로 도달해야 합니다. 첫 번째 <eventSelector> 요소는 operationType=Order가 있는 Netsales 이벤트를 확인하고 두 번째 <eventSelector> 요소는 operationType=Delivery가 있는 Netsales 이벤트를 확인합니다. 다음 이벤트가 지정된 한 시간의 시간 창 내에서 시스템에 제공되었다고 가정합니다.
  1. operationType=Order가 있는 Netsales 이벤트
  2. operationType=Order가 있는 Netsales 이벤트
규칙 작동은 다음과 같습니다.
  1. 첫 번째 이벤트를 승인합니다. 첫 번째 <eventSelector> 요소의 기준에 부합하므로 첫 번째 <eventSelector> 요소는 이제 이 규칙 내에서 이후의 이벤트 처리에서 제외됩니다.
  2. 두 번째 이벤트는 무시합니다.
  3. operationType=Delivery가 있는 Netsales 이벤트가 지정된 시간 창 내에 수신되지 않았기 때문에 <onTimeOut> 규칙 응답 조치가 실행됩니다. 이 조치는 비즈니스 경영진에게 고객의 주문이 수령된 후 1시간 이내에 배송 준비가 되지 않았음을 통지하기 위해 정의됩니디. 이 규칙은 초기 상태로 돌아갑니다.

    첫 번째 <eventSelector> 요소가 이제는 이후에 이 규칙이 처리하는 이벤트에 포함됩니다.

관련 개념
이벤트 관련 정보에 액세스
관련 참조
연속 규칙 요약