none
SQL SERVER 2012 - Probleme mit globalen Cursor (Stromausfall) RRS feed

  • Frage

  • Hallo NG,

    wir benutzen viele globale Cursor...beim letzten Stromausfall konnten einige Cursor nicht geschlossen und deallokiert werden.

    Das machte sich im Anschluss folgendermaßen bemerkbar: 

    [Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt

    -16915 ERR=[42000][16915][Microsoft][ODBC SQL Server Driver][SQL Server]A cursor with the name '__xxx' already exists.

    Jetzt möchte ich gerne alle offenen globalen Cursor finden und löschen.

    Wer kann mir helfen?

    Danke und Gruß Fudzzi

    P.S. Einen Datenbankserver Neustart brachte leider keinen Erfolg.

    Freitag, 16. Oktober 2015 13:07

Antworten

  • Hallo,

    nach einem Server-Neustart sind alle Cursor (und andere temporären Laufzeitdinge) weg. Nur wirst Du nach einem Neustart des Servers alle Client-Anwendungen ebenfalls neu starten müssen.

    Zudem solltest Du überprüfen, ob der Absturz Daten-Fehler verursacht hat, die wiederum Fehler bei der Client-Software führen. So könnte z. B. das Erzeugen von globalen Cursor-Namen fehlerhaft funktionieren, wenn die Software die Namen auf Basis einer Tabelle erzeugt und dort eine falsche laufende Nr. o. ä. verwendet wird.

    Gruß Elmar

    P. S. Unabhängig davon sind Globale Cursor sind immer eine schlechte Idee ...

    Samstag, 17. Oktober 2015 14:45
  • Hallo,

    das trotz Neustart des SQL Servers globale Cursor erhalten bleiben, kann ich mir nur schwer vorstellen.

    Auflisten kannst Du alle aktuell offene Cursor mit List all open Cursors


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 16. Oktober 2015 13:13

Alle Antworten

  • Hallo,

    das trotz Neustart des SQL Servers globale Cursor erhalten bleiben, kann ich mir nur schwer vorstellen.

    Auflisten kannst Du alle aktuell offene Cursor mit List all open Cursors


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Freitag, 16. Oktober 2015 13:13
  • Hallo,

    nach einem Server-Neustart sind alle Cursor (und andere temporären Laufzeitdinge) weg. Nur wirst Du nach einem Neustart des Servers alle Client-Anwendungen ebenfalls neu starten müssen.

    Zudem solltest Du überprüfen, ob der Absturz Daten-Fehler verursacht hat, die wiederum Fehler bei der Client-Software führen. So könnte z. B. das Erzeugen von globalen Cursor-Namen fehlerhaft funktionieren, wenn die Software die Namen auf Basis einer Tabelle erzeugt und dort eine falsche laufende Nr. o. ä. verwendet wird.

    Gruß Elmar

    P. S. Unabhängig davon sind Globale Cursor sind immer eine schlechte Idee ...

    Samstag, 17. Oktober 2015 14:45