Java Heap Size Fehler bei Ausführung von addNode unter 11.2.0.1

Ziel

In diesem Blogeintrag wird das Beheben eines Java Heap Size Fehlers bei der Ausführung des addNode.sh Shell Skriptes unter Oracle 11.2.0.1 erklärt. Mithilfe des addNode Skriptes kann man einen bestehenden Cluster um weitere Knoten erweitern.

 

Fehlerbeschreibung

Die Ausführung des addNode.sh Skriptes bricht mit der folgenden Meldung ab.

[oracle@rac01-1 bin]$ ./addNode.sh -silent "CLUSTER_NEW_NODES={rac01-3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={rac01-3-vip}" Oracle Universal Installer wird gestartet... >Swap-Speicher wird geprüft: muss größer sein als 500 MB.   Tatsächlich 34175 MB    Erfolgreich Oracle Universal Installer, Version 11.2.0.1.0 Production Copyright (C) 1999, 2009, Oracle. All rights reserved. Alle Rechte vorbehalten.  Es wird getestet, ob die Knoten rac01-2, rac01-3 verfügbar sind ............................................................... 100% fertig.  .SEVERE:Anormale Beendigung des Programms. Es ist ein interner Fehler aufgetreten. Stellen Sie Oracle Support folgende Dateien zur Verfügung:  "/u01/app/oraInventory/logs/addNodeActions2010-12-15_02-24-21PM.log" "/u01/app/oraInventory/logs/oraInstall2010-12-15_02-24-21PM.err" "/u01/app/oraInventory/logs/oraInstall2010-12-15_02-24-21PM.out"

Das Fehlerlog zeigt dabei die folgenden Fehler.

[oracle@rac01-1 bin]$ more /u01/app/oraInventory/logs/oraInstall2010-12-15_02-22-00PM.err Exception in thread "Thread-39" Exception java.lang.OutOfMemoryError: Java heap space occurred.. java.lang.OutOfMemoryError: Java heap space at java.nio.ByteBuffer.wrap(ByteBuffer.java:350) at java.nio.ByteBuffer.wrap(ByteBuffer.java:373) at java.lang.StringCoding$CharsetSE.encode(StringCoding.java:339) at java.lang.StringCoding.encode(StringCoding.java:378 at java.lang.String.getBytes(String.java:812) at java.io.UnixFileSystem.setLastModifiedTime(Native Method) at java.io.File.setLastModified(File.java:1227) at oracle.sysman.oii.oiit.OiitLockHeartbeat.touchFile(OiitLockHeartbeat.java:270) at oracle.sysman.oii.oiit.OiitLockHeartbeat.update(OiitLockHeartbeat.java:288) at oracle.sysman.oii.oiit.OiitLockHeartbeat$HeartBeatThread.run(OiitLockHeartbeat.java:136) java.lang.OutOfMemoryError: Java heap space at java.lang.StringCoding.set(StringCoding.java:56) at java.lang.StringCoding.decode(StringCoding.java:226 at java.lang.String.<init>(String.java:405) at java.lang.String.<init>(String.java:433 at java.io.UnixFileSystem.list(Native Method) at java.io.File.list(File.java:937) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.getDiskSpaceOccupied(OiicAddNodeSummaryInformation.java:551) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.getDiskSpaceOccupied(OiicAddNodeSummaryInformation.java:561) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.getDiskSpaceOccupied(OiicAddNodeSummaryInformation.java:561) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.computeSpaceInfo(OiicAddNodeSummaryInformation.java:444) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.initializeAddNodeSession(OiicAddNodeSummaryInformation.java:383) at oracle.sysman.oii.oiic.OiicAddNodeSummaryInformation.<init>(OiicAddNodeSummaryInformation.java:140) at oracle.sysman.oii.oiif.oiifw.OiifwAddNodeSummaryWCDE.writeSummaryInformation(OiifwAddNodeSummaryWCDE.java:212) at oracle.sysman.oii.oiif.oiifw.OiifwAddNodeSummaryWCDE.logDialog(OiifwAddNodeSummaryWCDE.java:204) at oracle.sysman.oii.oiif.oiifb.OiifbWizChainDlgElem.doOperation(OiifbWizChainDlgElem.java:702) at oracle.sysman.oii.oiif.oiifw.OiifwAddNodeSummaryWCDE.doOperation(OiifwAddNodeSummaryWCDE.java:180) at oracle.sysman.oii.oiif.oiifb.OiifbCondIterator.iterate(OiifbCondIterator.java:171) at oracle.sysman.oii.oiic.OiicPullSession.doOperation(OiicPullSession.java:1371) at oracle.sysman.oii.oiic.OiicSessionWrapper.doOperation(OiicSessionWrapper.java:294) at oracle.sysman.oii.oiic.OiicInstaller.run(OiicInstaller.java:579) at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:969) at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:906)

Das Problem ist der Parameter JRE_MEMORY_OPTIONS in der oraparm.ini Datei. Dieser ist standardmäßig auf 96 MB gesetzt und kann unter Umständen zu dem besagten Java Heap Size Fehler führen.

 

Lösung

Die Lösung des Problems ist das Heraufsetzen des JRE_MEMORY_OPTIONS Parameters. In der My Oracle Support Note 1085893.1 finden sich weitere Informationen zu diesem Problem.

[oracle@rac01-1 bin]$ vi /u01/11.2.0/grid/oui/oraparm.ini JRE_MEMORY_OPTIONS=" -mx1024m

Das addNode.sh Skript sollte nun ohne Probleme durchlaufen.

Leave a Reply

Your email address will not be published.