콘텐츠로 이동

정책

정책은 트랜잭션과 관련된 이상 상태를 감지합니다. 각 트랜잭션 정의에는 연결된 정책 정의가 있습니다.

정책은 다음과 같은 이상 트랜잭션 상태를 만듭니다:

  • 느림: 트랜잭션이 느린 것으로 분류되는 임계값은 절대 시간으로 지정하거나 이 트랜잭션 정의에 의해 생성된 트랜잭션의 평균 지속 시간에 대한 상대적 백분율 값으로 지정할 수 있습니다.
  • 매우 느림: “느림”과 같은 또 다른 시간 기반 임계값이지만 더 심각한 범주를 위한 것입니다. “느림” 트랜잭션은 알림 없이 발생할 수 있고 “매우 느림” 트랜잭션은 알림을 트리거하도록 “느림”과 “매우 느림”을 구분할 수 있습니다.
  • 기한 초과: 일반적으로 절대 시간이며 “매우 느림” 임계값보다 훨씬 큰 세 번째 시간 기반 임계값 이후에는 트랜잭션을 교착 상태이거나 멈춘 것으로 볼 수 있습니다.
  • 오류: 오류가 발생한 트랜잭션은 특별한 주의가 필요합니다. 오류에는 두 가지 소스가 있습니다:
    1. 예외: java.lang.Error(오류), java.lang.RuntimeException(런타임 예외), java.lang.Exception(확인된 예외)에서 파생된 예외를 개별적으로 활성화할 수 있습니다. 확인된 예외는 일반적으로 애플리케이션에서 처리되며 반드시 트랜잭션 오류를 초래하지는 않습니다.
    2. 기록된 오류: 애플리케이션이 로깅 프레임워크로 오류를 기록하면 jvmguard가 트랜잭션을 오류로 표시할 수 있습니다. java.util.logging, log4j, JBoss logging 및 Logback이 jvmguard에서 지원됩니다. 선택적으로 경고도 트랜잭션 오류로 처리되도록 구성할 수 있습니다.

트랜잭션 정의에 정책이 정의되어 있지 않으면 jvmguard는 정책 정의가 활성화된 일치하는 항목을 찾을 때까지 트랜잭션 정의 목록을 계속 진행합니다. 이를 통해 여러 트랜잭션 정의에 대해 동일한 정책을 정의할 수 있으며, 가장 극단적인 경우 명명 정의 없이 정책 정의만 있는 “catch-all” 항목으로 정의할 수 있습니다.

때로는 반대 방향으로 단일 트랜잭션 정의 내의 특정 트랜잭션에 대해 더 세분화된 정책을 정의하고 싶을 수 있습니다. 예를 들어, 광범위한 호출 집합을 캡처하는 단일 트랜잭션 정의가 있을 수 있습니다. 허용 가능한 지속 시간이 트랜잭션 이름에 따라 달라지는 경우 정책 세분화를 정의하여 트랜잭션 정의와 명명 체계를 여러 번 다시 추가하지 않아도 됩니다.

이 경우 클래스를 필터링하는 부모 트랜잭션 정의와 달리 정책 세분화는 트랜잭션 명명의 결과를 필터링합니다.

트랜잭션 데이터 뷰에는 호출 트리, 핫스팟, 기한 초과의 세 탭이 있습니다. 호출 트리와 핫스팟에서 각 트랜잭션은 색상과 접두사로 정책 상태를 표시하므로 어떤 트랜잭션이 느리거나, 매우 느리거나, 오류가 있는지 한눈에 볼 수 있습니다. 기한 초과 탭에는 정책의 기한 초과 임계값을 초과한 트랜잭션, 즉 멈춰 있거나 교착 상태인 트랜잭션만 표시됩니다.

특정 정책 상태에 집중하려면 필터 표시줄(깔때기 아이콘)에서 트랜잭션 상태 필터를 열고 “느림”, “매우 느림” 또는 “오류”를 선택하세요. 그러면 트리가 일치하는 트랜잭션과 해당 조상 노드로 축소되므로 컨텍스트가 유지됩니다. 필터 텍스트를 함께 입력하면 일치하는 트랜잭션 내에서만 해당 텍스트가 검색됩니다.