CER 세션

CER과 사용하는 기본 데이터 항목은 다음과 같습니다.

CER 규칙 오브젝트 및 속성 값과 연관된 모든 상호작용은 CER 세션에서 발생합니다. 이 상호작용에는 CER 규칙 오브젝트의 작성, 검색 및/또는 제거와 규칙 오브젝트의 속성 계산 또는 다시 계산이 포함됩니다.

각 CER 세션은 curam.creole.execution.session.Session_Factory 클래스를 사용하여 작성합니다.

CER 세션을 작성할 때 다음을 지정해야 합니다.

결과적으로 데이터 스토리지 구현에서 사용할 규칙 오브젝트 팩토리를 지정해야 합니다. 이 팩토리는 규칙 오브젝트가 작성되는 방식(명백하게 입력되거나 해석 전용 방식으로 작성)을 제어합니다.

애플리케이션에는 다음과 같은 구현이 포함되어 있습니다.

경고:
일반적으로 하나의 데이터베이스 트랜잭션에서 둘 이상의 CER 세션을 사용하지 않아야 합니다. CER 세션에 있는 규칙 오브젝트의 인메모리 사본은 다른 모든 CER 세션에 있는 규칙 오브젝트의 인메모리 사본과는 별개입니다.

두 개 이상의 CER 세션(동일한 트랜잭션의)이 데이터베이스에서 동일한 규칙 오브젝트를 검색하거나 조회하려고 시도하는 경우 작동 방식은 보장되지 않습니다.

1 CER이 직접 다시 계산을 수행하는 기능은 이제 종속성 관리자가 대체합니다(종속성 관리자 참조).

CER 다시 계산 전략 인터페이스 및 구현은 역호환성을 위해서만 제공됩니다.

2 Cúram V6부터 CER은 데이터 스토리지 구현에 대한 선택사항을 제공합니다. 이러한 데이터 스토리지 구현은 한 트랜잭션에서 작성되었거나 변경된 규칙을 다른 트랜잭션에서 검색 및/또는 변경할 수 있는지에 영향을 줍니다.

데이터 스토리지를 선택해도 규칙 표현식의 시맨틱에는 영향을 미치지 않습니다. 즉, 기본 계산에는 차이가 없이JUnit 테스트에 경량(인메모리) 데이터 스토리지(다수의 JUnit 테스트를 신속하게 실행할 수 있도록)를 사용하고 프로덕션 논리에는 지속적(데이터베이스) 데이터 스토리지(트랜잭션 간에 규칙 오브젝트가 지속적이도록)를 사용할 수 있습니다.

3 최적화를 위해 외부 규칙 오브젝트와 해당 속성 값만 Cúram 데이터베이스의 데이터에서 검색합니다. 내부 규칙 오브젝트와 해당 속성은 원래 나중에 다시 계산해도 안전하지만 외부 규칙 오브젝트는 일반적으로 외부 소스의 데이터를 포함하므로 다시 계산할 수 없습니다.
4 각 규칙 오브젝트 변환기는 readallreadall 표현식을 지원하는 데 대한 제한사항을 부여할 수 있습니다.

예를 들어, 일부 규칙 오브젝트 변환기는 readall(중첩된 match가 없는 경우)의 실행을 지원하지 않고/않거나 matchretrievedattribute 값에서 지명될 수 있는 규칙 속성을 제한할 수 있습니다.

규칙 오브젝트 변환기의 제한사항을 위반하면 런타임 시 예외 처리(throw)를 합니다. 인메모리 데이터 스토리지를 사용하는(따라서 규칙 오브젝트 변환기를 호출하지 않음) 대부분의 규칙 논리 테스트와 대조적으로 사용자의 규칙 세트 테스트에 규칙 오브젝트 변환기(즉, 데이터베이스 데이터 스토리지에 대해 실행)를 호출하는 논리가 포함되어 있는지 확인해야 합니다.

readall 지원에 대한 제한사항을 이해하려면 각 규칙 오브젝트 변환기 구현 문서를 참조하십시오.