APPX Monitor
Effective with Release 5.0.0, APPX System Administration includes a utility that allows an APPX System Administrator to monitor all APPX sessions .
Overview
Release 5.0.0 and higher of the APPX Utility includes a new utility in System Administration which can be used to monitor all APPX sessions. This utility provides APPX System Administrators with visibility of which processes are being run by the various APPX users as well as status information for each session.
How to Enable the APPX Monitor Feature
To enable the APPX Monitor feature, each APPX session that is to be monitored must have two environment variables set at the time that the session is initiated. Any APPX session does not have these two environment variables set will simply not be displayed on the APPX Monitor display. The APPX License Server session should also have these two environment variables set.
APPX_MONITOR_KEY=<key_number>
APPX_MONITOR_SLOTS=<session_count>
The easiest way be ensure that these environment variables are set for all APPX sessions including the APPX License Server session is to define them in the appx.env configuration file. Simply add the two environment variables to the appx.env file with appropriate values. The example below assigns a key value of 1234 for the shared memory segment and specifies that the shared memory segment should be large enough to hold the status information for 100 APPX sessions.
#============================================================================= # APPX Monitor configuration #============================================================================= APPX_MONITOR_KEY=1234 APPX_MONITOR_SLOTS=100
APPX_MONITOR_KEY Environment Variable
The APPX_MONITOR_KEY environment variable defines the IPC (interprocess communication) key of the shared memory segment in which the APPX session information is stored. The <key_number> that you assign to the APPX_MONITOR_KEY environment variable must be a number and must not already be in use by any other shared memory segments that may exist on your system. If you are running on Unix or Linux, you should
list the shared memory segments for your system and choose a key value that is not already in use. On the Windows platform, the shared memory segment is prefixed with 'Appx.', so there's almost no chance of a conflict with other software.
Each APPX session updates the shared memory segment with information relating to which APPX process is being run and the status of the process. The APPX Monitor reads the shared memory segment to obtain and display the information for each APPX session.
APPX_MONITOR_SLOTS Environment Variable
The APPX_MONITOR_SLOTS environment variable defines how many "slots" should be allocated in the shared memory segment for the APPX Monitor. The minimum number of slots should correspond to the maximum number of APPX sessions that could be run on your APPX server. For example, if you have 30 licensed users you should specify a value of at least 120 (each user can run as many as 4 sessions). The following formula can be used to ensure that you allocate a sufficient number of slots:
<session_count> = <licensed_users> * 4 + 1
When the APPX Monitor's shared memory segment is created, it will always be created with the number of slots being a multiple of eight. If you specify a <session_count> that is not a multiple of eight, the number of slots allocated will be increased to the next multiple of eight.
Warning: Setting this too low will result in unpredictable behavior! Use the formula above as a minimum value. Add more slots if you routinely run background jobs as well as foreground sessions. There is no drawback to setting this higher than you need.
How to Run the APPX Monitor
The APPX Monitor status display process can be run from within APPX System Administration.
System Administration --> System Setup --> Monitor APPX Sessions
If the APPX Monitor feature has been properly configured, the APPX Monitor process should display a screen similar to the one below.
The Role of the APPX License Server
The license server cleans up orphaned entries in the APPX Monitor's shared memory segment. When an APPX session terminates normally, it removes its entry from the APPX Monitor's shared memory segment. However, if an APPX session crashes or is otherwise abnormally terminated, the session's entry will be left in the APPX Monitor's shared memory segment. The APPX License Server session periodically identifies and removes entries for APPX sessions that are no longer running from the APPX Monitor shared memory segment.
Managing Shared Memory Segments
Under ideal conditions, once you have configured the APPX Monitor feature, there should be no need to be concerned with shared memory segments. However, in the event that you do encounter a problem that is somehow related to the shared memory segment there a couple of things you can do. First, you can reboot your server. Rebooting the server removes all shared memory segments and will clear any problems that might be related to a shared memory segment. However, if you don't want to reboot your server, there are two commands on Unix/Linux systems which you may find useful for managing shared memory segments. One command will list the shared memory segments that exist on your server. The other command can be used to remove a shared memory segment.
Command to List Shared Memory Segments
The following command can be used on a Unix/Linux system to list the shared memory segments that have been created on the server:
ipcs -m
In the example below, the shared memory segment with an owner of "appx" is the shared memory segment for the APPX Monitor. The key value can be used to identify the shared memory segment of the APPX Monitor. In this case, the key value of 0x000004d2 is the hexadecimal equivalent of a decimal value of 1234 which is the value that we assigned to the
APPX_MONITOR_KEY environment variable.
Command to Remove Shared Memory Segment
In the event that your APPX server has a problem related to the APPX Monitor's shared memory segment, you can remove the APPX Monitor's shared memory segment. The following command can be used on a Unix/Linux system to remove a shared memory segment.
ipcrm -m <shmid>
The appropriate value for <shmid> can be determined by
listing the shared memory segments on your server to identify the APPX Monitor's shared memory segment.
Limitations:
-
A single-user license has no license server so there is no way for the APPX Monitor to remove crashed sessions from the shared memory segment. On the other hand, do you really need the APPX Monitor on a single-user system?
-
If more than one copy of APPX is installed and running on the same server, they cannot use a common shared memory segment. Each copy of APPX must be configured such that the APPX_MONITOR_KEY environment variable has a different key value.
-
Two APPX servers cannot use a common shared memory segment. This limitation also applies to "thick client" installations of APPX.
Enhancement Suggestions:
-
The APPX Monitor status display needs an option to allow a System Administrator to kill an APPX session.
-
The APPX Monitor status display needs an option to specify how often the display should be updated.
-
The APPX Monitor status display needs a drill down option to show more information for a specific session.
-
It would be nice if the APPX Monitor status display showed the process ID as well as the User ID.
-
It would be nice if, during query processes, the APPX Monitor status display would show the name of the process itself, rather than QSLCT and QSORT.
-
The configuration process is too "manual". The APPX Monitor feature should always be enabled and should automatically configure itself.
Comments:
Read what other users have said about this page or add your own comments.
This wiki page needs to discuss how to manage shared memory segments on a Windows server.
--
SteveFrizzell - 25 Sep 2008
--
AlKalter - 04 Apr 2008