Difference: APPXSessionMonitor (10 vs. 11)

Revision 112008-09-24 - SteveFrizzell

Line: 1 to 1
 
META TOPICPARENT name="APPX500Features"
Added:
>
>
 

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 .
Line: 10 to 11
 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

Changed:
<
<
To enable the APPX Monitor feature, each APPX session that is to be monitored must have two environment variables set.  Any APPX session does not have these two environment variables will simply not be displayed on the APPX Monitor display. The APPX License Server session should also have these two environment variables set.
>
>
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>

Changed:
<
<
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 assigned 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.
>
>
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 assignes 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.
   

Line: 38 to 39
 

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 ever run on your APPX server.  For example, if you have 30 licensed users and each user runs no more than two sessions at a time, you should specify a value of at least 61. The following formula can be used to ensure that you allocate a sufficient number of slots:

Changed:
<
<

>
>

 
<session_count> = <licensed_users> * 4 + 1
Added:
>
>
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.
 

How to Run the APPX Monitor

The APPX Monitor status display process can be run from within APPX System Administration.

Line: 51 to 54
  Monitor.PNG

The Role of the APPX License Server

Changed:
<
<
The license server cleans up orphaned entries in the 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 terminated without ending normally, the session's entry will be left in the APPX Monitor shared memory segment.  The APPX License Server session periodically identifies and removes entries for APPX sessions that are no logner running from the APPX Monitor shared memory segment. 
>
>
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 Share Memory Segments

Changed:
<
<
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.  There other command can be used to remove a shared memory segment.
>
>
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

Line: 92 to 95
 

Test Results, Comments, Open Issues

From Al Kalter, 28 Apr 2008:
Deleted:
<
<
General testing of the APPX Monitor resulted in acceptable and expected results. As a user's screen changed, the process name displayed by the APPX Monitor changed as well. Unintentionally, we ran into an error situation in an input process, where the key file was apparently damaged, and the input process locked up. We then were forced to "kill -9" that session, which allowed us to test the issue raised earlier in the development process. We found that the APPX Monitor did indeed remove such dead sessions, although it seems to take several minutes. We also learned the importance of Pete's item #5 - that you have to stop and re-start the license server after the APPX Monitor variables are set, or the APPX Monitor won't know about the license server and vice versa. An easy test - you should see the License Server displayed as one of the processes in the APPX Monitor. If it's not there, then stop and re-start the License Server.

An earlier bug report indicated that the APPX Monitor display would freeze when an ODBC connection was in use. This appears to have been fixed. A session connected via APPX ODBC showed up in the APPX Monitor as "APPXNet Session," and went away when the session was closed.

 The notes above also stated, "If APPX_MONITOR_SLOTS is too small, nothing tragic happens - new processes just won't update their status information in the monitor table." That sounds like it should be tested, so we killed all sessions, including the license server and appxd, edited the .env file to set the value to 2, and restarted APPX. We used the first login to run the APPX Monitor, and it properly showed that session plus the license server. Using Alt-F1, we started a second session, which also showed up on the Monitor display, a bit of a surprise there. In fact, subsequent sessions also showed up, until we had six sessions running. The seventh did not appear on the table. Closing each of those in the table worked normally, and closing the session(s) that were not shown did not cause any problems, although we did notice that the entry for the license server disappeared temporarily one time. It might be worth testing this with a slight variation - logging in as different users, to check to see if the user count is somehow a factor. But the fact that it allowed six sessions (not four) seems to make that unlikely. Follow-up note: Pete looked into the code to determine why we more than two sessions were being logged, and discovered that the actual number of slots is the next higher multiple of 8 from the value entered.

One facet that is not thoroughly tested is what the APPX Monitor will show for background tasks. It appears that an additional session will be displayed, but the background session we were testing with died too quickly to see what was really happening. This should be investigated further.

Changed:
<
<
It would be nice if the APPX Monitor showed the process ID as well as the User ID. It would also be nice if, during query processes, it would show the name of the process itself, rather than QSLCT and QSORT. And finally, I concur with Pete's statement that the whole process seems too manual. Buttons to start and stop the APPX Monitor, and automation of the selection of the values for the environment variables, would seem to be desirable features. Nonetheless, for System Administrators who want or need to see what their users are doing, this should be a welcome new feature.
>
>

Limitations:

  1. 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?

Suggested Enhancements:

  1. The APPX Monitor status display needs an option to allow a System Administrator to kill an APPX session.
  2. The APPX Monitor status display needs a drill down option to show more information for a specific session.
  3. It would be nice if the APPX Monitor showed the process ID as well as the User ID.
  4. It would be nice if, during query processes, it would show the name of the process itself, rather than QSLCT and QSORT.
  5. The configuration process is too "manual".  The APPX Monitor should always be on and should automatically configure itself.
 

Comments:

Read what other users have said about this page or add your own comments.
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback