트랜잭션 할당량을 사용하면 다양한 유형의 트랜잭션에 대한 할당량 정책을 정의할 수 있습니다. 트랜잭션 할당량은 정책을 위반하는 모든 트랜잭션을 취소하고 사용자에게 취소를 알립니다.
Transaction Quotas 플러그인은 모든 새 인스턴스와 업그레이드된 인스턴스에서 기본적으로 활성화됩니다.그림 1. 트랜잭션 취소됨
또한 트랜잭션 할당량은 취소 메시지를 로그 파일에 경고로 기록합니다.그림 2. 트랜잭션 취소된 로그
일반적으로 관리자는 성능이 저하된 쿼리 및 스크립트가 시스템 리소스를 소비하지 않도록 트랜잭션 할당량을 설정합니다. 이렇게 하면 다른 트랜잭션이 실행되지 않을 만큼 충분한 자원을 소비하는 트랜잭션이 없습니다. 또한 관리자는 취소 로그 메시지를 확인하여 과도한 자원을 소비할 수 있는 트랜잭션을 식별할 수 있습니다.
트랜잭션 할당량 작동 방식
트랜잭션은 트랜잭션을 취소하는 백그라운드 스레드인 할당량 관리자를 사용합니다. 할당량 관리자는 다음 작업을 수행합니다.
아래 목록과 유사한 활성 트랜잭션 목록을 가져옵니다. 사용자 관리 > 활성 트랜잭션.
각 트랜잭션을 순환하고 트랜잭션과 일치하는 조건으로 모든 할당량 규칙을 확인합니다. 할당량 한도를 초과하는 첫 번째 발생은 트랜잭션 취소를 트리거합니다. 트랜잭션이 변경되거나 새 할당량 규칙이 있는 경우 할당량 관리자는 트랜잭션을 다시 평가합니다.
주:
할당량 규칙의 순서 필드는 할당량 규칙을 확인하는 순서에 영향을 줍니다. 할당량 관리자는 순서가 낮은 규칙을 먼저 검사하지만(예: 순서 90보다 순서 80이 먼저) 최종적으로는 모든 규칙을 검사합니다. 이는 관련된 규칙의 조건에 따라 성능에 미미한 영향을 미칠 수 있습니다.
트랜잭션이 지정된 할당량 최대값보다 오래 실행된 경우 트랜잭션을 취소합니다.
실행 중인 트랜잭션을 로깅합니다.
glide.quota.manager.heartbeat시스템 속성에 의해 제어되는 다음 하트비트까지 일시 중지됩니다.
트랜잭션 취소 예시
트랜잭션은 여러 가지 이유로 취소될 수 있습니다. 다음 표시기를 찾습니다.
최대 실행 시간 초과됨: 이 메시지는 glide.quota.manager 스레드가 트랜잭션을 취소할 때 나타납니다.
다른 트랜잭션에 의해 취소됨: 이 메시지는 glide.quota.manager 스레드가 아니라 트랜잭션을 처음 발행한 세션 스레드에 의해 트랜잭션이 취소된 경우에 나타납니다.
사용자 요청에 의해 취소됨: 이 메시지는 사용자가 빨간색 X 버튼을 클릭하여 실행 중인 트랜잭션을 취소했을 때 나타납니다.
glide.quota.manager에 의해 취소된 트랜잭션을 찾으려면 [메시지] [포함] [최대 실행 시간 초과] 조합을 검색합니다. 예:
Cancelling transaction /home.do - Default-thread-11.0 (maximum execution time exceeded): Thread Default-thread-11.0 (Default-thread-11.0, F530DD111B11111111FC031767DA158E), after 30000ms