Announcement

Collapse
No announcement yet.

MSSQL Transaktionale Replikation mit aktualiserbaren Abonnements - funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MSSQL Transaktionale Replikation mit aktualiserbaren Abonnements - funktioniert nicht

    Hallo,

    ich muss folgendes Projekt realisieren: Ich habe zwei Server, beide mit Windows 2003 Server und auf beiden ist Microsoft SQL 2005 installiert.
    Nun muss ich eine transaktionale Replikation mit aktualisierbaren Abonnements einrichten. Die Publikation ließ sich problemlos einrichten. Beim Abonnement allerdings erhalte ich permanent folgenden Fehler:

    Der Vorgang konnte nicht ausgeführt werden, da der OLE DB-Anbieter "SQLNCLI" für den Verbindungsserver "Server" keine verteilte Transaktion beginnen konnte.
    Der Datenbankkontext wurde auf 'ClientDB' geändert.
    Der OLE DB-Anbieter "SQLNCLI" für den Verbindungsserver "Server" hat die Meldung "The transaction has already been implicitly or explicitly committed or aborted" zurückgeben. (.Net SqlClient Data Provider)

    ------------------------------
    Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdN...1&LinkId=20476

    ------------------------------
    Servername: Client
    Fehlernummer: 7391
    Schweregrad: 16
    Status: 2
    Zeilennummer: 1

    Der angezeigte Link liefert kein Hilfe-Informationen.
    Es ist zwar eine Firewall eingerichtet, in dieser ist aber der Port 135 freigegeben. Weiterhin ist der Distributed Transaction Coordinator (DTC) auf beiden Servern derart eingerichtet, dass Netzwerkverbindungen zugelassen sind:

    DTC-Werte:
    Lokalen Koordinator verwenden: Ja
    DTC-Netzwerkzugriff: Ja
    Remoteclients zulassen: Ja
    Remoteverwaltung zulassen: Ja
    Eingehende zulassen: Ja
    Ausgehende zulassen: Ja
    Gegenseitige Authentifizierung erforderlich: Ja
    TIP-Transaktionen (Transaction Internet Protocol) ermöglichen: Ja
    XA-Transaktionen ermöglichen: Ja
    DTC-Anmelde-Konto: NT Authority\NetworkService

    Eine Transaktionae Replikation funktioniert, nur mit aktualiserbaren Abonnement nicht.

    Eine ausführliche Suche in Google brachte keinen Erfolg, auch bei Microsoft war kein hilfereiche Information zu bekommen. Hat hier jemand eventuell schon mit so einem Problem zu tun gehabt und es lösen können? Wenn ja, wäre ich für Hinweise/Tipps usw. wirklich dankbar. Ich schlage mich schon seit Wochen mit diesem Projekt herum und mir gehen langsam die Ideen aus.

    Vielen Dank, im Voraus!!!

    Mit freundlichen Grüße,
    Kristian Tingler

  • #2
    Also ich hab von MSSQLnicht soviel Ahnung, aber mal als Denkanstoß: Haben die anderen Datenbanken vielleicht auto commit ein?
    In Oracle würde so ein ähnlicher Fehler auftreten, wenn die andere Seite versucht einen Commit auszuführen. Beim 2-phase commit Verfahren kann jedoch nur von der Instance aus committet werden, die die Transaktion gestartet hat.

    Wie gesagt: Nur eine Vermutung

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Danke, für den Hinweis, hab ihn soeben probiert, jedoch brachte dies keinen Erfolg.

      Allerdings habe ich etwas interessantes festgestellt. Die Replikation endet zwar mit dem oben genannten Fehler, sie wird aber dennoch eingerichtet.
      Hiebei wird die Abonnement-Datenbank initialisiert und auch die Tabellen werden mit Werten gefüllt.

      Eine simple UPDATE-Abfrage auf der Abonnenten-Datenbank ergibt folgenden Fehler:

      Meldung 21079, Ebene 16, Status 1, Prozedur sp_getpublisherlink, Zeile 52
      Die RPC-Sicherheitsinformationen für den Verleger fehlen oder sind ungültig. Verwenden Sie sp_link_publication, um sie anzugeben.
      Meldung 20512, Ebene 16, Status 1, Prozedur sp_MSreplraiserror, Zeile 8
      Aktualisierbare Abonnements: Für die Transaktion wird ein Rollback ausgeführt.
      Meldung 3609, Ebene 16, Status 1, Zeile 1
      Die Transaktion endete mit dem Trigger. Der Batch wurde abgebrochen.

      Was muss ich hier nun tun? Wo lege ich diese RPC-Informationen fest und wie?


      Danke, für die Hilfe!

      Kristian

      Comment


      • #4
        Hallo Kristian,

        in dieser ist aber der Port 135 freigegeben
        Kannst Du den von dem einen Server auf den anderen Zugreifen und eine Abfrage (SELECT) ausführen?
        Die Kommunikation läuft (bei Standard-Inst) über TCP/IP Port 1433 (und UDP 1434 ist für den SQL Browser nötig).
        Filezugriff ist nur für die erste Snapshot-Übertragung nötig; das kann man zur Not auch per Hand erledigen.
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #5
          Hallo O.Helper,

          Ja - der Port ist freigegeben, auf beiden. Ich kann mich auch per Management Studio auf beiden einloggen und SELECT-Abfragen durchführen.

          Grüße,
          Kristian

          Comment

          Working...
          X