11.7.3. 트랜잭션에서 Heuristic Outcome 처리
추론적 트랜잭션 결과는 드물지만 일반적으로 특별한 원인을 갖습니다. 추론적이라는 단어는 "직접"을 의미하며, 일반적으로 이러한 결과를 처리해야 하는 방식입니다. 추론적 거래 결과에 대한 자세한 내용은 Heuristic Outcomes 를 참조하십시오.
다음 절차에서는 Jakarta 트랜잭션을 사용하여 트랜잭션의 복구 결과를 처리하는 방법을 설명합니다.
트랜잭션 결과의 원인은 리소스 관리자가 커밋하거나 롤백할 수 있다고 약속한 다음 약속을 이행하지 못하기 때문입니다. 이는 타사 구성 요소, 타사 구성 요소와 JBoss EAP 간의 통합 계층 문제 또는 JBoss EAP 자체에 문제가 될 수 있습니다.
지금까지 가장 일반적인 복구 오류의 원인은 환경에 일시적인 오류와 리소스 관리자를 처리하는 코딩 오류입니다.
일반적으로 환경에 일시적인 오류가 있는 경우 복구 오류를 확인하기 전에 이를 알 수 있습니다. 이는 네트워크 중단, 하드웨어 오류, 데이터베이스 장애, 정전 또는 기타 여러 가지 문제로 인해 발생할 수 있습니다.
스트레스 테스트 중에 테스트 환경에서 복구 결과가 나오면 테스트 환경의 약점이 있음을 의미합니다.
주의JBoss EAP는 장애 발생 시 복구되지 않은 상태인 트랜잭션을 자동으로 복구하지만 복구 트랜잭션은 복구하지 않습니다.
환경에 분명한 오류가 없거나 복구 결과를 쉽게 재현할 수 있는 경우 코딩 오류 때문일 수 있습니다. 솔루션을 사용하려면 타사 벤더에 문의해야 합니다.
JBoss EAP의 트랜잭션 관리자에 문제가 있다고 생각되는 경우 지원 티켓을 작성해야 합니다.
- 관리 CLI를 사용하여 수동으로 트랜잭션 복구를 시도할 수 있습니다. 자세한 내용은 JBoss EAP 에서 트랜잭션 관리의 트랜잭션 참가자 복구 섹션을 참조하십시오.
트랜잭션 결과를 수동으로 확인하는 프로세스는 오류의 정확한 상황에 따라 달라집니다. 환경에 적용할 수 있는 다음 단계를 수행합니다.
- 관련된 리소스 관리자를 식별합니다.
- 트랜잭션 관리자 및 리소스 관리자의 상태를 검사합니다.
- 관련된 구성 요소 중 하나 이상에서 로그 정리 및 데이터 조정을 수동으로 강제 적용합니다.
테스트 환경에서 또는 데이터의 무결성에 관심이 없는 경우 트랜잭션 로그를 삭제하고 JBoss EAP를 다시 시작하면 복구 결과가 제거됩니다. 기본적으로 트랜잭션 로그는 독립 실행형 서버의
EAP_HOME/standalone/data/tx-object-store/디렉터리에 또는 관리형 도메인의EAP_HOME/domain/servers/SERVER_NAME/data/tx-object-store/디렉터리에 있습니다. 관리형 도메인의 경우 SERVER_NAME 은 서버 그룹에 참여하는 개별 서버의 이름을 나타냅니다.참고트랜잭션 로그의 위치는 사용 중인 오브젝트 저장소와 object-store-
relative-to 및매개변수에 설정된 값에 따라 달라집니다. 파일 시스템 로그(예: 표준 섀도우 및 Apache ActiveMQ Artemis 로그)의 경우 기본 디렉터리 위치가 사용되지만 JDBC 오브젝트 저장소를 사용하는 경우 트랜잭션 로그가 데이터베이스에 저장됩니다.object-store-path