We are having problems with our xaf web application. Internally we start getting a lot of OutOfMemoryExceptions and all our users start seeing a variety of error messages when the submit/navigate to a new page. Here is the message I proposed we send to our users this morning:
"We have identified the cause the problems in our web application and are testing of fixes is ongoing. As usage of our web application reaches a memory limit of a little over 1,400,00KB (or 1.4GB), users may begin seeing a variety errors. When this memory limit is reached, everyone will encounter errors and the web application on our web server will reset shortly thereafter. Any users of the system will continue to receive errors until they log in again after the reset has completed.
The last few days we have been developing and testing fixes to keep our web application from continually consuming excessive amounts of memory, which is the root cause of all these problems. Unfortunately this process involves a wait and see approach each day as we try different changes and settings while monitoring the results. We appreciate your patience while we work through this issue and we hope to have a permanent solution very soon."
Our web application is built on DevExpress XPO (an ORM system) and XAF (eXpress Application Framework). The data in our system current has 38,000 Client entities, and 53,000 Transaction entities. Using a memory profiler I see those are the two biggest groups of entities which stay "live" and are chewing up memory. I've also tried manually collecting the garbage, which helps a little, but the memory still keep building up and up.
As far as load is concerned we have 5-8 users logged into the system during weekdays, and our application is serving up 2-4 xaf page requests each minute between the hours of 9am to 5pm. With this usages our server reaches 1.4GB used used by about 10:30am and starts generating errors.
We have tried both UseServerMode on true and false. Although setting this value true reduces the rate of memory consumption, it still grows too rapidly as our users work during the day and the server still reaches over it's limit. Additionally, when UseServerMode is true subtle new errors are introduced in seemingly random places, such as when a popup is requested to pick an entity.
I've read this page by Microsoft which explains going over 800MB in memory increase the chances to receive OutOfMemoryExceptions:
I'm sure our users/customers are getting frustrated, but I'm no closer to a solution. I'm at the point where I am logging each page generation, recording the time, used memory, the current entity/view, but am so far unable to fix this problem.
Does DevExpress have any advice as to what I can try next to resolve this problem?
Thank you for your message. I recommend that you follow instructions provided in the Deployment Recommendations article. To research this issue further, we need a project reproducing it that we can build and debug locally.
Is your intention to post an answer to your own question?
- If so, then proceed.
- If you simply wanted to post additional information, ask for further clarification, or to just say "Thanks!", please click Leave a Comment.
- If you wish to edit your original question, please use the Edit button in the Toolbox at the top right corner of that entry.