Subject | Re: Spurious "unable to allocate memory from operating system" errors |
---|---|
Author | lazyf0x |
Post date | 2011-05-23T11:20:01Z |
--- In firebird-support@yahoogroups.com, "Mark Rotteveel" <Avalanche1979@...> wrote:
It could be that this error might be the result of Hibernate or Jaybird not doing something correctly in the case of BLOBs.
So, what can trigger the "unable to allocate memory from operating system" message when working with many BLOBs?
Some additional info: I use Firebird Super Server on Windows 7 and I use the default configuration file.
Wendel.
>It's definitely Firebird that's giving the error. I've checked the memory consumption and the JVM isn't running out of memory.
> > > I'm having a strange memory problem when committing transactions with
> > BLOBs in many threads, using Hibernate and Jaybird on Java with Firebird.
> > Here's my setup:
> > >
> > > - Firebird 2.5
> > > - JDK 1.6.0
> > > - Jaybird 2.1.6
> > > - Hibernate 3.5.6
> > >
> > > I have a daemon task which at certain times spawns many tasks that load
> > a BLOB, does calculations on it, and stores the result either in a new row
> > in another table, or it saves back a changed version of the original BLOB.
> > The tasks correctly commit the transactions and close the hibernate
> > session.
> > >
> > > After some time of correctly committing the transactions, the tasks
> > start to give the following exception:
> > >
>
> <removed stacktrace for brevity>
> > >
>
> > > When this happens, every subsequent task will give the same error,
> > "unable to allocate memory from operating system". However, when I wait several
> > minutes and then start the tasks again, the tasks will run correctly again
> > for some time, potentially starting to give the error again later on.
> > >
> > > This sounds to me like some kind of buffer is being overflowed. But what
> > kind of buffer is it, and how can I avoid this from happening?
> >
> > Perhaps it is better to move this to the Firebird-java list?
>
> To me it looks like Jaybird is just reporting a Firebird error:
> Caused by: org.firebirdsql.jdbc.FBSQLException: I/O Exception. could not close blob: org.firebirdsql.gds.GDSException: unable to allocate memory from operating system
>
> That last one is a Firebird error, at least it is not a Java OutOfMemoryError.
>
It could be that this error might be the result of Hibernate or Jaybird not doing something correctly in the case of BLOBs.
So, what can trigger the "unable to allocate memory from operating system" message when working with many BLOBs?
Some additional info: I use Firebird Super Server on Windows 7 and I use the default configuration file.
Wendel.