[jboss-user] [Installation, Configuration & DEPLOYMENT] - Java heap size problem

nicdo77 do-not-reply at jboss.com
Mon Sep 3 11:34:32 EDT 2007


Hi,

I'm using JBoss 4.0.5 and i have two applications deployed on it: the application i'm developing and JIRA.
Since i have installed JIRA, i have had performance problems, such as gettin this in the log:
15:20:37,984 ERROR [STDERR] Exception in thread "ScannerThread" 
  | 15:20:38,703 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space
  | Server daemon died!
  | 15:21:00,937 ERROR [STDERR] 	at java.util.TreeMap.buildFromSorted(TreeMap.java:1611)
  | 15:21:02,781 ERROR [STDERR] 	at java.util.TreeMap.buildFromSorted(TreeMap.java:1548)
  | 15:21:02,781 ERROR [STDERR] 	at java.util.TreeMap.putAll(TreeMap.java:320)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.DescriptorSupport.init(DescriptorSupport.java:467)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.DescriptorSupport.<init>(DescriptorSupport.java:210)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.DescriptorSupport.clone(DescriptorSupport.java:801)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.ModelMBeanAttributeInfo.getDescriptor(ModelMBeanAttributeInfo.java:348)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.ModelMBeanAttributeInfo.<init>(ModelMBeanAttributeInfo.java:316)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.ModelMBeanAttributeInfo.clone(ModelMBeanAttributeInfo.java:407)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.ModelMBeanInfoSupport.getAttribute(ModelMBeanInfoSupport.java:731)
  | 15:21:02,781 ERROR [STDERR] 	at javax.management.modelmbean.ModelMBeanInfoSupport.getDescriptor(ModelMBeanInfoSupport.java:544)
  | 15:21:02,781 ERROR [STDERR] 	at org.jboss.mx.modelmbean.ModelMBeanInvoker.override(ModelMBeanInvoker.java:830)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.mx.server.AbstractMBeanInvoker.getAttribute(AbstractMBeanInvoker.java:350)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:556)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:140)
  | 15:21:02,796 ERROR [velocity] Method getSelectListOptions threw exception for reference $searcher in template templates/jira/issue/searchers/edit/user-searcher-edit.vm at  [148,30]
  | 15:21:02,796 ERROR [STDERR] 	at $Proxy11.getSuffixOrder(Unknown Source)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.deployment.scanner.URLDeploymentScanner.updateSorter(URLDeploymentScanner.java:671)
  | 15:21:02,796 ERROR [DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: java.lang.OutOfMemoryError: Java heap space
  | java.lang.OutOfMemoryError: Java heap space
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:640)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
  | 15:21:02,796 ERROR [STDERR] 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
  | 15:21:02,796 ERROR [STDERR] Exception in thread "JiraQuartzScheduler_Worker-0" 
  | 15:21:02,796 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space
  | 15:21:02,796 ERROR [STDERR] 	at java.nio.ByteBuffer.wrap(ByteBuffer.java:350)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.StringCoding$CharsetSD.decode(StringCoding.java:187)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.StringCoding.decode(StringCoding.java:228)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.StringCoding.decode(StringCoding.java:234)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.String.<init>(String.java:458)
  | 15:21:02,796 ERROR [STDERR] 	at org.tanukisoftware.wrapper.WrapperManager.handleSocket(WrapperManager.java:3759)
  | 15:21:02,796 ERROR [STDERR] 	at org.tanukisoftware.wrapper.WrapperManager.run(WrapperManager.java:4084)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.Thread.run(Thread.java:595)
  | 15:21:02,796 ERROR [STDERR] Exception in thread "HSQLDB Timer @75be38" 
  | 15:21:02,796 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.String.<init>(String.java:208)
  | 15:21:02,796 ERROR [STDERR] 	at java.lang.StringBuffer.toString(StringBuffer.java:586)
  | 15:21:02,796 ERROR [STDERR] 	at org.apache.log4j.PatternLayout.format(PatternLayout.java:498)
  | 15:21:02,796 ERROR [STDERR] 	at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:292)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.DailyRollingFileAppender.subAppend(DailyRollingFileAppender.java:349)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.Category.callAppenders(Category.java:187)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.Category.forcedLog(Category.java:372)
  | 15:21:03,437 ERROR [STDERR] 	at org.apache.log4j.Category.debug(Category.java:241)
  | 15:21:03,437 ERROR [STDERR] 	at com.atlassian.jira.service.ServiceRunner.execute(ServiceRunner.java:96)
  | 15:21:03,437 ERROR [STDERR] 	at org.quartz.core.JobRunShell.run(JobRunShell.java:191)
  | 15:21:03,437 ERROR [STDERR] 	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:516)
  | 15:21:03,437 ERROR [STDERR] java.lang.OutOfMemoryError: Java heap space
  | 15:21:07,375 ERROR [velocity] Method getSelectListOptions threw exception for reference $searcher in template templates/jira/issue/searchers/edit/user-searcher-edit.vm at  [34,22]
  | 15:21:07,375 ERROR [DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: java.lang.OutOfMemoryError: Java heap space
  | java.lang.OutOfMemoryError: Java heap space
  | 15:21:07,390 INFO  [velocity] ResourceManager : found templates/jira/issue/searchers/edit/constants-searcher-edit.vm with loader org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
  | 15:21:10,875 ERROR [velocity] Method getText threw exception for reference $i18n in template templates/jira/issue/searchers/edit/constants-searcher-edit.vm at  [3,43]
  | 15:21:10,875 ERROR [DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: java.lang.OutOfMemoryError: Java heap space
  | java.lang.OutOfMemoryError: Java heap space
  | 15:21:16,312 ERROR [ServletValueStack] METHOD: "searcherEditHtml", exception: 
  | java.lang.OutOfMemoryError: Java heap space
  | JVM appears hung: Timed out waiting for signal from JVM.
  | JVM did not exit on request, terminated
  | Launching a JVM...
  | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
  | 

As you can see, i'm using JBoss as a Service Windows using a wrapper (see here for more details: 
http://wrapper.tanukisoftware.org/doc/english/jmx.html#jboss)

So i have the following wrapper.conf:

#********************************************************************
  | # Wrapper Properties
  | #********************************************************************
  | # Java Application
  | wrapper.java.command=%JAVA_HOME%\bin\java
  | 
  | # Java Main class.  This class must implement the WrapperListener interface
  | #  or guarantee that the WrapperManager class is initialized.  Helper
  | #  classes are provided to do this for you.  See the Integration section
  | #  of the documentation for details.
  | wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
  | 
  | # Java Classpath (include wrapper.jar)  Add class path elements as
  | #  needed starting from 1
  | wrapper.java.classpath.1=%JBOSS_HOME%/server/default/lib/wrapper.jar
  | wrapper.java.classpath.2=%JAVA_HOME%/lib/tools.jar
  | wrapper.java.classpath.3=./run.jar
  | 
  | # Java Library Path (location of Wrapper.DLL or libwrapper.so)
  | wrapper.java.library.path.1=%JBOSS_HOME%/server/default/lib
  | 
  | # Java Additional Parameters
  | #wrapper.java.additional.1=
  | 
  | # Initial Java Heap Size (in MB)
  | #wrapper.java.initmemory=1024
  | 
  | # Maximum Java Heap Size (in MB)
  | #wrapper.java.maxmemory=2048
  | 
  | # Application parameters.  Add parameters as needed starting from 1
  | wrapper.app.parameter.1=org.jboss.Main
  | 
  | #********************************************************************
  | # Wrapper Logging Properties
  | #********************************************************************
  | # Format of output for the console.  (See docs for formats)
  | wrapper.console.format=M
  | 
  | # Log Level for console output.  (See docs for log levels)
  | wrapper.console.loglevel=INFO
  | 
  | # Log file to use for wrapper output logging.
  | wrapper.logfile=%JBOSS_HOME%/server/default/log/wrapper.log
  | 
  | # Format of output for the log file.  (See docs for formats)
  | wrapper.logfile.format=M
  | 
  | # Log Level for log file output.  (See docs for log levels)
  | wrapper.logfile.loglevel=INFO
  | 
  | # Maximum size that the log file will be allowed to grow to before
  | #  the log is rolled. Size is specified in bytes.  The default value
  | #  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
  | #  'm' (mb) suffix.  For example: 10m = 10 megabytes.
  | wrapper.logfile.maxsize=10m
  | 
  | # Maximum number of rolled log files which will be allowed before old
  | #  files are deleted.  The default value of 0 implies no limit.
  | wrapper.logfile.maxfiles=10
  | 
  | # Log Level for sys/event log output.  (See docs for log levels)
  | wrapper.syslog.loglevel=NONE
  | 
  | #********************************************************************
  | # Wrapper Windows Properties
  | #********************************************************************
  | # Title to use when running as a console
  | wrapper.console.title=@app.long.name@
  | 
  | #********************************************************************
  | # Wrapper Windows NT/2000/XP Service Properties
  | #********************************************************************
  | # WARNING - Do not modify any of these properties when an application
  | #  using this configuration file has been installed as a service.
  | #  Please uninstall the service before modifying this section.  The
  | #  service can then be reinstalled.
  | 
  | # Name of the service
  | wrapper.ntservice.name=JBoss Opalys
  | 
  | # Display name of the service
  | wrapper.ntservice.displayname=JBoss Opalys
  | 
  | # Description of the service
  | wrapper.ntservice.description=J2EE Application Server for Opalys Application
  | 
  | # Service dependencies.  Add dependencies as needed starting from 1
  | wrapper.ntservice.dependency.1=
  | 
  | # Mode in which the service is installed.  AUTO_START or DEMAND_START
  | wrapper.ntservice.starttype=AUTO_START
  | 
  | # Allow the service to interact with the desktop.
  | wrapper.ntservice.interactive=false

As you can see, i set the minimal java memory size at 1024 and the max at 2048. Thinking it should be enough :)

But the point is, i keep getting Java heap size problems (as i said earlier) and i don't know where they are coming. I don't think my apps are resource-consuming: they work perfectly locally, i can let my JBoss turn all day long without any problems, inside or outside my IDE.
But once it came to production, i get problems.

So, i had a look at the JMX Console, and in the Mbean {Jboss.system, type=ServerInfo}, i get the following data:

FreeMemory	java.lang.Long	R	42816 	MBean Attribute.
  | TotalMemory	java.lang.Long	R	66650112 	MBean Attribute.
  | MaxMemory	java.lang.Long	R	66650112 	MBean Attribute.

So apparently from this data i understand that the actual memory of my JBoss is only 64mb... but why???
Please help me

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4080558#4080558

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4080558



More information about the jboss-user mailing list