5.4. 만료된 트랜잭션 삭제
다음 속성을 사용하면 만료된 트랜잭션을 지울 수 있습니다.
ExpiryEntryMonitor
복구 관리자가 만료 스캐너 스레드를 초기화하면 Expiry
EntryMonitor
오브젝트가 생성되어 오브젝트 저장소에서 데드 항목을 제거하는 데 사용됩니다. 여러 스캐너 모듈이 동적으로 로드되므로 특정 유형의 배달되지 않은 항목이 제거됩니다.RecoveryEnvironmentBean.expiryScanners
시스템 속성을 사용하여 properties 파일에서 scanner 모듈을 구성할 수 있습니다. scanner 모듈은 초기화 시 로드됩니다.$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.expiryScanners=CLASSNAME1,CLASSNAME2
expiryScanInterval
모든 scanner 모듈은 Expiry
EntryMonitor
스레드에 의해 중단된 항목을 검사하기 위해 주기적으로 호출됩니다. 아래 예와 같이expiryScanInterval
시스템 속성을 사용하여 시간 단위로 이 기간을 구성할 수 있습니다.$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.expiryScanInterval=EXPIRY_SCAN_INTERVAL
모든 scanner 모듈은 Expiry Scanner
인터페이스에서 동일한 동작을 상속받습니다. 이 인터페이스는 다음을 포함하여 모든 scanner 모듈에서 구현한 검사 방법을 제공합니다. 스캐너 스레드는 이 검사 방법을 호출합니다.
ExpiredTransactionStatusManagerScanner
ExpiredTransactionStatusManagerScanner
는 오브젝트 저장소에서배달된 TransactionStatusManagerItems
를 제거합니다. 이러한 항목은 삭제되기 전에 특정 기간 동안 오브젝트 저장소에 남아 있으며 기본적으로 12시간입니다. 아래 예와 같이transactionStatusManagerExpiryTime
시스템 속성을 사용하여 이 기간(시간)을 구성할 수 있습니다.$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.transactionStatusManagerExpiryTime=TRANSACTION_STATUS_MANAGER_EXPIRY_TIME
AtomicActionExpiryScanner
AtomicActionExpiryScanner
는 완료되었다고 가정하는AtomicActions의
트랜잭션 로그를 이동합니다. 예를 들어 참가자가 커밋하도록 지시한 후에 오류가 발생하지만트랜잭션
하위 시스템에서 로그를 업데이트할 수 있기 전에 JBoss EAP 트랜잭션 관리자가 커밋 요청을 재생성하려고 합니다. 이 재생은 분명히 실패하므로 로그가 제거되지 않습니다.AtomicActionExpiryScanner
는 손상된 등의 이유로 로그를 자동으로 복구할 수 없는 경우에도 사용됩니다. 모든 로그는/Expired
로 추가된 이전 위치에 따라 특정 위치로 이동합니다.참고AtomicActionExpiryScanner
는 기본적으로 비활성화되어 있습니다. 트랜잭션 관리자 속성 파일에 추가하여 활성화할 수 있습니다. 손상된 로그를 처리할 수 있도록 활성화할 수 없습니다.