Maximum open cursors exceeded (Oracle)
mwgomez - 12-07-2006 02:06
Maximum open cursors exceeded (Oracle)
Mam program w Delphi w ramach którego wykonuje INSERT do niewielkiej tabeli tabeli (7 kolumn, w sumie < 250 znaklów we wszystkich kolumnach) bazy danych Oracle 10g Express Edition. Po dodaniu około 286 rekordów program się wywala z komunikatem: "Maximum open cursors exceeded", czy to można gdzieś ustawić? Pierwszy raz się spotkałem z czymś takim.
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 12-07-2006 02:06
Dnia 11 Jul 2006 14:45:10 +0200, "mwgomez" <informatykWYTNIJTO@element.com.pl> wklepał(-a):
>Mam program w Delphi w ramach którego wykonuje INSERT do niewielkiej tabeli >tabeli (7 kolumn, w sumie < 250 znaklów we wszystkich kolumnach) bazy danych >Oracle 10g Express Edition. Po dodaniu około 286 rekordów program się wywala z >komunikatem: "Maximum open cursors exceeded", czy to można gdzieś ustawić? >Pierwszy raz się spotkałem z czymś takim.
Można ustawić parametr open_cursor na większą wartość. Ale nie tu leży problem, tylko w konstrukcji twojej aplikacji - nie powinna ona zostawiać otwartych kursorów (zakładam, że masz domyślną wartość max=300 i stąd ten komunikat). -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
mwgomez - 13-07-2006 01:46
> Można ustawić parametr open_cursor na większą wartość. Ale nie tu leży > probem, tylko w konstrukcji twojej aplikacji - nie powinna ona zostawiać > otwartych kursorów (zakładam, że masz domyślną wartość max=300 i stąd ten > komunikat
Przede wszystkim, dziękuje za odpowiedź, a mogę jeszcze zapytać w jaki sposób (gdzie) ustawia się ten parametr open_cursor? Szczerze mówiąc nie wiem skąd się te otwarte kursory pojawiają ponieważ wykonuję zapytanie (tutaj konkretnie insert) i natrychmiast po tym zamykam komponent odpowiedzialny z tą operację. Zapis wykonuję do 2 tabel w ramach transackji, ale tutaj tez jest zapis do pierwszej, zapis do drugiej i zamykam transakcję.
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
mwgomez - 13-07-2006 01:46
> open_cursor Ok, juz znalazłem, w pliku ORA.INI. A jaka mo że być maksymalna dopuszczalna wartość dla open_cursor ?
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 13-07-2006 01:46
Dnia 12 Jul 2006 09:53:04 +0200, "mwgomez" <informatykWYTNIJTO@element.com.pl> wklepał(-a):
>Ok, juz znalazłem, w pliku ORA.INI. A jaka mo że być maksymalna dopuszczalna >wartość dla open_cursor ?
Zalecana wartość < 1000, ale czasami trzeba ustawić więcej. Ale pamiętaj - każdy otwarty kursor zajmuje pamięć na serwerze. Przy 5 użytkownikach może to być dla ciebie nieistotne, ale przy 500 już nie. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
mwgomez - 14-07-2006 02:45
Nie dawało mi spokoju to, ze ten sam kod dla ADO chodził mi bezbłędnie, w końcu po na prawdę długich poszukiwaniach udało mi się znaleźć. Problem znika po podmianie kodu w kodzie biblioteki Zeos:
// podmienić w bibliotece ZEOS kod // destructor TZAbstractStatement.Destroy(); // na:
{** Destroys this object and cleanups the memory. } destructor TZAbstractStatement.Destroy; begin // Fabian: Begin fix of bug #1076975 Close; // Fabian: End of fix if Assigned(FBatchQueries) then FBatchQueries.Free;
FBatchQueries := nil; FConnection := nil; FInfo.Free; FLastResultSet := nil;
inherited Destroy; end;
Pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
dap - 14-07-2006 02:46
mwgomez wrote: > Nie dawało mi spokoju to, ze ten sam kod dla ADO chodził mi bezbłędnie, > w końcu po na prawdę długich poszukiwaniach udało mi się znaleźć. Problem > znika po podmianie kodu w kodzie biblioteki Zeos: > > // podmienić w bibliotece ZEOS kod > // destructor TZAbstractStatement.Destroy(); > // na: > > {** > Destroys this object and cleanups the memory. > } > destructor TZAbstractStatement.Destroy; > begin > // Fabian: Begin fix of bug #1076975 > Close; > // Fabian: End of fix > if Assigned(FBatchQueries) then > FBatchQueries.Free; > > FBatchQueries := nil; > FConnection := nil; > FInfo.Free; > FLastResultSet := nil; > > inherited Destroy; > end;
Dzieki za informacje :) To chyba ta linia z Begin fix of bug #1076975 i instrukcja close; ?
dap
-- ,= ,-_-. =. gnu.org ((_/)o o(\_)) polanski.biz `-'(. .)`-' xoops.pl \_/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
Oracle 19g +Insert +Insert +Insert...
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?=
=?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?=
[oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?=
[oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?=
MSSQL Express czy Oracle Express
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
=?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
zanotowane.pldoc.pisz.plpdf.pisz.plwawa19wwa91.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|