Pracuję nad pakietem, który wymaga transakcji, ale obecnie pojawia się następujący błąd:
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.
Oto, co dotychczas wiem:
- Pakiet 2012
- Korzystam z wdrażania pakietu
- Właściwość TransactionOption jest ustawiona na Wymagane
- Działa z wystąpieniem 2008 R2
- Mogę ręcznie utworzyć transakcję rozproszoną na instancji i zgodnie z uruchomioną przeglądarką zdarzeń MSDTC.
- MSDTC ma następujące ustawienia
Czy ktoś może wskazać kierunek, aby znaleźć dodatkowe informacje.
Edycja: Jeden z kroków, które przeczytałem, powiedział, aby uruchomić DTC na lokalnej maszynie z pakietem, a także na serwerze przechowującym instancję. Gdy to zrobiłem, otrzymałem nowy błąd:
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.
Ważną częścią jest to, The transaction manager has disabled its support for remote/network transactions.
że brakuje mi czegoś w uprawnieniach? Uwaga: Allow Remote Clients
również zostało sprawdzone.
Widziałem ping MSDTC wspomniany (w tym w komentarzach poniżej), ale kiedy na niego spojrzałem, nie jestem pewien, co z tym zrobić.
sql-server
sql-server-2008-r2
ssis
ssis-2012
distributed-transactions
Kenneth Fisher
źródło
źródło
Odpowiedzi:
Rozwiązałem problem. Czytałem w kilku miejscach, że DTC należy uruchomić na maszynie źródłowej, a także w miejscu docelowym. Więc na moim miejscu jest moja stacja robocza, a także serwer, na którym znajduje się instancja.
Po włączeniu MSDTC otrzymałem nowy błąd:
Ważną częścią jest
The transaction manager has disabled its support for remote/network transactions.
Tam przeprowadziłem dodatkowe badania i wreszcie zdałem sobie sprawę, że nie skonfigurowałem lokalnego DTC, aby umożliwić dostęp do sieci itp. Raz skonfigurowałem go, aby umożliwić dostęp do DTC w sieci, zezwalać na połączenia zdalne i zezwalać na połączenia wyjściowe, wszystko działało sprawnie.
Nie jestem pewien, czy są to minimalne uprawnienia wymagane do połączenia lokalnego, ale wydaje się, że tak.
źródło