Klaus: Oracle-DB Listener geht ständig auf Block bei MSSQL-Prozedur

Beitrag lesen

Hallo,

ich hoffe, ich kann bei Euch Unterstützung finden (und ihr die Geduld habt, durch den längeren Text zu lesen), da ich selber nicht weiterkomme.

Auf einer recht alten Oracle-DB (8i) läuft ein Listener mit 3 Instanzen. Eine dieser Instanzen geht mit wachsender Begeisterung auf Block.
Ich hab früher dann immer händisch den Listener gestoppt und gestartet. Früher heißt noch vor ein paar Jahren, da es nur hin und wieder vorkam, also 5-6 Mal pro Jahr.
In der letzten Zeit (seit ein paar Monaten) ist das allerdings so häufig geworden, dass ich zunächst das Stoppen und Starten automatisiert hatte (Bash-Script über Crontab jede Minute aufgerufen, der den Status prüft und gegebenenfalls selber stoppt und startet).
Nun habe ich mir in einer Textdatei protokolliert, wann der Listener auf Block geht und festgestellt, dass er es immer nur in einem festen Zeitfenster stattfindet (zwischen 07 Uhr und 20 Uhr) und mittlerweile 70 Mal pro Tag.
Auf einem 2. physikalischen Server läuft eine alte MSSQL-DB, in der der Oracel-DB als Verbindungsserver eingetragen ist (ODBC-Verbindung).
Hier startet genau in diesem Zeitfenster zwischen 7 und 20 Uhr eine Stored Procedure.
Ich habe testweise diese nur zwischen 13 Uhr und 20 Uhr laufen lassen und festgestellt, dass das Listener-Problem jetzt nur noch in diesem Zeitfenster auftrat.
Hiermit dürfte die Stored Procedure als Ursache ausgemacht sein.

Weder am Oracle-Server oder am MSSQL-Server noch an den Proceduren wurde etwas geändert (Das letzte Mal vor 7 Jahren).
Die Prozedur ist recht einfach, wenn auch umfangreich aufgebaut. Es werden eine ganze Reihe von Tabellen abgefragt bzw. aktualisiert.

SQL-Fehler treten keine auf, die wären sonst in einer ErrorLog-Tabelle protokolliert worden.
In der Synclog-Tabelle fallen ein paar leere Einträge auf, aber nicht in der Häufigkeit wie der Listener auf Block geht.

Es hat eventuell indirekt oder direkt mit der zu aktualisierenden Datenmenge zu tun, denn das ist das Einzige, was ständig gewachsen ist.

Hat jemand eine Idee, wie ich verhindern kann, dass der Listener auf Block geht?

Ich habe den Trace-Level maximiert, aber weder im listener.log noch im listener.trc finde ich etwas.
Ich müsste eventuell den automatischen Neustart mal ausschalten, denn mit jedem Neustart wird die listener.trc wieder neu erstellt und der alte Inhalt verworfen.

Klaus