复合组件的JSF性能/线程问题

时间:2013-06-21 16:45:02

标签: performance jsf primefaces composite-component mojarra

我们有一个使用mojarra(2.1.18-jboss)/ primefaces(3.4.2)的应用程序堆栈,其中包含所有页面级组件的复合组件(主要是一些标签)。

在执行批量测试时,我们注意到在开始执行后很快就会在服务器上的所有CPU上散布好的负载(它最初会运行),所有流量都会加载到单个最大输出处理器上,吞吐量会通过稳步增加响应时间来减少爬行。

为了进行调试,我们尝试了许多方法来删除应用程序体系结构的各种服务,最终删除了复合组件本身。使用纯PrimeFaces页面时,问题不会出现。

我们重新引入了一个包装commandButton的简单CC(见下文),并发现只有targettable属性会导致出现此问题。

当使用带有Mojarra的CC时,是否有其他人遇到此问题或类似问题(注意页面在组件方面不是特别大 - 可能1-200个组件左右)..?

<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:p="http://primefaces.org/ui"
        xmlns:c="http://java.sun.com/jsp/jstl/core"
        xmlns:composite="http://java.sun.com/jsf/composite"
>
<composite:interface>
        <composite:attribute name="styleClass" required="false" />
        <composite:attribute name="layoutClass" required="true"
                default="standard1Column" />
        <composite:attribute name="buttonAction"
                method-signature="java.lang.String action()" targets="CommandButtonID"
                targetAttributeName="action" />
        <composite:attribute name="buttonActionListener"
                method-signature="void listener(javax.faces.event.ActionEvent)"
                targets="CommandButtonID" targetAttributeName="actionListener" />
        <composite:attribute name="ajax" default="false" />
        <composite:attribute name="disabled" default="false" />
        <composite:attribute name="update" required="false" />
        <composite:attribute name="process" required="false" default="@form" />
        <composite:attribute name="immediate" required="false" default="false" />
        <composite:attribute name="icon" required="false" />
        <composite:attribute name="tabindex" required="false" />
</composite:interface>

<composite:implementation>

                <p:commandButton id="CommandButtonID"
                        value="button"
                        title="button"
                        ajax="#{cc.attrs.ajax}" disabled="#{cc.attrs.disabled}"
                        update="#{cc.attrs.update}" process="#{cc.attrs.process}"
                        immediate="#{cc.attrs.immediate}"
                        tabindex="#{cc.attrs.tabindex}"
                />
</composite:implementation>
</html>

非常感谢任何帮助或指示...

0 个答案:

没有答案