4

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:

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.

4

1 回答 1

2

PROJECT_STAGE如果它是开发,请检查您的 JSF 。如果是这样,请尝试将其更改为生产。

您可以通过从您的 中删除<context-param>with name of来做到这一点,或者将其值设置为而不是。javax.faces.PROJECT_STAGEweb.xmlProductionDevelopment

于 2014-06-18T10:22:13.307 回答