Monitoring and Management of GX applications

Official Content

Large applications need additional support to define whether they are feasible or not, that is to say, to confirm that they are not sure-fail applications.

In general it is required to get information on the system's behavior, identify critical application spots and establish if it will be necessary to reprogram them or modify their settings to change the detected behavior.

By setting Enable Management Property (JAVA) or Instrumented Property (NET) it is possible to monitor applications to help in the 'diagnosis' explained previously. As it runs, the application shows information in a console, such as variables related to the connection pool, users, cursors, statements, procedures, etc.

See Management and Performance information using JMX or WMI for detailed information about this topic.

In addition to publishing application variables, it allows you to change certain variables instantly through the console:

  • Set a larger size for the connection pool
  • Recycle the connection pool
  • Kill a JDBC connection

You can also execute certain operations such as dumping the connection pool information to a file, or generating notifications when a variable reaches a value for which a prompt is to be triggered.

Management in Java

In Java, it is implemented using JMX standard, which allows using any of the JMX monitors existing in the market to visualize the information.

How to use it

1. There is a property at model level: Enable Management Property, which must be set to YES. This property allows displaying information to evaluate the system behavior.

2. Then, you need to start the application server with the following System properties:

-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.host=<MachineName> (1)(2)
-Dcom.sun.management.jmxremote.authenticate=false

3. Afterwards, you need to start a JMX monitor displaying the information. As an example, it may be JConsole.exe, which comes with JDK 1.5 or upper, located in its bin directory (there are other tools available, see the links below in this document).

(1) - MachineName is the name or IP of your application server. In some cases using firewall the connection may not work because JMX creates extra connections in dynamic ports. Check the port with the following command and enable it to connect remotely:

netstat -tulpn | grep java  

If your application server is hosted on the Cloud, check the configuration with your provider, for example if you use Amazon, extra configuration is needed, check here or here.

(2) AWS Environment:

-Dcom.sun.management.jmxremote.hostname=JMX_REMOTE_IP instead of -Dcom.sun.management.jmxremote.host

Management in .NET

In .NET, it is implemented using WMI standard, which allows using any of the WMI monitors existing in the market to visualize the information.
Monitoring can be done on any product that supports WMI (Windows Management Instrumentation). WMI enables you to record and issue a class instance, in order to obtain information about the application at runtime (resources such as memory or processor and errors can be monitored with WMI).

There are two large "packs" implemented.

1. A Management pack

This pack indicates the application’s current behavior. It is mainly especially useful in production, to establish determine when you have to make certain adjustments have to be made to the application adjustments to improve its performance. It may also be also useful to find possible errors such as lost connections, locked users, etc.

2. A Performance pack

This pack was mainly conceived to be used before the application release, although it can be also used in production. It provides information related toabout the procedures and the SQL statements executed by the application. It allows identifying the most executed procedures or statements that are executed more often, the ones taking that take more time, etc.

Within these two large packs, the information is grouped in smaller packs indicating the type of information to be shown. 

How to use it

1. There is a property at model level:Enable Management property, which must be set to YES. It only affects the client.exe.config file,  with the following line <add  key="Instrumented" value="1"/> and allows displaying information to evaluate the system behavior.

2. Before running the application register the WMI schema with the following command using Visual Studio Command Prompt (the installutil.exe tool comes with .Net Framework):

installutil.exe %ModelPath%/bin/GxClasses.dll

Example

If you want to monitor an RMI 3-tier application you must start a WMI monitor displaying the information. As an example, it may be WMI CIM Studio. Open it on the rootGeneXus namespace.

See Also

Monitoring Java applications


Was this page helpful?
What Is This?
Your feedback about this content is important. Let us know what you think.