sequenceRule 요소

<sequenceRule> 요소는 연속 패턴에 따라 규칙을 정의합니다. 연속 규칙은 여러 이벤트 선택자를 허용하는 유일한 규칙입니다. 또한 최소 두 개의 이벤트 선택자가 필요합니다.

속성

<sequenceRule>에는 다음과 같은 속성이 있습니다.

표 1. <sequenceRule> 요소의 속성
이름 설명 데이터 유형 필수 여부
name 규칙을 식별합니다. 이 ID는 이 규칙을 포함하는 규칙 블록 내에서 고유해야 합니다. 마침표를 포함할 수 없습니다. xsd:NMTOKEN
processOnlyForwardedEvents 규칙이 모든 이벤트를 받을지 또는 다른 규칙에서 전달된 이벤트만을 받을지 여부를 결정합니다. 기본값은 규칙이 다른 규칙에서 전달된 이벤트를 포함하여 모든 이벤트를 받음을 표시하는 false입니다. xsd:boolean 아니오
arrivalOrder 이벤트가 규칙에 대해 <eventSelector> 요소가 코딩된 순서대로 도착해야 하는지 여부를 정의합니다. 올바른 값은 다음과 같습니다.
  • inOrder(기본값)
  • randomOrder
xsd:string 아니오

arrivalOrder 속성값이 randomOrder이면, <eventSelector> 요소가 코딩된 순서가 중요합니다. 가장 제한적인 이벤트 선택 기준을 갖는 <eventSelector>요소는 보다 덜 제한적인 이벤트 선택 기준을 갖는 <eventSelector> 요소보다 먼저 코딩되어야 합니다. 그렇지 않으면, 순서가 감지되어야 할 때 감지되지 않습니다.

예를 들어, 다음과 같은 상황에 있다고 가정해 보겠습니다.
  • 세 개의 <eventSelector> 요소가 정의되어 있습니다.
  • 첫 번째 <eventSelector> 요소는 eventA 이벤트를 확인합니다.
  • 두 번째 <eventSelector> 요소는 모든 이벤트를 확인합니다.
  • 세 번째 <eventSelector> 요소는 eventB 이벤트를 확인합니다.
  • eventA, eventBeventC 이벤트가 지정된 시간 창 내에서 시스템에 제공됩니다.
규칙 작동이 다음과 같고 순서가 발견되어야 할 때 순서가 발견되지 않습니다.
  1. 첫 번째 이벤트 eventA는 첫 번째 <eventSelector> 요소가 승인합니다.
  2. 두 번째 이벤트 eventB는 두 번째 <eventSelector> 요소가 승인합니다.
  3. 세 번째 이벤트 eventC는 무시됩니다.
예를 들어 다음과 같은 상황이 있습니다. <eventSelector> 요소는 올바르게 코딩되어 있고 가장 제한적인 이벤트 선택 기준이 덜 제한적인 이벤트 선택 기준보다 앞에 놓여 있습니다.
  • 첫 번째 <eventSelector> 요소는 eventA 이벤트를 확인합니다.
  • 두 번째 <eventSelector> 요소는 eventB 이벤트를 확인합니다.
  • 세 번째 <eventSelector> 요소는 모든 이벤트를 확인합니다.
규칙 작동이 다음과 같고 순서가 발견됩니다.
  1. 첫 번째 이벤트 eventA는 첫 번째 <eventSelector> 요소가 승인합니다.
  2. 두 번째 이벤트 eventB는 두 번째 <eventSelector> 요소가 승인합니다.
  3. 세 번째 이벤트 eventC는 세 번째 <eventSelector> 요소가 승인합니다.

포함 위치

<sequenceRule>은 다음 요소 내에 포함되어 있습니다.

포함 요소

<sequenceRule>은 다음 요소를 포함합니다.

요소는 표시된 순서대로 코딩되어야 합니다. 요소가 선택적이면 코딩할 필요가 없지만 코딩된 모든 요소는 올바른 순서를 따라야 합니다.

표 2. <sequenceRule> 요소 내에 포함된 요소
요소 필수 또는 선택적 여부
<comment> 선택적. 0 또는 1 발생이 허용됩니다.
<variable> 선택적. 영 이상의 발생이 허용됩니다.
<activationInterval> 선택적. 0 또는 1 발생이 허용됩니다.
<lifeCycleActions> 선택적. 0 또는 1 발생이 허용됩니다.
<eventSelector> 연속 규칙에는 이 요소의 두 개의 발생이 필요합니다. 추가 발생이 허용됩니다.
<groupingKey> 선택적. 0 또는 1 발생이 허용됩니다.
<timeWindow> 필수. 1 발생만이 허용됩니다.
<onDetection> 선택적. 0 또는 1 발생이 허용됩니다.
<onTimeOut> 선택적. 0 또는 1 발생이 허용됩니다.
관련 개념
연속 패턴