Jeff Gordon commented on JBWS-2615:
I hate to throw in a "me too" comment, but I'm at the beginning stages of
troubleshooting something similar so I thought I would comment.
I've got an application on JBoss 5.0.1 with 2 sets of deployed web services (a handful
of web methods each) that gets hit in our performance testing from another app server and
2 desktop applications (1 using JAX-WS (Sun Metro) on Java 1.5, and 1 using Java 1.6
native implementation). Each web service has a DTO object (Lists of strings mostly with
additional Strings and ints in class) and a few Strings as the web service parameters.
These all connect to EJB3 stateless session beans along with servlets and timed classes.
What we are seeing is that after about 8-10 hours of use the application starts degrading
to the point you wouldn't want to use it and at around 20 hours into the test the
response time from any call (web service, servlet, or ui) is so slow it would be unusable
in a deployed scenario. Anywhere from 1-3 hours later we start getting heap out of memory
Using jhat we see that byte arrays and strings make up the bulk of what's in memory
(hundreds of thousands of each) and most of them are owned by the generated "ws"
classes. I'm not trying to point any fingers, I just found this issue while searching
for some answers and haven't attempted much to resolve the issue except for adding
some additional gc parameters. The test was running with:
-Xms256m -Xmx512m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC
I've modified it for troubleshooting to be:
-Xms256m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError -XX:+PrintTenuringDistribution -XX:+TraceClassLoading
At this point I'm leaning toward some of the web service internals not getting cleaned
up fast enough as new ones are being made (sorry I can't provide more heap information
on this, I'm working on a vanilla method of replication), and I was looking through
the issue list to see if there was a newer version of web services I could stick in the
app server to try and mitigate the issue.
JBoss does't unload web services classes
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Environment: Windows 2003 Server, JBoss 5.0.0.GA, Java 1.6.0_12.
Reporter: Edson Goncalez
Attachments: generated_source_classes.zip, screenshot-1.jpg, screenshot-2.jpg,
We have an application that comunicate with a webservice (Federal Government of Brazil)
constantly, step by 5 or 10 seconds.
We have created web service consumer classes by using the following command point to the
wsconsume -k -p br.com.compliancefiscal.nfe.ejb.sefaz.ws.nfestatusservico -v
This tool, was generated this classes:
The problem is. When running... every call this webservice generate a new loadclass.
Viewing in the JConsole tool, we can note that whe app starts it have aproximatelly 15000
classes loaded, and afeter 10 hours running we can se that the jvm has increased up to
70000 classes loaded, and only 252 classes unloaded.
I have the screenshot that show this.
What can occours to causing this BIG load classes for same class ?
PS: The app does not run any other service. It just start a method that connect to the
specified webservice and return a String info. A TimerService trigger start the process
steb by 5 seconds.
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see: http://www.atlassian.com/software/jira