Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: CTX server problems
AK <ak_at_ak.org> wrote
> RG-50857: oracle error in drueixe
> oracle error in drueixe
> ORA-20000: interMedia Text error:
> DRG-10204: server update failed
> ORA-01000: maximum open cursors exc
> 14:01:35 11/24/03 === Server shutting down ===
Default value is 50 open cursors. It is set via OPEN_CURSORS (pfile or spfile or ALTER SYSTEM).
From the Oracle Reference Manual:
-- OPEN_CURSORS specifies the maximum number of open cursors (handles to private SQL areas) a session can have at once. You can use this parameter to prevent a session from opening an excessive number of cursors. This parameter also constrains the size of the PL/SQL cursor cache which PL/SQL uses to avoid having to reparse as statements are reexecuted by a user. It is important to set the value of OPEN_CURSORS high enough to prevent your application from running out of open cursors. The number will vary from one application to another. Assuming that a session does not open the number of cursors specified by OPEN_CURSORS, there is no added overhead to setting this value higher than actually needed. -- Set it higher. Also keep an eye on potential cursor leakage - i.e. PL/SQL or Pro*C or other client code that opens cursors and never close them when done. E.g. returning a ref cursor from PL/SQL to Pro*C and then doing a close on that refcursor pointer in Pro*C does not close the ref cursor in Oracle. Unsure if this is a Pro*C bug, but saw it happen on a 3 tier (Corba) system. The fix I proposed in that case was to call a PL/SQL proc with the refcursor variable in order to close it in Oracle after the Pro*C code was done with the refcursor - it worked thus far. -- BillyReceived on Fri Nov 28 2003 - 05:17:55 CST