Using Multiple JVMs to Support Users and Functionality

Technote (FAQ)


Question

IBM often recommends limiting the number of users in Maximo to 50 and separating functionality such as MEA and Cron tasks. Why is this recommended and what is the meaning of this recommendation?

Cause

Limited documentation

Answer

Maximo is a web based application written in the Java language. Java applications rely on many types of technology to execute including:

  • Networks
  • Hardware & operating systems
  • J2EE Servers (IBM WebSphere and Oracle WebLogic)
  • Java Virtual Machines (JVM) (IBM, Sun)

When Maximo starts, it is running inside a JVM. The JVM is managed by a J2EE server. The J2EE server is running on an operating system on a hardware server. And, the hardware is connected to the network.

Each of these technologies provides or consumes resources and resources are limited by the technology. Both Maximo and JVMs are resource consumers. When a JVM starts, it uses parameters to determine the resources it will have available to it during runtime (see the software installation guides for recommended parameters).

A typical 32 bit Maximo environment may be allocated 1024m (1GB) of memory and 50 execution threads. Those parameters become the core of the resources available to the JVM and to Maximo (64 Bit environments should be allocated 3584m (3.5GB) of memory and can support approximately 75 concurrent users).

Maximo code is a collection of files including Java classes, XML, JSP, and others. These files are "zipped" up into an Enterprise ARchive (EAR) file. Each JVM maintains a copy of the EAR file and executes the code independently. This means that each instance of a JVM maintains it's own database connections, its own session information, and its own resource usage. If all of the EAR files deployed are exactly the same then they will all provide the exact same functionality. This is typically the case in a User Interface (UI) cluster.

Maximo is an all inclusive product. The server can provide many types of services including UI functions, integration functions (MEA), scheduled task functions (Cron tasks) and others. To make Maximo more flexible, each of these functions can be configured and turned on and off.

In a small environment where there are only five users that access Maximo, it may make sense to run the entire application on a single piece of hardware with the database, reporting, J2EE server and all of the Maximo functions executing.

In a larger environment with 500 concurrent users, the only way to successfully support the user base and all of the Maximo functionality while maintaining an acceptable level of performance is to separate tasks and allocate adequate resources. In this example, IBM might recommend separate hardware for the database, reporting and J2EE functions. In addition, a minimum of ten (10) JVMs should be setup in a cluster to provide UI services. At least one (1) JVM dedicated to incoming MEA transactions (if MEA is being used) and one (1) JVM dedicated to executing cron tasks should be set up. The JVMs alone will require a minimum of 24GB of memory and up to 12 processors. (2GB and 1 processor per JVM recommended).

It is common for IBM support and development to recommend limiting the number of users to 50 per JVM.

The number 50 is used in describing the number of concurrent connections that can be made from a single JVM. Since there are a limited number of resources such as threads and memory allocated to a single JVM, this is a generic number IBM uses that will generally meet our customer’s requirements. Sometimes 100 people might login and it will be fine if no one is working. Other times, 25 users might login to the same application in a call center and may hit it so hard that it reaches its maximum. Based on this, fifty (50) is a guideline for concurrent connections.

In addition to the UI cluster, it is important to separate specific tasks out of the cluster. Cron tasks can use many resources and impact the performance of the JVM. By separating the cron task execution in its own JVM, cron tasks can run to completion without impacting users. The Maximo MEA can put a heavy load on a JVM especially if there is a high volume of incoming MEA transactions. The MEA should execute in a stand alone JVM outside the cluster to process. By separating these processes, you can minimize the impact on users if a heavy load gets placed on one of the other systems. In addition, these servers can even be restarted without impacting users.

See the Maximo System Administrators Guide for detailed instructions on clustering. Also review related URLs (in this document) for additional information on these topics.

Related information

Maximo Performance Best Practices
Using the DoNotRun property to isolate server functiona
Naming JVMs for better control


Cross reference information
Segment Product Component Platform Version Edition
Systems and Asset Management Tivoli Asset Management for IT All
Systems and Asset Management IBM Maximo Asset Management Essentials All
Systems and Asset Management Tivoli Change and Configuration Management Database
Systems and Asset Management Tivoli Service Request Manager

Rate this page:

(0 users)Average rating

Document information


More support for:

IBM Maximo Asset Management
System Related

Software version:

5.1, 5.2, 6.0, 6.1, 6.2, 6.2.1, 6.2.2, 6.2.3, 6.2.4, 6.2.5, 6.2.6, 6.2.7, 6.2.8, 7.1, 7.1.1, 7.2, 7.5

Operating system(s):

AIX, HP-UX, Linux, Solaris, Windows

Reference #:

1329219

Modified date:

2010-07-17

Translate my page

Machine Translation

Content navigation