none
분산 트랜잭션 구성 시 '함수 RECOVER:이(가) 실패했습니다.' 오류 발생 RRS feed

  • 질문

  • MS-SQL 에서 분산 트랜잭션 설정 후 WAS 기동 시 아래와 같은 에러가 발생합니다.

    기 보고된 이슈가 있는지 확인해보니

    "

    MS에서 공지 해준대로 다 설정을 해줬는데도 처음 서버가 뜰때 Recover 관련 에러들이 떴었는데.. 결론부터 말씀드리면 MS 버그입니다. Link는 기억 안나지만 Stack overflow 에서 찾아봤던 기억으로 환경 세팅후 최초 구동시 Recover 할 내역이 있지 않은상태에서 Recover 쪽 관련된 에러를 뱉는거 같습니다. 트랜잭션 설정후 서버를 통해 insert update select 몇번 실행해보다 보면 해당 에러는 사라집니다.

    "

    이런 답변이 있는데 공식 답변이 아닌지라

    실제로 쿼리를 날리다보면 사라지는 것인지, 

    사라진 후에는 정상적으로 사용 가능한 것인지 확인 부탁드립니다.


    MS-SQL 버전 : Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)   Aug 22 2017 17:04:49   Copyright (C) 2017 Microsoft Corporation  Enterprise Evaluation Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 17763: ) (Hypervisor) 

    WAS 정보 : Jeus 8

    구성서비스에 분산트랜잭션 사용 체크하였고

    xa_install.sql 마스터로 실행하여 확장프로시저 생성하였고요.

    5월 07, 2019 1:57:02 오후 com.atomikos.logging.JULLogger logInfo
    정보: HWQUENT: refreshed XAResource
    5월 07, 2019 1:57:12 오후 com.atomikos.logging.JULLogger logWarning
    경고: Error while retrieving xids from resource - will retry later...
    javax.transaction.xa.XAException: 함수 RECOVER:이(가) 실패했습니다. 상태: -3. 오류: "*** SQLJDBC_XA DTC_ERROR Context: xa_recover, state=1, StatusCode:-3 (0xFFFFFFFD) ***"
    at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:645)
    at com.microsoft.sqlserver.jdbc.SQLServerXAResource.recover(SQLServerXAResource.java:823)
    at com.atomikos.datasource.xa.RecoveryScan.recoverXids(RecoveryScan.java:32)
    at com.atomikos.recovery.xa.XaResourceRecoveryManager.retrievePreparedXidsFromXaResource(XaResourceRecoveryManager.java:158)
    at com.atomikos.recovery.xa.XaResourceRecoveryManager.recover(XaResourceRecoveryManager.java:67)
    at com.atomikos.datasource.xa.XATransactionalResource.recover(XATransactionalResource.java:449)
    at com.atomikos.icatch.imp.TransactionServiceImp.performRecovery(TransactionServiceImp.java:490)
    at com.atomikos.icatch.imp.TransactionServiceImp.access$000(TransactionServiceImp.java:56)
    at com.atomikos.icatch.imp.TransactionServiceImp$1.alarm(TransactionServiceImp.java:471)
    at com.atomikos.timing.PooledAlarmTimer.notifyListeners(PooledAlarmTimer.java:95)
    at com.atomikos.timing.PooledAlarmTimer.run(PooledAlarmTimer.java:82)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


    2019년 5월 9일 목요일 오전 12:08

모든 응답

  • 안녕하세요,

    말씀하신 증상의 경우, SQL 과 MSDTC 간 매핑 누락, 혹은 애플리케이션 서버 등 다양한 원인이 확인됩니다. 구성을 어떻게 하셨는지에 따라 조금 다를 수 있을 것 같습니다. 다만 통상적인 경우엔 하기 방법을 통해서 startup procs Server Configuration 을 다시 구성해보시는 것이 문제 해결에 도움이 될 수 있을 것 같습니다.

    sp_configure 'show advanced options', 1
    reconfigure sp_configure 'scan for startup procs', 1
    reconfigure exec sys.sp_procoption 'xp_sqljdbc_xa_init', 'startup', 1

    만약 진행 후에도 동일하다면 조금 더 상세한 기술 지원을 고려해보시기 바랍니다.

    감사합니다.


    ※ 응답이 문제 해결에 도움이 되었다면 [답변으로 표시] 버튼을 눌러 주시기 바랍니다. 이는 유사한 증상을 겪는 다른 사용자들에게 도움이 될 수 있습니다. 만약 TechNet 구독자 지원에 대한 의견이 있다면, tnsf@microsoft.com 으로 문의할 수 있습니다.

    2019년 5월 9일 목요일 오전 2:22
    중재자