xxforms:script seems to break on high simultaneous load

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

xxforms:script seems to break on high simultaneous load

Arun Batchu
When testing our complex form ( which are 5 tabs with approximately 20 fields on each tab)  with session state being maintained on the server, users complained about not being able to submit when they tried to exercise the app with 5-6 simultaneous users.

This problem was difficult or near impossible to produce with 1 or two simultaneous users.

So, we employed Selenium to robotically fill the form fields and submit from three different client machines. At some point as we increased the speed of updates, We were able to reproduce the error:

The Manifestation of error:
The error was not obvious except that inspite of all fields being validly filled , the users were still not able to submit.  They were however able to still interact with the rest of the form fields - add, delete, fill etc.
However, a couple of deletes failed along with not being able to submit the form. Our next buttons that called a scrollTop() function would misbehave.

Finding:
We found that where the form triggers were not working, every one of them used xxforms:script for the deletions and submissions that did not work.

Workaround:
We removed the xxforms:script and dispatched the events directly to the model , bypassing any intermediate Javascript calls.
We ran the simultaneous tests again simulating 10, 15 simultaneous users - with NO problem.

This was against Orbeon 3.7 Beta 1 (the released version). Deployed in Jetty 6.0.1 .

This is a problem that is difficult to reproduce but could occur in production when the application has to scale. Wanted to post to the group to make them aware of such a problem and the workaround that we found.


Orbeon folks, if you need more clarification and details about the deployment, code snippets etc.  I would be happy to provide them.