title: What is the difference in java.lang.OutOfMemory: GC Overhead limit exceeded vs. java.lang.OutOfMemory: Multicast listener
body: <p>I am investigating the slowness in our application and eventually one of the instances in a cluster environment going down. Few weeks back I came across the error below:</p>
  
  <pre><code>[#|2012-05-11T14:12:03.460-0400|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=89;_ThreadName=httpSSLWorkerThread-7311-0;_RequestID=7afaee11-c970-40dd-b5fb-29498af8e512;|StandardWrapperValve[LoginModule]: PWC1406: Servlet.service() for servlet LoginModule threw exception
  java.lang.OutOfMemoryError: GC overhead limit exceeded
  </code></pre>
  
  <p>I figured that since GC overhead limit was exceeding, it had something to do with my application. There is a report that is really intensive on putting records in excel using POI, so I thought that might be causing it. As a short term fix, until next release, we informed 1 user who had access to this report to not access it. </p>
  
  <p>However, today, two weeks later again one of the instances went down and upon searching the logs I found the error below:</p>
  
  <pre><code>[#|2012-06-05T10:31:36.532-0400|SEVERE|sun-appserver2.1|net.jxta.impl.endpoint.mcast.McastTransport|_ThreadID=141;_ThreadName=IP Multicast Listener for mcast://228.8.10.93:31676;_RequestID=90caf76e-b740-4f11-8ffe-8ab88a740569;|Uncaught Throwable in thread :IP Multicast Listener for mcast://228.8.10.93:31676
  java.lang.OutOfMemoryError: Java heap space
  |#]
  </code></pre>
  
  <p>Please note the difference in <code>GC overhead limit exceeded</code> vs. <code>Java heap space</code>. I am trying to find out whether the error I saw today is caused by the same reason of the user accessing the report, however, I believe if that were the case then I would see <code>GC overhead limit exceeded</code>. </p>
  
  <p>I believe the error today is more related to the configuration of the server. </p>
  
  <p>please help in clarifying. </p>