728x90
반응형
"분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다. "
① 시작메뉴 > 실행에서 dcomcnfg를 입력한 다음 확인
② 구성 요소 서비스 > 컴퓨터 > 내 컴퓨터 > Distributed Transaction Coordinator > 로컬 DTC 선택
③ 로컬 DTC를 마우스 오른쪽 단추로 클릭하고 속성 선택
④ 로컬 DTC 속성 창이 나타나면 보안 탭을 클릭 후 다음과 같이 설정
- 만약 Windows 방화벽을 사용하고 있다면 Distributed Transaction Coordinator 를 예외로 두어야 한다.
- SQL 상에서는 반드시 SET XACT_ABORT ON 으로 세팅을 하고 begin tran 대신 begin DISTRIBUTED tran 을 사용 해야 한다.
[쿼리변경으로 오류는 발생하지 않으나, 원인파악 요청]
실제 where절의 조건이 가변적이라 조합하여 @qry에 설정 후 호출하고 있습니다.
쿼리 예시)
1. 분산트랜잭션 오류가 발생하는 쿼리
declare @qry varchar(max)
declare @attendTbl table( comp_seq int)
set @qry ='select comp_seq from openquery(연결자, ''select comp_seq from 테이블명 LIMIT 10 '')'
insert into @attendTbl exec (@qry)
select comp_seq from @attendTbl
2. 쿼리변경으로 정상호출(테이블 변수대신 testTable 을 생성)
declare @qry varchar(max)
set @qry ='insert into testTable select comp_seq from openquery(연결자, ''select comp_seq from 테이블명 LIMIT 10 '')'
exec (@qry)
select comp_seq from testable
728x90
반응형
'IT > DB' 카테고리의 다른 글
[MS-SQL] sa 비밀번호 변경 (0) | 2022.04.12 |
---|---|
[MS-SQL] DELETE와 TRUNCATE차이 (0) | 2022.04.05 |
[MS-SQL] "RPC에 대해 구성되지 않았습니다" 오류 (0) | 2022.03.26 |
[MS-SQL] Buffer cache hit ratio 체크 (0) | 2022.03.22 |
[MS-SQL] DB 버퍼(캐쉬) 삭제 (0) | 2022.03.20 |
댓글