개발DB서버에서 분산트랜잭션이 작동하지 않았다. 상황에 따라 다른 에러코드가 반환됐는데, 다음과 같았다.
OLE/DB 공급자 'SQLOLEDB'이(가) 분산 트랜잭션을 시작할 수 없으므로 작업을 수행할 수 없습니다. [OLE/DB provider returned message: 지정한 트랜잭션 코디네이터에 새 트랜잭션을 기록할 수 없습니다. ] OLE DB 오류 추적 [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]
서버: 메시지 7391, 수준 16, 상태 1, 프로시저 xxxxxxxx, 줄 9 OLE/DB 공급자 'SQLOLEDB'이(가) 분산 트랜잭션을 시작할 수 없으므로 작업을 수행할 수 없습니다. [OLE/DB provider returned message: 지정한 트랜잭션 코디네이터에 새 트랜잭션을 기록할 수 없습니다. ]
-
Loopback Linked Servers
일단 이 경우에는 원인을 알아낼 수 있었다. Linked Server Considerations in a Clustered SQL Server는 분산트랜잭션으로 묶인 두개의 서버가 Loopback, 즉 같은 서버일 경우에 분산트랜잭션을 사용하려고 하면 에러가 발생한다고 말한다. 실제로 상용DB서버쪽에서 똑같은 코드를 실행해보니, 정상적으로 분산트랜잭션 처리가 됐다. -
IP Address
분산 트랜잭션 다시한번 질문입니다..오류가 계속나서요ㅜㅜ라는 글에서 이와 같은 상황에 대한 언급이 있다. 연결된 두 서버의 네트워크 주소가 C 클래스까지 일치해야 한다고 한다. 이 문제에 대한 공식 문서를 찾지 못했지만, 실제로 테스트해본 결과로는 믿을만한 정보다. -
방화벽
분산처리(distributed transaction) – MSDTS라는 글에서 언급한 바를 소개하자면, 다음과 같다.
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
좋은 내용 감사합니다. 잘 참고하죠~ ^^*
개발DB에서 쿼리가 자꾸 에러를 발생시키는 바람에, 처음에는 애꿎은 서버 관리자 탓만 했습니다. 상용 환경에서는 잘 되니 더욱 오해했었습니다.
여전히 블로그를 수첩으로 꾸준히 활용하고 계시는군요! 랩탑 수리는 잠시 보류하기로 했습니다. 조금 기다려보려고요…; 정말 랩탑이 깨지던 제가 깨지던, 저와 랩탑은 함께할 수 없는 운명인가봐요…;;;
저는 예전에 누군가 노트북에 커피를 엎지르는 바람에, 노트북과 사별한 기억이 있습니다. 어찌나 슬프던지, 살인자가 누군지만이라도 알면 덜 슬펐을텐데 말입니다.
이런이런 cold case인겁니까? 범인을 잡으셨어야 하는건데! 랩탑은 데스크탑에비해 한번 탈나면 고치기도 쉽지않고 업그레이드도 불가능하단게 단점입니다…물론 없으면 불편하니 어쩔수없이 동거하는 사이지만요;;;;
그 사건 생각하면 조금 씁쓸합니다. 동아리방에서 벌어진 일이라서 말입니다. 차라리 쏟은 커피를 닦아내지 않았다면, 노트북을 켜지도 않았을텐데 말이죠. 겁이 나서 사실을 숨기려고 했는지, 괜찮을 것이라고 믿었던 것인지는 아직도 모르겠습니다.
어쩌다가 ‘분산트랜잭션’에서 ‘Cold case’로 넘어왔는지 모르겠군요.
어떻게 ‘분산트랜잭션’에서 ‘cold case’로 넘어갔냐고요? 저랑 대화하면 다들 그렇게 됩니다. 바쁘신가봐요?
동아리방, 대학 동아리방 말씀하시는 건가보군요(..여긴 그런게 없어서; 안타깝게도 그런 분위기를 잘 모릅니다.) 뭐, 기분나쁜 일은 속히 속히 잊어주시는 센스, 발휘해주세요. 기억해봐야 속상하고 화나는건 언제나 본인이잖아요?