Default language.

Updating the AR Monitor configurations to add or modify Java arguments for plug-in servers


Remedy AR System provides out-of-the-box plug-in servers. Some plug-ins are based on Java. This topic guides you through the methods to update the AR Monitor configurations for plug-in servers to affect resources, performance, and other Java features.

The AR Monitor process controls all processes, and the way in which processes start, run, and stop. AR Monitor reads the armonitor.conf (UNIX) or armonitor.cfg (Windows) file to determine the processes that must be started and the method to run them.

You can modify the AR Monitor configuration in the following methods:

  • By using the new Remedy Management Console.
  • By using a text editor manually.

Important

  • Do not change any Java arguments or settings for the AR Server process when updating the AR Monitor configurations.
  • Do not change any native processes (C based processes) when updating the AR Monitor configurations.

Before you begin

Before you update the AR Monitor file, ensure the following:

  • The ports you configure are not in use by any other processes, for example JMX.
  • You have sufficient disk space if you have configured an elevated Java logging parameter, such as a heap dump.
  • You meet the Java syntax standard for your version. Refer to this topic in the Oracle documentation- https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html.
  • The AR Monitor Process has all ports open and available if you choose to use the Remedy Management Console.
  • The Default-Messaging-Port, AR Monitor RMI, AR Monitor Remote Object, and AR Monitor Notification ports are available on all AR System Servers if you choose to use the Remedy Management Console.
  • Create a backup of all systems before modifying them.

To update the AR Monitor configuration file by using Remedy Management Console

  1. Log in to the Remedy Mid-Tier with an administrator account.
  2. Navigate to Remedy Management Console > AR System Server Group Console.
  3. On Remedy Management Console, click Manage Processes.
    On the Manage Processes page, a list of all processes is displayed. By default, the list is unfiltered. 

  4. To filter down to a specific server, select Host and click the drop-down list to select a host.
    You can also filter by type (AR Server, Mid-Tier, or Smart IT) and name (combination of Host and Type).
    image2020-12-1_12-38-6.png
    A table with all the filtered processes for the specific host is displayed.

  5. To modify a process command, select Update from the Operation drop-down list, and select a process in the table.
    image2020-12-1_12-50-50.png

  6. The Command field in the top right corner displays the information of the plug-in server. Click Expand image2020-12-1_12-53-52.png to open the command window and modify the command.
    For example, if the Default Java plug-in server plug-in is selected, the command window is displayed as shown in the following figure:
    image2020-12-1_12-55-5.png

  7. After modifying the command, click OK, and then click Play image2020-12-1_12-58-50.png to save the changes. 
    The following note is displayed on the screen:
    "Process has not been stopped, changes will not take effect until process will be restarted (ARNOTE 148065)"
    image2020-12-1_12-58-22.png
  1. Stop and start the plug-in for the changes to take effect.
    From the Operation drop-down list, select Restart, and click Play image2020-12-1_12-58-50.pngto stop and start the process.

Best practice
After you run the Update operation, we recommend you to wait for 30 seconds or more before you restart the plug-in server. In a busy environment, it can take up to 30 seconds before the changes are registered by AR Monitor.

If you restart the Default Java Plug-in Server on the server the Mid-Tier is connected to, the Remedy Management Console might become unresponsive. We recommend you to wait for 15 seconds before refreshing the webpage.

To update the AR Monitor configuration file manually

Best practice
We recommend you to use the Remedy Management Console to modify the AR Monitor configuration.

  1. Open the AR System Monitor configuration file by using a text editor, such as Notepad or VI.
    (Windows) <RemedyInstallDir>\arsystem\conf\armonitor.cfg  
    (UNIX) /etc/arsystem/$ServerName/armonitor.conf 
  2. Find the process that you want to modify.
    For example, the 'Default Java plug-in Server' contains a -classpath of "%RemedyInstallDir%\ARSystem\plug-insvr".
  3. Modify it with the required parameters.
  4. Save the file.

This method requires a full stop and start of the AR System Server for any changes to take effect.

Common operations added to Remedy Plug-in Server JVMs

Important

These Java arguments are provided as is, and as a courtesy. BMC doesn't support modifying Java parameters outside the normal use cases of our products.


Operation

Description

Parameters to be added

Reference

Add JMX monitoring

  • Add JMX arguments to a Java Plug-in Server to monitor or troubleshoot a critical process.

  • JMX monitoring is not enabled by default and the Remedy Administrator adds this after installation.

  • JMX monitoring is used to monitor a plug-in server for performance issues and does not impact the daily usage.


-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=<port>
-Dcom.sun.management.jmxremote.ssl= <true | false>
-Dcom.sun.management.jmxremote.authenticate= <true | false>

The parameters are added at the beginning of the command before the -classpath. An example is shown as follows:

/opt/openjdk/bin/java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer


To learn more about configuring JMX, see the Java's documentation - https://www.oracle.com/java/technologies/javase/docs-jmx-jsp.html

Add heap dump

  • Add heap dump arguments to a Java plug-in Server to better understand critical memory issues and troubleshoot problematic processes.

  • Heap dump is not enabled by default and the Remedy Administrator adds the heap dump post installation.

  • Heap dumps consume extra disk space each time the JVM reaches its maximum heap size. It also forces a restart of the affected plug-in server only.

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=<Dir\File>

-XX:OnOutOfMemoryError="taskkill /PID %p /F"

This is added at the beginning of the command before the -classpath.  Here is a example:

/opt/openjdk/bin/java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="/opt/dump.bin" -XX:OnOutOfMemoryError="taskkill /PID %p /F" -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about Heap Dumps, see the Java documentation - https://docs.oracle.com/en/java/javase/15/troubleshoot/prepare-java-troubleshooting.html

Modify the heap memory Settings

  • Modify the heap memory settings for a Java plug-in Server to provide additional resources to the JVM to help process larger datasets easier.

  • Some of these options are set for some of the plug-in servers by default.  If neither of the following options are used, the plug-in servers use the default values set by the JRE/JDK. Xms has no default value and Xmx has a value of 256m.

  • Setting the heap memory correctly improves the system performance as well as frees up system resources for use by other processes. 
-Xms<int>m
-Xmx<int>m

This is added at the beginning of the command before the -classpath.  Here is a example:

/opt/openjdk/bin/java -Xms128m -Xmx2048m -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about Java Memory Settings,
see the Java Documentation.  https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/memman.html

Add garbage collection settings

  • Add or modify the Garbage collection settings for a Java plug-in to tune the performance of a JVM to help process larger datasets easier. 

  • These settings are not set for plug-in servers by default. A JVM does not need these settings unless it is overly active or uses a large amount of memory (greater than 4096m). 

  • Setting this parameter correctly improves the system performance. 
-XX:+DisableExplicitGC
-XX:+UseCompressedOops
-XX:+UseConcMarkSweepGC
-XX:NewRatio=<int>

This is added at the beginning of the command before the -classpath.  Here is a example:

/opt/openjdk/bin/java -XX:+DisableExplicitGC -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:NewRatio=2 -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about Java Garbage Collection settings, see the Java documentation - https://docs.oracle.com/cd/E15523_01/web.1111/e13814/jvm_tuning.htm#PERFM150

Force modify IPV4 or IPV6

  • Modifying IPV4 or IPV6 behavior might be needed for certain environments where DNS alias's are used or specialty networking appliances are in use.

  • These settings are not set for plug-in servers by default. A modern environment does not need these settings.
-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv6Addresses=false

These settings are added at the beginning of the command before the -classpath. Here is a example:

/opt/openjdk/bin/java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about forcing Java to use network protocols, see the Java documentation - https://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

Modify the Java classpath

  • There is no need to modify the classpath for a JVM in an out-of-the box Remedy system. 
  • But, in rare cases this could be needed if you use a custom plug-in or a third party addon. 
  • The classpath is set for all all out-the-box Remedy Java-based plug-in servers. The classpath argument is a concatenated string that is separated by a : colon on Linux systems and a ; semicolon on Windows systems.  Also a wildcard "*" can be used to include "all files" in a directory. 
  • The way in which the JVM operates changes.

Here are two examples of the classpath argument being used, one with only one directory, and another with 2 directories and a single file:

-classpath "/opt/bmc/remedy/arsystem/plug-insvr"
-classpath "E:\BMC\ARSystem\plug-insvr;E:\Oracle\Java\JDK\lib\bmcext\*;E:\BMC\ARSystem\plug-insvr\arplug-insvr91_build009.jar"

These are already in place for all Remedy plug-in Servers, only modify the string located in the quotes.  Here is a example:

/opt/openjdk/bin/java -classpath "E:\BMC\ARSystem\plug-insvr;E:\Oracle\Java\JDK\lib\bmcext\*;E:\BMC\ARSystem\plug-insvr\arplug-insvr91_build009.jar" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about Java's Classpath argument, see the Java documentation - https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

Modify SSL/TLS parameters

  • You can modify the SSL and TLS parameters to force a JVM to only accept or use certain encryption protocols.
  • For most Remedy plug-ins, such as AREA LDAP plug-in, this is handled through the plug-in configuration itself, and is not needed to be set at the JVM level. 
  • These parameters are not set by default for any plug-in servers.
  • A change in the parameters changes the network connectivity and security of network traffic for a Java-based process.

-Djavax.net.debug= <all | ssl>
-Djdk.tls.client.protocols= <TLSv1 | TLSv1.1 | TLSv1.2 | TLSv1.3>
-javax.net.ssl.keyStore= <Directory/File>
-javax.net.ssl.keyStorePassword= <string>

These parameters are added at the beginning of the command before the -classpath as shown in the following example:


/opt/openjdk/bin/java -Djavax.net.debug=all -Djdk.tls.client.protocols=TLSv1.2 -javax.net.ssl.keyStore="/opt/keystore" -javax.net.ssl.keyStorePassword=mypassword -classpath "/opt/bmc/remedy/arsystem/plug-insvr" com.bmc.arsys.plug-insvr.ARplug-inServerMain -x <ServerName> -i /opt/bmc/remedy/arsystem -alias BMC:DefaultJavaplug-inServer

To learn more about SSL/TLS using Java arguments, see the Java documentation - https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#SSLOverview


Related topics

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*