Po zainstalowaniu systemu Windows Server 2003 lub systemu Windows XP z dodatkiem Service Pack 2 w czasie wykonywania transakcji rozproszonej na serwerze połączonym w programie SQL Server 2000 może zostać wyświetlony komunikat o błędzie 7391

Świadczenie pomocy technicznej dla systemu Windows Server 2003 zakończono 14 lipca 2015.

Firma Microsoft zakończyła świadczenie pomocy technicznej dla systemu Windows Server 2003 14 lipca 2015. Ta zmiana wpłynęła na Twoje aktualizacje oprogramowania i opcje zabezpieczeń. Dowiedz się, co to oznacza dla Ciebie i jak zapewnić sobie kontynuację ochrony.

Ważne: Ten artykuł zawiera informacje na temat modyfikowania rejestru. Przed zmodyfikowaniem rejestru wykonaj jego kopię zapasową i upewnij się, że wiesz, jak przywrócić rejestr w przypadku pojawienia się problemu. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej, przywracania i modyfikowania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
256986 Opis rejestru systemu Windows
Symptomy
Podczas wykonywania transakcji rozproszonej w wystąpieniu programu SQL Server może się pojawić komunikat o błędzie podobny do następującego:

Server: Msg 7391, Level 16, State 1, Line 1
Nie można wykonać operacji, ponieważ dostawca OLE DB 'SQLOLEDB' nie był w stanie rozpocząć transakcji rozproszonej. [Zwrócony komunikat dostawcy OLE/DB: Nie można przyjąć nowej transakcji w określonym koordynatorze transakcji. ] Śledzenie błędów OLE DB [Metoda ITransactionJoin::JoinTransaction dostawcy OLE/DB 'SQLOLEDB' zwróciła wartość 0x8004d00a].


Ten problem może występować wtedy, gdy jest spełniony jeden z następujących warunków:
  • Na komputerze inicjującym transakcję rozproszoną jest zainstalowany system Microsoft Windows Server 2003 lub Microsoft Windows XP z dodatkiem Service Pack 2 (SP2).
  • Na komputerze zdalnym, na którym działa program Microsoft SQL Server 2000, jest zainstalowany system Microsoft Windows Server 2003 lub Microsoft Windows XP z dodatkiem SP2 i komputer ten jest połączony z komputerem inicjującym transakcję rozproszoną.
Przyczyna
Taki problem może mieć następujące przyczyny:
  • Program Microsoft Distributed Transaction Coordinator (MSDTC) jest wyłączony dla transakcji sieciowych.
  • Na komputerze jest włączona zapora systemu Windows. Domyślnie Zapora systemu Windows blokuje program Microsoft Distributed Transaction Coordinator (MSDTC).

    Uwaga: Ten problem może wystąpić nawet wtedy, gdy Zapora systemu Windows jest wyłączona.
Obejście problemu
Ostrzeżenie Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Problemy te mogą spowodować, że konieczna będzie ponowna instalacja systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Można modyfikować rejestr na własną odpowiedzialność.

Aby obejść ten problem, na komputerze z systemem Windows Server 2003 lub Windows XP z dodatkiem SP2 wykonaj następujące kroki:
  1. Upewnij się, że kontem Logowanie jako dla usługi MSDTC jest konto Usługa sieciowa. Aby to zrobić, wykonaj następujące kroki:
    1. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
    2. W oknie dialogowym Uruchamianie wpisz Services.msc, a następnie kliknij przycisk OK.
    3. W oknie Usługi zlokalizuj usługę Distributed Transaction Coordinator w kolumnie Nazwa w prawym okienku.
    4. W kolumnie Logowanie jako sprawdź, czy kontem Logowanie jako jest konto Usługa sieciowa lub System lokalny.

      Jeśli kontem Logowanie jako jest Usługa sieciowa, przejdź do kroku 2. Jeśli kontem Logowanie jako jest System lokalny, kontynuuj te kroki.
    5. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
    6. W oknie dialogowym Uruchamianie wpisz cmd, a następnie kliknij przycisk OK.
    7. W wierszu polecenia wpisz Net stop msdtc, aby zatrzymać usługę MSDTC.
    8. W wierszu polecenia wpisz Msdtc –uninstall, aby usunąć usługę MSDTC.
    9. W wierszu polecenia wpisz regedit, aby uruchomić Edytor rejestru.
    10. W Edytorze rejestru zlokalizuj następujący klucz:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
      .

      Usuń ten klucz.
    11. Zamknij Edytor rejestru.
    12. W wierszu polecenia wpisz Msdtc –install, aby zainstalować usługę MSDTC.
    13. W wierszu polecenia wpisz Net start msdtc, aby uruchomić usługę MSDTC.

      Upewnij się, że kontem Logowanie jako dla usługi MSDTC jest konto Usługa sieciowa.
  2. Włącz usługę MSDTC, aby zezwalać na transakcje sieciowe. Aby to zrobić, wykonaj następujące kroki:
    1. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
    2. W oknie dialogowym Uruchamianie wpisz dcomcnfg.exe, a następnie kliknij przycisk OK.
    3. W oknie Usługi składowe rozwiń węzeł Usługi składowe, rozwiń węzeł Komputery, a następnie rozwiń węzeł Mój komputer.
    4. Kliknij prawym przyciskiem myszy ikonę Mój komputer, a następnie kliknij polecenie Właściwości.
    5. W oknie dialogowym Właściwości: Mój komputer kliknij przycisk Konfiguruj zabezpieczenia na karcie MSDTC.
    6. W oknie dialogowym Konfiguracja zabezpieczeń kliknij, aby zaznaczyć pole wyboru Dostęp do usługi DTC przez sieć.
    7. Aby umożliwić uruchamianie transakcji rozproszonych na tym komputerze z komputera zdalnego, zaznacz pole wyboru Zezwalaj na przychodzące.
    8. Aby umożliwić uruchamianie transakcji rozproszonych na komputerze zdalnym z tego komputera, zaznacz pole wyboru Zezwalaj na wychodzące.
    9. W grupie Komunikacja Menedżera transakcji zaznacz opcję Uwierzytelnienie niewymagane.
    10. W oknie dialogowym Konfiguracja zabezpieczeń kliknij przycisk OK.
    11. W oknie dialogowym Właściwości: Mój komputer kliknij przycisk OK.
  3. Skonfiguruj Zaporę systemu Windows, aby obejmowała program MSDTC program oraz port 135 jako wyjątek. Aby to zrobić, wykonaj następujące kroki:
    1. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
    2. W oknie dialogowym Uruchamianie wpisz Firewall.cpl, a następnie kliknij przycisk OK.
    3. W Panelu sterowania kliknij dwukrotnie ikonę Zapora systemu Windows.
    4. W oknie dialogowym Zapora systemu Windows kliknij przycisk Dodaj program na karcie Wyjątki.
    5. W oknie dialogowym Dodawanie programu kliknij przycisk Przeglądaj, a następnie zlokalizuj plik Msdtc.exe. Domyślnie ten plik jest przechowywany w folderze <dysk_instalacyjny>:\Windows\System32.
    6. W oknie dialogowym Dodawanie programu kliknij przycisk OK.
    7. W oknie dialogowym Zapora systemu Windows zaznacz opcję msdtc na liście Programy i usługi.
    8. Kliknij przycisk Dodaj port na karcie Wyjątki.
    9. W oknie dialogowym Dodawanie portu wpisz 135 w polu tekstowym Numer portu, a następnie zaznacz opcję TCP.
    10. W oknie dialogowym Dodawanie portu wpisz nazwę wyjątku w polu tekstowym Nazwa, a następnie kliknij przycisk OK.
    11. W oknie dialogowym Zapora systemu Windows wybierz nazwę użytą dla wyjątku w kroku j na liście Programy i usługi, a następnie kliknij przycisk OK.
Stan
Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w sekcji „Informacje zawarte w tym artykule dotyczą”.
Więcej informacji

Kroki prowadzące do odtworzenia problemu

  1. Zaloguj się do komputera z zainstalowanym systemem Windows Server 2003 lub Windows XP z dodatkiem SP2.
  2. Uruchom narzędzie Query Analyzer.
  3. Dodaj komputer zdalny, na którym działa program Microsoft SQL Server 2000 jako serwer połączony. Aby to zrobić, uruchom następującą instrukcję Transact-SQL w narzędziu Query Analyzer:
    EXEC sp_addlinkedserver  '<serwer_zdalny>',  N'SQL SERVER'GO

    Uwaga Należy zastąpić serwer_zdalny nazwą komputera, który musi być skonfigurowany jako serwer połączony.
  4. Uruchom transakcję rozproszoną między tym komputerem a komputerem zdalnym. Aby to zrobić, uruchom następującą instrukcję Transact-SQL w narzędziu Query Analyzer:
    SET xact_abort ON GOUSE  pubsGOBEGIN DISTRIBUTED TRANSACTIONSELECT  *  FROM <serwer_zdalny>.pubs.dbo.authorsCOMMIT TRANGO
    Może się pojawić komunikat o błędzie opisany w sekcji „Symptomy”.
Materiały referencyjne
Aby uzyskać więcej informacji dotyczących konfigurowania systemu Windows XP z dodatkiem Service Pack 2 do korzystania z programu SQL Server 2000, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
841249 How to configure Windows XP Service Pack 2 for use with SQL Server
MSDTC RPC Springboard XP SP2 DTC
Właściwości

Identyfikator artykułu: 839279 — ostatni przegląd: 05/17/2011 04:26:00 — zmiana: 4.0

Microsoft SQL Server 2000 Standard Edition, Microsoft Windows XP Embedded, Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)

  • kbsqlmanagementtools kbregistry kberrmsg kbdtc kbdomain kbauthentication kbtransaction kbrpc kbprb KB839279
Opinia