Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning Guide

- Previous: Tuning the Java Heap
- Next: Further Information

## Rebasing DLLs on Windows

When the JVM initializes, it tries to allocate its heap using the `-Xms` setting. The base addresses of Application Server DLLs can restrict the amount of contiguous address space available, causing JVM initialization to fail. The amount of contiguous address space available for Java memory varies depending on the base addresses assigned to the DLLs. You can increase the amount of contiguous address space available by rebasing the Application Server DLLs.

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

2. Enter this command:

       rebase -b 0x6000000 *.dll

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

   For more information, see the Dependency Walker website.

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

5. Restart the Application Server.

##### Example 4–2 Heap Configuration on Windows

This is an example heap configuration used by Sun ONE Application server for heavy server-centric applications, on Windows, as set in the `server.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.

- Previous: Tuning the Java Heap
- Next: Further Information

- © 2010, Oracle Corporation and/or its affiliates