Showing posts with label JVM. Show all posts
Showing posts with label JVM. Show all posts

How to Migrate a WebLogic Domain from a 32 to a 64 bit JVM/Architecture?

Currently on 32 bit OS which presents a physical constraint when trying to allocate memory.

By limit, a 32 bit OS, will not be able to allocate more than 3 GB on a Linux environment, or 2 GB for Windows environment (not considering Physical Address Extension (PAE) implementation, which can increase the maximum allocatable memory).

When this limit is reached, a migration to a 64 bit architecture is recommended.

Below are the steps on how to install a 64 WebLogic Server version, along with a 64 Bit JVM and then how to migrate the domain to this new environment.


The versions that were used on this test case are the following:

Weblogic Server Version: WebLogic Server Version:
OS: Linux 2.6.18-194.el5 #1 SMP Mon Mar 29 22:10:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
JVM:java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Oracle JRockit(R) (build R28.1.1-13-139783-1.6.0_22-20101206-0136-linux-x86_64, compiled mode)

JVM crash: java.lang.OutOfMemoryError

The JVM crashed. The head of the fatal error log file shows the error message in bold below:
# A fatal error has been detected by the Java Runtime Environment:
# java.lang.OutOfMemoryError: requested 32756 bytes for ChunkPool::allocate. Out of swap space?
Internal Error (allocation.cpp:166), pid=14032, tid=22
Error: ChunkPool::allocate
# JRE version: 6.0_23-b05
# Java VM: Java HotSpot(TM) Server VM (19.0-b09 mixed mode solaris-x86 )
# If you would like to submit a bug report, please visit:


The malloc() call in the ChunkPool::allocate() function failed to allocate new memory, causing the JVM process to exit with the error "ChunkPool:allocate".

In other words, the HotSpot JVM ran out of native memory in the space reserved in native heap (C-heap) for compiling java methods.