Может быть, это поможет вам найти причину вашей проблемы.
Я включил JMX на Tomcat
(установите эти необязательные аргументы vm при запуске tomcat)
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port = 30188 (любой порт, на котором вы хотите запустить jmx для tc)
-Dcom.sun.management.jmxremote.ssl = ложь
-Dcom.sun.management.jmxremote.authenticate = ложь
Затем я написал небольшое приложение, которое отслеживает использование памяти (через jmx) и уведомляет меня, если использование памяти заканчивается, скажем, 80%.
Я бы тогда знал, как только что-то пойдет не так. Затем я получу гистограмму для объектов в памяти (для получения информации см. http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html).
В конце оказалось, что один из моих запросов ejbQL вызвал использование огромного количества памяти.
Надеюсь, это может помочь ... ...... 1013 *