2.2.3 Using MonitorLMMonitorLM gives information on the total number of licenses available and checked out, the fully qualified domain name and username of those who have them checked out, and so on. MonitorLM can send output to the terminal, open a web browser, or write to a file. The output for MonitorLM is customizable by means of a configuration file. Starting MonitorLMTo start MonitorLM, change directory to the location in which MathLM is installed, and type .\monitorlm servername (on Windows) or ./monitorlm (on Unix, Linux, or Mac OS X). The first argument of the monitorlm command specifies the name of the license server running MathLM. If you do not specify a server name explicitly, the local machine name is chosen as the default. MonitorLM Command-Line OptionsThe following options are available using the monitorlm command. The syntax for specifying an option is monitorlm servername options.
-file
file
Specifies the file to which output should be directed. If this option is not set, MonitorLM will write to stdout. The format of the output is determined by the -format option.
-format
f
Specifies the format for the output of MonitorLM. The possible values follow. text--Sends output in text format to stdout. This is the default for Unix and Linux. html--Sends output in HTML format to a temporary file and launches a web browser to display the file. This is the default for Windows and Mac OS X. cgi--Sends output in HTML format to stdout. This is used when MonitorLM is launched directly by a web browser.
-localtime
Specifies that all references to time should be in local time, instead of GMT.
-template
file
Specifies the file that acts as a template for the output of MonitorLM. This shows what the output of MonitorLM looks like, with -format set to text.
Online help is available at http://support.wolfram.com/networkmathematica/ and http://documents.wolfram.com
MathLM Version 5.1 MathLM Server hostname.domain.com Date : Thursday, January 29 2004 22:42:45 License Type In Use / Authorized
Mathematica Unix Front End [1] [5] Mathematica Unix Kernel [1] [5]
Licenses in use: License Program Version Type Username Hostname Duration ----------------------------------------------------------------------------------------------- Mathematica FE 5.1 Unix username client.domain.com 08:04 Mathematica KE 5.1 Unix username client.domain.com 08:04
This shows what the output of MonitorLM looks like in a web browser, with -format set to html. Note that when -format is set to cgi, the output of MonitorLM is sent to stdout in HTML format. This shows what that output looks like when displayed in a web browser. Customizing the Output of MonitorLMYou can customize the content and format of the output from MonitorLM by editing a template file. This is a plain text file, which can contain the following types of elements. - Constant tags--These tags represent data that is static during the execution of MonitorLM and license-independent, such as the current date. Each of these tag names has the prefix CONST.
- Variable tags--These tags act as wrappers to constant tags. They are useful in defining the format for data to be output in series, such as a table of current MathLM users. They are useful for improving readability of the template file. Each of these tag names has the prefix VAR.
- Process-dependent tags--The value of these tags depends upon which Mathematica process is being displayed and includes data like the process owner's username and IP address. Each of these tag names has the prefix PROC.
- Repeated tags--These tags serve as placeholders for information regarding an unknown number of licenses. They are the only tags whose size is not predetermined. Only the checkout lines are repeated, and there is one checkout line per license. Each of these tag names has the prefix REP.
- Text wrappers--This is the text that a user can wrap around the tags, for presentation and formatting.
Each tag in the template file has the form %var#, where - var represents a variable whose value is provided by the server.
- # is a number defining a specific format for the display of the variable var.
In addition to the %var# commands, the template file can also include plain text such as brackets, dashes, quotation marks, and arbitrary comments. The text can be used to include comments and separators in the server messages for formatting purposes. All text included in the string appears literally in the server message with the following two exceptions: use %q to include a double quote ("), and use %% to include a percentage sign (%). Here is a list of tag names that can be included in the template file along with the numeric values for their possible formats. Predefined Constant Tags
%CONST_DATE_D#
Day of month [ 1 ... 31 ]
%CONST_DATE_W#
Day of week
1 - Numeric [ 1 ... 7 ] 2 - Abbreviated [ Sun ... Sat ] 3 - Verbose [ Sunday ... Saturday ]
%CONST_DATE_M#
Month
1 - Numeric [ 1 ... 12 ] 2 - Abbreviated [ Jan ... Dec ] 3 - Verbose [ January ... December ]
%CONST_DATE_Y#
Year
1 - Two-digit [ 04 ] 2 - Four-digit [ 2004 ]
%CONST_DATE_T#
Time
1 - Twelve-hour [ 10:20:15 ] 2 - Twenty-four-hour [ 22:20:15 ]
%CONST_SERVER_IP
MathLM IP address.
%CONST_SERVER_HOST
MathLM hostname.
%CONST_SERVER_DOMAIN
MathLM domain.
%CONST_SERVER_FQDN
MathLM fully qualified domain name.
%CONST_SERVER_VERSION
MathLM version.
%CONST_CA_FE_AUTHORIZED
Number of class A front ends authorized.
%CONST_CB_FE_AUTHORIZED
Number of class B front ends authorized.
%CONST_TOTAL_FE_AUTHORIZED
Total number of front ends authorized.
%CONST_CA_KE_AUTHORIZED
Number of class A kernels authorized.
%CONST_CB_KE_AUTHORIZED
Number of class B kernels authorized.
%CONST_TOTAL_KE_AUTHORIZED
Total number of kernels authorized.
%CONST_CA_FE_AVAILABLE
Number of class A front ends available.
%CONST_CB_FE_AVAILABLE
Number of class B front ends available.
%CONST_TOTAL_FE_AVAILABLE
Total number of front ends available.
%CONST_CA_KE_AVAILABLE
Number of class A kernels available.
%CONST_CB_KE_AVAILABLE
Number of class B kernels available.
%CONST_TOTAL_KE_AVAILABLE
Total number of kernels available.
%CONST_CA_FE_OUT
Number of class A front ends in use.
%CONST_CB_FE_OUT
Number of class B front ends in use.
%CONST_TOTAL_FE_OUT
Total number of front ends in use.
%CONST_CA_KE_OUT
Number of class A kernels in use.
%CONST_CB_KE_OUT
Number of class B kernels in use.
%CONST_TOTAL_KE_OUT
Total number of kernels in use. Customizable Variable TagsNote: The strings provided in this section are examples of possible values, not default settings. To use these tags, you must define them in your template.
%VAR_DATE_AMPM = "A.M." "P.M."
Text to use for a.m. and p.m. when displaying time.
%VAR_MPROCESS = "Front End" "Kernel"
Title for Mathematica processes. The first string in quotes is the front end title and the second is the kernel title.
%VAR_LIC_CLASS = "Class A" "Class B"
Labels for each license class.
%VAR_CA_AUTHORIZED_HEADER = "Class A Authorized \t Front End \t Kernel"
Header for number of authorized class A licenses. Use with the predefined constant tags %CONST_CA_FE_AUTHORIZED and %CONST_CA_KE_AUTHORIZED.
%VAR_CB_AUTHORIZED_HEADER = "Class B Authorized \t Front End \t Kernel"
Header for number of authorized class B licenses. Use with the predefined constant tags %CONST_CB_FE_AUTHORIZED and %CONST_CB_KE_AUTHORIZED.
%VAR_TOTAL_AUTHORIZED_HEADER = "Total Authorized \t Front End \t Kernel"
Header for total number of authorized licenses. Use with the predefined constant tags %CONST_TOTAL_FE_AUTHORIZED and %CONST_TOTAL_KE_AUTHORIZED.
%VAR_CA_CHECKEDOUT_HEADER = "Class A Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
Header for information about class A licenses in use. Use with the repeated tag %REP_CA_CHECKOUT_LINE.
%VAR_CB_CHECKEDOUT_HEADER = "Class B Licenses in Use\nUsername \t Hostname \t Program \t Slot # \t Duration"
Header for information about class A licenses in use. Use with the repeated tag %REP_CB_CHECKOUT_LINE.
%VAR_CHECKEDOUT_HEADER = "Licenses in Use\nUsername \t Hostname \t Program \t License Class \t Slot # \t Duration"
Header for information about all licenses in use. Use with the repeated tag %REP_GENERAL_CHECKOUT_LINE. Process-Dependent Tags
%PROC_UID
User ID of Mathematica process owner.
%PROC_USER
Username of Mathematica process owner.
%PROC_IP
IP address of machine using Mathematica process.
%PROC_HOST
Hostname of machine using Mathematica process.
%PROC_DOMAIN
Domain of machine using Mathematica process.
%PROC_FQDN
Fully qualified domain name of machine using Mathematica process.
%PROC_SLOTNUM
Slot number of Mathematica process.
%PROC_VERSION
Version of client.
%PROC_DURATION
Time client has been running. Repeated TagsNote: The strings provided in this section are examples of possible values, not default settings. To use these tags, you must define them in your template.
%REP_CA_CHECKOUT_LINE = "%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
Class A checkout line. This specifies the format of each line in the table or block that lists the class A processes in use. Corresponds to the customizable variable tag %VAR_CA_CHECKEDOUT_HEADER.
%REP_CB_CHECKOUT_LINE = "%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
Class B checkout line. This specifies the format of each line in the table or block that lists the class B processes in use. Corresponds to the customizable variable tag %VAR_CB_CHECKEDOUT_HEADER.
%REP_GENERAL_CHECKOUT_LINE = "%PROC_USER \t %PROC_HOST \t %VAR_MPROCESS \t %VAR_LIC_CLASS \t %PROC_SLOTNUM \t %PROC_DURATION\n"
General checkout line. Use this if you do not want to separate classes. Corresponds to the customizable variable tag %VAR_CHECKEDOUT_HEADER. In the template file, the text wrappers and tags that make up the output to MonitorLM must follow a line containing only the keyword %TEXT with no whitespace before or after it. Definitions for customized variable tags must precede the %TEXT line. If no variable tags are customized, the %TEXT line can be the first line of the file. Samples and BehaviorHere is a simple text file that shows only the number of processes authorized, available, and in use. This example does not need to define any variable definition tags.
%TEXT Time/Date : [%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2] Front End Processes Authorized: %CONST_TOTAL_FE_AUTHORIZED Kernel Processes Authorized: %CONST_TOTAL_KE_AUTHORIZED Front End Processes Available: %CONST_TOTAL_FE_AVAILABLE Kernel Processes Available: %CONST_TOTAL_KE_AVAILABLE Front End Processes In Use: %CONST_TOTAL_FE_OUT Kernel Processes In Use: %CONST_TOTAL_KE_OUT
The resulting output has the form shown here.
Time/Date : [00:05:26] [January 30, 2004] Front End Processes Authorized: 5 Kernel Processes Authorized: 5 Front End Processes Available: 4 Kernel Processes Available: 4 Front End Processes In Use: 1 Kernel Processes In Use: 1
Here is a slightly more sophisticated example. It is identical to the preceding example except that it also lists the processes in use and customizes variable tags.
# Begin variable tag definitions %VAR_MPROCESS = "FE" "KE" %VAR_TOTAL_CHECKEDOUT_HEADER = "Slot\t Program\t User\t Host\n" %REP_GENERAL_CHECKOUT_LINE = "%PROC_SLOTNUM\t %VAR_MPROCESS\t %PROC_USER\t %PROC_HOST\n"
%TEXT Time/Date : [%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2] Front End Processes Authorized: %CONST_TOTAL_FE_AUTHORIZED Kernel Processes Authorized: %CONST_TOTAL_KE_AUTHORIZED Front End Processes Available: %CONST_TOTAL_FE_AVAILABLE Kernel Processes Available: %CONST_TOTAL_KE_AVAILABLE Front End Processes In Use: %CONST_TOTAL_FE_OUT Kernel Processes In Use: %CONST_TOTAL_KE_OUT
%VAR_TOTAL_CHECKEDOUT_HEADER %REP_GENERAL_CHECKOUT_LINE
The resulting output has the form shown here.
Time/Date : [00:05:26] [January 30, 2004] Front End Processes Authorized: 5 Kernel Processes Authorized: 5 Front End Processes Available: 4 Kernel Processes Available: 4 Front End Processes In Use: 1 Kernel Processes In Use: 1
Slot Program User Host 6 FE username hostname 1 KE username hostname
The following example demonstrates HTML output. This is useful, for example, if you want to view the MonitorLM output in a web browser.
%VAR_MPROCESS = "Front End" "Kernel" %VAR_TOTAL_CHECKEDOUT_HEADER = "<TR><TD><B>Slot</B></TD> <TD><B>Program</B></TD> <TD><B>User</B></TD> <TD><B>FQDN</B></TD> </TR>\n" %REP_GENERAL_CHECKOUT_LINE = "<TR> <TD>%PROC_SLOTNUM</TD> <TD>%VAR_MPROCESS</TD> <TD>%PROC_USER</TD> <TD>%PROC_FQDN</TD> </TR>\n"
%TEXT <HTML> <HEAD> <TITLE> MathLM Status </TITLE> </HEAD> <BODY> <TABLE BORDER=1 CELLPADDING=5> <TR><TD COLSPAN=2><B>MathLM Server</B></TD> <TD COLSPAN=2><B>%CONST_SERVER_FQDN</B></TD> </TR> <TR><TD COLSPAN=2>Time/Date</TD> <TD COLSPAN=2>[%CONST_DATE_T2] [%CONST_DATE_M3 %CONST_DATE_D, %CONST_DATE_Y2]</TD> </TR> <TR><TD COLSPAN=2>Authorized</TD> <TD>%CONST_TOTAL_FE_AUTHORIZED</TD> <TD>%CONST_TOTAL_KE_AUTHORIZED</TD></TR> <TR><TD COLSPAN=2>Available</TD> <TD>%CONST_TOTAL_FE_AVAILABLE</TD> <TD>%CONST_TOTAL_KE_AVAILABLE</TD></TR> <TR><TD COLSPAN=2>In Use</TD> <TD>%CONST_TOTAL_FE_OUT</TD> <TD>%CONST_TOTAL_KE_OUT</TD></TR> %VAR_TOTAL_CHECKEDOUT_HEADER %REP_GENERAL_CHECKOUT_LINE
</TABLE> </BODY> </HTML>
The resulting output has the form shown here.
|