Frage

Eine Reihe von gespeicherten Prozeduren unterstützt I Abfrage Remote-Datenbanken über ein WAN. Das Netzwerk gelegentlich geht nach unten, aber das Schlimmste, was jemals passiert waren die Verfahren gescheitert und würde neu gestartet werden muß.

Die letzten paar Wochen ist es eine unheimliche Wendung genommen. Statt die Verfahren versagt hängt in einem wierd verriegelten Zustand. Sie können nicht innerhalb von Oracle werden getötet und solange sie jeden Versuch, existieren andere Kopien des Verfahrens laufen hängen wird. Die einzige Lösung, die wir gefunden haben, ist die beanstandeten Verfahren mit einem „kill -9“ aus dem O zu töten. Einige dieser Verfahren sind seit Monaten nicht verändert, sogar Jahre, so dass ich eine Ursache in der DB oder DB-Konfiguration vermuten.

Jeder irgendwelche Ideen, was wir entweder tun können, um das Problem zu beheben? Oder hat PL / SQL hat einen Timeout-Mechanismus ich den Code hinzufügen kann, so dass ich eine Ausnahme erstellen kann, die ich programmatisch verarbeiten kann?

War es hilfreich?

Lösung 2

Wir waren nie in der Lage zu bestimmen, was dies verursacht passieren. Wir glauben, dass es ein Defekt in dem kumulativen Patch Oktober 2008 war. Vielleicht eine spätere Patch wie es behoben. Es ist nicht für ein paar Monate passiert ist (und wir haben einige Netzwerkausfälle haben) so hoffentlich das Problem verschwunden.

Andere Tipps

Welche Datenbank-Version? Sind sie mit SQL oder in PL / SQL stecken? Hat jemand hinzugefügt Ausnahme vor kurzem in den Routinen der Handhabung? Ich erinnere mich, in 9iR2, wurde uns gesagt, dass anstelle oder eine Ausnahme von der rufenden Routine erhöhen, wir alle Ausnahmen zu fangen waren und Laufen zu halten (im Grunde versuchen Prozess alle Elemente in der Job ausgeführt werden soll, auch wenn einige gescheitert). Wir hatten unweigerlich Arbeitsplätze in einer Endlosschleife mit SQLs stecken Fehler, durch den Exception-Handler erwischt zu werden und zu versuchen, wieder. Und sie konnten nicht getötet werden, wie die WHEN OTHERS gefangen auch die ‚Ihre Sitzung getötet wurde‘ Ausnahme. Ich denke, diese in 10 g geändert, so dass Ausnahme nicht erwischt hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top