środa, 20 czerwca 2012

ORA-01000: maximum open cursors exceeded

ORA-01000 oznacza, że liczba otwartych kursorów w ramach sesji przekracza maksymalną dozwoloną wartość - określoną przez  parametr open_cursors.

Tak możemy sprawdzić liczbę otwartych kursorów dla poszczególnych sesji:

Natomiast tak sprawdzimy, czy zbliżamy się do wartości określonej parametrem:

Co zrobić? Sprawdzić, czy kursory są poprawnie zamykane. Możliwe, że są. Może po prostu potrzebujemy czasami takiej ilości otwartych kursorów. Wystarczy wówczas zwiększyć wartość parametru:



Cytując fragment dyskusji z Ask Tom:
- Czy wpłynie to na działanie aplikacji?
- Tak. Zacznie działać w miejscach, w których do tej pory mogła się sypać.
- Jakie są zalecane wartości?
- Ustawiamy na 500 - 1000 i zapominamy o problemie. Jeżeli kursory wyciekają, prędzej czy później i tak przekroczą wartość graniczną.

Scope przyjmuje następujące wartości:
- SPFILE (For both static and dynamic parameters, changes are recorded in the spfile, to be given effect in the next restart.)
- MEMORY (For dynamic parameters, changes are applied in memory only. No static parameter change is allowed.)
- BOTH (For dynamic parameters, the change is applied in both the server parameter file and memory. No static parameter change is allowed.)

Polecam:
Monitoring Open and Cached Cursors
Ask Tom - Open cursors exceeded
Setting the Server Parameter File Values

Brak komentarzy:

Prześlij komentarz