IBM Support

Limiting the Number of UI Sessions to Help Prevent the Server From Running Out of Memory

Flashes (Alerts)


Abstract

It is possible to overload the application server JVM by having too many users logged in. With too many users, the user interface slows down and the server can potentially crash.
From the 7.1.1.6 base services fix pack onwards, you can limit the number of UI sessions per JVM/server.

Content

It is possible to overload the application server JVM by having too many users logged in. With too many users, the user interface slows down and the server can potentially crash.

Every user interface (UI) session uses a significant amount of application server memory. UI sessions store the state of the UI including the displayed data and the individual components used to render the UI. Each UI session relates to a HTTP Session, but a HTTP Session can have multiple UI sessions.

For example, if you are using Maximo Asset Management in multiple tabs in the Internet Explorer or Firefox browser, each tab uses the same HTTP Session, but each tab needs its own UI session to keep the tabs from corrupting the state of the other tabs. Because a user can have multiple UI sessions for the same HTTP Session, the base services cannot rely on the HTTP Server or application server to limit the number of UI sessions; the base services UI framework must control the limit.

Solution


From the 7.1.1.6 base services fix pack onwards, you can limit the number of UI sessions per JVM/server. The limit is controlled by the system property mxe.webclient.maxuisessions, which you configure in the System Properties application. The property value sets the maximum number of UI sessions allowed. A value of zero or lower allows unlimited UI sessions. The default value is zero.


If you set a value greater than zero and the number of UI sessions reaches that limit, subsequent users who try to log in will receive the message “The maximum number of users are logged in. Try again later after some users have logged off”.

You can configure this message to be returned with a 503 Http Response error or by redirecting the user to a login error page. Set this behavior with the system property mxe.webclient.maxuisessionsend503. If set to 1 (the default), a 503 error is sent. If set to 0, the user is redirected to the login error page.

Sending the 503 Http Response error
In most clustered environments, the load balancer will detect a 503 error and route the user to another server in the cluster. If all servers are at maximum capacity, the 503 error is returned to the user.

To present the error in a Maximo Asset Management error page, you must modify the UI framework web.xml file by doing the following steps:

1. Open the file {MBS root}\applications\maximo\maximouiweb\WEB-INF\web.xml in an XML editor.

2. At the end of the web.xml file, but before the </web-app> tag, add the following lines exactly as shown:

<error-page>
<error-code>503</error-code>
<location>/webclient/login/loginerror.jsp?unavailable=1</location>
</error-page>

3. Rebuild the Maximo EAR file and deploy it.

Not sending the 503 Http Response error
The load balancer could interpret the 503 error as the server being down. This will cause the balancer to mark the server as down and thus never direct requests to the server until the load balancer is informed that the server is back up. Versions of WebSphere Application Server before the 6.1.14 release, for example, have been known to do this. If your load balancer does not handle the 503 error correctly, or if you are not using Maximo Asset Management in a clustered environment, set the mxe.webclient.maxuisessionsend503 property to 0.

Summary of UI session properties

PropertyDescriptionValue
mxe.webclient.maxuisessionsSets the maximum number of UI sessions per server/JVM.If set to 1 or more, determines the maximum number of UI sessions per JVM.
If set to 0, unlimited sessions are allowed.
Default is 0
mxe.webclient.maxuisessionsend503Sends a 503 error if the server is at maximum capacity.If set to 0, disables the 503 error.
If set to 1, enables the sending of 503 errors.
Default is 1.
mxe.webclient.503_retry-afterSets the value of the Retry-After Http Response header when throwing the 503 Http Response error. This header is typically needed to prevent the 503 error from being interpreted as the server being down.Set to any number of seconds. Default is 180. If set to 0, the Retry-After header value is not sent.

[{"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.1.1;7.5;7.6","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}},{"Product":{"code":"SSWK4A","label":"Maximo Asset Management Essentials"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}},{"Product":{"code":"SSLKTY","label":"Maximo Asset Management for IT"},"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Component":" ","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

More support for:
IBM Maximo Asset Management

Software version:
7.1.1, 7.5, 7.6

Operating system(s):
AIX, HP-UX, Linux, Solaris, Windows

Document number:
132789

Modified date:
25 September 2022

UID

swg21412767

Manage My Notification Subscriptions