5/6/2023 0 Comments Seriesstateholder icefaces![]() The HTTP Client sampler is configured with a Response Timeout of 30 seconds, as response times in excess of that are far from usable. ![]() MeasurementsLatency measurements represent an average response from measurements gathered using JMeter. Source code from the original article can be downloaded from the following url: The rest of the test configuration is as follows. ICEfaces supports DOM compression using Fast Infoset XML compression to reduce server-side memory use between requests, so you can see the comparative trade off between memory and computation. We also took the liberty of testing two different configurations of ICEfaces related to maintaining the state of the server-side DOM. ![]() This ensures that the ICEfaces framework only maintains one unique view for each simulated test client. Test Configuration - CorrectedIn order to conduct the tests properly we worked with the ICEfaces 1.8.1 release, and set concurrentDOMviews="false" to compensate for the missing onunload() events. This is the root cause of the erroneous results originally reported. The original test configuration for ICEfaces was concurrentDOMviews="true", but under the test conditions every GET request created a new view that would consume resources for the duration of the test, as the necessary onunload() events never occurred. ICEfaces includes a feature called Concurrent DOM Views that supports opening multiple windows or tabs onto the same ICEfaces application, maintaining independent state for each view, and sharing a single Ajax Push connection between all views. The problem is compounded by misconfiguration of ICEfaces for this type of test. ICEfaces includes logic to clean up resources related to window onunload() events that should occur with each page refresh, but the test methodology did not account for this. If a simulated browser simply sends a series of GET requests, while neglecting to send messages generated for window onunload(), it appears to the Ajax framework as if the user has opened, and expects to interact with, a great many separate browser windows. This allows the load test to complete more rapidly, but if you are load testing a production application this would not be a recommended approach, as it does not simulate realistic delays between user requests.ĭespite the limitations and lack of scope existing in these tests, they do exercise the initial page load characteristics of the framework, provided that they properly simulate real-world client interaction with the application. Furthermore, because the simulated clients interact with the server so frequently, more working memory is required in the heap than may be necessary to handle a real-world load. The heap measurement is likely similar to steady-state heap use under the number of simulated users, but it does not take into account different memory use patterns during Ajax interaction or input processing. For this reason, the latency measurement in this test should be interpreted as the latency of the initial page view under load, not as typical interaction latency. Strictly speaking, this test does not exercise the Ajax functionality of the various Ajax frameworks, since the majority of Ajax interaction does not take place via full-page refresh. Problems With the TestsAll three tests follow a similar methodology that involves loading the system by repeatedly refreshing a page in the application under a variable number of simulated users. The author of the original article was negligent in his application of the test methodology to ICEfaces, and published completely erroneous results for the ICEfaces framework. If you've some lists or a data table on the same page set to a model in your bean, changes will automatically be displayed except you're using the immediate keyword set to true on your save button.Īdditionally you might consider a panel with a content of your choice which has the rendered property set to a boolean in your bean, which will be triggered within the saving process and therefore let the content be displayed only after hitting save.The purpose of this article is to present accurate performance results for the ICEfaces RIA framework, correcting gross errors originally published in the article Performance Report of Server Side RIA Frameworks. If no navigation rule matches a given action, the current page will be redisplayed (although from the experience i made this refresh is different to a common HTML refresh). Navigation rules will be defined in faces-config.xml There are two options which come to my mind:ĭefine a page to which you'll navigate to after hitting "save".įor doing that, your action for actually saving the data to DB will go into the method defined as an actionListener or, if you want to make your next page depending on the outcome of the saving process, as action.
0 Comments
Leave a Reply. |