L
lightning
We have some tomcat running day and night.RMI client, spring,
hibernate, dwr .. are used in the webapp.
After a certain period of time, we found quiet a lot of:
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1051]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1054]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1049]
[Unloading class sun.reflect.GeneratedMethodAccessor7715]
[Unloading class sun.reflect.GeneratedMethodAccessor7719]
[Unloading class sun.reflect.GeneratedMethodAccessor7718]
[Unloading class sun.reflect.GeneratedMethodAccessor7717]
[Unloading class sun.reflect.GeneratedMethodAccessor7716]
[Unloading class sun.reflect.GeneratedMethodAccessor7720]
[Unloading class sun.reflect.GeneratedMethodAccessor7816]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor10
in the log. Just at that time, the app become unstable and even out of
memory for thread creating. Maybe these fill up the Perm Space and
make jvm have to cost more resources to unload all these unused
classes....to free memory.
I search the web for info and know that these classes are loading when
serializing and deserializing happens, so it must be caused by rmi.Why
does rmi have to make so many classes to do that???? Why not reuse??
Does our code meets any pitfalls?
hibernate, dwr .. are used in the webapp.
After a certain period of time, we found quiet a lot of:
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1051]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1054]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor1049]
[Unloading class sun.reflect.GeneratedMethodAccessor7715]
[Unloading class sun.reflect.GeneratedMethodAccessor7719]
[Unloading class sun.reflect.GeneratedMethodAccessor7718]
[Unloading class sun.reflect.GeneratedMethodAccessor7717]
[Unloading class sun.reflect.GeneratedMethodAccessor7716]
[Unloading class sun.reflect.GeneratedMethodAccessor7720]
[Unloading class sun.reflect.GeneratedMethodAccessor7816]
[Unloading class
sun.reflect.GeneratedSerializationConstructorAccessor10
in the log. Just at that time, the app become unstable and even out of
memory for thread creating. Maybe these fill up the Perm Space and
make jvm have to cost more resources to unload all these unused
classes....to free memory.
I search the web for info and know that these classes are loading when
serializing and deserializing happens, so it must be caused by rmi.Why
does rmi have to make so many classes to do that???? Why not reuse??
Does our code meets any pitfalls?