Managing Memory and Garbage Collection

To prevent load address collisions, set preferred base addresses with the rebase utilty that comes with Visual Studio and the Platform SDK. Use the rebase utility to reassign the base addresses of the Application Server DLLs to prevent relocations at load time and increase the available process memory for the Java heap.

There are a few Application Server DLLs that have non-default base addresses that can cause collisions. For example:

The nspr libraries have a preferred address of 0x30000000.

The icu libraries have the address of 0x4A?00000.

Move these libraries near the system DLLs (msvcrt.dll is at 0x78000000) to increase the available maximum contiguous address space substantially. Since rebasing can be done on any DLL, rebase to the DLLs after installing the Application Server.

To rebase the Application Server’s DLLs

Before You Begin To perform rebasing, you need:

Windows 2000

Visual Studio and the Microsoft Framework SDK rebase utility

1 Make install_dir\ bin the default directory. cd install_dir\bin

2Enter this command: rebase -b 0x6000000 *.dll

3Use the dependencywalker utility to make sure the DLLs were rebased correctly.

For more information, see the Dependency Walker website.

4Increase the size for the Java heap, and set the JVM Option accordingly on the JVM Settings page in the Admin Console.

5Restart the Application Server.

Example 4–2Heap Configuration on Windows

This is an example heap configuration used by Sun GlassFish Enterprise Server for heavy server-centric applications, on Windows, as set in the domain.xml file.

<jvm-options> -Xms1400m </jvm-options> <jvm-options> -Xmx1400m </jvm-options>

See Also For more information on rebasing, see MSDN documentation for rebase utility.

90

Sun GlassFish Enterprise Server 2.1 Performance Tuning Guide • January 2009

Page 90
Image 90
Sun Microsystems 820434310 manual To rebase the Application Server’s DLLs, Enter this command rebase -b 0x6000000 *.dll