1 Reply Latest reply on Dec 15, 2003 8:39 AM by richieb

    OutOfMemory exception when attempting to compile JSP pages

    richieb

      I'm running Jboss 3.2.3 on a Debian Linux box (kernel 2.2.20) with IBM's JVM 1.4.1. I have one Web application deployed, with several clients publishing messages on JMS (every few seconds). After the system is up for a day or so, I start getting OutOfMemory exceptions when I try to get to pages that haven't yet been compiled. Here is the typical stack trace:

      2003-12-15 08:53:24,624 ERROR [org.apache.struts.action.RequestProcessor] No action instance for path /message_browser could be created
      java.lang.VerifyError: (class: com/javtech/tradescope/ui/actions/mb/MessageBrowserTabAction) Out Of Memory
      at java.lang.Class.getDeclaredConstructors0(Native Method)
      at java.lang.Class.privateGetDeclaredConstructors(Class.java(Compiled Code))
      at java.lang.Class.getConstructor0(Class.java(Compiled Code))
      at java.lang.Class.newInstance0(Class.java(Compiled Code))
      at java.lang.Class.newInstance(Class.java(Compiled Code))
      at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:206)
      at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:324)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:268)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1422)
      at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:505)


      The weird thing is that pages that were already compiled work fine and JMX console shows that there is plenty of free memory.

      Looking though the logs I see the first OutOufMemory exception being this:

      2003-12-12 21:12:08,479 ERROR [STDERR] java.lang.OutOfMemoryError: heap allocation failed
      2003-12-12 21:12:08,480 ERROR [STDERR] at java.net.PlainDatagramSocketImpl.receive(Native Method)
      2003-12-12 21:12:08,480 ERROR [STDERR] at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java(Compiled Code))
      2003-12-12 21:12:08,480 ERROR [STDERR] at java.net.DatagramSocket.receive(DatagramSocket.java(Compiled Code))
      2003-12-12 21:12:08,480 ERROR [STDERR] at org.opennms.protocols.snmp.SnmpPortal$1.run(SnmpPortal.java(Compiled Code))
      2003-12-12 21:12:08,480 ERROR [STDERR] at java.lang.Thread.run(Thread.java:568)
      2003-12-12 21:12:11,486 ERROR [STDERR] java.lang.OutOfMemoryError: heap allocation failed
      2003-12-12 21:12:11,487 ERROR [STDERR] at java.net.PlainDatagramSocketImpl.receive(Native Method)
      2003-12-12 21:12:11,487 ERROR [STDERR] at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java(Compiled Code))
      2003-12-12 21:12:11,487 ERROR [STDERR] at java.net.DatagramSocket.receive(DatagramSocket.java(Compiled Code))
      2003-12-12 21:12:11,487 ERROR [STDERR] at org.opennms.protocols.snmp.SnmpPortal$1.run(SnmpPortal.java(Compiled Code))
      2003-12-12 21:12:11,487 ERROR [STDERR] at java.lang.Thread.run(Thread.java:568)



      I can run GC from the JMX-Console, but it does not seem to do anything.

      Any suggestions would be greatly appreciated.

      ...richie