Tips & Tricks - Intrexx Server Monitoring

In this post, we'd like to give you a better understanding of the JMX console. With the Java Management Extensions (JMX), it provides a technology that allows users to monitor and manage applications written in Java. These various tasks are handled by what are known as MBeans. This provides administrators with even more comprehensive options for monitoring and maintaining the Intrexx server.

For security reasons, JMX is disabled by default for your Intrexx portal.

JMX can be enabled in the portal properties. Enter a free port there for communication between JConsole and the Intrexx server. Press F1 to access help for additional settings in the dialog box. After making the changes, restart the portal.

To start the JMX console, run the "jconsole.exe" file (Linux: "jconsole.exe" for a graphical interface; for headless mode, run it remotely) in the installation directory java\packaged\windows\amd64\bin (or the equivalent directory on Linux).

On the login screen, log in using "servername:port". A username and password are not required for this connection. This type of authentication should not be used on a permanent basis, since it is possible to establish a JMX connection at any time if the server address and port are known. However, this is acceptable for development and diagnostic purposes. So, if you don't need the JMX console, disable the corresponding setting in the portal properties and restart the portal service.

After launching the JMX console, the monitoring window opens with various tabs. On the first tab, you'll see a variety of charts displaying various metrics, such as CPU usage and the number of live threads. The charts are updated every second. This makes it possible to accurately track resource utilization.

On the other tabs—Memory, Threads, Classes, and VM Summary—you can view and analyze additional information on the corresponding topics. On the last tab, "MBeans," you'll find an overview of the implemented MBeans that are integrated into JMX by default. In addition, the "de.uplanet.lucy.server.management" folder contains specific MBeans implemented by the INTREXX GmbH that provide specialized portal analyses and methods for administrative tasks.

Overview / Memory

In this overview, you can monitor the server's memory usage, similar to the System Monitor. However, these values can be read more accurately in the JMX console. Memory usage is usually represented as a zigzag curve. The Java Virtual Machine performs automatic garbage collection to ensure that there is always sufficient free memory. If necessary, you can also perform manual garbage collections (GC) here to free up memory. The information includes, for example, the current heap memory usage, the maximum memory allocated to the heap, the maximum memory occupied by the heap, and information about the garbage collector.

Threads

When it comes to threads, the WebConnectorWorkerThreads are of primary interest. A distinguishing feature is the Web Connector's port number in the thread name (e.g., http-nio-0.0.0.0-8102-exec-123, where 8102 is the Web Connector's port number specified in the portal settings ). The information here may be helpful in troubleshooting if the portal is no longer accessible in the browser, but the web server (IIS / Tomcat) is running correctly. Ideally, the status of a WebConnectorThread is "waiting"—which means it is ready to respond to requests from the browser. The graph displays the current number of live threads as well as the highest number of live threads since the portal service was last started.

Classes

This displays the number of classes currently loaded into memory, as well as the total number of classes that have been loaded or unloaded.

VM Summary

Here you'll find information about your portal server, such as uptime, loaded Java classes, memory usage, active threads, etc.

MBeans

Mentioning all the MBeans here would go beyond the scope of this post. The following section therefore introduces and explains several specific logging MBeans from the INTREXX GmbH.

de.uplanet.lucy.server.management - Logging

Attribute

Data Type

Description

JdbcTrace

Boolean

If true, all queries made to the data source are written to portal log. This allows you to check the duration of database queries in the log file, for example, if there is a performance issue with a portal.

JdbcDumpOnClose

Boolean

If true, information (source, producer, etc.) about open database connections is written to portal.log.

ThrowExceptionOn-DeprecatedCall

Boolean

If true, an error message is written to portal.log when a deprecated method is called.

BpeeDumpContext

Boolean

If true, the Bpee context variables and their values are written to portal.log.


Operation

Description

logSeparator / logString

Writes "Separator" or "Text" to the portal.log file, thereby improving the readability of the log during troubleshooting.

logThreadStacks

Write the stack trace of the WebConnectorWorkerThreads to portal.log. Useful, for example, for determining the cause of a portal outage in the browser.

de.uplanet.lucy.server.management - WebConnector

Attribute

Data Type

Description

Timeout

Long

Web Connector timeout (in ms, default 10 min).

Running

Boolean

Is the Web Connector active?

WorkerThreadCount

Int

Number of available worker threads.

AliveWorkerThreadCount

Int

How many worker threads are currently available?

WatchdogInterval

Long

Monitors threads for activity. When the timeout is reached, the worker thread is recycled.

RequestCount

Int

Number of open requests.

BusyCount

Int

Number of tasks currently being processed.

LogRequestProcessingTime

Boolean

If true, the duration in milliseconds of a request's execution from the browser to the WebConnectorThread is written to portal.log. Useful for investigating performance issues.


Operation

Description

startConnector

Starting the Web Connector

stopConnector

Stopping the Web Connector

More Information

JMX Console