SSIS 패키지에서 트랜잭션을 만드는 중 문제


12

트랜잭션을 사용해야하는 패키지를 작업 중이지만 현재 다음과 같은 오류가 발생합니다.

SSIS package "CATS-Package.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001401A at CATS-Package: The SSIS Runtime has failed to start the distributed transaction due to error 0x8004D01B "The Transaction Manager is not available.". The DTC transaction failed to start. This could occur because the MSDTC Service is not running.
SSIS package "CATS-Package.dtsx" finished: Failure.

여기까지 내가 아는 것이 있습니다 :

  • 2012 년 패키지
  • 패키지 배포에서 실행 중입니다.
  • TransactionOption 속성이 필수로 설정되어 있습니다.
  • 2008 R2 인스턴스에 대해 실행
  • 인스턴스에서 MSDTC가 실행중인 이벤트 뷰어에 따라 분산 트랜잭션을 수동으로 만들 수 있습니다.
  • MSDTC에는 다음과 같은 설정이 있습니다.

여기에 이미지 설명을 입력하십시오

누구나 추가 정보를 찾을 방향을 가리킬 수 있습니다.

편집 : 내가 읽은 단계 중 하나는 인스턴스를 보유하고있는 서버뿐만 아니라 패키지를 실행하는 로컬 컴퓨터에서 DTC를 실행한다고 말했습니다. 일단 그렇게하면 새로운 오류가 발생했습니다.

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

중요한 부분 The transaction manager has disabled its support for remote/network transactions. 은 권한에 뭔가 빠졌습니까? 참고 : Allow Remote Clients또한 확인되었습니다.

나는 MSDTC 핑이 언급 된 것을 보았지만 (아래 주석 포함) 그것을 볼 때 나는 그것을 어떻게 해야할지 잘 모르겠습니다.


1
: 실제로 몇 가지 문제 해결 DTC 및 SSIS에 대한 단계 표시되는지 자세한 정보를 찾을 수 richardlees.blogspot.com/2010/01/...

1
SSIS 패키지에서 거래를 설정하기 위해 어떤 방법을 사용하고 있습니까?
Zane

1
msdtc에서 오류가 있는지 응용 프로그램 이벤트 로그를 확인하고 MSDTC ping support.microsoft.com/en-us/kb/918331을 다운로드하십시오.
Spörri

@ Spörri 클라이언트 또는 서버의 이벤트 로그에 아무것도 나타나지 않았습니다. 나는 MSDTC를 보았지만 내 머리 위로 (첫눈에) 보인다.
Kenneth Fisher

1
@KennethFisher powershell 테스트에서 서버 이름을 의미했습니다. 정보가 다시 있으면 RPC가 열려 있습니다.
Bob Klimes

답변:


10

나는 문제를 해결했다. 여러 곳에서 대상뿐만 아니라 소스 시스템에서도 DTC를 시작해야한다는 것을 읽었습니다. 따라서 제 자리에는 워크 스테이션과 인스턴스가있는 서버가 있습니다.

MSDTC를 켜면 새로운 오류가 발생합니다.

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

중요한 부분은 The transaction manager has disabled its support for remote/network transactions.

일단 추가 연구를하고 마침내 네트워크 액세스 등을 허용하도록 로컬 DTC를 구성하지 않았다는 것을 알게되었습니다. 네트워크 DTC 액세스, 원격 연결 허용 및 출력 연결 허용을 허용하도록 구성한 후에는 모든 것이 원활하게 작동했습니다.

여기에 이미지 설명을 입력하십시오

이것이 로컬 연결에 필요한 최소 권한인지 확실하지 않지만 그럴 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.