2

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

在执行批量测试时,我们注意到在开始执行后不久,服务器上的所有 CPU 上的负载不会很好地分布(它最初会像这样运行),所有流量都将加载到单个最大化的处理器上,吞吐量将减少到随着响应时间的稳步增加而爬行。

为了调试,我们尝试了多种方法来移除应用程序架构的各种服务,最终移除组合组件本身。使用纯 PrimeFaces 页面不会出现问题。

我们重新引入了一个简单的 CC 包装命令按钮(见下文),并发现只有 targetable 属性会导致此问题发生。

在将 CC 与 Mojarra 一起使用时,是否有其他人遇到过此问题或类似问题(请注意,该页面在组件方面并不是特别大 - 可能是 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>

任何帮助或指示将不胜感激......

4

0 回答 0