The Uptime Infrastructure Monitor WebSphere performance servlet uses WebSphere's Performance Monitor Interface (PMI) infrastructure to retrieve performance information from a WebSphere web application server, which it then saves to an XML file.

PMI is, by default, enabled on the WebSphere server and set to collect the performance metrics used by Uptime Infrastructure Monitor. However, before Uptime Infrastructure Monitor can start collecting information from a WebSphere server, the performance servlet must be deployed in the WebSphere directory that contains your web application.

Per EJB

The following metrics are collected per Enterprise JavaBean (EJB) on a WebSphere server:

MetricExplanationModule
CreateCountThe number of times that the Enterprise JavaBeans that are running on the server were created.beanModule.creates
RemoveCountThe number of times that the EJBs were removed.beanModule.removes
PassivateCountThe number of times that EJBs were removed from the cache. Note that passivation preserves the state of the EJBs on the disk.beanModule.passivates
MethodCallCountThe total number of method calls that were made to the EJBs.beanModule.activates
MethodResponseTimeThe average response time, in milliseconds, on the bean methods.beanModule.avgMethodRt


Per Connection Pool

The following metrics are collected per connection pool on a WebSphere server:

ConnectionPoolSizeThe size of the connection pool to the data source.connectionPoolModule.poolSize
FreePoolSizeThe number of free connections in the pool.connectionPoolModule.freePoolSize
PercentUsedThe percentage of the connection pool that is currently in use.connectionPoolModule.percentUsed
WaitTimeThe average time, in milliseconds, that a connection is used. The average time is the difference between the time at which the connection is allocated and the time at which it is returned.connectionPoolModule.avgWaitTime
CloseCountThe total number of connections that were closed.connectionPoolModule.numDestroys
ConnectionPoolCountThe total number of connections that were created.connectionPoolModule.numDestroys
WaitingThreadCountThe number of threads that are currently waiting for a connection. 
UseTimeThe average time, in milliseconds, that a connection is used. The average use time is the difference between the time at which the connection is allocated and that time at which it is returned.Module.useTime


Other

The following metrics are collected from the WebSphere system, the Java Virtual Machine, the thread pool, or servlets:

CPUUsageThe percent of CPU resources that were used since the last query.systemModule.avgCpuUtilization
HeapSizeThe total amount of memory that is available for the Java Virtual Machine (JVM).jvmRuntimeModule.totalMemory
UsedMemoryThe amount of memory that is being used by the JVM.jvmRuntimeModule.usedMemory
ActiveCountThe number of threads which are concurrently active.threadPoolModule.activeThreads
CommittedCountThe total number of global transactions that have been committed.transactionModule.globalTransCommitted
RolledBackCountThe total number of global transactions that have been rolled back.transactionModule.globalTransRolledBack
LiveCountThe number of servlet sessions that are currently cached in memory.servletSessionsModule.liveSessions
TimeSinceLastActivatedThe difference, in milliseconds, between the previous and current access time stamps of a servlet session. This counter does not include session time out values.servletSessionsModule.timeSinceLastActivated
ServletPoolSizeThe average number of threads in the servlet connection thread pool. 

 

To deploy the performance servlet:

  1. On the WebSphere server, locate the following file: 

    [install_root]/perfServletApp.ear

    Where: [install_root] is the directory under which WebSphere is installed.

     

  2. Copy the perfServletApp.ear file to the directory in which your web application is installed. For example:

    [install_root]/installedApps/ 
    [cell_name]/DefaultApplication.ear/DefaultApplication.war/WEB-INF/classes
    

    Where:

    [install_root] is the directory under which WebSphere is installed.

    [cell_name] is the name of the WebSphere node under which your Web application is installed.

    The above steps must be completed for each web application server to be monitored by Uptime Infrastructure Monitor.

 

If you are using WebSphere Application Server version 6, you will need to change two settings in the WebSphere management console to avoid an Access Denied error when Uptime Infrastructure Monitor attempts to connect to the servlet to collect metrics:

  1. In the WebSphere management console, modify the following settings:
    • Under Security - Secure administration, applications, and infrastructure: turn Application Security on.
    • Under Enterprise Applications - perfServletApp - Security role to user / group mapping: turn Everyone off.
  2. Restart the server. Uptime Infrastructure Monitor should now be able to connect to the servlet and gather performance metrics.