Skip to content

"ORA 01000: Maximum aantal open cursors is overschreden" fout oplossen

Mark Prins edited this page May 31, 2016 · 3 revisions

De BRMO is geoptimaliseerd om zo snel mogelijk mutatie berichten te transformeren naar de RSGB database. Hierbij wordt in batches gewerkt en database-statements worden zo mogelijk hergebruikt (prepared statements). Connecties en statements worden pas afgesloten nadat, mogelijk 1000-den, statements zijn verwerkt.

Regelmatig, ca. elke 50-100 statement, wordt de transactie gecommit (of eventueel een rollback). Normaal gesproken hoort de database dan de cursors vrij te geven. In sommige gevallen (drivers) gebeurt dit ook, maar te veel Oracle installaties hebben hier problemen. Dan blijft het aantal cursors voortdurend oplopen en weigert de database verder werking.

De standaard installatie van Oracle heeft slechts een beperkt aantal cursors. Dit maximum moet opgehoogd worden naar een waarde van ca. 10000-30000. Hiernaast wordt de verbinding na elke batch berichten geforceerd gesloten en weer opgebouwd. Dit vertraagt helaas het proces enigzins, maar dit is onvermijdelijk bij Oracle.

Clone this wiki locally