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 는 기본적으로 비활성화되어 있습니다. 트랜잭션 관리자 속성 파일에 추가하여 활성화할 수 있습니다. 손상된 로그를 처리할 수 있도록 활성화할 수 없습니다.