Hi!
We are working on a
web application using Struts 1.2.7, deployed on Tomcat 5.5.9 on Solaris SunOS
5.8 and JVM 1.5.0_04-b05 and we have the following problem:
Sometimes we get
an java.lang.OutOfMemoryError: PermGen
space and the logs do not say anything more about the problem.
We are monitoring
the PerGen space with JMap command and we noticed that the PerGen space is
always growing up untill it gets the maximum configured PermGen size:
-XX:MaxPermSize=256m and then we get the OutOfMemoryError.
With JMap -histo we monitor the
alive instances in our JVM and we see that, aside of
multiple java.lang.String and other similar objects, there are also a lot
of DTO objects that we use in the application to transfer data from Action
classes to the view (jsp), and we understand that these objects should only be
alive while the request is active, but, as we can see looking at the number
of these objects, they are still alive.
160576 5018 zyx.mvc.model.DeviceData
116480 3640 zyx.mvc.model.DeviceData
73584 1533 zyx.mvc.model.TestResultByUser
60120 1503 zyx.mvc.model.TestResultData
27440 490 zyx.mvc.model.DeviceDataByUserPattern
15240 381 zyx.mvc.model.Device
14400 300 zyx.mvc.model.TestCaseWithLastResult
13032 543 zyx.mvc.model.Technology
12576 262 zyx.mvc.model.TestCase
12520 313 zyx.mvc.model.TestGroup
10656 444 zyx.mvc.model.Service
4848 101 zyx.mvc.model.TestCase
4320 108 zyx.mvc.model.Device
3808 68 zyx.mvc.model.DeviceDataByUserPattern
1120 28 zyx.mvc.model.TestGroup
920 23 zyx.mvc.model.User
840 15 zyx.mvc.model.TechnologiesReportData
600 15 zyx.mvc.model.Firmware
504 7 zyx.mvc.forms.TestResultsForm
320 8 zyx.utils.TestCasesNavigator
240 10 zyx.common.ActivityLogDBAccess
192 3 zyx.mvc.forms.ResultsByServiceForm
160 5 zyx.mvc.model.PreviousTestResultData
160 5 zyx.utils.Text2HTMLTag
136 17 zyx.database.DBManager
128 2 zyx.mvc.forms.ResultsByTechForm
112 14 zyx.database.DBDevice
1 zyx.mvc.forms.ResultsByServiceForm
64 1 zyx.mvc.forms.ResultsByTechForm
56 1 zyx.mvc.ControlServlet
56 1 zyx.database.pool.DBConnectionPool
56 1 zyx.sms.SMSServlet
56 1 zyx.mvc.ControlServlet
116480 3640 zyx.mvc.model.DeviceData
73584 1533 zyx.mvc.model.TestResultByUser
60120 1503 zyx.mvc.model.TestResultData
27440 490 zyx.mvc.model.DeviceDataByUserPattern
15240 381 zyx.mvc.model.Device
14400 300 zyx.mvc.model.TestCaseWithLastResult
13032 543 zyx.mvc.model.Technology
12576 262 zyx.mvc.model.TestCase
12520 313 zyx.mvc.model.TestGroup
10656 444 zyx.mvc.model.Service
4848 101 zyx.mvc.model.TestCase
4320 108 zyx.mvc.model.Device
3808 68 zyx.mvc.model.DeviceDataByUserPattern
1120 28 zyx.mvc.model.TestGroup
920 23 zyx.mvc.model.User
840 15 zyx.mvc.model.TechnologiesReportData
600 15 zyx.mvc.model.Firmware
504 7 zyx.mvc.forms.TestResultsForm
320 8 zyx.utils.TestCasesNavigator
240 10 zyx.common.ActivityLogDBAccess
192 3 zyx.mvc.forms.ResultsByServiceForm
160 5 zyx.mvc.model.PreviousTestResultData
160 5 zyx.utils.Text2HTMLTag
136 17 zyx.database.DBManager
128 2 zyx.mvc.forms.ResultsByTechForm
112 14 zyx.database.DBDevice
1 zyx.mvc.forms.ResultsByServiceForm
64 1 zyx.mvc.forms.ResultsByTechForm
56 1 zyx.mvc.ControlServlet
56 1 zyx.database.pool.DBConnectionPool
56 1 zyx.sms.SMSServlet
56 1 zyx.mvc.ControlServlet
Why these resources are not destroyed?
We have been
looking at the
http://issues.apache.org/bugzilla/show_bug.cgi?id=14042
and since this bug is fixed from struts version 1.2.7, we think this can not be the problem.
Any idea?
Thanks in advance,
Sylvia