Board index » delphi » Interbase memory leak

Interbase memory leak

Hi!

We are using a stored procedure to insert records into multiple tables,
about 15-50 records/sec.  The stored procedure also contains multiple select
statements.  Also, we are using InterBase API's, not ODBC.

After a while, interbase consumes all available physical and virtual memory.
The problem is very inconsistent.  Sometimes the database file reaches 100
of MB, sometimes only a few MB.  It seems to be connected with some kind of
database file corruption.  However, the stored procedure does not return any
specific error when the leak occurrs so there is no way for us to shut down
the database and perform data maintenace.  Once the interbase crashes, I can
use gfix and gbak to correct the corruption and use that file again (only
for another 24 hours ;-((( ).

Has anyone seen any similar problem(s)?

Miro

 

Re:Interbase memory leak


What is happening with the OAT and OIT?  Sounds like you are opening one
transaction and holding it open forever.  This causes the version chains to grow
very large over time consuming memory.

Quote
Miro Poliak wrote:

> Hi!

> We are using a stored procedure to insert records into multiple tables,
> about 15-50 records/sec.  The stored procedure also contains multiple select
> statements.  Also, we are using InterBase API's, not ODBC.

> After a while, interbase consumes all available physical and virtual memory.
> The problem is very inconsistent.  Sometimes the database file reaches 100
> of MB, sometimes only a few MB.  It seems to be connected with some kind of
> database file corruption.  However, the stored procedure does not return any
> specific error when the leak occurrs so there is no way for us to shut down
> the database and perform data maintenace.  Once the interbase crashes, I can
> use gfix and gbak to correct the corruption and use that file again (only
> for another 24 hours ;-((( ).

> Has anyone seen any similar problem(s)?

> Miro

--
Jeff Overcash (TeamB)   I don't think there are any Russians
(Please do not email    And there ain't no Yanks
 me directly unless     Just corporate criminals
 asked.  Thank You)     Playing with tanks.  (Michael Been)

Re:Interbase memory leak


We're seeing a similar problem with an internal app that was written a long
time ago and uses the BDE.  Although most of the database functionality uses
explicit transaction control, there are probably certain pieces that did not
(they let the BDE handle the transactions).  What we see is that memory
usage on the server increases gradually over a period of several days.
Shutting down Interbase and restarting it will free up the memory.

I recently upgraded the server to 6.0.1.6 (OE) but the problem persists.
What exactly should I be looking for to see the spread between the OAT and
OIT?

Thanks,

Dan Palley
TRAMS, Inc.

"Jeff Overcash (TeamB)" <overc...@onramp.net> wrote in message
news:3B9D43A4.65A96FAD@onramp.net...

Quote
> What is happening with the OAT and OIT?  Sounds like you are opening one
> transaction and holding it open forever.  This causes the version chains
to grow
> very large over time consuming memory.

> Miro Poliak wrote:

> > Hi!

> > We are using a stored procedure to insert records into multiple tables,
> > about 15-50 records/sec.  The stored procedure also contains multiple
select
> > statements.  Also, we are using InterBase API's, not ODBC.

> > After a while, interbase consumes all available physical and virtual
memory.
> > The problem is very inconsistent.  Sometimes the database file reaches
100
> > of MB, sometimes only a few MB.  It seems to be connected with some kind
of
> > database file corruption.  However, the stored procedure does not return
any
> > specific error when the leak occurrs so there is no way for us to shut
down
> > the database and perform data maintenace.  Once the interbase crashes, I
can
> > use gfix and gbak to correct the corruption and use that file again
(only
> > for another 24 hours ;-((( ).

> > Has anyone seen any similar problem(s)?

> > Miro

> --
> Jeff Overcash (TeamB)   I don't think there are any Russians
> (Please do not email    And there ain't no Yanks
>  me directly unless     Just corporate criminals
>  asked.  Thank You)     Playing with tanks.  (Michael Been)

Re:Interbase memory leak


In IBConsole connect to the database then choose Database | Maintenance |
Statistics from the menu and display the stats for the Header Page. Oldest
Transaction is the OIT and Oldest Active is the OAT.

--
Bill
(TeamB cannot answer questions received via email)

Other Threads