Dave Cramer <Dave@micro-automation.net> wrote:
> Should the gc run before an OutOfMemoryException is thrown
>
> in other words are the jvm's smart enough to run the gc if they are out
> of memory?
Yes, the jvm should be smart enough to regain unused memory before throwing
an OutOfMemoryException. The global gc runs in the backround in defined
intervals, but more often in low memory situations, as far as I know.
It is possible to have "memory leaks" in java, but I don't see it in your
code. Such a "leak" could be created by adding all result sets to a vector
without ever removing it.
Does the overall memory consumption increase, even with System.gc() called
explicitly? Have you tried running it until the jvm needs more than maximum
allowed memory? (the limit can be set with command line arguments)
Regards,
Michael Paesold