2

すべてのページ レベル コンポーネントの複合コンポーネント (主にいくつかのタグ) を含む mojarra (2.1.18-jboss)/primefaces(3.4.2) を使用するアプリケーション スタックがあります。

ボリューム テストを実行すると、サーバー上のすべての CPU に適切な負荷が分散されるのではなく (最初はこのように実行されます)、実行を開始した直後に、すべてのトラフィックが 1 つの上限に達したプロセッサにロードされ、スループットが着実に増加する応答時間でクロールします。

デバッグするために、アプリケーション アーキテクチャのさまざまなサービスを削除し、最終的に複合コンポーネント自体を削除するいくつかのアプローチを試みました。純粋な PrimeFaces ページでは、問題は発生しません。

commandButton をラップする単純な CC を再導入し (以下を参照)、ターゲット可能な属性だけでこの問題が発生することがわかりました。

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>

どんな助けや指針も大歓迎です...

4

0 に答える 0