JVM 32bits Xmx limitation

Ken--@newsgroupstats.hk dragonken at gmail.com
Wed Aug 19 10:47:04 PDT 2009

john.coomes wrote:
> Ken-- at newsgroupstats.hk (dragonken at gmail.com) wrote:
>> Hi All,
>> I have an old java application running on old 32bits windows 2000 server,
>> 2G
>> Ram with JDK5. Originally I can startup my apps with -Xmx1412M. It's work
>> for a year. One day, I restart windows but fail to start my app. It said
>> 'Could not reserve enough space for object heap'. I have to decrease the
>> Xmx
>> to 1200M to make it work. Please advise.
>> The server reboots everyday. No windows updates (and no software newly
>> installed) for 3 months.
> This is most likely because the JVM can't get a contiguous range of
> virtual addresses for the java heap.  32-bit windows reserves half for
> its own use, so everything else has to live in 2G.
> Something changed to reduce the size of the largest available range of
> addresses.  Most often it's a windows update, but we've also seen some
> correlation with virus scanner updates--there's a current thread on
> the java forums discussing a similar problem when running Sophos AV.
>> I increase the physical memory to 4GB, it didn't help.
>> Any workaround?
> There used to be a utility on sysinternals.com that would print out
> what address ranges were in use and what was using them.  I can't find
> it now, but process explorer might give you that info.  You might be
> able to see what's taking up the space and use the 'rebase' utility to
> relocate things (including the JDK itself).
> -John

Hi John,

Thanks to your reply.

I have to dig out what is actually taking up space. I use process explorer
but i cannot figure out how to list processes by address ranges. Please
kindly advise.


View this message in context: http://www.nabble.com/JVM-32bits-Xmx-limitation-tp24719844p25048879.html
Sent from the OpenJDK Hotspot Garbage Collection mailing list archive at Nabble.com.

More information about the hotspot-gc-dev mailing list