Orbeon服务器在压力下给出不同的响应

时间:2015-01-26 10:39:30

标签: orbeon

我在压力测试中遇到了一个非常奇怪的问题。

这是一个搜索表单,用户在弹出窗口中搜索对象,选择它(单击复选框),验证(弹出窗口中的触发器),并在主页面上复制选择。

这通常有效。但是当orbeon承受很大的压力时(许多客户同时进行此操作)服务器响应有时会有所不同。

如果用户在验证选择之前等待了两秒钟,它就会起作用。

请求:

<!DOCTYPE xxforms:event-request [<!ENTITY nbsp "&#160;">]>
<xxforms:event-request xmlns:xxforms="http://orbeon.org/oxf/xml/xforms">
    <xxforms:static-state>pers:C9B10DD4-DD1B-11F4-907F-1102C7BD8015</xxforms:static-state>
    <xxforms:dynamic-state>pers:67DD2321-B039-300B-F048-6FE05A18E044</xxforms:dynamic-state>
    <xxforms:action>
        <xxforms:event name="DOMFocusOut" source-control-id="xf-12$advancedSearchControl$basic-input"></xxforms:event>
        <xxforms:event name="DOMFocusIn" source-control-id="xf-12$displaySearchResults$datatableMultiple$mainselect•1"></xxforms:event>
        <xxforms:event name="xxforms-value-change-with-focus-change" source-control-id="xf-12$displaySearchResults$datatableMultiple$mainselect•1">197552cfa69416449f209b70ba3f8bb6@domain.com</xxforms:event>
    </xxforms:action>
</xxforms:event-request>

响应:

<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
    <xxf:dynamic-state>pers:415194AF-12B7-C579-5A81-98D7935D5001</xxf:dynamic-state>
    <xxf:action>
        <xxf:control-values>
            <xxf:control id="xf-12$displaySearchResults$selected-input-multiple">
                        197552cfa69416449f209b70ba3f8bb6@domain.com
                        197552cfa69416449f209b70ba3f8bb6@domain.com
            </xxf:control>
            <xxf:control id="xf-12$displaySearchResults$datatableMultiple$mainselect•1">
                197552cfa69416449f209b70ba3f8bb6@domain.com</xxf:control>
            <xxf:control id="xf-12$xf-49" readonly="false"/>
        </xxf:control-values>
    </xxf:action>
</xxf:event-response>

但是如果用户等了5秒钟。相同的请求,不同的响应以及主页中未报告选择。

请求:

<!DOCTYPE xxforms:event-request [<!ENTITY nbsp "&#160;">]>
<xxforms:event-request xmlns:xxforms="http://orbeon.org/oxf/xml/xforms">
    <xxforms:static-state>pers:C9B10DD4-DD1B-11F4-907F-1102C7BD8015</xxforms:static-state>
    <xxforms:dynamic-state>pers:57740724-BFBE-D1FB-C7D4-2E586711B13B</xxforms:dynamic-state>
    <xxforms:action>
        <xxforms:event name="DOMFocusOut" source-control-id="xf-12$advancedSearchControl$basic-input"></xxforms:event>
        <xxforms:event name="DOMFocusIn" source-control-id="xf-12$displaySearchResults$datatableMultiple$mainselect•1"></xxforms:event>
        <xxforms:event name="xxforms-value-change-with-focus-change" source-control-id="xf-12$displaySearchResults$datatableMultiple$mainselect•1">197552cfa69416449f209b70ba3f8bb6@domain.com</xxforms:event>
    </xxforms:action>
</xxforms:event-request>

响应:

<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
    <xxf:dynamic-state>pers:67DD2321-B039-300B-F048-6FE05A18E044</xxf:dynamic-state>
    <xxf:action>
        <xxf:control-values>
            <xxf:control id="xf-12$displaySearchResults$datatableMultiple$mainselect•1"/>
        </xxf:control-values>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_231_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$xf-229" observer-id="xf-12$displaySearchResults$datatableMultiple$xf-229"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_256_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$repeat-header" observer-id="xf-12$displaySearchResults$datatableMultiple$repeat-header"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_205_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$fr-dt-group" observer-id="xf-12$displaySearchResults$datatableMultiple$datatableMultiple-container"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_231_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$xf-229" observer-id="xf-12$displaySearchResults$datatableMultiple$xf-229"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_256_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$repeat-header" observer-id="xf-12$displaySearchResults$datatableMultiple$repeat-header"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_362_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$line-repeat" observer-id="xf-12$displaySearchResults$datatableMultiple$line-repeat"/>
        <xxf:script name="xf_12_displaySearchResults_datatableMultiple_xf_362_xforms_function" target-id="xf-12$displaySearchResults$datatableMultiple$line-repeat" observer-id="xf-12$displaySearchResults$datatableMultiple$line-repeat"/>
        <xxf:setfocus control-id="xf-12$advancedSearchControl$basic-input"/>
    </xxf:action>
</xxf:event-response>

如果失败,再次重复操作将再次失败,第三次将是正常的。

测试人员是一个自动向服务器发出请求的客户工具,但如果手动尝试操作(当服务器受到测试人员的压力时),也会出现问题。

在自动测试期间发生这种情况很难判断,但在服务器繁忙时手动完成,结果是系统性的。

  • 如果您直接验证它是否有效,如果等待大约5秒则失败
  • 如果失败,则失败两次,在第三次
  • 上工作

那么,什么能使服务器以不同的方式回答?我可以猜出正确的反应是什么,看起来像是应该做的。

我不知道错误的回答应该是什么,我的表单或我的xbls中没有任何操作。

我该怎么做才能解决这个问题,或者至少可以找到有关发生的事情的更多信息?

Orbeon版本:3.8.0.201005141856 CE

1 个答案:

答案 0 :(得分:0)

很抱歉不得不说以下内容,因为它不是很有帮助,但是因为我们正在讨论一个近5年的Orbeon Forms版本,所以很难弄明白。可能存在该版本中的错误(希望)从那时起在许多版本的软件中得到修复。

由于软件是开源的,你可以获得源代码并尝试调试,虽然它可能有点挑战,因为它是一个非平凡的软件。