I am trying to find a bottleneck in a web-application running on JBoss.
I have a module that contains forms for which when moving from field to field I do some server side validation of the data, using Ajax (those validations take below 1 ms). The modules are used in two separate web applications:
- One running on Apache Tomcat Application Server, where each validation takes about 200-400ms;
- Second one running on JBoss 7.1.1, where each validation takes about 3-5 sec. The problem here is that I have the exact same modules as those used on the Tomcat and the 5sec delay is really not an option.
I've measured the times anywhere I could, but I couldn't find any bottlenecks in the application, running on JBoss.
So I used JProfiler and thread dumps to try find the problem. Here's a screenshot of the result.
To me it looks like a problem in jsf/richfaces, but I am not sure for the exact reason and what can be done to fix this.
I'm using:
- jboss 7.1.1, patched with jsf-impl-2.1.19-redhat-1
- Richfaces 4.2.3.Final
- jboss-jsf-api_2.1_spec-2.1.19.Final-redhat-1
What I've tried is: using the latest richfaces version, changing the viewstate of jsf to server side, enable partial state saving.
Here's JProfiler screenshot:
From it for me it seems that the performance issue here is with javax.faces.view.facelets.ComponentHandler.applyNextHeader
I am running out of ideas, any hits would be appreciated.