home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
spm2.zip
/
spmref20.inf
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1993-11-11
|
414KB
|
14,430 lines
ΓòÉΓòÉΓòÉ <hidden> Glossary Button ΓòÉΓòÉΓòÉ
Glossary
ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
References in this publication to IBM products, programs, or services do not
imply that IBM intends to make these available in all countries in which IBM
operates.
Any reference to an IBM product, program, or service is not intended to state
or imply that only IBM's product, program, or service may be used.
Any functionally equivalent product, program, or service that does not infringe
any of IBM's intellectual property rights or other legally protectible rights
may be used instead of the IBM product, program, or service.
Evaluation and verification of operation in conjunction with other products,
programs, or services, except those expressly designated by IBM, are the user's
responsibility.
IBM may have patents or pending patent applications covering subject matter in
this document. The furnishing of this document does not give you any rights to
these patents.
You can inquire, in writing, to the IBM Director of Commercial Relations, IBM
Corporation, Purchase, NY 10577 - USA, or to the IBM Director of Commercial
Relations, IBM World Trade Asia Corporation, IBM Kamiya-cho Building, 4-3-9
Toranomon, Minato-ku, Tokyo, Japan.
The following terms, denoted by an asterisk (*) in this reference, are
trademarks of the IBM Corporation in the United States and/or other countries:
IBM Presentation Manager
OS/2 Operating System/2
PS/2 Personal System/2
THESEUS2 System Performance Monitor/2
SystemView
The following paragraph does not apply to the United Kingdom or any country
where such provisions are inconsistent with local law.
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS INFORMATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
Some states do not allow disclaimer of express or implied warranties in
certain transactions; therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the information. IBM may make improvements
and/or changes in the product(s) and/or the program(s) described in this
information at any time.
It is possible that this information may contain reference to, or information
about, IBM products (machines and programs), programming, or services that are
not announced in your country. Such references or information must not be
construed to mean that IBM intends to announce such IBM products, programming,
or services in your country.
Requests for copies of this information and for technical information about
IBM products should be made to your IBM Authorized Dealer or your IBM
Marketing Representative.
(C) Copyright International Business Machines Corporation 1992. All rights
reserved.
Note to U.S. Government Users: Documentation and programs related to
restricted rights. Use, duplication, or disclosure is subject to restrictions
set forth in GSA ADP Schedule Contract with IBM Corp.
System Performance Monitor/2* is a SystemView* product.
ΓòÉΓòÉΓòÉ 2. SPM/2: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The IBM System Performance Monitor/2* Version 2.0 (SPM/2) application is
designed to assist you in analyzing the performance of hardware and software in
an OS/2 2.0 environment.
The Presentation Manager* interface allows you to customize data monitoring and
report generation. The command line interface allows you an alternate access
to many of the same functions.
The Directory Analyzer and THESEUS2* (a memory analyzer) are SPM/2 functions
that can help you narrow the focus on specific problems. (See the THESEUS2
Reference for more information about the memory analyzer.)
SPM/2 provides an application programming interface (API) that allows your
application to communicate with SPM/2 components and to register user metrics
that aid you in collecting data specific to your application.
In addition to collecting performance data on a stand-alone system, SPM/2
supports data collection from remote systems. Monitored systems can be
supported by either another copy of SPM/2 or the Distributed Feature, which
contains only those programs necessary to collect the data and send it to the
monitoring system.
More
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Process overview
o Program architecture
o Control window
o Monitoring a network
o Monitoring data
o Creating reports
o Using the data
o Sizing directories
o Command line interface
o Application programming interface
o User metrics.
o Messages.
ΓòÉΓòÉΓòÉ <hidden> SPM/2 Trademark ΓòÉΓòÉΓòÉ
System Performance Monitor/2 is a registered trademark of the IBM Corporation
in the United States and/or other countries.
ΓòÉΓòÉΓòÉ <hidden> THESEUS2 Trademark ΓòÉΓòÉΓòÉ
THESEUS2 is a trademark of the IBM Corporation in the United States and/or
other countries.
ΓòÉΓòÉΓòÉ <hidden> Presentation Manager Trademark ΓòÉΓòÉΓòÉ
Presentation Manager is a trademark of the IBM Corporation in the United States
and/or other countries.
ΓòÉΓòÉΓòÉ <hidden> SPM/2 Overview: More ΓòÉΓòÉΓòÉ
SPM/2 can help you manage computer resources to achieve greater efficiency from
your system.
SPM/2:
o Collects performance data about the OS/2 system and the applications running
on it.
o Displays performance data in graphs (in both real-time and playback modes).
o Creates performance reports to print or to use in spreadsheets or database
programs.
o Calculates directory, subdirectory, and file sizes.
o Analyzes memory at several levels, including working set.
o Allows you to retrieve performance data directly for your applications.
ΓòÉΓòÉΓòÉ 2.1. SPM/2 Process: Overview ΓòÉΓòÉΓòÉ
The following steps describe how to record and graph performance data from your
LOCAL system. SPM/2 2.0 also supports graphing and recording of data from
remote systems attached via LAN Server and LAN Requester.
o Set Up Local Monitoring
1. Start the SPM/2 control window, by double-clicking on the SPM/2 icon in
the SPM/2 folder. The SPM/2 control window can also be started by
typing SPM from the OS/2 command line.
2. Create a description for a monitor session (.LOG) file from the action
bar of the SPM/2 control window.
- Specify the LOCAL workstation to be included in the monitor session.
- Define the resources you want to monitor and how often you want data
collected.
3. Save the monitor session (.LOG) file from the action bar of the Monitor
Session Description window.
o Use the SPM/2 Control Window to Graph and Record Data
1. Start the monitor session from the action bar of the SPM/2 control
window and perform one the following tasks:
Note: The NETBIOS Listener, which starts the Data Collection Facility
when requested, must be started to use this function. Normally,
the NETBIOS Listener is started by the CONFIG.SYS file when you
start your system. However, if you have stopped the NETBIOS
Listener, you must restart it. (See the SPMNBL command for more
information.)
- Record the data in the monitor session (.LOG) file.
- Graph the data in real time if desired.
Notes:
a. After you have recorded your data in a monitor session, you can
graph this prerecorded data using the playback function from the
SPM/2 Graph window.
b. If you are an application programmer, you can perform the
following tasks for your own application:
- Embed user metrics to collect data specific to your application.
- Use the API to access monitor sessions and retrieve data.
2. Stop a recording or graphing session from the action bar of the SPM/2
control window.
o Generate Reports
1. Create a report description (.RDF) file from the action bar of the
SPM/2 control window.
2. Run the report, creating a summary report (.SUM) file, tabular report
(.TAB) file, dump report (.DMP) file, or a delimited report (.DEL) file
from the action bar of the SPM/2 control window.
3. Print the summary, tabular, or dump report from the action bar of the
SPM/2 control window.
Note: You can import delimited tabular reports directly into some
spreadsheet applications.
o Use THESEUS2 to Collect More Detailed Information
1. From the SPM/2 folder, double-click on the THESEUS2 icon and select OK
to display the THESEUS2 Process Hierarchy window. A hierarchical
display of all the processes currently running on the system is
displayed on the THESEUS2 Process Hierarchy window.
Note: To adjust font size, from the action bar of the THESEUS2 Process
Hierarchy window, select Misc to display the Misc pull-down.
2. Double-click on any process listed in the THESEUS2 Process Hierarchy
window to display a listing of all the threads that are running in that
process. (For example, when you double-click on PMSHL32, the General
Information about PMSHL32 window is displayed.)
Note: Some of the information in the general information about a
process window is displayed in black type and some of it is
displayed in blue type. Double-click on the blue type to display
more information.
3. The working set is a calculation of the amount of memory that is
touched during a scenario of interest. To obtain instructions for
calculating the working set:
a. From the action bar of the THESEUS2 window, select Help, and Help
Index to display the Help Index pull-down.
b. From the Help Index pull-down, scroll down to Working Set and
double-click on one of the following topics:
- Of a single process (how to)
- Of multiple processes (how to)
- Of the entire system (how to)
Notes:
a. You can select other THESEUS2 functions from the action bar of
the THESEUS2 Process Hierarchy window or select topics of
interest from the Help Index pull-down.
b. For more information, see the "How to Do Things" section of the
"How to Use THESEUS2" chapter in the THESEUS2 Reference.)
o Setup Requirements for Remote Monitoring
See the Requirements for Monitoring a Network to make sure that both the
monitoring and monitored systems have the correct IBM products installed.
ΓòÉΓòÉΓòÉ 2.2. Program Architecture ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
When you start a monitor session (.LOG) file, SPM/2 starts a program called
SPMILOG, which controls the monitor session. There is one instance of the
SPMILOG program for each active monitor session (.LOG) file.
The SPMILOG program sends a request to the NETBIOS Listener (SPMNBL) to start
the Data Collection Facility.
Notes:
1. The SPM/2 installation program places a RUN statement in the CONFIG.SYS
file to start the NETBIOS Listener (SPMNBL). Therefore, SPMNBL will
normally be started automatically when you start your system, and it
will run in the background.
However, if the Listener has been stopped, it must be restarted using
the SPMNBL /LISTEN command. When you start the Listener with this
command, it runs in a window and you can see it respond to monitor
session start and stop requests.
2. If you are monitoring only a local machine, you do not have to have
NETBIOS installed in order to use the Listener. If NETBIOS is
installed, the Listener uses it. However, if NETBIOS is not installed,
the Listener uses local named pipes to perform its function.
3. Once you start a recording or graphing session, data continues to be
collected until you stop the recording or graphing session. Closing the
SPM/2 control window, SPM/2 Graph, or SPM/2 folder does not stop data
collection.
The Data Collection Facility sends performance data back to the SPMILOG
program, where it is placed in memory for real-time graphing or is recorded in
the monitor session (.LOG) file for later retrieval.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Component relationships
o Accessing real-time and historical data
o Performance metrics
o Monitor session (.LOG) file structure.
ΓòÉΓòÉΓòÉ 2.2.1. Component Relationships ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 2.2.2. Accessing Real-Time and Historical Data ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 2.2.3. Performance Metrics ΓòÉΓòÉΓòÉ
The performance metrics architected into the OS/2 2.0 operating system are
called counters and timers. Performance metrics are control blocks that count
the occurrences of various events and activities. There are the following
general types:
Event counter Increments by 1 for each occurrence of an event (for
example, number of disk read operations).
Timer Counts ticks of the system clock (one tick is equivalent
to 838 nanoseconds on a Personal System/2 (PS/2)
computer). When combined with other counters, timers
are used to measure how long an event takes.
Bulk counter Increments by quantities (for example, number of bytes
read since data collection began).
State counter Indicates the current state of a resource. Its value
increases or decreases one at a time (for example, the
number of pages in memory).
Bulk state counter A combination of the bulk counter and state counter
concepts. Indicates the current state of a resource.
Its value increases or decreases by quantities.
Queue length Consists of two parts:
o Queue count. This is 4-byte state counter that contains the current
number of elements in the queue at the time the snapshot of the hook
values was taken. This is just an instantaneous value.
o Queue time. This is an 8-byte timer that contains a value that is not
purely time, but rather a composite of the amount of time each element
has been in the queue.
The Data Collection Facility takes a sample of these counters and timers at an
interval specified by the collection frequency parameter in the monitor
session (.LOG) file. As each sample is taken, the difference, or delta,
between the last value and the current value is computed, and the data is
passed back to the SPMILOG program. The SPMILOG program, upon a request
through the API, passes the data to:
Graphing Facility Displays the data in the SPM/2 Graph.
Recording Facility Stores data in the monitor session (.LOG) file in
accordance with the specified recording frequency. For
example, if the multiple for the recording frequency is
5, every 5 samples collected by the Data Collection
Facility are averaged (or summarized) and stored as 1
record in the file.
User application Uses data as desired.
ΓòÉΓòÉΓòÉ 2.2.4. Monitor Session File Structure ΓòÉΓòÉΓòÉ
The monitor session (.LOG) file contains both the description of the monitor
session (for example, the workstations and resources selected for monitoring)
and any performance data recorded while the monitor session is active.
When you use the Monitor Setup options New..., Open..., and Copy..., only the
description portion of the .LOG file (the part that instructs the SPMILOG
program what data to collect) is accessed.
The first time you start recording for a particular monitor session
description, the collected data is appended to the end of the same .LOG file.
In subsequent recording sessions you have the option to replace that data or to
append the new data to the end of the file. See Note.
The report description (contained in an .RDF file) tells SPM/2 what data to
pull from every monitor session (.LOG) file specified. When you select Run
report, SPM/2 pulls the information for the report from the data portion of
each .LOG file.
ΓòÉΓòÉΓòÉ <hidden> Large .LOG Files ΓòÉΓòÉΓòÉ
Because data may be appended to monitor session (.LOG) files every time
recording is started, those files can eventually get large. You may select the
Replace option to overwrite the old data.
If you want to save your old data, but have your monitor session description in
a smaller file, you can select Monitor, Set up ==>, and Copy to copy your setup
information to a new file name. The new file contains only the description,
and the data in the old file will still be available to generate reports.
ΓòÉΓòÉΓòÉ 2.3. The SPM/2 Control Window: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The SPM/2 control window provides access to most of the SPM/2 functions through
the following action bar options:
View Select View to customize how the information is displayed in the
control window and to specify what level of messages are displayed
in the pop-up panels. Select from the topic list for more
information about the View options.
Monitor Select Monitor to access all the monitor session functions: setup,
graphing, and recording. These functions are covered in Monitoring
Performance Data.
Report Select Report to access all the report functions: setup, running,
and printing. These functions are covered in Creating Performance
Reports.
Help Provides context-sensitive information.
Note: Once you start a recording or graphing session, data continues to be
collected until you stop the recording or graphing session. Closing the
SPM/2 control window, SPM/2 Graph, or SPM/2 folder does not stop data
collection.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Sort by
o Status by
o Full path
o Logged messages.
ΓòÉΓòÉΓòÉ 2.3.1. Sorting by Monitor Session or Workstation: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select View to display the View
pull-down.
2. Select Sort by -> and then select either:
o Monitor session
o Workstation.
ΓòÉΓòÉΓòÉ <hidden> Sorting by Monitor Session ΓòÉΓòÉΓòÉ
Select Monitor session to alphabetically sort the monitor sessions active on
the local system. Highlighting a monitor session displays the workstations
being monitored by that session in the Workstations: list box. This option is
the default.
ΓòÉΓòÉΓòÉ <hidden> Sorting by Workstation ΓòÉΓòÉΓòÉ
Select Workstation to alphabetically sort the workstations participating in all
monitor sessions active on the local system. Highlighting a workstation
displays the session monitoring that workstation in the Sessions: list box.
ΓòÉΓòÉΓòÉ 2.3.2. Status by Monitor Session or Workstation: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select View to display the View
pull-down.
2. Select Status by -> and then select either:
o Monitor session
o Workstation.
ΓòÉΓòÉΓòÉ <hidden> Status by Monitor Session ΓòÉΓòÉΓòÉ
Select Monitor session to have the Status: list box display the status of the
monitor sessions listed in the Sessions: list box. This option is the default.
Possible status types include:
o Pending - shown when not all workstations are running. This status type may
indicate a problem. Switch to status by workstation to show which
workstations are not running.
o Graphing
o Recording
o Graph/Record.
ΓòÉΓòÉΓòÉ <hidden> Status by Workstation ΓòÉΓòÉΓòÉ
Select Workstation to have the Status: list box display the status of the
workstations listed in the Workstations: list box.
Possible status types include:
o On-line
o Off-line.
ΓòÉΓòÉΓòÉ 2.3.3. Displaying Full Path: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select View to display the View
pull-down.
2. Select Full path to display the full path of the monitor session (.LOG)
files listed in the Sessions: list box.
Deselect Full path to display only the monitor session (.LOG) file names
in the Sessions: list box.
ΓòÉΓòÉΓòÉ 2.3.4. Logged Messages: Overview ΓòÉΓòÉΓòÉ
All SPM/2 errors and messages are recorded in the SPMSNAP.ERR file. The level
of messages logged to the SPMSNAP.ERR file is determined by the SET SPMSNAP
statement in the CONFIG.SYS file.
You can use the SPMSNAPP command to format the data in the SPMSNAP.ERR file and
either view it on the screen or redirect it to a file.
You can also view logged messages in pop-up panels. Only logged messages can
be displayed. For example, if the SET SPMSNAP statement in the CONFIG.SYS file
specifies that only error messages will be logged, then warning messages will
not be available for display in a pop-up panel.
Of the messages being logged, you can select the level of messages for display
in pop-up panels through the View selection on the SPM/2 control window action
bar.
ΓòÉΓòÉΓòÉ 2.3.4.1. Displaying Messages in Windows: Procedure ΓòÉΓòÉΓòÉ
To change the level of logged messages displayed in pop-up panels:
1. From the SPM/2 control window action bar, select View to display the View
pull-down.
2. Select Logged messages -> and then one of the following:
Warning Displays warning and error messages.
Error Displays only error messages. This is the default.
Notes:
1. If you deselect both options, only fatal (nonrecoverable) errors are
displayed on the screen.
2. This function is dependent on the logged message level specified in the
SET SPMSNAP statement in the CONFIG.SYS file.
3. If the SPM/2 control window is not active, messages are still logged,
but are not displayed, with the exception of fatal (nonrecoverable)
errors, which are always displayed. Fatal errors are displayed in a
full-screen format if the SPM/2 control window is not active.
ΓòÉΓòÉΓòÉ 2.3.4.2. SET SPMSNAP Statement ΓòÉΓòÉΓòÉ
When you install SPM/2, the following statement is added to the CONFIG.SYS
file:
SET SPMSNAP=E,D:\SPM2V2\SPMSNAP.ERR
where E specifies that only error messages be recorded, and D:\SPM2V2\
specifies that the SPMSNAP.ERR file be located in the SPM2V2 directory of the
D: drive.
Note: The actual drive and path specified in the SET SPMSNAP statement is the
location of the SPM/2 product as specified when installing.
To change the location of the SPMSNAP.ERR file, replace the specified drive
and directory with a new path.
To change the level of messages being recorded, instead of E, specify either W
(for warning and error messages) or I (for information, warning, and error
messages).
CAUTION:
When the message level is set to I, the number of messages sent to the
SPMSNAP.ERR file can be quite large. Before erasing the SPMSNAP.ERR file,
shut down all SPM/2 processes.
ΓòÉΓòÉΓòÉ 2.4. Monitoring a Network: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
In addition to collecting performance data on a stand-alone system, SPM/2
supports data collection from remote systems using a remote named-pipe
interface.
Workstations that are only monitored remotely only need the Distributed Feature
installed on them rather than the entire SPM/2 product. The Distributed
Feature consists of just the programs needed to collect data and send it to the
monitoring system.
Remote data collection minimizes overhead on the system being monitored by
moving the SPM/2 recording and graphing functions to a separate system. Remote
monitoring also allows you to monitor many workstations from one location.
Remote data collection can also help you tune the performance of LAN-based
applications, because a monitoring system can collect data from multiple
servers or requesters in a LAN environment.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Network monitoring requirements
o Illustration of a monitored network
o Component relationships.
ΓòÉΓòÉΓòÉ 2.4.1. Requirements for Monitoring a Network ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
SPM/2 remote data collection requires that IBM LAN Server 2.0 Entry, LAN Server
3.0, or LAN Requester 3.0 with Peer Services be installed on the monitoring
system, and that either IBM LAN Server 2.0 Entry (or 3.0) or the IBM LAN
Requester 2.0 (or 3.0) be installed on the monitored OS/2 2.0 system. Either
the SPM/2 Distributed Feature or an additional copy of the entire SPM/2
application is required for each monitored system. In addition, OS/2 2.0 with
the Service Pak1 (or Service Pak2), or OS/2 2.1 must be installed on both the
monitoring and the monitored systems.
In order to monitor a remote machine, the monitoring system must grant remote
named pipe access to the monitored systems.
If the monitoring system is a:
o LAN Server - Log both the monitoring and monitored systems on to a domain to
get remote named pipe access.
To monitor a system across domains you must grant the GUESTS group access to
named pipes. For more information about GUEST group access, see
Cross-domain monitoring.
o Peer Server, with:
- User Level Security
o Access granted to only specific IDs - Log the monitoring system on to
a domain to get remote named pipe access. The monitored system will
have remote named pipe access with no further action required.
o Access granted to GUEST account - Both monitoring and monitored
systems will have remote named pipe access with no further action
required.
- Share Level Security - Both monitoring and monitored systems will have
remote named pipe access with no further action required.
Notice: If you want to log on to a domain, you should do it before starting
SPM/2. If SPM/2 is already started, stop SPM/2 processes before trying to
log on. If SPM/2 is started and is collecting remote data, you will not be
able to log on to a domain.
The NETBIOS Listener (SPMNBL.EXE), which starts the Data Collection Facility
when requested, must be started on each of the workstations to be monitored.
Normally, the NETBIOS Listener is started by the CONFIG.SYS file when you
start your system. However, if you have stopped the NETBIOS Listener, you
must restart it. (See the SPMNBL command for more information.)
Three NETBIOS resource parameters must be adjusted in the LAN Server
configuration in order to accommodate SPM/2. First, check the
/IBMCOM\LANTRAN.LOG file to determine the existing values for these NETBIOS
resource parameters. Then, refer to NETBIOS Resource Parameters to determine
how to adjust these resource parameters.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Distributed Feature
o Cross-domain monitoring
o Peer Services
o NETBIOS resource parameters
o IBMLAN.INI parameters.
ΓòÉΓòÉΓòÉ <hidden> Named pipe access ΓòÉΓòÉΓòÉ
SPM/2 performs remote communications through named pipes provided by LAN
Server. The SPM/2 monitoring system creates a named pipe then sends the name
of that pipe to the remote workstation to be monitored.
The remote workstation must open a named pipe before monitoring can start. For
the open to be successful the user ID of the remote workstation must have
access to named pipes on the monitoring system.
ΓòÉΓòÉΓòÉ 2.4.1.1. Distributed Feature ΓòÉΓòÉΓòÉ
A Distributed Feature License must be acquired for each machine that uses the
Distributed Feature function.
You may copy and distribute these features as described in the IBM Customer
Agreement or on the Proof of License for Distributed Feature. You may not
transfer a Distributed Feature to any third party.
You must label, when recorded on portable media, copies of the Distributed
Feature and the documentation with:
o The Program number
o The words: Copyright International Business Machines Corporation
o The copyright year as shown on the Program or documentation
o The words: Licensed Material - Property of IBM. IBM retains title to this
copy and to any copy made from it.
The label on any copied documentation must include the words:
Reprinted by permission of IBM.
You may not transfer possession of copies of the Distributed Feature or any
associated documentation to any third party.
ΓòÉΓòÉΓòÉ 2.4.1.2. Cross-Domain Monitoring ΓòÉΓòÉΓòÉ
SPM/2 2.0 supports remote monitoring of workstations that are in other domains.
However, because SPM/2 2.0 performs its remote communication through named
pipes, any workstation in another domain that is to be monitored must have
access to the named pipe resource on the monitoring system. (This is because
the SPM/2 monitoring system creates a named pipe, and then sends the name of
that pipe to the remote workstation it wants to monitor. Before monitoring can
start, the remote workstation must open that named pipe. For the open to be
successful, the user ID of the remote workstation must have access to named
pipes on the monitoring system.) To get access:
o If the monitoring system is a LAN Server and the user ID currently logged on
at the cross-domain monitored system:
- is defined on the monitoring system (that is, it exists on the monitoring
system with the exact same name and password), then access will be
granted to the named pipe.
- is not defined on the monitoring system (that is, no user ID of that name
exists on the monitoring system), then that user ID is considered part of
the GUESTS group. To grant the GUESTS group access to named pipes, issue
the following command:
NET ACCESS \PIPE /GRANT GUESTS:WRC
o If the monitoring system is a Peer Server with user level security that
grants access to only specific user IDs then you can monitor only those
machines defined on your Peer Server, regardless of their logon domain.
o If the monitoring system is a Peer Server with user level security and a
GUEST account with named pipe access or if the monitoring system is a Peer
Server with share level security, you can monitor cross-domain with no
additional actions other than that required to grant named pipe access as
specified in Peer Services.
ΓòÉΓòÉΓòÉ 2.4.1.3. Peer Services ΓòÉΓòÉΓòÉ
Peer Services Installation and Configuration
When installing a LAN Requester to be a Peer Server, you must select Advanced
installation and then specifically install Peer Services. (The default LAN
Requester installation will not install Peer Services.)
Peer Services can be set to either ON or OFF. If you set it to OFF, then you
must always issue a NET START PEER command after issuing the NET START REQ
command.
Access Authority and SPM/2
When configuring Peer Services, you must define who can access resources on the
Peer Server. The resource of concern for SPM/2 2.0 is the named pipe resource.
When doing remote performance monitoring, the SPM/2 monitoring system creates a
named pipe, and then sends the name of that pipe to the remote workstation to
be monitored. Before monitoring can start, the remote workstation must open
that named pipe. For the open to be successful, the user ID of the remote
workstation must have access to named pipes on the monitoring system.
There are two methods of setting up access to named pipes at the Peer Server,
depending on whether USER LEVEL security or SHARE LEVEL security was selected
during installation of the Peer Server.
o User Level Security
To set up user level access to named pipes on the Peer Server, log on
locally as an administrator at the Peer Server and do one of the following:
- Grant named pipe access to only the remote workstations you want to
monitor.
The user IDs of all the remotely monitored workstations must be added to
the Peer Server. Specifying a password is optional. If you specify a
password for a user ID it should be the same as that of the user ID on
the original remote workstation.
OR
- Create a GUEST account that gives named pipe access to any remote
workstation you want to monitor.
To create the GUEST account, type:
NET USER GUEST /PRIVILEGE:GUEST /ADD /PASSWORDREQ:NO
To grant named pipe access to the GUEST account, type:
NET ACCESS \PIPE /GRANT GUEST:WRC
The GUEST account stays in effect until revoked.
o Share level security
Under share level security, you must issue a command that lets the named
pipe resource on the Peer Server be shared with anyone who accesses it. To
issue this command you must be logged on as an administrator at the Peer
Server. Below are the specific steps required (which you may want to put
into STARTUP.CMD):
1. Start the requester service on the Peer Server:
NET START REQ
2. Logon as an administrator:
LOGON userid /P:password
where userid and password are the default administrator user ID (or
could be any other user ID with administrator authority).
3. Share the named pipe (IPC$) resource:
NET SHARE IPC$
At this point you can logoff as an administrator, if you desire.
ΓòÉΓòÉΓòÉ 2.4.1.4. NETBIOS Resource Parameters ΓòÉΓòÉΓòÉ
Remote monitoring requires increased values for three NETBIOS resource
parameters (which can be found in LAN Adapter and Protocol Support). The
amount the values should be increased depends on the number of SPMILOG sessions
you expect to run at any one time.
For the first instance of SPMILOG, the minimum increases to the NETBIOS
Resource parameters follow:
Maximum Sessions Add 7 to the default parameter value.
Maximum Commands Add 8 to the default parameter value.
Maximum Names Add 4 to the default parameter value.
For each additional SPMILOG instance, make the following changes:
Maximum Sessions Add 2.
Maximum Commands Add 2.
Maximum Names Add 1.
For example, if you expect to run the maximum number of 26 SPMILOG programs at
one time, you would specify the following values:
o Maximum Sessions
Default value + 7 + (25 x 2) = default + 57.
where 7 is the increase for the first SPMILOG instance, 25 is the number of
expected additional SPMILOG instances, and 2 is the increase for each
additional SPMILOG instance.
o Maximum Commands
Default value + 8 for 1st session + (25 x 2) = default + 58.
o Maximum Names
Default value + 4 for 1st session + (25 x 1) = default + 29.
ΓòÉΓòÉΓòÉ 2.4.1.5. IBMLAN.INI Parameters ΓòÉΓòÉΓòÉ
IBMLAN.INI Parameters for Monitoring Workstations
The following IBMLAN.INI parameters may need increasing on monitoring
workstations (both Servers and Peer Servers):
o maxconnections
o maxusers
o numreqbuf
The following text provides guidelines on how much to change these parameters
to support remote SPM/2 2.0 monitoring. However, please refer to the IBM OS/2
LAN Server Network Administrator Reference, Volume 2: Performance Tuning for
complete instructions on how much to increase each parameter, as well as for
information on possible interdependencies between these and other IBMLAN.INI
parameters.
o maxconnections
As stated in the LAN Network Administrator Reference, this parameter
specifies the maximum number of connections that a server can handle. Each
remote workstation monitored by SPM/2 represents one user at the monitoring
system. Hence, this parameter should be set large enough to support the
maximum number of remote workstations that will be monitored simultaneously
by SPM/2.
o maxusers
The LAN Network Administrator Reference states that this parameter sets the
maximum number of users that can be using the server simultaneously. Each
remote workstation monitored by SPM/2 requires one connection at the
monitoring system. Hence, this parameter should be set large enough to
support the maximum number of remote workstations that will be monitored
simultaneously by SPM/2.
o numreqbuf
The LAN Network Administrator Reference indicates that 2 additional buffers
are required for each named pipe used. Each instance of SPMILOG (that is,
each active .LOG file) requires the following number of named pipes:
- 1 named pipe for each workstation being monitored from a .LOG file
- 4 named pipes for other work that might be done during the monitoring
session.
Since each named pipe requires 2 request buffers, the number of additional
request buffers needed for each active .LOG file is:
(4 + number_of_workstations) * 2
IBMLAN.INI Parameters for Monitored Workstations
When the monitoring system or the LAN network gets busy, it may take a while
for the monitoring system to respond to requests coming from a monitored
system. The sesstimeout parameter in IBMLAN.INI specifies how long a
requester will wait for a response from a server before disconnecting a
session.
If server or network workload is extremely busy, or if you are going across
bridges that could slow transmission time, it is suggested that you increase
the sesstimeout parameter on the monitored systems. The default sesstimeout
value is 45 seconds. If there are problems with the monitored system dropping
the connection, increase it to 90 seconds.
ΓòÉΓòÉΓòÉ <hidden> Typical Monitored Network ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 3. Monitoring Performance Data: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
To monitor and collect performance data using SPM/2, you must set up a
customized monitor session description that tells the system what data to
collect. Then you can start recording, graphing, or both.
Note: A requester or server must be logged onto the network before
performance data on its operation can be collected remotely.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Setting up a monitor session description
o Recording the data
o Displaying data in a graph.
ΓòÉΓòÉΓòÉ 3.1. Setting Up a Monitor Session Description: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Setting up customized monitor session descriptions allows the collection of
specific data, as needed. Create as many monitor session descriptions as your
system requires.
Specify the following aspects of data collection when creating or changing a
monitor session description:
o A comment that identifies the description
o Workstations from which data is collected
o Resources about which data is collected
o Frequency of data collection and recording.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Creating a monitor session description
o Changing a monitor session description
o Copying a monitor session description.
ΓòÉΓòÉΓòÉ 3.1.1. Creating a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to define a new monitor session description.
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
2. Select Setup-> and then New... to display the Monitor Session Description
window, and complete the following:
o Comment
o Workstations to be included in monitor session.
3. Select Preferences from the action bar to define the following:
o Resources
o Time periods.
4. Select File from the action bar, and then select Save as... to display and
complete the Save As panel.
5. Select OK to return to the SPM/2 control window.
ΓòÉΓòÉΓòÉ <hidden> Comment ΓòÉΓòÉΓòÉ
In the Comment: entry field, type up to 80 characters of information to
identify the monitor session. Optional.
The comment is displayed on the SPM/2 control window when a session is
highlighted.
ΓòÉΓòÉΓòÉ 3.1.1.1. Specifying Workstations: Procedure ΓòÉΓòÉΓòÉ
To specify a workstation to be included in a monitor session:
In the Monitor Session Description window, either:
o Type the name of a single workstation in the Workstation: entry field and
press Enter. Entries in this field are reflected in the Selected: list box.
Repeat until all desired workstations are entered.
or
o Highlight entries in the Available: list box. Select Add >> to copy the
highlighted entries to the Selected: list box. (Double-clicking
automatically selects the entry.)
Notes:
1. A workstation can be monitored by only one monitor session description
at a time.
2. If you want to monitor a local workstation on which NETBIOS is
installed, specify the computer name for the workstation, rather than
specifying LOCAL. (The computer name for the local workstation can be
found in the COMPUTERNAME= statement in the IBMLAN.INI file.)
3. If you are working at a stand-alone workstation on which no LAN
services are installed, type LOCAL in the workstation entry field, or
select LOCAL from the Available: list box.
Related information:
o Query available workstations
o Delete an entry from the Available: list box
o Select all entries
o Remove an entry from the Selected: list box.
ΓòÉΓòÉΓòÉ <hidden> Query ΓòÉΓòÉΓòÉ
Select Query to display a list of all workstations enabled for performance
monitoring (that is, workstations on which the NETBIOS Listener (SPMNBL) is
running. This list is added to the Available: list box.
Note: Query can be selected only if you have LAN Server or LAN Requester
installed. Otherwise, the button is gray and cannot be selected.
ΓòÉΓòÉΓòÉ <hidden> Delete ΓòÉΓòÉΓòÉ
To remove an entry from the Available: list box, highlight that entry and then
select Delete.
ΓòÉΓòÉΓòÉ <hidden> Select All Entries ΓòÉΓòÉΓòÉ
Use the Select all check box to highlight all entries in both list boxes. Then
you may select:
o Add >> to copy all the highlighted entries in the Available: list box to the
Selected: list box.
or
o << Remove to remove all the highlighted entries in the Selected: list box.
ΓòÉΓòÉΓòÉ <hidden> Removing an Entry ΓòÉΓòÉΓòÉ
To remove an entry from the Selected: list box, highlight that entry and then
select << Remove.
ΓòÉΓòÉΓòÉ 3.1.1.2. Specifying Monitor Session Resources: Procedure ΓòÉΓòÉΓòÉ
To specify resources to be monitored:
1. From the Monitor Session Description window action bar, select Preferences
and then Resources... to display the Monitor Session Resources panel.
2. Highlight entries in the Available: list box, and then select Add >> to
copy those choices to the Selected: list box. CPU, Disk 01, and Memory
appear as default selections.
Notes:
a. To have the data graphed, the Selected: list box must contain at
least one of the default selections.
b. The following resources must be selected if you want their
corresponding data lines displayed in the SPM/2 Graph:
CPU CPU line in the CPU graph.
Disk Disk lines in the Disk graph. For example, if you
select Disk 01, a data line is displayed for disk 1,
but not for disks 2 through 24.
Memory Pages-in, Pages-out, and Used Memory lines in the RAM
graph.
Working set Working Set and Fixed Memory lines in the RAM graph.
(The default selections do not include Working Set
because monitoring the working set causes a greater
impact on system resources than monitoring the default
selections.)
c. Before making a selection, you may want to expand the entries with
ellipses (...) in the Available: list box by checking the Expand
available resources box. Selecting an unexpanded entry causes all
instances of that resource to be selected. For example, selecting
Disk... actually selects Disk 01 through Disk 24.
d. To collect data about the HPFS 386 cache, select the IBM LAN Server
3.0 resource. This data can be displayed using the Dump report
format.
3. Select OK to save your selections and return to the Monitor Session
Description window.
Related information:
o Select all entries
o Remove an entry from the Selected: list box
o Collect application, process, and thread level data.
ΓòÉΓòÉΓòÉ <hidden> Collect Application, Process, and Thread Level Data ΓòÉΓòÉΓòÉ
Select Collect application/process/thread level data to collect and record
detailed data about system resources. If this box is not selected, data is
collected for the workstation level only.
CAUTION:
This option can be very intrusive on the system, in terms of CPU cycles, RAM
used to hold performance metric control blocks, and the large amount of data
stored in the collection files. Use this option only when very detailed
reports are required for intensive problem solving or for debugging
applications.
ΓòÉΓòÉΓòÉ 3.1.1.3. Specifying Collection and Recording Periods: Procedure ΓòÉΓòÉΓòÉ
To specify data collection and recording frequencies and working set period:
1. From the Monitor Session Description window action bar, select Preferences
and then Time Periods... to display the Monitor Session Time Periods
panel.
2. Specify the:
o Collection frequency
o Recording frequency multiplier
o Working set period.
3. Select OK to save your selections and return to the Monitor Session
Description window.
ΓòÉΓòÉΓòÉ <hidden> Collection Frequency ΓòÉΓòÉΓòÉ
Specify how often the data should be collected in hours, minutes, and seconds.
For example, to collect data every 2 hours, 15 minutes, 3 seconds, specify
02 15 03. Either type this information in the respective fields or use the
spin buttons to increase or decrease each field value. The minimum collection
frequency is once per second. The default frequency is to collect data every
10 seconds.
ΓòÉΓòÉΓòÉ <hidden> Recording Frequency Multiplier ΓòÉΓòÉΓòÉ
Use the Multiplier: field to specify the recording frequency as a multiple of
the collection frequency. Either type this information in the field or use the
spin button to increase or decrease the field value. The resultant recording
frequency will be displayed in the Recording frequency: fields.
A multiplier of 1 causes every sample collected by the Data Collection Facility
to be recorded in the monitor session (.LOG) file. Any other multiplier value
specifies how many samples will be averaged together to become one record in
the monitor session (.LOG) file.
For example, a collection frequency of 00 00 05 and a multiplier of 05 result
in a recording frequency of 00 00 25.
ΓòÉΓòÉΓòÉ <hidden> Working Set Period ΓòÉΓòÉΓòÉ
The working set period specifies the time interval SPM/2 uses each time it
calculates the RAM working set. The time interval is bounded at the end by the
current time, and at the beginning by the current time minus the working set
period. The default is 60 seconds.
For more information about the working set, see Interpreting Graphs, RAM Graph:
Description.
ΓòÉΓòÉΓòÉ 3.1.1.4. Saving a New File: Procedure ΓòÉΓòÉΓòÉ
To save a new monitor session description or a new report description:
1. From the action bar of the Monitor Session Description window or Report
Description window, select File and then Save as... to display and
complete the Save As panel.
2. Complete the Filename field.
Note: A file type of .LOG is supplied for a monitor session file, or a
file type of .RDF is supplied for a report description file.
3. Select OK to save the selection and return to the previous window.
Note: If you select an existing file name, a pop-up window warns that the new
description will overwrite the old one of the same name. Select
Overwrite to overwrite the old description with the new one.
ΓòÉΓòÉΓòÉ <hidden> Specifying a File Name ΓòÉΓòÉΓòÉ
To specify a file name, either:
o Type the name of a single file in the Filename: entry field. You may
precede the file name with the fully qualified path, or you may accept the
path displayed in the Drive: and Directory: boxes.
or
o Select a drive from the Drive: drop-down list. A list of available
directories for that drive is displayed in the Directory: list box. (To
display subdirectories, double-click on the highlighted directory item.)
Select a directory. A list of available monitor session (.LOG) files for
that directory is displayed in the File: list box. Select the file you
want.
ΓòÉΓòÉΓòÉ 3.1.2. Changing a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to check the parameters of an existing monitor session
description or make a change to the description.
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
2. Select Setup-> and then Open... to display the Open Monitor Description
panel, and complete the Filename field.
3. Select OK to display the Monitor Session Description window, and modify
the following:
o Comment
o Workstations to be included in monitor session.
4. Select Preferences from the action bar to redefine the following:
o Resources
o Time periods.
5. Select File from the action bar, and then select Save to save the revised
monitor session description under the existing fully qualified file name.
Note: To save the changed monitor session description under a new name,
select File and then Save as...
6. Select OK to return to the SPM/2 control window.
ΓòÉΓòÉΓòÉ 3.1.3. Copying a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to make a backup copy of a monitor session description or to
use an existing description as a template for a new one.
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
2. Select Setup-> and then Copy... to display the Copy Monitor Description
panel, and complete the following:
o Source file
o Target file.
3. Select OK to save your selections and return to the SPM/2 control window.
Note: The action bar Copy option copies only the monitor session description,
not the associated data in the .LOG file. To copy the entire .LOG
file, use the OS/2 COPY command.
ΓòÉΓòÉΓòÉ <hidden> Specifying a Source File ΓòÉΓòÉΓòÉ
To specify the file to be copied, either:
o Type the name of the file in the Source file: entry field. You may precede
the file name with the fully qualified path, or you may accept the path
displayed in the Drive: and Directory: boxes.
or
o Select a drive from the Drive: box. A list of available directories for
that drive is displayed in the Directory: list box. (To display
subdirectories, double-click on the highlighted directory item.) Select a
directory. A list of available source files for that directory is displayed
in the File: list box. Select the source file you want to copy.
ΓòÉΓòÉΓòÉ <hidden> Specifying a Target File ΓòÉΓòÉΓòÉ
To specify the target file, type the name of the file in the Target file: entry
field. You may precede the file name with the fully qualified path, or you may
accept the path displayed in the Drive: and Directory: boxes.
ΓòÉΓòÉΓòÉ 3.2. Recording Data: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
A monitor session must be specified before data is collected.
If you do not yet have a monitor session description, see the procedures for
Setting Up a Monitor Session Description.
CAUTION:
You must stop data collection properly before you turn off or reboot a machine
to avoid corrupting your monitor session (.LOG) file. Otherwise, when you
attempt to modify the monitor session (.LOG) file, start a graphing or
recording session, play back data on the SPM/2 Graph, or run a report, you will
receive a pop-up message warning that the monitor session (.LOG) file has been
corrupted.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Starting a recording session
o Stopping a recording session.
ΓòÉΓòÉΓòÉ 3.2.1. Starting a Recording Session: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
Note: The NETBIOS Listener, which starts the Data Collection Facility when
requested, must be started to use this function. Normally, the
NETBIOS Listener is started by the CONFIG.SYS file when you start
your system. However, if you have stopped the NETBIOS Listener, you
must restart it. (See the SPMNBL command for more information.)
2. Select Start -> and then Recording... to display the Start Recording
panel, and complete the Filename field.
Notes:
a. You can start more than one monitor session. However, a workstation
cannot be monitored by more than one monitor session at the same
time.
b. To start recording and graphing simultaneously, select Monitor,
Start ->, and Both.
3. Select OK to start recording and return to the SPM/2 control window.
Note: If one or more of the selected sessions already contains data in the
monitor session (.LOG) file from a previous recording session, the
Recording Options panel is displayed when you select OK.
ΓòÉΓòÉΓòÉ <hidden> Specifying Monitor Session File Names ΓòÉΓòÉΓòÉ
To specify which monitor session files to use, either:
o Type the name of a single monitor session (.LOG) file in the entry field and
press Enter. Entries in this field are reflected in the Selected: list box.
Repeat until all desired sessions are entered. You may precede the file
name with the fully qualified path, or you may accept the path displayed in
the Drive: and Directory: boxes.
or
o Select a drive from the Drive: drop-down list. A list of available
directories for that drive is displayed in the Directory: drop-down list.
(To display subdirectories, double-click on the highlighted directory item.)
Select a directory. A list of available monitor session (.LOG) files for
that directory is displayed in the Available: list box. Highlight entries
in the Available: list box. Select Add >> to copy the highlighted entries
to the Selected: list box.
Related information:
o Select all entries
o Remove an entry from the Selected: list box.
ΓòÉΓòÉΓòÉ 3.2.1.1. Specifying Recording Options: Procedure ΓòÉΓòÉΓòÉ
To specify whether recorded data is to be appended to or written over any
existing data in the monitor session (.LOG) file:
1. In the Recording Options panel, select either:
o Append
o Replace.
2. Select OK to start recording and return to the SPM/2 control window.
ΓòÉΓòÉΓòÉ <hidden> Append ΓòÉΓòÉΓòÉ
Select Append to append recorded data to any existing data in the monitor
session (.LOG) file. This option is the default.
ΓòÉΓòÉΓòÉ <hidden> Replace ΓòÉΓòÉΓòÉ
Select Replace to substitute new recorded data for any existing data in the
monitor session (.LOG) file.
ΓòÉΓòÉΓòÉ 3.2.2. Stopping a Recording Session: Procedure ΓòÉΓòÉΓòÉ
Once you start a recording session, data continues to be collected until you
stop the recording session. Closing the SPM/2 control window or SPM/2 folder
does not stop data collection. To stop a recording session:
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
2. Select Stop -> and then Recording... to display the Stop Recording panel.
Note: To stop recording and graphing simultaneously, select Monitor,
Stop ->, and Both.
3. Specify the monitor sessions to be stopped by highlighting entries in the
Available: list box. Then select Add >> to copy those choices to the
Selected: list box.
Note: The Available: list box displays a list of all the active monitor
session (.LOG) files.
4. Select OK to stop recording and return to the SPM/2 control window.
Related information:
o Remove an entry
o Select all entries
o Display full path.
ΓòÉΓòÉΓòÉ <hidden> Display Full Path ΓòÉΓòÉΓòÉ
Select Display full path to display the fully qualified path names of all
entries in the Available: and Selected: list boxes.
ΓòÉΓòÉΓòÉ 3.3. Displaying Data in a Graph: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The SPM/2 Graph provides a visual monitor of critical system resources: CPU,
disk, and memory. Data is summarized in graphical form and continuously
updated on the display.
Once a monitor session description has been created (see Setting Up a Monitor
Session Description,) a graphing session can be started.
CAUTION:
You must stop data collection properly before you turn off or reboot a machine
to avoid corrupting your monitor session (.LOG) file. Otherwise, when you
attempt to modify the monitor session (.LOG) file, start a graphing or
recording session, play back data on the SPM/2 Graph, or run a report, you will
receive a pop-up message warning that the monitor session (.LOG) file has been
corrupted.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Starting a graphing session
o Stopping a graphing session
o Graph options.
ΓòÉΓòÉΓòÉ 3.3.1. Starting a Graphing Session: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
Note: The NETBIOS Listener, which starts the Data Collection Facility when
requested, must be started to use this function. Normally, the
NETBIOS Listener is started by the CONFIG.SYS file when you start
your system. However, if you have stopped the NETBIOS Listener, you
must restart it. (See the SPMNBL command for more information.)
2. Select Start -> then Graphing -> to display the Start Graphing panel, and
complete the Filename field.
Notes:
a. You can start more than one monitor session. However, a workstation
cannot be monitored by more than one monitor session at the same
time.
b. To start recording and graphing simultaneously, select Monitor,
Start ->, and Both.
3. Select OK to start graphing and return to the SPM/2 control window.
ΓòÉΓòÉΓòÉ 3.3.2. Stopping a Graphing Session: Procedure ΓòÉΓòÉΓòÉ
Once you start a graphing session, data continues to be collected until you
stop the graphing session. Closing the SPM/2 control window, SPM/2 Graph, or
SPM/2 folder does not stop data collection. To stop a graphing session:
1. From the SPM/2 control window action bar, select Monitor to display the
Monitor pull-down.
2. Select Stop -> and then Graphing to display the Stop Graphing panel.
Note: To stop recording and graphing simultaneously, select Monitor,
Stop ->, and Both.
3. Specify the monitor sessions to be stopped by highlighting entries in the
Available: list box. Then select Add >> to copy those choices to the
Selected: list box.
Note: The Available: list box displays a list of all the active monitor
session (.LOG) files.
4. Select OK to stop graphing and return to the SPM/2 control window.
Note: All the individual resource graphs and the monitor session stop when
the SPM/2 Graph window is closed.
Related information:
o Remove an entry
o Select all entries
o Display full path.
ΓòÉΓòÉΓòÉ 3.3.3. Graph Options: Overview ΓòÉΓòÉΓòÉ
While the SPM/2 Graph is active, the following options are available:
o Opening individual resource graphs
o Closing individual resource graphs
o Viewing another workstation
o Freezing graphs (allows data collection to continue, but no new points are
plotted)
o Cascading or tiling individual resource graphs
o Changing data collection and display frequencies
o Resetting (synchronizing) the resource graphs
o Selecting one of two graph refresh modes
o Modifying graph colors
o Displaying exact usage percentages using the cross hair
o Displaying graph legends
o Playing back previously recorded data.
ΓòÉΓòÉΓòÉ 3.3.3.1. Opening a Graph: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Display from the action bar to display
the Display pull-down.
A check mark next to the appropriate Display menu item indicates an open
resource graph. Possible choices are CPU, Disk, and RAM. The default is
to open all three graphs.
2. Select the resource graph you want to open.
ΓòÉΓòÉΓòÉ 3.3.3.2. Closing a Graph: Procedure ΓòÉΓòÉΓòÉ
Click on the System Menu icon for the resource graph to be closed and select
Close.
ΓòÉΓòÉΓòÉ 3.3.3.3. Viewing Another Workstation: Procedure ΓòÉΓòÉΓòÉ
The status bar of the SPM/2 Graph displays the name of the active monitor
session (.LOG) file and the local or remote workstation currently displayed in
the resource graphs.
To view another workstation being monitored by the same monitor session:
1. In the SPM/2 Graph window, select from the function control bar to
display a list of workstations configured for the active monitor session.
Note: All configured workstations are displayed in the list, whether or
not they are active. If you select an inactive workstation to be
graphed, an empty graph is displayed.
2. Select the workstation you want to view.
3. Select OK.
ΓòÉΓòÉΓòÉ 3.3.3.4. Freezing Graphs: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Display from the action bar to display
the Display pull-down.
2. Select Freeze graphs. The resource graphs are frozen.
Note: When Freeze graphs is deselected, the first new point plotted
reflects the most recent time period.
ΓòÉΓòÉΓòÉ 3.3.3.5. Cascading or Tiling Graphs: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Window from the action bar to display
the Window pull-down.
2. Select one of the following:
o Cascade
o Tile horizontal
o Tile vertical.
ΓòÉΓòÉΓòÉ <hidden> Cascade ΓòÉΓòÉΓòÉ
Select Cascade to arrange the resource graphs in a stair-step fashion within
the SPM/2 Graph window.
ΓòÉΓòÉΓòÉ <hidden> Tile Horizontal ΓòÉΓòÉΓòÉ
Select Tile horizontal to arrange the resource graphs side-by-side within the
SPM/2 Graph window.
ΓòÉΓòÉΓòÉ <hidden> Tile Vertical ΓòÉΓòÉΓòÉ
Select Tile vertical to arrange the resource graphs one above the other within
the SPM/2 Graph window. This option is the default.
ΓòÉΓòÉΓòÉ 3.3.3.6. Changing Graphing Frequencies: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Options from the action bar to display
the Options pull-down.
2. Select Time periods to display the Time Periods dialog box.
3. Type the desired intervals in the following fields:
o Viewing period
o Vertical gridlines every
4. Select OK to implement the new interval values and return to the SPM/2
Graph window.
ΓòÉΓòÉΓòÉ <hidden> Viewing Period ΓòÉΓòÉΓòÉ
The viewing period specifies the amount of time represented in a resource
window. For example, 600 seconds implies that 10 minutes of data are
represented from the left to the right of the window. This value must be a
multiple of the collection frequency. The default is 500 seconds.
Note: The viewing period value divided by the collection frequency value must
be less than 250.
ΓòÉΓòÉΓòÉ <hidden> Vertical Grid Lines ΓòÉΓòÉΓòÉ
The vertical grid lines on the SPM/2 Graph are initially spaced at intervals 10
times the collection frequency. Specify a number between 1 and 64000 seconds
to space the grid lines at more or less frequent intervals.
ΓòÉΓòÉΓòÉ 3.3.3.7. Resetting (Synchronizing) Graphs: Procedure ΓòÉΓòÉΓòÉ
To reset all the resource data lines to the same point on the horizontal axis:
1. In the SPM/2 Graph window, select Display from the action bar to display
the Display pull-down.
2. Select Reset graphs.
ΓòÉΓòÉΓòÉ 3.3.3.8. Changing Graph Refresh Mode: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Options from the action bar to display
the Options pull-down.
2. Select Sliding graphs to change mode from sliding to shifting, or from
shifting to sliding. Sliding graphs allows you to toggle between the two
modes.
ΓòÉΓòÉΓòÉ <hidden> Sliding Graphs ΓòÉΓòÉΓòÉ
When the Sliding graphs option is:
Checked The resource data lines of the SPM/2 Graph slide left one point each
time a new point is added after the data line reaches the right side of
the window. (The point at the far left disappears, and a new point is
added at the far right of the line.)
Not checked The resource data lines of the SPM/2 Graph shift left 1/3 the
width of the window when the data line reaches the right side of the
window. This mode, which is the default, is less CPU-intensive.
ΓòÉΓòÉΓòÉ 3.3.3.9. Modifying Graph Colors: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Options from the action bar to get the
Options pull-down.
2. Select Set colors to display the Set Colors dialog box.
3. Select the graph to be modified. The Colors Preview box displays the
current color selections for that graph.
4. Select an item to modify (for example, background color or grid color).
5. Select Next color or Previous color to move forward or backward to the
desired color. The Colors Preview box displays the color selection you
have made.
6. Repeat steps 3, 4, and 5, as necessary, for the items to be modified in
each resource graph.
7. Select Set to implement the changes and to return to the SPM/2 Graph
window.
The legend at the right of each individual graph lists the resources being
graphed. Each resource name is the same color as the resource data line to
which it corresponds.
ΓòÉΓòÉΓòÉ 3.3.3.10. Using the Cross Hair: Procedure ΓòÉΓòÉΓòÉ
1. Move the mouse cursor into a resource graph window. The cursor changes
from an arrow to a cross hair.
2. Position the cross hair anywhere in the graph window.
3. Click the left mouse button. The following information is displayed for
that point:
t Actual time stamp in minutes and seconds.
% Approximate percentage of vertical axis value.
Note: If the graph window is sized too small, the t and % boxes disappear.
ΓòÉΓòÉΓòÉ 3.3.3.11. Displaying Graph Legends: Procedure ΓòÉΓòÉΓòÉ
1. In the SPM/2 Graph window, select Options from the action bar to get the
Options pull-down.
2. Select Legend to display the legend at the right side of each resource
graph.
When Legend is:
o Checked - resource graph legends are displayed.
o Not checked - resource graph legends are not displayed.
ΓòÉΓòÉΓòÉ 3.3.3.12. Playing Back Previously Recorded Data: Procedure ΓòÉΓòÉΓòÉ
To replay previously recorded data for a currently active monitor session:
1. In the SPM/2 Graph window, select from the function control bar to clear
the real-time resource graphs and display the playback resource graphs.
Note: Data collection continues while the graphs are in playback mode.
2. Use the following buttons to control playback graph functions:
Play.
Fast forward.
Pause. (Select the Play button to restart playback at the point
where it stopped.)
Reset the graph to the beginning of the monitor session. (Select the
Play button to restart playback at the beginning of the data.)
Displays the Go To dialog box, which allows you to specify a
starting date and time for the period of data you want to review.
To return to real-time graphing, select .
Notes:
1. Using the Presentation Manager interface, you can playback previously
recorded data only for an active monitor session. To playback data
from an inactive monitor session (.LOG) file, use the SPMMON /P command
at an OS/2 command prompt.
2. Graph fonts may be changed using the OS/2 system font editor.
ΓòÉΓòÉΓòÉ <hidden> Go To ΓòÉΓòÉΓòÉ
The Go To dialog box displays the periods that the monitor session was active.
Specify a starting date and time for the period of data you want to review.
Either type this information in the respective fields or use the spin buttons
to increase or decrease each field value. The starting time must fall within
the range of time during which the specified .LOG file was active.
ΓòÉΓòÉΓòÉ 4. Creating Performance Reports: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Many different types of report output can be obtained from collected data. You
can specify that data be pulled from one or from many monitor session (.LOG)
files with the same specified resource and recording frequency preferences. A
report can contain all or just a portion of the collected data. Reports can be
generated from a .LOG file while the monitor session is still active or after
it has been stopped.
Your customized report description (.RDF) file selectively defines which
monitor session (.LOG) files, resources, and workstations are included in the
report, the format of the data, and the time period for the data you want to
see. Several detail levels are also available, depending on the type of data
collected during recording.
To generate a report, you can create a new report description, run a report
from a description created previously, or use the sample report description
supplied with SPM/2.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Setting up a report description
o Running a report
o Printing a report.
ΓòÉΓòÉΓòÉ 4.1. Setting Up a Report Description: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Using SPM/2, you can create customized report descriptions and receive reports
on only the data you want. Specify the following aspects of the report when
creating or changing a report description:
1. Log files from which to get the data
2. Report format
3. Level of detail at which data is summarized
4. Resources to be included
5. Workstations to be included
6. Reporting period
7. Frequency of summaries.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Creating a performance report description
o Changing a performance report description
o Copying a performance report description.
ΓòÉΓòÉΓòÉ 4.1.1. Creating a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to define a new report description.
1. From the SPM/2 control window action bar, select Report to display the
Report pull-down.
2. Select Setup-> and then New... to display the Report Description window,
and complete the following:
o Title
o Monitor sessions to be included in the report.
Note: If multiple files are selected, every .LOG file must have the
same specified resources and collection frequency.
3. Select Preferences from the Report Description window action bar to define
the following:
a. Format
b. Summarization level
Note: Summarization level can be specified only for the summary report.
c. Resources
Note: Resources can be specified only for the summary and dump reports.
d. Workstations
e. Time periods.
4. Select File from the action bar, and then select Save as... to display and
complete the Save As panel.
5. Select OK to return to the SPM/2 control window.
Related information:
Restore report defaults.
ΓòÉΓòÉΓòÉ <hidden> Report Title ΓòÉΓòÉΓòÉ
Type a title, 80-characters maximum, for the new report in the Title entry
field.
ΓòÉΓòÉΓòÉ 4.1.1.1. Specifying Report Format: Procedure ΓòÉΓòÉΓòÉ
1. From the Report Description window action bar, select Preferences and then
Format-> to display a cascaded menu.
2. Select from the following:
o Tabular...
o Summary
o Dump
o Country options...
Note: The first three menu items are mutually exclusive. A check mark
appears beside the selected menu item. Country options... is a
separately selectable item.
ΓòÉΓòÉΓòÉ <hidden> Tabular Report Format ΓòÉΓòÉΓòÉ
Select Tabular... to generate a tabular summary file with the extension .TAB.
The tabular report provides a high-level summary of data similar to that of the
SPM/2 Graph. This option is the default format. When you select this option,
the Report Tabular Format panel is displayed. Complete the following:
o For column heading, specify either:
- Workstation
- Resource data.
o For resource data representation, specify either:
- Unit
- Percentage.
Related information:
Spreadsheet-compatible reports
ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
Causes the report to be formatted with the workstation name as the column
heading.
ΓòÉΓòÉΓòÉ <hidden> Resource Data ΓòÉΓòÉΓòÉ
Causes the report to be formatted with the resource data as the column heading.
This option is the default.
ΓòÉΓòÉΓòÉ <hidden> Unit ΓòÉΓòÉΓòÉ
Causes the report to be formatted with resource data represented by unit value
(for example, bytes or number of occurrences).
ΓòÉΓòÉΓòÉ <hidden> Percentage ΓòÉΓòÉΓòÉ
Causes the report to be formatted with resource data represented by a
percentage. This option is the default.
ΓòÉΓòÉΓòÉ <hidden> Spreadsheet Compatible Reports ΓòÉΓòÉΓòÉ
Select the Spreadsheet compatible report check box to create a report format
that can be imported to various spreadsheet programs. In this format, text
strings are delimited with quotation marks. When this box is selected, the
name of the file generated ends with the extension .DEL.
ΓòÉΓòÉΓòÉ <hidden> Summary Format ΓòÉΓòÉΓòÉ
Select Summary to generate a summary file with the extension .SUM. A summary
report can provide information about the following system resources: CPU,
memory, files, file system (FAT and HPFS), physical disk, printers, and
communication ports. See Specifying Summarization Level to specify the level
of detail for this report. This option is the most detailed.
ΓòÉΓòÉΓòÉ <hidden> Dump Format ΓòÉΓòÉΓòÉ
Select Dump to generate a dump file with the extension .DMP. This report
format displays values for the lowest level performance counters and timers as
sampled at the recording frequency The summary interval is always the same as
the recording frequency.
ΓòÉΓòÉΓòÉ <hidden> Country Options ΓòÉΓòÉΓòÉ
Select Country options... to display the Report Country Options panel, where
you can specify special characters to be used in the report:
List separator Specify a character to be used for separating lists in the
processed report. The default character is a comma.
Decimal point Specify a character to be used as a decimal point in the
processed report. The default character is a period.
Select OK to save your selections and return to the Report Description window.
ΓòÉΓòÉΓòÉ 4.1.1.2. Specifying Summarization Level: Procedure ΓòÉΓòÉΓòÉ
When you create a summary report, data is summarized at the workstation level
unless you select another summarization level. To do so:
1. From the Report Description window action bar, select Preferences and then
Summarization level-> to display a cascaded menu.
2. Select one of the following:
o Workstation
o Application...
o Process...
o Thread...
Notes:
a. The menu items are mutually exclusive. A check mark appears beside
the selected menu item.
b. If application/process/thread level data was not collected, data can
be summarized at the workstation level only.
ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
The data is summarized as total activity for the each workstation. This option
is the default.
ΓòÉΓòÉΓòÉ <hidden> Application ΓòÉΓòÉΓòÉ
The data for the activity is summarized both by workstation and by individual
application running at that workstation. When you select this option, the
Report Application Definition panel is displayed.
ΓòÉΓòÉΓòÉ <hidden> Specifying Report Application Definitions: Procedure ΓòÉΓòÉΓòÉ
1. Highlight entries in the Available: list box, and then select Add >> to
copy those choices to the Selected: list box.
Note: Any processes that are not included in an application definition are
considered to be unassigned. You must select the Report unassigned
processes check box to see these processes in a report.
2. Select OK to save your selections and return to the Report Description
window.
Related information:
o Application concepts
o Remove an entry
o Select all entries
o Define new application
o Change an application definition
o Delete an application definition
ΓòÉΓòÉΓòÉ <hidden> Define New Application ΓòÉΓòÉΓòÉ
1. In the Report Application Definition panel, select New... to display the
Define New Application panel, and complete the following:
o Application name
o Program (.EXE) files to be included in the definition.
2. Select OK to save your entries and return to the Report Application
Definition panel.
Notes:
1. You cannot select OK until you have entered an application name.
2. The application you defined will appear in the Available: list box in
Report Application Definition panel.
ΓòÉΓòÉΓòÉ <hidden> Specifying an Application Name ΓòÉΓòÉΓòÉ
Type a name for the new application in the entry field.
ΓòÉΓòÉΓòÉ <hidden> Program (.EXE) Names ΓòÉΓòÉΓòÉ
To specify the names of program (.EXE) files to be included in an application,
either:
o Type a single program file name in the Program (.EXE) name: entry field and
press Enter. Entries in this field are reflected in the Selected: list box.
Repeat until all desired program names are entered for the highlighted
application.
or
o Select a drive from the Drive: drop-down list. A list of available
directories for that drive is displayed in the Directory: drop-down list.
(To display subdirectories, double-click on the highlighted directory item.)
Select a directory. A list of available program (.EXE) files for that
directory is displayed in the Available: list box. Highlight entries in the
Available: list box. Select Add >> to copy the highlighted entries to the
Selected: list box.
Note: There is nothing that prevents you from defining two different
applications that reference the same process (.EXE file). SPM/2 will
provide the correct amount of time for each application definition.
However, note that the percentages will not add up to 100%.
As an example, suppose the following application definitions exist:
Appl_ABC Appl_XYZ
-------- --------
a.exe c.exe
b.exe d.exe
c.exe e.exe
The numbers for the amount of CPU time used for each application will
be correct. However, since process "c.exe" is counted twice, the
percentages of Appl_ABC + Appl_XYZ could be > 100%.
Related information:
o Select all entries
o Remove an entry from the Selected: list box.
ΓòÉΓòÉΓòÉ <hidden> Change an Application Definition ΓòÉΓòÉΓòÉ
1. In the Report Application Definition panel, highlight the application
definition you want to change.
2. Select Change... to display the Change Application Definition panel where
you can modify the list of Program (.EXE) files to be included in the
definition.
3. Select OK to save your entries and return to the Report Application
Definition panel.
ΓòÉΓòÉΓòÉ <hidden> Deleting an Application Definition ΓòÉΓòÉΓòÉ
1. In the Report Application Definition panel, highlight the application
definition you want to delete.
2. Select Delete.
Note: Program (.EXE) files formerly assigned to the deleted application
definition will now be considered unassigned. To see these processes
in a report, you must select the Report unassigned processes check box.
ΓòÉΓòÉΓòÉ <hidden> Application Concepts ΓòÉΓòÉΓòÉ
The OS/2 system has processes, which are .EXE files. Processes contain
threads. An application consists of one or more processes that do useful work.
SPM/2 provides some applications predefined, to serve as an example. These
application examples include such OS/2 applications as:
o Extended Services 1.0 - Communications Manager
o Extended Services 1.0 - Database Manager
o LAN Server 2.0 Entry
o NTS/2 2.01
o SPM/2 2.0.
Note: These examples do not represent every possible configuration or
installation of these applications. For example, Extended Services
Communications Manager has many different configurations (such as 3270
Emulation, SNA, Asynchronous Communications, X.25, etc.). The example
provided for Communications Manager only describes a system configured
to support two 3270 emulation sessions over a token ring network, and
OS/2 LAN Server over token ring.
However, you may want to obtain reports about applications not previously
defined. Through the Define New Application panel, you can specify what
processes you want grouped together in an application and assign that
application a name.
The process (.EXE) files of application are generally all found in the same
subdirectory. Therefore, if you are not sure what .EXE files to include in an
application definition, you can try looking at a directory listing for that
application's subdirectory.
ΓòÉΓòÉΓòÉ <hidden> Report Unassigned Processes ΓòÉΓòÉΓòÉ
When you select an application in the Report Application Definition panel, the
processes defined as constituting the application are grouped under the
application's heading in the report.
Some processes may not be assigned to an application. To have SPM/2 report on
performance data for unassigned processes, select the Report unassigned
processes check box.
Note: Although, a process may be defined as belonging to an application, if
the application has not been selected in the Report Application
Definition panel, SPM/2 treats it as an unassigned process, and will
identify it individually in the report rather than as part of its
application.
ΓòÉΓòÉΓòÉ <hidden> Process ΓòÉΓòÉΓòÉ
In addition to workstation totals and application breakdown, activity is also
listed by individual process. When you select this option the Report
Application Definition panel is displayed.
ΓòÉΓòÉΓòÉ <hidden> Thread ΓòÉΓòÉΓòÉ
Activity is summarized at the thread level and at every higher level (that is,
workstation, application, and process). When you select this option, the Report
Application Definition panel is displayed.
CAUTION:
When you select Thread, the report file can become very large.
ΓòÉΓòÉΓòÉ 4.1.1.3. Specifying Resources for the Report: Procedure ΓòÉΓòÉΓòÉ
To specify resources to be included in the summary or dump reports:
1. From the Report Description window action bar, select Preferences and then
Resources... to display the Report Resources panel.
2. Highlight entries in the Available: list box, and then select Add >> to
copy those choices to the Selected: list box.
CAUTION:
When you select Files, the report file can become very large.
Notes:
a. The dump report does not contain data about files even when Files is
selected.
b. The Available: list box displays all the resources configured in the
monitor session (.LOG) files selected for the report.
c. Before making a selection, you may want to expand the entries with
ellipses (...) in the Available: list box by checking the Expand
available resources box. Selecting an unexpanded entry causes all
instances of that resource to be selected. For example, selecting
DISK actually selects DISK 01 through DISK 24.
d. The dump report does not include metrics for threads or files, even
when those resources are selected for inclusion in the report.
3. Select Verbose (include nonactive resources) to display all data,
including data for nonactive applications, processes, threads, or files.
In other words, if the activity for any application, process, thread, or
file is zero (no activity), select Verbose to include this information in
the summary report.
Note: If you do not select Verbose, only data from applications,
processes, threads, or files that contain activity is included in
the summary report.
4. Select OK to save your selections and return to the Report Description
window.
Related information:
o Remove an entry
o Select all entries.
ΓòÉΓòÉΓòÉ 4.1.1.4. Specifying Workstations: Procedure ΓòÉΓòÉΓòÉ
To specify workstations to be included in the report:
1. From the Report Description window action bar, select Preferences and then
Workstations... to display the Report Workstations panel.
2. Highlight entries in the Available: list box. Select Add >> to copy the
highlighted entries to the Selected: list box.
Note: The Available: list box displays all the workstations configured in
the monitor session (.LOG) files selected for the report.
3. Select OK to save your selections and return to the Report Description
window.
Note: If you want to generate a report about a local workstation on which
NETBIOS is installed, specify the computer name for the workstation,
rather than specifying LOCAL. (The computer name for the local
workstation can be found in the COMPUTERNAME= statement in the
IBMLAN.INI file.)
Related information:
o Select all entries
o Remove an entry from the Selected: list box.
ΓòÉΓòÉΓòÉ 4.1.1.5. Specifying Report Time Periods: Procedure ΓòÉΓòÉΓòÉ
To specify report time periods:
1. From the Report Description window action bar, select Preferences and then
Time Periods... to display the Report Time Periods panel.
2. Specify the:
o Date and time
o Summary interval.
3. Select OK to save your selections and return to the Report Description
window.
Note: When creating your .RDF file, SPM/2 initializes the time period values
so that all the performance data in the .LOG file is included in the
report and is reported in one summary interval. However, SPM/2 does
this in two different ways, depending on whether there is already data
in the .LOG file at the time the .RDF file is created.
o If you create the .RDF file before collecting any data in your .LOG file,
the start and stop date-times and the summary interval time are set to
all zeros, meaning that, when a report is run, the entire contents of the
.LOG file will be used.
o If the .RDF file is created after the desired .LOG file contains data,
SPM/2 picks up the actual start and stop times from the .LOG file and
stores these values in the .RDF file as the start and stop times for
generating the report. SPM/2 also sets the summary interval to the total
time span of the data in the .LOG file, unless that data is greater than
24 hours. In this case, the summary interval will be set to 24 hours (1
day). If, at a later time, more data is recorded to this .LOG file, the
report is still only generated for the times that were originally stored
in the .RDF file.
Hence, if you want to specify that the entire .LOG file always be used
when generating a report, and you create the .RDF file after logging data
to the specified .LOG file, you must manually set the start, stop, and
summary interval values in the Report Time Periods panel to zeros.
ΓòÉΓòÉΓòÉ <hidden> Report Times ΓòÉΓòÉΓòÉ
The Collection time periods in selected logs box displays the active periods
for the monitor session (.LOG) files specified in the Report Description
window. The report time periods must fall within the range of time during
which all the specified .LOG files were active.
In the Time periods to be included in the report fields, specify a start
date-time and a stop date-time between which to analyze the data. Either type
this information in the respective fields or use the spin buttons.
Time periods are specified in a year, month, day, hour, minute, second
(YY MMDD HH MM SS) format. The defaults are the earliest and latest date-times
when data was recorded in all the monitor session (.LOG) files. If one of the
monitor sessions is active, the default for the stop time is the time of the
most current record.
For example, although data recording was started on February 10, 1992, at
10:05:22 and stopped on February 15, 1992, at 22:42:25, you may only want to
examine the data for a short period of time on February 14 when you had a
performance problem. So, in the Start field, you would enter 92 02 14
16 15 00, and in the Stop field, 92 02 14 17 45 00.
To specify that the report always include all the data in the .LOG file
(independent of the specific time values in the .LOG file), set the start and
stop date-time values to all zeros.
ΓòÉΓòÉΓòÉ <hidden> Summary Interval ΓòÉΓòÉΓòÉ
Specify the interval at which data should be summarized. Summary intervals are
specified in a day, hour, minute, second (DDD HH MM SS) format.
For the summary and tabular reports, the default is to process the report as a
single recording interval (unless the data spans 24 hours, in which case the
default interval is 1 day). To specify that the report always be summarized as
a single interval, set the summary interval value to all zeros.
For the dump report, the summary interval is always the same as the recording
frequency, so that every sample is shown.
For example, samples of the data may have been recorded every 10 seconds, but
you only need a summary of the data every 60 seconds. In this case, you would
enter 000 00 01 00. Either type this information in the respective fields or
use the spin buttons.
Note: When you select OK from the Report Time Periods panel, you may receive
a pop-up message warning that the "selected summarization interval
could produce distorted results." This should only be of concern when
your report contains data from multiple workstations. In this case,
the recommended value for the summary interval is at least 20 times the
largest collection frequency. The reason for this is that the time
values across the systems being included in the report may be slightly
"out of synch" with each other, due to variances in the clocks across
the systems, and/or variances in the time it takes to return
performance data to the monitoring system. By summarizing 20 or more
samples, some of this variance can be "cancelled out."
ΓòÉΓòÉΓòÉ <hidden> Restoring Report Defaults ΓòÉΓòÉΓòÉ
To restore defaults instead of saving new selections, select Preferences and
then Restore defaults.
If you are creating a new file, the Restore defaults selection restores the
entire Report Description window to the state in which it was opened.
If you are modifying an existing file, the Restore defaults selection restores
the preferences that were specified in the report description (.RDF) file at
the time it was accessed. However, any monitor session (.LOG) files that you
have selected since opening the window remain in the Selected: list box.
ΓòÉΓòÉΓòÉ 4.1.2. Changing a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to check the parameters of an existing report description or
change the description.
1. From the SPM/2 control window action bar, select Report to display the
Report pull-down.
2. Select Setup-> and then Open... to display the Open Report Description
panel, and complete the Filename field.
3. Select OK to display the Report Description window and modify the
following:
o Title
o Monitor sessions to be included in the report.
4. Select Preferences from the Report Description window action bar to define
the following:
o Format
o Summarization level
Note: Summarization level can be specified only for the summary report.
o Resources
Note: Resources can be specified only for the summary and dump reports.
o Workstations
o Time periods.
5. Select File from the action bar, and then select Save to overwrite the
existing .RDF file and save the new report description file under the
existing fully qualified file name.
6. Select OK to return to the SPM/2 control window.
Related information:
Restore report defaults.
ΓòÉΓòÉΓòÉ 4.1.3. Copying a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
Use this option to make a backup copy of a report description or to use an
existing description as a template for a new one.
1. From the SPM/2 control window action bar, select Report to display the
Report pull-down.
2. Select Setup-> and then Copy... to display the Copy Report Description
panel, and complete the following:
o Source file
o Target file.
3. Select OK to save your selections and return to the SPM/2 control window.
ΓòÉΓòÉΓòÉ 4.2. Running a Report: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select Report to display the
Report pull-down.
2. Select Run... to display the Run Report panel, and complete the Filename
field.
Warning: Report files (.TAB, .SUM, .DMP, and .DEL) always overwrite an
existing file of the same name. No confirmation message is displayed.
3. Select OK to start report processing.
Notes:
1. A pop-up panel displays a message that the report is running. If you
want to stop report generation before it is complete, select Stop.
2. The same pop-up panel tells you when report generation is completed
successfully. Select Done to close the pop-up panel. (This button
cannot be selected until report generation is complete.)
ΓòÉΓòÉΓòÉ 4.3. Printing a Report: Procedure ΓòÉΓòÉΓòÉ
1. From the SPM/2 control window action bar, select Report to display the
Report pull-down.
2. Select Print... to display the Print Report panel, and complete the
following:
o Filename
o Type of file
o Output Port.
3. Select OK to start printing the report and return to the SPM/2 control
window.
ΓòÉΓòÉΓòÉ <hidden> Specifying a File Type ΓòÉΓòÉΓòÉ
To specify the file type, select the appropriate file extension from the Type
of file: drop-down list:
.SUM Summary report file
.TAB Tabular report file
.DMP Dump report file.
ΓòÉΓòÉΓòÉ <hidden> Specifying an Output Port ΓòÉΓòÉΓòÉ
Select a printer from the Output Port: drop-down list.
ΓòÉΓòÉΓòÉ 5. Using the Data: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
To aid you in using the data collected by SPM/2, this section includes an
overview of performance concepts, a performance analysis method, and
discussions of graph interpretation and report output.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Performance concepts
o Performance analysis
o Interpreting graphs
o Report output.
ΓòÉΓòÉΓòÉ 5.1. Performance Concepts ΓòÉΓòÉΓòÉ
System performance can be described by throughput, which should be measured and
evaluated from the perspective of the originator of the request (that is, at
the workstation where the end user or application is located), and response
times. The goal is to maximize throughput while still achieving acceptable
response times.
o Throughput formula
o Plotting throughput and response time.
ΓòÉΓòÉΓòÉ 5.1.1. Throughput Formula ΓòÉΓòÉΓòÉ
The following formula is used to compute system throughput. It is generally
expressed in number of transactions per second.
total_transactions_during_run
throughput_rate = -----------------------------
(end_time - begin_time)
This measure is useful for evaluating the workload capacity of a system.
ΓòÉΓòÉΓòÉ 5.1.2. Plotting Throughput and Response Time ΓòÉΓòÉΓòÉ
The system's overall throughput versus response time ratio can be demonstrated
by plotting the throughput and response times for different numbers of active
end users with requests arriving at different rates (due to user "think time").
This is useful in choosing system hardware, planning future growth, and making
application design choices.
A plot of throughput or a plot of response time over a wide range of workloads
(or number of users) will typically have three phases:
o Underloading
o Optimum loading
o Overloading.
ΓòÉΓòÉΓòÉ <hidden> Typical Throughput Curve ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Typical Response Time Curve ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Underloading ΓòÉΓòÉΓòÉ
Underloading results when system capacity exceeds the amount of work. As work
is added (more workstations or transaction requests), the throughput rate will
continue to climb. In this phase, system response time tends to remain flat.
ΓòÉΓòÉΓòÉ <hidden> Optimum Loading ΓòÉΓòÉΓòÉ
During optimum loading, the throughput rate remains nominally flat as more work
is added. The optimum loading portion of the throughput curve is typically
very wide. In this phase, system response time tends to increase linearly.
ΓòÉΓòÉΓòÉ <hidden> Overloading ΓòÉΓòÉΓòÉ
Overloading results when the system has more work to do than can be handled by
available resources. Typically, one resource is fully consumed first, thereby
limiting system throughput even though performance at other points in the
system remains normal. This limiting resource is called a bottleneck.
In this phase, system response time usually increases exponentially. Throughput
may stay flat or fall sharply. For example, throughput falls when too many
applications are running simultaneously and the sum of their working sets
exceeds the available RAM. As a result, the system continually swaps pages in
and out of memory.
However, in some cases, the response time of an overloaded system may not
increase exponentially. For example, in a communications environment, frame
rejects or queue overruns may be the only symptom. Instead of an exponential
increase in response time, you may see the throughput rate rise and fall like a
wave.
ΓòÉΓòÉΓòÉ 5.2. Performance Analysis ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
There are many variables to consider in determining how to improve the response
time and throughput of a system. Because of this, performance tuning can be a
slow and tedious task. The answer to many performance-related questions is
often, "It depends."
To effectively tune a system, a methodical approach is needed. When changes to
the system are made with no particular rhyme or reason, the cross-effects of
multiple, simultaneous changes may make it difficult to determine the
individual effect each change has on the system.
Even though tuning can be a slow process, much of it is common sense, involving
the major steps in the topic list.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select topics in order:
1. Preanalysis checklist
2. Problem definition
3. Hypothesizing solutions
4. Designing tests
5. Testing solutions
6. Analyzing results.
ΓòÉΓòÉΓòÉ 5.2.1. Preanalysis Checklist ΓòÉΓòÉΓòÉ
Before starting to diagnose a performance problem, you should check the
following things that can affect performance:
o Active trace programs
o Hardware setup.
ΓòÉΓòÉΓòÉ <hidden> Active Trace Programs ΓòÉΓòÉΓòÉ
Trace programs can have a significant impact on performance. Be sure that all
trace programs have been disabled unless you explicitly want them.
ΓòÉΓòÉΓòÉ <hidden> Hardware Setup ΓòÉΓòÉΓòÉ
Use your OS/2 Reference Diskette to ensure that all adapters are properly
installed and configured, especially memory and communications adapters.
ΓòÉΓòÉΓòÉ 5.2.2. Problem Definition ΓòÉΓòÉΓòÉ
Defining the problem means more than saying, "The system is slow." It means
getting specific about the symptoms, understanding system interactions, and
determining acceptable performance:
o Identify the symptoms
o Consider the environment
o Define a goal.
ΓòÉΓòÉΓòÉ <hidden> Identify the Symptoms ΓòÉΓòÉΓòÉ
Answers to the following questions can give a more specific picture of a
performance problem:
o What activity seems slow? For example, the problem may happen when using a
particular application, disk access, or combination of components.
o How slow is it? How long does the activity actually take?
o What performance did you expect or do you believe is reasonable?
Examples of problems
ΓòÉΓòÉΓòÉ <hidden> Examples of Problems ΓòÉΓòÉΓòÉ
The following are examples of problems you may encounter:
o When the user hot-keys from a spreadsheet program, it takes 10 seconds to
bring up the OS/2 Task List. Desired performance time is 1 or 2 seconds.
o When 10 more users are added to a LAN, and all users on the LAN are running
the "end of day report," 5 or more systems cannot complete the report due to
time outs at the server. Desired performance is that all users be able to
complete their reports.
o Database report XYZ takes 15 minutes to run. Desired performance time is 3
minutes.
o SPM/2 indicates that CPU utilization is nearing 100% for extended periods of
time.
ΓòÉΓòÉΓòÉ <hidden> Consider the Environment ΓòÉΓòÉΓòÉ
Consider what aspects of the system environment could affect the performance of
the problem component. Possibilities include any one or a combination of the
following:
o Stand-alone or LAN environment
o Communication link
o Hardware configuration (for example, memory, CPU, disk space, or
coprocessor)
o Operating system configuration
o Application configuration
o Application set.
ΓòÉΓòÉΓòÉ <hidden> Define a Goal ΓòÉΓòÉΓòÉ
Define a goal . . . be realistic. Decide what improvement you would like to
see and how you will know when you see it. This will probably be an iterative
process. Setting your desired goal may be very easy. Whether this goal is
realistic will become apparent over time, as you learn more about how your
system and application work and locate the bottlenecks.
ΓòÉΓòÉΓòÉ 5.2.3. Hypothesizing Solutions ΓòÉΓòÉΓòÉ
Once you have identified a problem and the environmental factors that affect
it, you can narrow down possible causes and solutions. This involves
identifying possible bottlenecks, verifying whether they are indeed
bottlenecks, and devising possible solutions to alleviate them.
Always ensure that the correct bottleneck is identified to avoid ineffective
use of technical resources and unnecessary expense. Be aware that once a
bottleneck is identified and resources are applied to relieve it, another
bottleneck may suddenly surface. This may be caused by several things in your
system running near capacity.
Select one:
o Identifying possible bottlenecks
o Identifying possible solutions.
ΓòÉΓòÉΓòÉ 5.2.3.1. Identifying Bottlenecks ΓòÉΓòÉΓòÉ
Bottlenecks occur at points in the system where requests are arriving faster
than they can be handled (as with I/O operations), or where resources (such as
buffers) are insufficient to hold adequate amounts of data.
Finding a bottleneck is essentially a step-by-step process of narrowing down
the causes of the problem:
1. Identify the device or service.
2. Identify the resource that is affected.
3. Consider what is happening behind the scenes when the function is
performing poorly.
4. Identify which parts of the process are accessing the problem resource.
ΓòÉΓòÉΓòÉ <hidden> Identify the Device or Service ΓòÉΓòÉΓòÉ
In a network environment, try to determine whether the bottleneck is occurring
on the requester or the server. If neither of these seems to have a problem,
check the network, including cabling and all connectivity devices.
ΓòÉΓòÉΓòÉ <hidden> Identify the Resource ΓòÉΓòÉΓòÉ
Which monitor indicates resource overuse: CPU, disk, or RAM? Use the SPM/2
functions to examine which of these environments is suffering poor performance.
ΓòÉΓòÉΓòÉ <hidden> Identify Resource - CPU ΓòÉΓòÉΓòÉ
Use the recording and reporting functions to determine the CPU utilization for
each individual process.
ΓòÉΓòÉΓòÉ <hidden> Identify Resource - Disk ΓòÉΓòÉΓòÉ
Use the recording and reporting functions to collect disk operation
information, summarized or detailed by activity. The Directory Analyzer and
THESEUS2 can also be used to complete the picture of disk usage.
ΓòÉΓòÉΓòÉ <hidden> Identify Resource - RAM ΓòÉΓòÉΓòÉ
Use the recording and reporting functions to determine an application's RAM
usage and gather details about paging activity. Use THESEUS2 to calculate the
total RAM required by a particular application set.
ΓòÉΓòÉΓòÉ <hidden> Behind the Scenes ΓòÉΓòÉΓòÉ
Consider all the steps undertaken by the poorly performing function. For
example, a server downloading an application to a requester may appear to be a
single action. However, that operation can be broken down into the following
component actions:
o Looks up application definition to find alias name.
o Checks access control file for that alias to find permissions.
o Looks up user ID in User Profile Management (UPM) to verify access.
o Sends application code over network to requester.
ΓòÉΓòÉΓòÉ <hidden> Identify Parts of Process Accessing Problem Resource ΓòÉΓòÉΓòÉ
For example, if you suspect that excessive disk usage is causing the
bottleneck, examine those components that access the disk.
When all the components of a particular function are taken into account, it may
become obvious why a resource is overused. Combining knowledge about your
application with data received from SPM/2 should point you in the right
direction.
ΓòÉΓòÉΓòÉ 5.2.3.2. Identifying Possible Solutions ΓòÉΓòÉΓòÉ
Once you have narrowed down the probable causes of a bottleneck, think of ways
to relieve it, by either increasing capacity or off-loading some work. Select
one of the following for possible solutions:
o CPU and RAM
o DISK.
ΓòÉΓòÉΓòÉ <hidden> CPU and RAM ΓòÉΓòÉΓòÉ
o Faster hardware
o Additional memory
o Parameter tuning
o Removing unnecessary applications from application set
o Running OS/2 LAN Requester applications remotely at server (although this
would increase server CPU utilization)
o Application redesign
o Redistribution of RAM among LAN workstations (for example, when 2
workstations have the same workload requirements, but one has 12MB and the
other 4MB).
ΓòÉΓòÉΓòÉ <hidden> Disk ΓòÉΓòÉΓòÉ
o Faster, larger, or additional disk
o Disk planning (partitioning)
o Disk maintenance (defragmentation)
o Use of host DASD (consider impact on host DASD performance)
o Use of additional storage media (for example, optical disk or tape)
o Increasing the amount of physical RAM (reduce paging)
o Redistribution of workload among servers.
ΓòÉΓòÉΓòÉ 5.2.4. Designing Tests ΓòÉΓòÉΓòÉ
Given the possible causes and solutions, design ways to test them. Prioritize
your ideas from most likely to have an impact with minimal effort to least
likely to have an impact with lots of effort. Start with a single hypothesis
to prove or disprove; do not try to examine several factors in one test.
Good tests should yield results that act as benchmarks, which are standards by
which something can be measured or judged. Select from the following topics for
more information about benchmark tests:
o Good benchmarking characteristics
o Simple benchmarking suggestions
o The value of sensitivity studies.
ΓòÉΓòÉΓòÉ 5.2.4.1. Benchmarking Characteristics ΓòÉΓòÉΓòÉ
Characteristics of good benchmark tests include:
o Each test is repeatable.
o Each iteration of a test is started in the same system state.
o No functions or applications are active in the system except the ones being
measured (unless the scenario includes other system activity). Do not have
applications started and sitting idle, because they will use up RAM
resources, thereby increasing the likelihood of paging.
o The hardware and software used for benchmarking matches your production
environment.
More
ΓòÉΓòÉΓòÉ <hidden> Benchmarking Characteristics: More ΓòÉΓòÉΓòÉ
Benchmarking involves running tests that use a representative set of programs
and data designed to evaluate the performance of computer hardware and software
in a given configuration. When you are trying to identify bottlenecks in a
system, benchmarking is essential for measuring progress.
Begin benchmarking by running in a normal environment. As a performance
problem is narrowed down, develop specialized test cases to limit the scope of
the performance factor being tested and observed. Benchmarking does not have
to be complex. That is, the specialized test cases need not emulate an entire
application to obtain valuable information. Think in terms of simple
measurements, and increase the complexity only when warranted.
ΓòÉΓòÉΓòÉ 5.2.4.2. Benchmarking Suggestions ΓòÉΓòÉΓòÉ
Following are suggestions for simple benchmarking:
o Select individual functions.
o Use synthesized data.
o Take measurements before and after changes.
o For distributed environments:
- First, measure a one-requester run
- Simulate many users from a single requester.
ΓòÉΓòÉΓòÉ <hidden> Select Individual Functions ΓòÉΓòÉΓòÉ
Select individual functions from your application that are indicative of the
problem being addressed. Generate a test case that emulates each function as
simply as possible. You do not necessarily need to run the whole application.
ΓòÉΓòÉΓòÉ <hidden> Use Synthesized Data ΓòÉΓòÉΓòÉ
Meaningful values are not always necessary, so do not invest the time to create
them. Some examples follow:
o To determine how fast data can be retrieved across a communications line,
files or records containing miscellaneous characters will probably be
sufficient.
o To test screen response to a user-initiated request, the data presented on
the screen does not have to be meaningful or original.
o For a database application in which you search for records based on matching
values, those values do not need to be real. However, the size of the
database should match the production environment. For example, if a large
database is needed, write a program to generate useful patterns of data
rather than keying in an entire database.
As you learn more about the operational characteristics and performance of
your system, you can then focus on a few complex scenarios using real data, if
necessary.
ΓòÉΓòÉΓòÉ <hidden> Measurements Before and After ΓòÉΓòÉΓòÉ
Take measurements with SPM/2 before and after making parameter changes to your
system (that is, for each benchmark run). Doing so ensures that your system is
in the same state at the beginning of each test.
ΓòÉΓòÉΓòÉ <hidden> Measure a One-Requester Run ΓòÉΓòÉΓòÉ
When measuring distributed system performance, first measure a one-requester
run so that you have a solid base from which to start. In this way, you will
learn what behavior to expect from your test or benchmark. If you do not get
similar behavior from multiple-requester runs, another problem may be
indicated.
ΓòÉΓòÉΓòÉ <hidden> Simulate Many Users from One Requester ΓòÉΓòÉΓòÉ
If you are testing in a distributed environment, try to simulate many users
from a single requester by starting the same program in multiple processes or
sessions on that one requester. This method will not always work. For
example, if multiple processes cause the requester to become RAM-constrained or
CPU-bound, or introduce a bottleneck at the adapter, the arrival rate of
requests to the server will not accurately model the real world, and the test
results will be unreliable. Hence, this technique must first be verified in
either of the following ways:
o Compare the sensitivity curve for the multiprocess run against that of the
single process/workstation run. If the characteristics of the curves are
totally different, this method is not working. (See Sensitivity Studies for
more information.)
o Run one process per workstation for n number of workstations. Follow this
test with a single workstation test on which n number of processes are run.
If the results are different, this method is not working.
ΓòÉΓòÉΓòÉ 5.2.4.3. Sensitivity Studies ΓòÉΓòÉΓòÉ
Sensitivity studies provide useful information. In a sensitivity study, you
change the value of a particular parameter or element in the system in small
increments and run the tests for each new incremental value. You can then plot
throughput and response times from each test, making it relatively easy to
locate the break in performance.
o Example sensitivity study graph
o Explanation of example.
ΓòÉΓòÉΓòÉ <hidden> Example of a Sensitivity Study Graph ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Explanation of Example ΓòÉΓòÉΓòÉ
The example graph shows throughput results for a sensitivity study on the
number of OS/2 Database requesters supported by an OS/2 Database server under a
specific workload. (These specific results cannot be generalized to apply to
all remote database scenarios.)
In this figure, each line in the graph represents the effect of increasing the
number of concurrent users of a remote database. The difference between each of
the three lines represents the amount of "think time" between the database
requests sent by each requester.
The results of this particular test show that throughput generally increases as
the number of users increase, until paging occurs. Also, no more than 30
requesters can be supported with the given system configuration (RAM, processor
speed, and so on).
To test whether changing the hardware will make a difference, free some memory
by defining a smaller VDISK and rerun the same set of tests. Doing so will
show whether additional RAM would support more requesters.
ΓòÉΓòÉΓòÉ 5.2.5. Testing Solutions ΓòÉΓòÉΓòÉ
Setting new variable values and running tests is probably the most repetitive
part of the overall analysis process. In this stage, response time should be
measured for specific, repeatable events, both before and after changing a
variable value.
When performing these tests, keep in mind the following rules:
o Change only one thing at a time.
o Start in the same state each time.
o Check for control.
o Work on one problem at a time.
ΓòÉΓòÉΓòÉ <hidden> Change Only One Thing at a Time ΓòÉΓòÉΓòÉ
Changing more than one thing at a time will cloud results by making it
difficult to determine the individual affects of various changes on system
performance. In certain cases, "changing one thing" may actually mean
"changing the minimum number of related things."
For example, if you change certain NETBIOS settings in an IBMLAN.INI file, you
must also change the associated LAN adapter setting in the Communications
Manager profile.
ΓòÉΓòÉΓòÉ <hidden> Start in the Same State ΓòÉΓòÉΓòÉ
It is imperative that you restore the system to its original state before each
test is run. If not, you will get unreliable results.
ΓòÉΓòÉΓòÉ <hidden> Check Control ΓòÉΓòÉΓòÉ
Carefully design and document the test procedures and results. This will
ensure that you're doing things the same way from run to run, and not
introducing new variables that could cloud the results. Recording actions and
results is essential for tracking exactly what you have and have not tested.
ΓòÉΓòÉΓòÉ <hidden> Work on One Problem at a Time ΓòÉΓòÉΓòÉ
You can easily lose focus when working with a large number of parameters and
components. Also, anomalies or problems (such as functional problems) often
arise during testing.
Resolve those problems that obstruct your goal of identifying bottlenecks and
improving performance. However, defer action on problems not directly related
to your goal or give them to another group to work on in parallel. The point
here is to maintain your focus.
ΓòÉΓòÉΓòÉ 5.2.6. Analyzing the Results ΓòÉΓòÉΓòÉ
Analyzing the results of tests involves interpreting and explaining the data
obtained in order to understand what's going on in the system. Question and
think through test results without jumping to conclusions. As you establish
benchmarks for your system, look for patterns of response time and throughput.
Graphing throughput and response times also provides helpful insight.
If the application has definable actions and measurable responses, the
following rule must be true. If not, the system is unstable because work or
data has been created or destroyed, but not accounted for.
(throughput) * (avg. response time)
----------------------------------- є 1
(number of users)
ΓòÉΓòÉΓòÉ <hidden> Analysis Example ΓòÉΓòÉΓòÉ
For example, suppose tuning has resulted in a decrease in the response time of
a LAN Server. However, the apparent response time at the requester is
unchanged. This may indicate the presence of another problem, perhaps
somewhere between the LAN Server and the requester.
ΓòÉΓòÉΓòÉ <hidden> Graphing Throughput and Response Times ΓòÉΓòÉΓòÉ
Record throughput and response times as each variable in the system is changed
(such as number of users, buffer size, or amount of RAM). Use this data to
plot the following graphs:
o Throughput versus variable
o Response time versus variable
o Throughput versus response time.
If the variable values have been tested over a wide enough range, you should
observe a point in these curves where there will be a distinct break or
"knee." This knee indicates the point where adding more resources (or tasks)
costs more than it's worth. See Plotting Throughput and Response Time and
Sensitivity Studies for more information.
ΓòÉΓòÉΓòÉ 5.3. Interpreting Graphs: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The SPM/2 Graph can display up to three resource graphs at a time: one each for
CPU, disk, and RAM resources.
The status bar of the SPM/2 Graph shows the name of the workstation being
monitored. The status bar displays LOCAL as the workstation name if the SPM/2
Graph is running on the system about which it is collecting data.
Each resource graph displays one or more resource data lines, each of which
shows the percentage of activity (for CPU, disk, or memory usage) on the
vertical axis of the resource graph, ranging from 0 at the bottom of the window
to 100 at the top of the window. In the resource graphs, each legend color
corresponds to the respective resource data line of the same color.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o CPU Graph
o Disk Graph
o RAM Graph.
ΓòÉΓòÉΓòÉ 5.3.1. The CPU Graph: Description ΓòÉΓòÉΓòÉ
The CPU Graph measures total CPU usage by plotting the percentage of time that
the CPU is busy against total CPU time. If CPU activity remains high for an
extended period of time, the system may have too many CPU-intensive tasks
running at once. This can slow system response time. If CPU activity is low,
the system may be underused and can probably handle more tasks.
Each point on the data line represents the percentage of time the CPU was
active during the previous sampling period (that is, since the previous point
was plotted).
ΓòÉΓòÉΓòÉ 5.3.2. The Disk Graph: Description ΓòÉΓòÉΓòÉ
The Disk Graph measures the percentage of time the disk device driver is
handling requests against the total time. Disk driver time is the time it
takes to satisfy an I/O request. This period begins when the I/O request is
handed to the device driver and ends when the request is complete (when data is
either written or read and returned to the requester).
The Disk Graph displays a data line for each physical disk in the system. The
legend to the right of the graph displays the name of the monitored resource in
the same color as the corresponding line on the graph.
Each point on the data line represents the percentage of time the disk was busy
during the previous sampling period (that is, since the previous point was
plotted).
If disk activity remains high for an extended period of time, processes may
have to wait for long periods in a queue to access the disk before continuing.
This can slow system response time.
ΓòÉΓòÉΓòÉ 5.3.3. RAM Graph: Description ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The RAM Graph uses five resource data lines to display information about two
types of memory activity:
o Memory allocation and use
- Resident memory
- Working set memory
- Used memory.
o Paging activity
- Page-out activity (times 10)
- Page-in activity (times 10).
The title bar of the RAM Graph displays the total memory in megabytes. This
value will be slightly less than the total physical memory installed. This is
due to ROM BIOS being loaded into RAM, making that portion of RAM unavailable
to the OS/2 system. The legend to the right of the graph displays the name of
the monitored resource in the same color as the corresponding line on the
graph.
If page-in and page-out activity are high and the working set is near 100%,
you may need to install more memory.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o RAM memory
o Resident memory
o Working set memory
o Used memory
o Free memory
o Page-out activity
o Page-in activity
o RAM graph scenarios.
ΓòÉΓòÉΓòÉ <hidden> RAM Memory ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ 5.3.3.1. Resident Memory ΓòÉΓòÉΓòÉ
Memory that cannot be paged out or discarded is called resident. It remains in
physical RAM as long as the application that owns it is loaded.
Examples of applications and their resident memory components are:
o Parts of the OS/2 kernel
o VDISK
o DISKCACHE.
Another application can be loaded only if there is enough swappable memory for
loading. It will run efficiently only if there is enough swappable memory to
contain its working set.
Each point on the data line represents the percentage of RAM that contains
resident pages at the moment the point is plotted.
ΓòÉΓòÉΓòÉ 5.3.3.2. Working Set Memory ΓòÉΓòÉΓòÉ
The reported working set is the percentage of memory accessed during the last
working set period. The collection frequency determines how often the working
set is updated. That is, when the time interval specified by the collection
frequency has passed, the working set for the last working set period is
calculated, converted into a percentage of total RAM, and plotted as a new
point on the graph.
The reported working set will always be bounded by resident and used memory:
resident є working set є used.
Working set measurements are only valid when there is sufficient RAM to contain
the working set.
Related information:
o Uses of RAM working set
o How the working set is measured.
ΓòÉΓòÉΓòÉ 5.3.3.2.1. Uses of RAM Working Set ΓòÉΓòÉΓòÉ
Whether you should use THESEUS2 or the RAM Graph to compute working set depends
on your purpose:
o To determine the optimum amount of RAM required to run a particular process,
application, or set of applications, use THESEUS2.
o To observe an application's or function's effect on working set, use the RAM
Graph.
Related information:
o Determining the amount of RAM needed to support an application scenario
o Observing the effect of executing specific functions within an application.
ΓòÉΓòÉΓòÉ <hidden> Determining RAM to Support an Application ΓòÉΓòÉΓòÉ
To determine the amount of RAM needed for acceptable performance of a given
application scenario in a given environment, the working set period must extend
from the beginning of a scenario to the end. The best way to compute this is
to use the working set function of THESEUS2. Also, to determine memory
utilization by process, use THESEUS2. (For instructions, see the "How to Do
Things" section of the "How to Use THESEUS2" chapter in the THESEUS2
Reference.)
Because the RAM Graph only shows the working set for a sliding window interval
of time (that is, an interval that is shorter than an entire scenario that
slides across time), the graph cannot be used to compute working set values for
the entire scenario.
ΓòÉΓòÉΓòÉ <hidden> Determining Effect of Specific Functions ΓòÉΓòÉΓòÉ
To observe the effect of executing specific functions within an application,
use the RAM Graph. For the RAM Graph, the working set period is typically
shorter than the entire scenario time, and hence only shows the working set
needed for subsets of the scenario of interest.
With the RAM Graph displayed, you can try different functions of an application
to see the effect of executing those functions on the working set. Doing so
will help you identify which functions require more RAM to execute.
Note: Until a full working set period has elapsed (for example, 60 seconds,
which is the default), the working set numbers represent the RAM
accessed during a portion of a full working set interval. As a result,
the value will be temporarily low.
If the actual working set exceeds physical memory (that is, more pages are
accessed during the working set period than will fit in swappable memory), the
working set will be reported at or near 100% and paging may occur. If the
working set consistently remains near 100%, you may want to reduce the number
of active applications or install more physical RAM.
ΓòÉΓòÉΓòÉ 5.3.3.2.2. How the Working Set Is Measured ΓòÉΓòÉΓòÉ
The working set is calculated as the number of RAM pages that were accessed
during a specific interval of time. SPM/2 keeps track of which pages were
accessed during each sampling period.
Related information:
Page Ager
ΓòÉΓòÉΓòÉ <hidden> Page Ager ΓòÉΓòÉΓòÉ
OS/2 memory management has a "Page Ager" routine that determines which pages
can be paged out to disk. Occasionally, SPM/2 and the Page Ager get in each
other's way. If the Page Ager runs just before an SPM/2 sampling period is
complete, SPM/2 will not find many pages that have been accessed. As a result,
the working set value takes a quick drop and then returns to normal. Ignore
sudden, short drops in the working set value.
ΓòÉΓòÉΓòÉ 5.3.3.3. Used Memory ΓòÉΓòÉΓòÉ
Used memory is RAM allocated by the OS/2 system and present in physical memory
(that is, not paged out or discarded).
Each point on the used memory line represents the percentage of RAM that
contains used pages at the moment the point is plotted.
ΓòÉΓòÉΓòÉ 5.3.3.4. Free Memory ΓòÉΓòÉΓòÉ
Free memory is physical memory that is not allocated to an application or to
the system. In OS/2 2.0, it is normal for there to be no free memory.
Therefore, the RAM Graph has no line indicating free memory, and the used
memory line may often be near 100%. Free memory is indicated by the area
between the used memory line and the top of the graph.
ΓòÉΓòÉΓòÉ 5.3.3.5. Page-Out Activity ΓòÉΓòÉΓòÉ
The RAM Graph measures the amount of memory-paging activity. When demand for
memory exceeds the capacity of physical memory, the OS/2 system pages memory to
disk in order to free physical memory.
The Pgs Out X 10 resource data line shows the pages per second written to the
SWAPPER.DAT file during the last summary interval. This value is multiplied by
10 for a more legible graph.
ΓòÉΓòÉΓòÉ 5.3.3.6. Page-In Activity ΓòÉΓòÉΓòÉ
Previously paged out memory is paged in from disk if it is required in physical
memory, the memory is paged in from disk. The Pgs In X 10 resource data line
shows the number of pages brought into memory from the SWAPPER.DAT file during
the last summary interval. This value is multiplied by 10 for a more legible
graph.
When paging activity remains high for an extended period of time, the system is
probably spending more time paging memory than doing useful work. If this is
the case, the computer probably has insufficient physical memory to support the
applications currently running.
Note: For SWAPPER.DAT file analysis, use THESEUS2.
ΓòÉΓòÉΓòÉ 5.3.3.7. RAM Graph Scenarios ΓòÉΓòÉΓòÉ
The following example scenarios illustrate how applications affect memory usage
and how memory usage is reported as working set by the RAM graph. The working
set period is set to 60 seconds for all scenarios.
o Scenario 1
o Scenario 2
o Scenario 3
o Scenario 4
o Scenario 5
o Scenario 6
o Scenario 7.
ΓòÉΓòÉΓòÉ <hidden> Scenario 1 ΓòÉΓòÉΓòÉ
Scenario 1
A large application is loaded. The working set shows a big increase. The
resident memory shows a small increase. The user decides not to use the
application for a while, and a minute later the working set drops back down.
Interpretation
The loaded program is reported as part of the working set (which includes a
small amount of resident RAM and a sizable amount of pageable or discardable
RAM). For 60 seconds, the memory used to load the program continues to be
reported in the working set.
Because the application is not active during those 60 seconds (and therefore
most of the memory allocated to the application is not accessed), the working
set drops back down after a minute even though the program is still loaded.
However, the resident memory allocated to the application is still reported as
part of resident memory, and therefore, also as part of the working set.
ΓòÉΓòÉΓòÉ <hidden> Scenario 2 ΓòÉΓòÉΓòÉ
Scenario 2
A large application is loaded. The working set shows a bigger increase than
expected.
Interpretation
This application probably uses more memory to load than it requires for normal
operation. The reported working set should drop later during normal operation.
ΓòÉΓòÉΓòÉ <hidden> Scenario 3 ΓòÉΓòÉΓòÉ
Scenario 3
A large application is loaded but is then immediately ended. The reported
working set rises and falls quickly.
Interpretation
When the application is unloaded, the OS/2 system frees the memory that was
used by the application. Freed memory is not reported in working set.
ΓòÉΓòÉΓòÉ <hidden> Scenario 4 ΓòÉΓòÉΓòÉ
Scenario 4
The page-in and page-out lines show lots of activity, even though the working
set is not at 100% of capacity.
Interpretation
When new pages must be paged in or loaded, old pages that have not been
accessed recently may need to be paged out or discarded. If the memory that is
being paged out has not been accessed in the last 60 seconds, it is not
included in the RAM graph's working set line. Hence, paging may occur even if
the working set line seems reasonable.
Even with occasional paging activity, enough memory may remain for good
performance. More physical memory is not necessarily needed.
ΓòÉΓòÉΓòÉ <hidden> Scenario 5 ΓòÉΓòÉΓòÉ
Scenario 5
When the OS/2 system is started, SPM/2 indicates that resident memory is higher
than anticipated.
Interpretation
The resident memory may include a large VDISK or DISKCACHE as defined in the
CONFIG.SYS file.
ΓòÉΓòÉΓòÉ <hidden> Scenario 6 ΓòÉΓòÉΓòÉ
Scenario 6
For a stable scenario, the working set period is changed from 60 seconds to 10
seconds. The reported working set is now lower.
Interpretation
The working set is lower because, typically, less memory is accessed in 10
seconds than in 60.
ΓòÉΓòÉΓòÉ <hidden> Scenario 7 ΓòÉΓòÉΓòÉ
Scenario 7
For a stable scenario, the working set period is changed from 60 seconds to
1000 seconds. The reported working set is now higher.
Interpretation
The working set is higher because a larger variety of activities occurs in 1000
seconds than in 60 seconds, and hence, more memory is accessed.
ΓòÉΓòÉΓòÉ 5.4. Report Output: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The report headings in each of the report formats (summary, tabular, and dump)
contain the following information:
o Date and time report was created
o Name of the report description file
o Report title
o Report type
o Starting and stopping points of the analysis period (date and time stamp)
o Monitor sessions included in the report
o Summary interval.
Note: The summary interval is the span of time over which records are
selected from the .LOG file and summarized. (Each record contains all
the data that is read for one collection sample.) If multiple records
fall within the summary interval (that is, the collection frequency is
less than the summary interval), the values in the multiple records are
averaged for the report.
.LOG file |<---------s<---------s<---------s<---------s<---------s|
.RDF file S---------------------|---------------------ST
<------- I -------> <------- I ------->
Legend:
s == Collection sample taken; value includes all activity back to ">"
S == Start time for report
ST == Stop time for report
I == Summary Interval
Each collection sample contains the value of the performance metric at
the time it is read, which represents activity since the last time the
metric was read. If the previous collection sample started prior to
the beginning of this summary interval, some of the data being
represented in the current summary interval may in fact be activity
that occurred in the previous interval.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Tabular report format
o Summary report format
o Dump report format
o Report metrics.
ΓòÉΓòÉΓòÉ 5.4.1. Tabular Report Format: Description ΓòÉΓòÉΓòÉ
The tabular report format provides a high-level summary of collection data
similar to that graphed by the SPM/2 Graph. See Interpreting Graphs for help
interpreting the results.
The data is organized into tabular form suitable for use by other applications,
such as databases, spreadsheets, and editors, or for printing. Each detail
line provides the summary information for one interval. Each line contains the
time stamp corresponding to the last second of the analysis period or interval.
Each summary time marks the end of one summary interval.
The summary interval and the summary time are not used in metric calculations
or summarizations. Instead, the values of the timer metrics for the records
that fall within the summary interval are used.
If you selected Spreadsheet compatible report, text strings are delimited with
quotation marks.
ΓòÉΓòÉΓòÉ 5.4.2. Summary Report Format: Description ΓòÉΓòÉΓòÉ
The summary report format can provide information about the following system
resources: CPU, memory, files, file system (FAT and HPFS), physical disk,
printers, and communications ports.
The number of resources in a summary report is selected when you create the
report description (.RDF) file. The specific kind of information provided for
these resources depends on which of the following report levels you choose:
o Workstation
o Application
o Process
o Thread.
Each summary time marks the end of one summary interval.
The summary interval and the summary time are not used in metric calculations
or summarizations. Instead, the values of the timer metrics for the records
that fall within the summary interval are used.
ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
If you selected Workstation, the data is summarized as total activity for the
entire workstation.
ΓòÉΓòÉΓòÉ <hidden> Application ΓòÉΓòÉΓòÉ
If you selected Application, then in addition to workstation totals, activity
is listed for each individual application running at that workstation.
ΓòÉΓòÉΓòÉ <hidden> Process ΓòÉΓòÉΓòÉ
If you selected Process, then in addition to workstation totals and application
breakdown, activity is also listed by individual process.
ΓòÉΓòÉΓòÉ <hidden> Thread ΓòÉΓòÉΓòÉ
If you selected Thread, then activity is summarized at the thread level and at
every higher level (that is, workstation, application, and process).
ΓòÉΓòÉΓòÉ 5.4.3. Dump Report Format: Description ΓòÉΓòÉΓòÉ
SPM/2 provides a dump report type for viewing the values of the collected
performance metrics from the OS/2 base operating system and user applications.
(See the User Performance Hooks chapter for more information about placing
metrics in an application.)
The dump report format shows the decimal value of all data items in all
collected groups at each recording interval. Any counter or timer greater than
the field width is converted to a floating point value.
The dump report contains every record in the monitor session (.LOG) file that
is within the selection criteria.
The summary time is the time the record was collected.
The reported metrics represent the average performance since the last summary
time.
ΓòÉΓòÉΓòÉ 5.4.4. Report Metrics: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
This section contains definitions of the performance metrics which are
collected and on which the reports are based. The metric names are usually the
report column headings.
Every possible metric does not necessarily appear in every report. Which heads
appear in the report depend on several factors that you request when you run
the report:
o Format of report (tabular, summary, or dump)
o Level of detail for the summary report (workstation, application, process,
or thread)
o Resources to be included.
More
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Tabular
o Summary
o Dump.
ΓòÉΓòÉΓòÉ <hidden> Report Metrics: More ΓòÉΓòÉΓòÉ
All metrics represent values accumulated or calculated during the requested
summary interval.
Metrics collected for the OS/2 program are defined in this section. Metrics for
user-written applications are explained in the User Metrics chapter.
The summary and tabular report formats are made up of both collected and
calculated data values. The dump report format contains only collected data
values.
Metrics should be read in the context of their placement in the report. For
example, in a summary report, under the division for HPFS CACHE, there can be
two Hit % metrics. The first is for the overall percentage of high performance
file system (HPFS) hits. The second, which falls under a superior Read
heading, is the percentage of HPFS read hits.
ΓòÉΓòÉΓòÉ 5.4.4.1. Tabular Report Metrics ΓòÉΓòÉΓòÉ
Metrics belonging to the following resource groups appear in a tabular report:
o CPU
Busy Time The time that the CPU was busy (including both task and interrupt
time).
Busy % The percentage of time that the CPU was busy (including both task
and interrupt time).
Interrupt Service Time The time the CPU was busy servicing interrupts.
Interrupt Service % The percentage of CPU busy time processing interrupts.
o Memory
Used Memory The number of pages allocated and not paged out or discarded.
Used Memory % The percentage of total pages of memory allocated and not
paged out or discarded.
Working Set Memory The number of pages accessed during the working set
period.
Working Set Memory % The percentage of memory accessed during the working
set period.
Resident Memory The number of pages that cannot be paged out or discarded.
Resident Memory % The percentage of memory that cannot be paged out or
discarded.
Pages In The number of pages swapped in from disk.
Page-In % The percentage of pages swapped in from disk in relation to total
pages swapped.
Pages Out The number of pages swapped out to disk.
Page-Out % The percentage of pages swapped out to disk in relation to total
pages swapped.
o FAT Cache
Hits The total number of read and write requests serviced by the cache.
Hit % The percentage of the read or write requests serviced by the cache.
o HPFS Cache
Hits The total number of read and write requests serviced by the cache..
Hit % The percentage of the read or write requests serviced by the cache.
o Disk
Accesses The total number of read and write operations.
Utilization % The percentage of time that the disk was busy performing read
and write operations.
ΓòÉΓòÉΓòÉ 5.4.4.2. Summary Report Metrics ΓòÉΓòÉΓòÉ
Metrics belonging to the following resource groups appear in a summary report.
Select a group to see its associated metrics and their definitions:
o CPU
o Memory
o Files
o FAT cache
o HPFS cache
o Disk
o Printer
o Communications port.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - CPU ΓòÉΓòÉΓòÉ
Processor - % Utilization The percentage of time that the CPU was busy.
Processor - Busy Time The time that the CPU was busy, which includes both task
and interrupt time.
Thread - Dispatches The number of times threads were dispatched to use the
CPU.
Thread - Average Timeslice The average thread run time per dispatch.
Interrupt - % Utilization The percentage of CPU busy time processing
interrupts.
Interrupt - Rate The number of interrupt requests per second.
Interrupt - Service Time The time the CPU was busy servicing interrupts.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Memory ΓòÉΓòÉΓòÉ
Total System RAM The total RAM memory installed in the system less that used
for the ROM BIOS patch.
Working Set Period The time period defined for working set memory analysis.
Used Memory The number of pages allocated and not paged out or discarded.
Working Set Memory The number of pages accessed during the working set period.
Resident Memory The number of pages that cannot be paged out or discarded.
Paging Rate The total number of pages swapped in from, swapped out to, or
demand loaded from disk per time interval.
Page-In The number of pages swapped in from disk.
Page-Out The number of pages swapped out to disk.
Page Demand Loads The number of pages demand loaded from disk.
Page Discards The number of pages discarded.
Page Faults The number of page faults.
Page Fault Rate The number of page faults per time interval.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Files ΓòÉΓòÉΓòÉ
Read - Requests The number of read requests from the file.
Read - KBytes The number of bytes read from the file.
Read - Average KBytes The total number of bytes read from the file divided by
the number of read requests.
Read - Average Time The total time spent reading the file divided by the
number of read requests.
Writes - Requests The number of writes to the file.
Write - KBytes The number of bytes written to the file.
Write - Average KBytes The total number of bytes written to the file divided
by the number of write requests.
Write - Average Time The total time spent writing to the file divided by the
number of write requests.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - FAT Cache ΓòÉΓòÉΓòÉ
Hit % The percentage of the read or write requests serviced by the cache.
Hits The total number of read and write requests serviced by the cache.
Misses The total number of read and write requests not serviced by the cache.
Bypasses The total number of read and write requests deliberately bypassing
cache.
Cache Read - Hits The number of read requests serviced by the cache.
Cache Read - Misses The number of read requests not serviced by the cache.
Cache Write - Hits The number of write requests serviced by the cache.
Cache Write - Misses The number of write requests not serviced by the cache.
Cache Write - Forces The number of write operations to disk due to a cache
full condition.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - HPFS Cache ΓòÉΓòÉΓòÉ
Hit % The percentage of the read or write requests serviced by the cache.
Hits The total number of read and write requests serviced by the cache..
Misses The total number of read and write requests not serviced by the cache.
Flushes The number of times that the cache was flushed due to no free buffers
(for "Force Lazy").
Cache Heap - % Utilization The percentage of the total heap space that is
allocated.
Cache Heap - MBytes The total heap space (allocated and free) specified in
millions of bytes.
Cache Heap - Subdirectory % Utilization The percentage of the total heap space
that is allocated to subdirectories.
Cache Heap - Objects The number of objects allocated in the heap.
Cache Heap - Object Average KB Average cache heap space in kilobytes.
Read Ahead - Hit % The percentage of time that the correct data in a buffer
was accessed in relation to the total number of times a buffer was
accessed assuming the data would be valid based on the read ahead.
Read Ahead - Blocks Read The number of cache blocks read by read ahead.
Read Ahead - Total Accesses The number of times a buffer was accessed assuming
that the data is valid because of the read ahead.
Read Ahead - Hits The number of times a buffer with valid data was accessed by
read ahead.
Read Ahead - Overwrites The number of cache blocks read by read ahead that
were overwritten before being used.
Opened Files - Total The number of HPFS files that were opened.
Opened Files - Being Written The number of HPFS files currently being written.
Closed Files - Total The number of HPFS files that were closed.
Closed Files - % Read The percentage of HPFS files closed that were only read.
Closed Files - % Sequentially Read The percentage of HPFS files closed that
were read strictly sequentially.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Disk ΓòÉΓòÉΓòÉ
Physical ID The id of the physical disk
% Utilization The percentage of time that the disk was busy performing read
and write operations.
Access Rate The number of read and write operations per second.
Read - Requests The number of read operations.
Read - Sectors The number of sectors read from the disk.
Read - Average Sectors The average number of sectors read from disk per read
request.
Read - Average Time The average time per read request.
Write - Requests The number of write operations.
Write - Sectors The number of sectors written to the disk.
Write - Avg Sectors The average number of sectors read from disk per write
request.
Write - Average Time The average time per write request.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Printer ΓòÉΓòÉΓòÉ
ID The LPT ID of the printer.
Thru-put Rate The number of bytes written to the printer divided by the time
interval.
Write Requests The number of write operations to the printer.
KBytes The number of bytes in thousands written to the printer.
Average KBytes The number of bytes in thousands written to the printer divided
by the number of write operations.
Average Time The time spent writing to the printer divided by number of write
operations.
ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Communications Port ΓòÉΓòÉΓòÉ
ID The COM ID of the communications port.
Read - Requests The number of read operations from the communications port.
Read - KBytes The number of bytes in thousands read from the communications
port.
Read - Average KBytes The number of bytes in thousands read from the
communications port divided by the number of read operations.
Read - Average Time The time spent reading from the communications port
divided by the number of read operations in the time interval.
Write - Requests The number of write operations to the communications port.
Write - KBytes The number of bytes in thousands written to the communications
port.
Write - Average KBytes The number of bytes in thousands written to the
communications port divided by the number of write operations.
Write - Average Time The time spent writing to the communications port divided
by the number of write operations in the time interval.
Software Overruns The number of times flow control was imposed on input or
output.
Hardware Overruns The number of data overrun errors.
ΓòÉΓòÉΓòÉ 5.4.4.3. Dump Report Metrics ΓòÉΓòÉΓòÉ
Metrics belonging to the following resource groups appear in a dump report.
Select a group to see its associated metrics and their definitions:
o CPU
o Memory
o FAT cache
o HPFS cache
o Disk
o Printer
o Communications port
o Working set
o IBM LAN Requester (NETWKST)
o IBM LAN Server Advanced (HPFS386).
Note: To compute average number of elements from a queue length metric, use
the following equation:
Avg number of elements Queue Time
over the interval = ----------
Interval
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - CPU ΓòÉΓòÉΓòÉ
tmNotIdle The time that the CPU was busy; this includes both task and
interrupt time.
ctSched The number of times a thread was scheduled to use the CPU.
ctInt The number of interrupts raised.
tmInt The time spent servicing interrupts.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Memory ΓòÉΓòÉΓòÉ
ctPgFault The number of page faults.
ctSwapIn The number of pages swapped in from disk.
ctDemandLd The number of pages demand loaded from disk.
ctSwapOut The number of pages swapped to disk.
ctDiscard The number of pages discarded.
ctRecovered The number of idle pages recovered for use by the original
process.
ctIdled The number of pages idled.
ctReassigned The number of idle pages reassigned for use by another process.
qctResident The number of resident or long-term locked pages.
qlQFree The number of unoccupied page frames. qlQFree consists of a queue
counter and a queue timer.
qlQUsed The number of pages that are used. qlQUsed consists of a queue
counter and a queue timer.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - FAT Cache (FBC) ΓòÉΓòÉΓòÉ
ctRdHit The number of FAT cache read hits.
ctRdMiss The number of FAT cache read misses.
ctWrtHit The number of FAT cache write hits.
ctWrtMiss The number of FAT cache write misses.
ctWrtActiv The number of write operations due to a cache full condition.
ctBypass The number of FAT cache bypasses (including both read and write
operations).
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - HPFS Cache ΓòÉΓòÉΓòÉ
CTCaNHints A cache counter that indicates the number of times that the file
system used the pbufNextHint field of a BufNode. This field is an
advisory pointer indicating where the next buffer of a file is.
CTCaNHits The advisory field pbufNextHint was valid (that is, the buffer
pointed to the desired data).
CTCaNSelf The advisory pointer pbufNextHint was self-referencing (that is, the
pointer was not followed).
CTCaBHints The number of times that pbufHint field of a SECPTR structure was
used (that is, the number of times that someone referred to a buffer in
the cache - except in those cases where following a buffer chain, which
is covered by NHints).
CTCaBHits The pbufHint was valid. CTCaBHits consists of a queue counter and a
queue timer.
CTCaForceL A cache counter that indicates the number of times that the cache
was flushed due to no free buffers (for "Force Lazy").
CTHpSize A heap counter that contains the total heap space (allocated and
free).
QCHpAlloc The heap space that is allocated.
QCHpSbdirs The heap space that is allocated to subdirectories.
QCHpObjCnt The number of objects allocated in the heap.
QCFOCount The number of files that are open.
CTFCCount The number of files that have been closed.
QCFWCurCnt The number of files currently being written.
CTFRFilCnt The number of files closed that have been only read.
CTFRSeqFil The number of files closed that have been read strictly
sequentially.
CTFACount The number of accesses to the file allocation (that is, number of
times that the tree structure was followed looking for a particular
leaf).
CTFAOft The number of accesses to the file allocation using the open file
table (OFT). The OFT contains a copy of the first-level structures of
the file allocation tree. For trees only one level deep, a particular
leaf can, therefore, be located immediately. This counter is essentially
the number of accesses to the file allocation trees only one level deep.
CTRABufCnt The number of cache blocks read by read ahead.
CTRABufAcc The number of times a buffer was accessed assuming that the data
should be valid because of the read ahead.
CTRABufHit The number of times the data in the buffer accessed was valid. This
counter is related to CTRABufAcc counter.
CTRAOvrWrt The number of blocks read by the read ahead that were overwritten
before being used.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Disk ΓòÉΓòÉΓòÉ
ctRD The number of read operations.
qlRD The number of outstanding read requests. qlRD consists of a queue
counter and a queue timer.
blRD The number of blocks or sectors (1 sector = 512 bytes) read from the
disk.
ctWR The number of write requests.
qlWR The number of outstanding write requests. qlWR consists of a queue
counter and a queue timer.
blWR The number of blocks or sectors written to the disk.
tmBUSY The time the disk was busy.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Parallel Port Device Driver (Printer) ΓòÉΓòÉΓòÉ
Write Request The number of write operations to the printer.
Write Time The time spent writing to the printer.
Write Bytes The number of bytes written to the printer.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Communications Port ΓòÉΓòÉΓòÉ
Read Time The time spent reading from the communication port.
Write Time The time spent writing to the communication port.
Number Reads The number of read operations.
Number Writes The number of write operations.
Bytes Read The number of bytes read from the communication port.
Bytes Written The number of bytes written to the communication port.
Hardware Overruns The number of times flow control was imposed on input or
output.
Software Overruns The number of data overrun errors.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Working Set ΓòÉΓòÉΓòÉ
Resident The number of pages that cannot be swapped out or discarded. Resident
consists of a queue counter and a queue timer.
Working Set The number of pages accessed. Working Set consists of a queue
counter and a queue timer.
Used The number of pages allocated and not paged out or discarded. Used
consists of a queue counter and a queue timer.
Total The total amount of memory available to OS/2.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - IBM LAN Requester (NETWKST) ΓòÉΓòÉΓòÉ
CTRqTransP A state counter that represents the current number of transactions
being processed.
CTRqFoCount The number of files that were opened.
CTRqFcCount The number of files that were closed.
CTRqSmRds The number of small reads handled by the redirector. A small read is
defined as a read that occurs within one SMB. SMBs include read,
readandx, lockread.
TMRqSmRds The time spent doing small reads.
BCRqSmByRd The number of bytes read via small reads.
CTRqMpxRds The number of read-multiplex SMBs processed by the redirector.
TMRqMpxRds The time spent processing multiplex reads.
BCRqMpxByR The number of bytes read via multiplex reads.
CTRqRawRds The number of read raws processed by the redirector.
TMRqRawRds The time spent processing raw reads.
BCRqRawByR The number of bytes read via raw reads.
BCRqTotRds The total number of reads processed by the redirector.
CTRqSmWrt The number of small writes handled by the redirector. A small write
is defined as a write which occurs within one SMB. SMBs include Write,
Writeandx, WriteUnlock.
TMRqSmWrt The time spent doing small writes.
BCRqSmByWr The number of bytes written via small writes.
CTRqMpxWrt The number of write-multiplex SMBs processed by the redirector.
TMRqMpxWrt The time spent processing multiplex writes.
BCRqMpxByW The number of bytes written via multiplex writes.
CTRqRawWrt The number of write raws processed by the redirector.
TMRqRawWrt The time spent processing raw writes.
BCRqRawByW The number of bytes written via raw writes.
BCRqTotWrt The total number of writes processed by the redirector.
ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - IBM LAN Server Advanced (HPFS386) ΓòÉΓòÉΓòÉ
CTFOCount The number of files that were opened, including both locally open
files and client-opened files.
CTFCCount The number of files that were closed.
SCFWCurCnt The number of files currently being written.
CTFRFilCnt The number of files that were closed that were only read.
CTFRSeqFil The number of files that were closed that were read strictly
sequentially.
CTRABufCnt This is the number of cache blocks read by read ahead.
CTRABufHit The number of times the data in the buffer accessed was valid.
CTRAOvrWrt The number of blocks read by the read ahead that were overwritten
before being used.
CTRAWhFile The number of files which were attempted to be read in completely.
CTR0TransP The number of SMBs (transactions) processed by the server.
CTR0FilOpn The number of file opens performed by the HPFS386 server.
CTR0FilCls The number of file closes performed by the HPFS386 server.
CTR0OpLock The number of files that were opened oplocked.
CTR0OpBrk The number of times that the server had to break an oplock on a
file.
CTR0SmRds The number of small reads handled by the HPFS386 server. A small
read is defined as a read which occurs within one SMB. SMBs include
read, readandx, lockread.
TMR0SmRds The time spent doing small reads.
BCR0SmByRd The number of bytes read via small reads.
CTR0MpxRds The number of read-multiplex SMBs processed by the HPFS386 server.
TMR0MpxRds The time spent processing multiplex reads.
BCR0MpxByR The number of bytes read via multiplex reads.
CTR0RawRds The number of read raws processed by the HPFS386 server.
TMR0RawRds The time spent processing raw reads.
BCR0RawByR The number of bytes read via Raw Reads.
CTR0RdCaBp The number of times that the server elected to bypass the cache
when doing reads. The server bypasses the cache when the read request is
greater than 63KB, and the server has exclusive use to the file.
CTR0SmWrt The number of small writes handled by the HPFS386 server. A small
write is defined as a write which occurs within one SMB. SMBs include
Write, Writeandx, WriteUnlock.
TMR0SmWrt The time spent doing small writes.
BCR0SmByWr The number of bytes written via small writes.
CTR0MpxWrt The number of write-multiplex SMBs processed by the HPFS386 server.
TMR0MpxWrt The time spent processing multiplex writes.
BCR0MpxByW The number of bytes written via multiplex writes.
CTR0RawWrt The number of write raws processed by the HPFS386 server.
TMR0RawWrt The time spent processing raw writes.
BCR0RawByW The number of bytes written via raw writes.
CTR0WrCaBp The number of times that the server elected to bypass cache when
doing writes. The server bypasses the cache when the write report is
greater than 63KB, the server has exclusive use to the file, and the
write offset is past 64KB in the file.
SCR0CurFnd The current number of outstanding finds.
SCR0OSrch The current number of outstanding searches.
SCR0BigBuf The number of big buffers allocated by the HPFS386 server. The
HPFS386 server initially allocates two big buffers. After that, it
allocates big buffers on an as needed basis, up to 16 big buffers
allocated. Big buffers are split into work buffers as needed.
CTR0BBufEx The number of times that failed when allocating big buffers. This
may be due to shortage of system memory, or because there are already 16
buffers allocated. If CTR0BigBuf is 16, then this counter effectively
measures the number of times that another buffer was needed but could not
be located.
BCCaRdReqC The number of read requests (sectors) satisfied from cache.
BCCaRdReqD The number of read requests (sectors) satisfied from disk.
BCCaWrReqL The number of lazy write requests (sectors) to cache.
BCCaWrReqD The number of write requests (sectors) to disk.
CTCaForceL A cache counter that tells the number of times that the cache was
flushed due to no free buffers.
CTCaNumBlk The number of cache blocks.
CTHpSize A state counter that contains the total heap space
(allocated + free).
CTHpMax A state counter for the maximum heap space that is allocated.
CTHpFull The number of times that no additional heap space was available.
ΓòÉΓòÉΓòÉ 6. Sizing Directories: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPM/2 Directory Analyzer to calculate and report directory,
subdirectory, and file sizes for one or more directories on one or more drives.
You can select the depth of analysis, which is called sizing.
Reports can be requested on:
o The highest level directory only
o All sized directories
o All sized files in all sized directories.
The reports are in tabular format. Sizing and reporting options can be set
independently for each specified directory.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o File analysis
o Directory analysis
o Collecting directory data
o Redirecting output to a file.
ΓòÉΓòÉΓòÉ 6.1. File Analysis ΓòÉΓòÉΓòÉ
Analysis of a file contains:
o The file's data size. This is the actual number of bytes of data contained
in the file.
o The file's allocation size (as a multiple of cluster length). This is the
actual amount of disk space consumed by the file on the particular file
system. Because files are stored in clusters, which can vary in length by
system, a file can consume more bytes of storage than the file's actual data
size:
In the example shown, the system must allocate three 1024-byte clusters
(3072 bytes of storage) to store a 2275-byte file.
ΓòÉΓòÉΓòÉ 6.2. Directory Analysis ΓòÉΓòÉΓòÉ
There are four types of sizings:
Directory Sizes files matching a given file specification in a single
directory.
Directory Subtree Sizes files matching a given file specification in a single
directory and its subdirectories.
Multiple Directories Sizes files matching a given file specification in
multiple directories.
Multiple Directory Subtrees Sizes files matching a given file specification in
multiple directories and their subdirectories.
Directories can be sized using a hypothetical cluster length.
ΓòÉΓòÉΓòÉ <hidden> Directory and Multiple Directory Sizing ΓòÉΓòÉΓòÉ
Analysis of a directory includes the following information:
o The count of sized files. These are the files in the directory matching the
given file specification.
o The sum of the file data sizes for all sized files in the directory.
o The sum of the file allocation sizes for all sized files in the directory.
ΓòÉΓòÉΓòÉ <hidden> Directory Subtree and Multiple Directory Subtree Sizing ΓòÉΓòÉΓòÉ
Analysis of a directory subtree contains the following information:
o The directory's weighted file count. This is the count of sized files in
the directory and any subdirectories that were also sized.
o The directory's weighted sum of file data sizes. This is the sum of the
file data sizes for all sized files in the directory and any subdirectories
that were also sized.
o The directory's weighted sum of file allocation sizes. This is the sum of
the file allocation sizes for all sized files in the directory and any
subdirectories that were also sized.
ΓòÉΓòÉΓòÉ 6.3. Collecting Directory Data ΓòÉΓòÉΓòÉ
To start collecting directory data, at an OS/2 command prompt, type:
SPMDIR
followed by the desired parameters, and press Enter.
Select one:
o Syntax
o Examples.
ΓòÉΓòÉΓòÉ <hidden> SPMDIR Command ΓòÉΓòÉΓòÉ
SPMDIR [
([filespec|filename /L]
[/NS|/S]
[/A|/D]
[/NF|/F]
[/C=n]
[/QP]
[/QL]
[; comment])
|?
]
Related information:
Syntax interpretation.
ΓòÉΓòÉΓòÉ <hidden> File Specification ΓòÉΓòÉΓòÉ
You can specify which files are to be sized. Global file-name characters (?
and *) are allowed. The file specification may optionally contain a drive and
path specification. If no file is specified, *.* is the default.
ΓòÉΓòÉΓòÉ <hidden> Filename /L ΓòÉΓòÉΓòÉ
You can specify the name of a file that contains a list of file specifications
(filespec). This is an ASCII text file that has a file specification with
optional parameters on each line. The /L parameter instructs the Directory
Analyzer to process the list.
Parameters on the command line are normally applied to each of the directories
specified in the file. However, these command line parameters may be
overridden for an individual file specification by specifying alternative
parameters to the right of that file specification in the file. Those
parameters apply to that file specification only and do not override the
command line parameters for other file specifications in the file.
ΓòÉΓòÉΓòÉ <hidden> /NS - No Subdirectories ΓòÉΓòÉΓòÉ
Sizes only the specified directory, but does not size subdirectories. This
option is the default.
ΓòÉΓòÉΓòÉ <hidden> /S - Subdirectories ΓòÉΓòÉΓòÉ
Sizes the specified directory and all of its subdirectories. Use the filespec
variable to specify particular files to be sized in all sized directories.
ΓòÉΓòÉΓòÉ <hidden> /A - All Sized Subdirectories ΓòÉΓòÉΓòÉ
Includes details for all subdirectories that are sized. This option is the
default.
ΓòÉΓòÉΓòÉ <hidden> /D - Directory ΓòÉΓòÉΓòÉ
Includes details for the specified directory only. No subdirectory details are
included in the report, even if a subdirectory is sized.
ΓòÉΓòÉΓòÉ <hidden> /NF - No Files ΓòÉΓòÉΓòÉ
No file details are included in the report, even if a file is sized. This
option is the default.
ΓòÉΓòÉΓòÉ <hidden> /F - Files ΓòÉΓòÉΓòÉ
Includes details for each file that is sized.
ΓòÉΓòÉΓòÉ <hidden> /C=n - Cluster Length ΓòÉΓòÉΓòÉ
Analyzes files using the n variable (an unsigned decimal number) as the
hypothetical cluster length. This allows sizings on file systems that have
different cluster lengths. The disk's cluster length is the default.
ΓòÉΓòÉΓòÉ <hidden> /QP - Quiet Program Banner ΓòÉΓòÉΓòÉ
Does not output a program banner.
ΓòÉΓòÉΓòÉ <hidden> /QL - Quiet Label ΓòÉΓòÉΓòÉ
Does not output a column headings label.
ΓòÉΓòÉΓòÉ <hidden> ; - Comment ΓòÉΓòÉΓòÉ
Indicates that any text following the semicolon (;) is ignored.
ΓòÉΓòÉΓòÉ <hidden> Question Mark ΓòÉΓòÉΓòÉ
SPMDIR ? provides a syntax diagram and brief help text for the SPMDIR command.
ΓòÉΓòÉΓòÉ <hidden> Collecting Directory Data: Examples ΓòÉΓòÉΓòÉ
Example A SPMDIR C:\OS2\*.* /S
Example B SPMDIR C:\OS2\ /S
Example C SPMDIR C:\OS2\*.EXE /NS /F ; just do exe's
Example D SPMDIR /S /D /C=1024
ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\*.* /S ΓòÉΓòÉΓòÉ
Component Action
C:\OS2\ Sizes the C:\OS2 directory.
*.* Sizes all files in the C:\OS2 directory.
/S Sizes all subdirectories of the C:\OS2 directory. All
files in those subdirectories are sized because *.*
is specified on the command line.
/A (default) Includes details for the C:\OS2 directory and any of
its subdirectories that are sized. In this case, all
subdirectories of C:\OS2 are sized and reported
because /S is specified.
/NF (default) No file details are included in the report.
ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\ /S ΓòÉΓòÉΓòÉ
This has the same result as Example A. Because the filespec variable is not
specified, it is assumed to be *.*, the default.
ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\*.EXE /NS /F ; just do exe's ΓòÉΓòÉΓòÉ
Component Action
C:\OS2\ Sizes the C:\OS2 directory.
*.EXE Sizes only *.EXE files in the C:\OS2 directory.
/NS (default) Does not size any subdirectories of the C:\OS2
directory. Because /NS is the default, specifying it
has no effect on program behavior.
/F Includes details for each file that is sized in all
directory reports. Since /NS is specified, no
subdirectories of C:\OS2 are sized and, therefore,
only the sizings for *.EXE files in the C:\OS2
directory are reported.
; just do exe's Text following a semicolon is comment text and is
ignored by the Directory Analyzer.
/A (default) Includes details for the C:\OS2 directory and any of
its subdirectories that are sized. Since /NS is
specified, only the C:\OS2 sizing is reported because
no subdirectories of C:\OS2 are sized.
ΓòÉΓòÉΓòÉ <hidden> SPMDIR /S /D /C=1024 ΓòÉΓòÉΓòÉ
Component Action
/S Sizes all subdirectories of the current directory.
Because the filespec variable is not specified, it is
assumed to be *.*, the default.
/D Includes details for the current directory only.
/C=1024 Reports file allocation sizes using a cluster size of
1024 bytes (1KB).
/NF (default) No file details are included in the report.
ΓòÉΓòÉΓòÉ 6.4. Redirecting Output to a File ΓòÉΓòÉΓòÉ
Reports are normally displayed on the screen.
To redirect a report to a file, add the OS/2 redirect sign > and an output file
name at the end of the Directory Analyzer command. For example:
SPMDIR parameters > output_filename
ΓòÉΓòÉΓòÉ 7. Command Line Interface: Overview ΓòÉΓòÉΓòÉ
The command line interface provides an alternate method to invoke some SPM/2
functions.
SPMINST Installs and uninstalls SPM/2, Distributed Features, and the
application programming interface (API).
SPMHELP Provides guidance and reference information.
SPM Starts SPM/2 and opens the SPM/2 control window.
SPMLOGF Creates a monitor session description.
SPMLOGFX Recovers a monitor session (.LOG) file that has been corrupted.
SPMNBL Starts the NETBIOS Listener, which waits for requests to start
the Data Collection Facility. Normally, the NETBIOS Listener
is started by the CONFIG.SYS file when you start your system.
However, if you have stopped the NETBIOS Listener, you must
restart it.
SPMISTRT Starts a monitor (SPMILOG) session for a previously created
monitor session (.LOG) file. This command may or may not start
recording for the monitor session, depending on the parameters
you choose.
SPMMON Starts graphing for a previously started monitor session.
SPMISTOP Stops a monitor (SPMILOG) session and any associated recording
or graphing.
SPMRDF Generates a report from a report description previously created
using the Presentation Manager interface.
SPMRDFI Generates a report description file from an input file.
SPMSNAPP Formats data in the SPMSNAP.ERR file for display on the screen
or redirection to an output file.
SPMAPPIN Installs application-specific metric definition files. See the
User Metrics chapter for more information.
SPMDIR Obtains size information about directories, subdirectories, and
files using the Directory Analyzer.
THESEUS2 Analyzes memory in several ways. Information about THESEUS2
commands can be found in the THESEUS2 Reference.
Related information:
o Syntax interpretation
o Shutdown procedures.
ΓòÉΓòÉΓòÉ 7.1. Syntax Statement Interpretation ΓòÉΓòÉΓòÉ
The following conventions are used for the syntax statements that appear in
this document:
[ ] Indicates an optional parameter.
{ } Indicates a required parameter.
| Indicates that you can choose one parameter only.
o [a|b] indicates that you can choose either a or b, or neither a nor b.
o {a|b} indicates that you must choose either a or b.
... Indicates that the parameter can be repeated on the command line.
Italics Indicate a variable.
Capital Letters Indicate the abbreviated form of a command or parameter. For
example, for the /Distftr parameter of the SPMINST command, either
/DISTFTR or /D is a correct entry.
ΓòÉΓòÉΓòÉ 7.2. Shutdown Procedures ΓòÉΓòÉΓòÉ
When you issue an SPMISTOP /DRAIN command, SPM/2 stops the instance of the
SPMILOG program, which controls the monitor session associated with the
specified monitor session (.LOG) file. This should result in the shutdown of
the Data Collection Facility sessions at every workstation specified in the
monitor session (.LOG) file. The /DRAINALL parameter has the same effect,
except it applies to all active monitor sessions that were started from the
system where the command is issued. The /DRAIN and /DRAINALL parameters are
respectively equivalent to stopping one or all monitor sessions from the SPM/2
control window.
Use an SPMISTOP /HALT or /HALTALL parameter only when a /DRAIN or /DRAINALL
parameter does not work, generally in error recovery. For example, in a large
network, messages may take a long time to come back or time-outs may occur,
making it seem as though the /DRAIN or /DRAINALL parameter has failed.
The /HALT parameter forces the shutdown of the specified monitor session and
its associated Data Collection Facility sessions. However, the monitor session
(.LOG) file will be corrupted as a result. The /HALTALL parameter has the same
effect as the /HALT parameter but applies to all active monitor sessions
running on the system where the command is issued.
The SPMNBL /HALTALL parameter can also be used to force shutdown of the Data
Collection Facility if none of the SPMISTOP parameters work.
The NETBIOS Listener is generally allowed to run in the background. However,
you may use the SPMNBL /STOPLISTEN parameter to stop the NETBIOS Listener
without stopping the associated Data Collection Facility.
ΓòÉΓòÉΓòÉ 7.3. SPMINST Command ΓòÉΓòÉΓòÉ
source\SPMINST [
[/S:sourcePath]
[/L1:logFileName]
[/T:target]
[/Distftr]
[/API]
[/Uninstall]
| ?
]
Select one:
o Local installation
o Remote installation
ΓòÉΓòÉΓòÉ 7.3.1. Local Installation: Overview ΓòÉΓòÉΓòÉ
Using the local installation procedure allows you to:
o Install to the default directory
o Install to a different directory
o Install Distributed Feature
o Install the application programming interface
o Uninstall SPM/2.
Notes:
1. If you are reinstalling SPM/2 or installing SPM/2 over a previous
version, you must first uninstall the existing SPM/2 code. To
uninstall, you must first stop all SPM/2 activity. For SPM/2 2.0,
close the SPM/2 control window and the SPM/2 group, and stop the the
NETBIOS Listener using the SPMNBL /STOPLISTEN command.
2. During SPM/2 installation, a message log (SPMLOG.LOG) file is created
in the OS2\INSTALL subdirectory. This log contains all the messages,
including error messages, that are generated during SPM/2 installation.
3. The SPMINST.EXE file is not installed along with the SPM/2 program
files.
Local installation example
ΓòÉΓòÉΓòÉ 7.3.1.1. Installing to the Default Directory ΓòÉΓòÉΓòÉ
To install locally to the default target directory (root:\SPM2V2), insert
diskette 1 into a diskette drive and at an OS/2 command prompt type:
source\SPMINST
where source is the name of the diskette drive (for example, A:). This command
installs the entire SPM/2 product with the exception of the API.
ΓòÉΓòÉΓòÉ 7.3.1.2. Installing to Another Directory ΓòÉΓòÉΓòÉ
To install locally to a different target directory, insert diskette 1 into a
diskette drive and at an OS/2 command prompt type:
source\SPMINST /T:target
where source is the name of the diskette drive, and target is the fully
qualified path of the directory where the SPM/2 program is to be installed.
This command installs the entire SPM/2 product with the exception of the API.
ΓòÉΓòÉΓòÉ 7.3.1.3. Installing the Distributed Feature ΓòÉΓòÉΓòÉ
To install the SPM/2 2.0 Distributed Feature, which contains the files
necessary to collect data on a monitored workstation, insert diskette 1 into a
diskette drive and at an OS/2 command prompt type:
source\SPMINST /Distftr
where source is the name of the diskette drive.
Note: Use the /Distftr parameter to install only the Distributed Feature
files. Do not use the /Distftr parameter if you want to install all
the SPM/2 program files.
ΓòÉΓòÉΓòÉ 7.3.1.4. Installing the Application Programming Interface ΓòÉΓòÉΓòÉ
To install the application programming interface (API) features, insert
diskette 1 into a diskette drive and at an OS/2 command prompt type:
source\SPMINST /API
where source is the name of the diskette drive. This command create an \API
subdirectory under the main SPM/2 directory. This subdirectory contains the
files and documentation needed to program to the SPM/2 API.
ΓòÉΓòÉΓòÉ 7.3.1.5. Uninstalling the SPM/2 Program Interface ΓòÉΓòÉΓòÉ
To remove the installed SPM/2 2.0 program from the path specified during the
original installation:
1. Terminate all foreground SPM/2 functions. (/Uninstall stops any
background processes, including SPMNBL and SPMSNAP. Termination of
background processes takes up to a minute to complete.)
2. Insert diskette 1 into a diskette drive, and at an OS/2 command prompt
type:
source\SPMINST /T:target /Uninstall
where source is the name of the diskette drive, and target is the fully
qualified path of the directory where the SPM/2 program was installed.
Note: The SPMINST.EXE file is located on the original SPM/2 2.0 licensed
program product diskette 1.
ΓòÉΓòÉΓòÉ <hidden> Example of Local Installation ΓòÉΓòÉΓòÉ
An example of local installation follows:
A:\SPMINST /T:D:\PERFORM /API
Component Action
A: Specifies that the installation files are on a
diskette in the A: drive.
/T:D:\PERFORM Specifies that the SPM/2 program files be installed
in the PERFORM directory on the D: drive, instead of
in the SPM2V2 directory on the root drive.
/API Specifies that the application programming interface
files be installed.
ΓòÉΓòÉΓòÉ 7.3.2. Remote Installation: Overview ΓòÉΓòÉΓòÉ
You can install SPM/2 2.0 remotely; that is, install the program files from a
code server to one or more requesters or servers. You can perform either of
two types of remote installation:
o Attended remote installation
o Unattended (automated) remote installation initiated by a software
distribution manager (SDM), such as the LAN Configuration Installation
Distribution Utility (LAN CID Utility).
Notes:
1. Load the original SPM/2 2.0 licensed program product files from the
diskettes onto the code server using the OS/2 XCOPY command.
2. IBM Network Transport Services/2 (NTS/2) is required for unattended
remote installation.
Remote installation example
ΓòÉΓòÉΓòÉ 7.3.2.1. Attended Remote Installation ΓòÉΓòÉΓòÉ
At a command prompt on the workstation where SPM/2 2.0 is to be installed,
type:
source\SPMINST /S:sourcePath
where source is the fully qualified path of the SPM/2 installation program (the
SPMINST.EXE file), and sourcePath is the fully qualified path of the SPM/2 2.0
program files.
Notes:
1. Both source and sourcePath are redirected drives and generally the
same.
2. No response files are necessary for the SPM/2 attended remote
installation.
ΓòÉΓòÉΓòÉ 7.3.2.2. Unattended Remote Installation ΓòÉΓòÉΓòÉ
Embed the SPM/2 installation command in a REXX command file that can be
interpreted by the LAN CID Utility. In the installation command, include the
parameter:
/L1:logFileName
where logFileName is the target path and file name of the copy of the
SPMLOG.LOG file that is written to the code server. Do not include a file name
extension; the CID program provides an extension of .LOG.
For example:
W:\SPMINST /S:W:\SPM2V2 /L1:X:\INSTERR
For more information about the LAN CID Utility and redirected installation, see
the IBM Network Transport Services/2 Redirected Installation and Configuration
Guide.
ΓòÉΓòÉΓòÉ <hidden> Example of Remote Installation ΓòÉΓòÉΓòÉ
An example of remote installation follows:
W:\SPMINST /S:W:\SPMPGM /T:D:\PERFORM /Distftr
Component Action
W: Specifies that the SPM/2 installation program
(SPMINST.EXE) is found in redirected drive W: on the
code server.
/S:W:\SPMPGM Specifies that the SPM/2 program files are found in
the W:\SPMPGM directory on the code server.
/T:D:\PERFORM Specifies that the SPM/2 program files be installed
in the PERFORM directory on the D: drive, instead of
in the SPM2V2 directory on the root drive.
/Distftr Specifies that only the Distributed Feature files be
installed.
ΓòÉΓòÉΓòÉ <hidden> Source - Source Path for Installation Files ΓòÉΓòÉΓòÉ
Local installation
For source, specify the appropriate diskette drive (for example, A:).
Remote installation
For source, specify the fully qualified path to the SPMINST.EXE file on
the code server. (The SPMINST.EXE file is the installation program.)
ΓòÉΓòÉΓòÉ <hidden> /S: - Remote Source Path for Installation Files ΓòÉΓòÉΓòÉ
Use the /S: parameter during remote installation to specify the fully qualified
path to the SPM/2 2.0 program files (that is, when those files are located on a
workstation other than the one on which you run SPMINST).
ΓòÉΓòÉΓòÉ <hidden> /L1: - SPM/2 Installation Error Log Target Path ΓòÉΓòÉΓòÉ
Use the /L1: parameter during remote installation to specify the fully
qualified target path and file name of the SPM/2 installation error log file.
Do not specify an extension for the file name; the CID program provides the
extension .LOG.
Note: If you do not use the /L1: parameter, the default installation error
log path and file name is OS2\INSTALL\SPMLOG.LOG.
ΓòÉΓòÉΓòÉ <hidden> /T: - SPM/2 Files Target Path ΓòÉΓòÉΓòÉ
Use the /T: parameter to specify the fully qualified path of the directory
where the SPM/2 files are to be installed or uninstalled. If this parameter is
not selected, the default path is root:\SPM2V2, where root is the root
directory.
ΓòÉΓòÉΓòÉ <hidden> /Distftr - Distributed Feature ΓòÉΓòÉΓòÉ
Use the /Distftr parameter to install or uninstall the SPM/2 2.0 Distributed
Feature, which includes the Data Collection Facility and the NETBIOS Listener.
ΓòÉΓòÉΓòÉ <hidden> /API - Application Programming Interface ΓòÉΓòÉΓòÉ
Use the /API parameter to install or uninstall the SPM/2 2.0 application
programming interface (API) features in the \API subdirectory of the target
directory for the SPM/2 program files.
ΓòÉΓòÉΓòÉ <hidden> /Uninstall - Remove SPM/2 ΓòÉΓòÉΓòÉ
Use the /Uninstall parameter to remove SPM/2 2.0 from the default target
directory or the path specified by the /T:target parameter when SPM/2 was
installed. When you uninstall SPM/2, all SPM/2 statements are removed from the
CONFIG.SYS file and all SPM/2 program files are deleted from the directory in
which they were installed. However, no user-created files are deleted.
Notes:
1. Terminate all SPM/2 functions before using the /Uninstall parameter.
/Uninstall stops the SPMNBL and SPMSNAP background processes for you.
2. The SPMINST.EXE file is not installed with the SPM/2 program files.
Therefore, to use the SPMINST /Uninstall command, you must have the
SPMINST.EXE file available on diskette or on another system.
3. If the SPM/2 program files were not installed in the default directory
(root:\SPM2V2), you must use the /T: target parameter to specify the
location of the SPM/2 program files when you use the /Uninstall
parameter.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMINST ? provides a syntax diagram and brief help text for the SPMINST
command.
ΓòÉΓòÉΓòÉ 7.4. SPMHELP Command ΓòÉΓòÉΓòÉ
SPMHELP [
messageNumber
| ?
]
At an OS/2 command prompt, type SPMHELP to access the guidance and reference
information.
ΓòÉΓòÉΓòÉ <hidden> messageNumber ΓòÉΓòÉΓòÉ
To get help on a specific message, type SPMHELP followed by the message number.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMHELP ? provides a syntax diagram and brief help text for the SPMHELP
command.
ΓòÉΓòÉΓòÉ 7.5. SPM Command ΓòÉΓòÉΓòÉ
The SPM command has no parameters. To start an SPM/2 control window, at an
OS/2 command prompt, type:
SPM
ΓòÉΓòÉΓòÉ 7.6. SPMLOGF Command ΓòÉΓòÉΓòÉ
SPMLOGF {
(FileName.LOG
Comment
SampleInterval
SamplesPerRecord
WorkingSetInterval
GroupNumbers
NodeNames)
|?
}
Example
ΓòÉΓòÉΓòÉ <hidden> FileName.LOG ΓòÉΓòÉΓòÉ
For FileName.LOG, specify a name for the new monitor session file. The file
name extension must be .LOG. You cannot specify the name of an existing file
for this parameter.
ΓòÉΓòÉΓòÉ <hidden> Comment ΓòÉΓòÉΓòÉ
For Comment, specify a character string without blanks. For example,
EmployeeAbsences. The comment field is required for the SPMLOGF command.
ΓòÉΓòÉΓòÉ <hidden> SampleInterval ΓòÉΓòÉΓòÉ
For SampleInterval, specify the number of seconds between samples. This number
must be an integer.
ΓòÉΓòÉΓòÉ <hidden> SamplesPerRecord ΓòÉΓòÉΓòÉ
For SamplesPerRecord, specify the number of samples to summarize into a log
record. This number must be an integer.
ΓòÉΓòÉΓòÉ <hidden> WorkingSetInterval ΓòÉΓòÉΓòÉ
For WorkingSetInterval, specify the time frame, in seconds, used in determining
the amount of physical RAM in the working set.
ΓòÉΓòÉΓòÉ <hidden> GroupNumbers ΓòÉΓòÉΓòÉ
For GroupNumbers, specify one or more ordinals of the resource groups on which
to collect data. See Resource Group Ordinals for a list of resource groups and
their corresponding ordinals.
ΓòÉΓòÉΓòÉ <hidden> NodeNames ΓòÉΓòÉΓòÉ
For NodeNames, specify the names, separated by blanks, of one or more
workstations on which to collect data. Names are limited to 8 characters and
must be entered in capital letters. The first name must be nonnumeric.
ΓòÉΓòÉΓòÉ <hidden> Question Mark ΓòÉΓòÉΓòÉ
SPMLOGF ? provides a syntax diagram and brief help text for the SPMLOGF
command.
ΓòÉΓòÉΓòÉ <hidden> Example of SPMLOGF Command ΓòÉΓòÉΓòÉ
An example of the SPMLOGF command follows:
SPMLOGF SAMPLE.LOG EngineeringLab 10 6 30 2 4 LABLOOPA LABLOOPB
Component Action
SAMPLE.LOG Names the new monitor session file SAMPLE.LOG.
EngineeringLab Comment that identifies this monitor session file as
pertaining to workstations in the Engineering Lab.
10 Specifies that the data is sampled every 10 seconds.
6 Specifies that every 6 samples are summarized to make
one record in the monitor session (.LOG) file. Since
data is sampled every 10 seconds, and every 6 samples
are summarized, there would be a record written to
the monitor session file once each minute.
30 Specifies a 30-second time frame used in determining
the amount of physical RAM in the working set.
2 4 Specifies that resources 2 and 4 are collected.
LABLOOPA LABLOOPB Specifies that data is collected from the two
workstations named LABLOOPA and LABLOOPB.
ΓòÉΓòÉΓòÉ 7.7. SPMLOGFX Command ΓòÉΓòÉΓòÉ
SPMLOGFX {
filename.LOG
[newfilename.LOG]
| ?
}
Note: Use the SPMLOGFX command to recover a monitor session (.LOG) file that
has been corrupted. A monitor session (.LOG) file can be corrupted
when a machine is turned off or rebooted without requesting a normal
stop for the (.LOG) file. You can use the SPMISTOP command or the
SPM/2 control window to request a normal stop for the monitor session
(.LOG) file.
ΓòÉΓòÉΓòÉ <hidden> Filename.LOG ΓòÉΓòÉΓòÉ
For filename.LOG, specify the name of the monitor session file that was
corrupted. The file name extension must be .LOG.
ΓòÉΓòÉΓòÉ <hidden> Newfilename.LOG ΓòÉΓòÉΓòÉ
For newfilename.LOG, specify a name for the new monitor session file. The file
name extension must be .LOG. This parameter is optional.
Notes:
1. If you specify an existing monitor session (.LOG) file for
newfilename.LOG, it overwrites that file.
2. If you do not specify the newfilename.LOG parameter, the data in the
original monitor session (.LOG) file is replaced with the recovered
data.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMLOGFX ? provides a syntax diagram and brief help text for the SPMLOGFX
command.
ΓòÉΓòÉΓòÉ 7.8. SPMNBL Command ΓòÉΓòÉΓòÉ
SPMNBL { /LISTEN
| /STOPLISTEN
| /HALTALL
| ?
}
ΓòÉΓòÉΓòÉ <hidden> /LISTEN - Start the NETBIOS Listener ΓòÉΓòÉΓòÉ
Use the /LISTEN parameter to start the NETBIOS Listener on the local system.
Once started, the Listener waits for requests to start the Data Collection
Facility (for example, when you start recording or graphing).
Normally, the NETBIOS Listener is started by the CONFIG.SYS file when you start
your system. However, if you have stopped the NETBIOS Listener, you must
restart it using the /LISTEN parameter.
You do not need to have NETBIOS installed in order to use the NETBIOS Listener.
However, you do need the NETBIOS Listener program, the main function of which
is to start the SPM/2 Data Collection Facility whenever requested by a new
monitor (SPMILOG) session.
In a local system, SPMNBL just waits for requests from a local instance of
SPMILOG. In a system that has NETBIOS installed, SPMNBL waits for requests to
come across the NETBIOS network from remote instances of SPMILOG, in addition
to waiting for requests from a local instance of SPMILOG.
ΓòÉΓòÉΓòÉ <hidden> /STOPLISTEN - Stop the NETBIOS Listener ΓòÉΓòÉΓòÉ
Use the /STOPLISTEN parameter to stop the NETBIOS Listener. Data collection
continues, but no new requests to start a Data Collection Facility session can
be received or processed by the Listener.
ΓòÉΓòÉΓòÉ <hidden> /HALTALL - Immediate Stop of Data Collection Facility ΓòÉΓòÉΓòÉ
Use the /HALTALL parameter to stop the Data Collection Facility. The main use
of this parameter is in error recovery. If the Data Collection Facility does
not shut down in an orderly manner, the /HALTALL parameter can be used to force
it to shut down.
CAUTION:
Using the /HALTALL parameter causes the monitor session (.LOG) files to be
corrupted.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMNBL ? provides a syntax diagram and brief help text for the SPMNBL command.
ΓòÉΓòÉΓòÉ 7.9. SPMISTRT Command ΓòÉΓòÉΓòÉ
SPMISTRT {
filename.LOG [/R0]
| ?
}
ΓòÉΓòÉΓòÉ <hidden> filename.LOG ΓòÉΓòÉΓòÉ
For filename.LOG, specify the name of the monitor session file, which must have
the extension .LOG.
ΓòÉΓòÉΓòÉ <hidden> /R0 ΓòÉΓòÉΓòÉ
Use the /R0 parameter to start a monitor (SPMILOG) session that collects data
but does not record it in the monitor session (.LOG) file. This parameter is
useful if you want only to graph the data (in which case you would issue an
SPMMON command following the SPMISTRT command).
Note: If you want to start a monitor session that records data to the .LOG
file, issue the SPMISTRT command without the /R0 parameter.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMISTRT ? provides a syntax diagram and brief help text for the SPMISTRT
command.
ΓòÉΓòÉΓòÉ 7.10. SPMMON Command ΓòÉΓòÉΓòÉ
SPMMON {
(filename.LOG
[/P]
[/N workstationName]
| ?
}
Note: The SPMISTRT command must be issued before the SPMMON command if you
want to graph an active monitor session.
ΓòÉΓòÉΓòÉ <hidden> /P - Playback ΓòÉΓòÉΓòÉ
Use the /P parameter to graph previously recorded data. You do not need to
start an active monitor session when you use this parameter.
ΓòÉΓòÉΓòÉ <hidden> /N - Specify Workstation Name ΓòÉΓòÉΓòÉ
Use the /N parameter to specify the name of the workstation you want to
monitor.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMMON ? provides a syntax diagram and brief help text for the SPMMON command.
ΓòÉΓòÉΓòÉ 7.11. SPMISTOP Command ΓòÉΓòÉΓòÉ
SPMISTOP {
/DRAIN filename.LOG
| /HALT filename.LOG
| /DRAINALL
| /HALTALL
| ?
}
ΓòÉΓòÉΓòÉ <hidden> /DRAIN - Normal Stop for One File ΓòÉΓòÉΓòÉ
Use the /DRAIN parameter to request a normal stop for the named monitor session
(.LOG) file. This is the equivalent of stopping one active monitor session
file using the SPM/2 control window.
ΓòÉΓòÉΓòÉ <hidden> /HALT - Immediate Stop for One File ΓòÉΓòÉΓòÉ
Use the /HALT parameter to request an immediate stop for the named monitor
session (.LOG) file. The main use of this parameter is in error recovery. If
the monitor session does not shut down using the /DRAIN parameter, the /HALT
parameter can be used to force it to shut down.
CAUTION:
Using the /HALT parameter causes the monitor session (.LOG) file to be
corrupted.
ΓòÉΓòÉΓòÉ <hidden> /DRAINALL - Normal Stop for All Files ΓòÉΓòÉΓòÉ
Use the /DRAINALL parameter to request a normal stop for all active monitor
session (.LOG) files. This is the equivalent of stopping all active monitor
session files using the SPM/2 control window.
ΓòÉΓòÉΓòÉ <hidden> /HALTALL - Immediate Stop for All Files ΓòÉΓòÉΓòÉ
Use the /HALTALL parameter to request an immediate stop for all active monitor
session (.LOG) files. The main use of this parameter is in error recovery. If
the monitor sessions do not shut down in an orderly manner, the /HALT parameter
can be used to force them to shut down.
CAUTION:
Using the /HALTALL parameter causes the monitor session (.LOG) files to be
corrupted.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMISTOP ? provides a syntax diagram and brief help text for the SPMISTOP
command.
ΓòÉΓòÉΓòÉ 7.12. SPMRDF Command ΓòÉΓòÉΓòÉ
SPMRDF {
filename.RDF
| ?
}
ΓòÉΓòÉΓòÉ <hidden> Filename.RDF ΓòÉΓòÉΓòÉ
For filename.RDF, specify the name of the report description file, which must
have the extension .RDF.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMRDF ? provides a syntax diagram and brief help text for the SPMRDF command.
ΓòÉΓòÉΓòÉ 7.13. SPMRDFI Command ΓòÉΓòÉΓòÉ
SPMRDFI {
filename.RDI
filename.RDF
| ?
}
ΓòÉΓòÉΓòÉ 7.13.1. Filename.RDI ΓòÉΓòÉΓòÉ
For filename.RDI, specify the name of the input file, which must have the
extension .RDI. This file contains the specifications for the report
description (.RDF) file.
Select one:
o Input file format
o Hints for creating an .RDF file
ΓòÉΓòÉΓòÉ 7.13.1.1. Input File Format ΓòÉΓòÉΓòÉ
An example of an input file follows:
OPT 01/01/1993:02:35:00 01/02/1993:14:55:00 00:05:00 'Claires Report'
SUM wkst inact unassign
GROUPS 3 4 5 6 7 9 10 15 16 42 46 47
APPL OS2 PULSE PMSHELL
APPL SPM SPM SPMILOG SPMMON SPMDCF SPMNBL
ILOG r:\sample.log 'this is a sample log' WKST01 WKST02
ILOG local.log 'this is a local log' SRVR00 WKST03
While you modify the filename.RDI file, keep the following guidelines in mind:
o All input statements must begin at column 1.
o Dates must be specified in month, day, year, hour, minute, second
(mm/dd/yyyy:hh:mm:ss) format.
o Time periods must be specified in hour, minute, second (hh:mm:ss) 24-hour
format. Do not suppress leading zeros.
ΓòÉΓòÉΓòÉ <hidden> OPT Input Statement ΓòÉΓòÉΓòÉ
The syntax for the OPT input statement follows:
OPT start stop intvl [ 'title' ] [ DEC=value ] [ SEP=value ]
where:
start Specifies the start date and time at which to begin
analyzing data. This option is required. If the
start date and time are set to all zeros, the
defaults for the start date and time are the earliest
start date and time at which data was collected in
the .LOG file.
stop Specifies the stop date and time at which to stop
analyzing data. This option is required. If the stop
date and time are set to all zeros, the defaults for
the stop date and time are the latest stop date and
time at which data was collected in the .LOG file.
intvl Specifies the interval at which data should be
summarized. This option is required. If the interval
is set to all zeros, the default is the range of time
that falls between the earliest start date and time
and the latest stop date and time at which data was
collected in the .LOG file.
'title' Specifies the title for the new report that you type
in the first panel after opening an .RDF file. This
title is optional.
DEC= Specifies a character (country option) to be used as
a decimal point in the processed report. The default
character is a period (.).
SEP= Specifies a character (country option) to be used for
separating lists in the processed report. The
default character is a comma (,).
ΓòÉΓòÉΓòÉ <hidden> SUM, TAB, or DMP Input Statement ΓòÉΓòÉΓòÉ
Specify one of the following options for the report format:
SUM Specifies that a summary report file with the
extension .SUM be generated.
TAB Specifies that a tabular report file with the
extension .TAB be generated.
DMP Specifies that a dump report file with the extension
.DMP be generated.
The syntax for the SUM input statement follows:
SUM [ WKST | APPL | PROCESS | THREAD ] [ INACT ] [ UNASSIGN ]
where:
WKST Specifies that the data is summarized as total
activity for each workstation.
APPL Specifies that the data for the activity is
summarized both by workstation and by each individual
application running at that workstation.
PROCESS Specifies that in addition to workstation totals and
application breakdown, activity is also listed by
individual process.
THREAD Specifies that activity is summarized at the thread
level and at every higher level (that is workstation,
application, and process).
INACT Specifies that all data, including data for nonactive
applications, processes, threads, or files be
included in the summary report. In other words, if
the activity for any application, process, thread, or
file is zero (no activity), specify INACT to include
this information in the summary report. If you do not
specify INACT, only data from applications,
processes, threads, or files that contain activity is
included in the summary report.
UNASSIGN Specifies that SPM/2 will report on performance data
for unassigned processes. See Report Unassigned
Processes for more information.
The syntax for the TAB input statement follows:
TAB [ WKST | RESOURCE ] [ UNIT | PERCENT ] [ DELIMITED ]
where:
WKST Specifies that the report is formatted with the
workstation name as the column heading.
RESOURCE Specifies that the report is formatted with the
resource data as the column heading.
UNIT Specifies that the resource data is represented by
unit value. (For example, bytes or number of
occurrences.)
PERCENT Specifies that the resource data is represented by a
percentage.
DELIMITED Specifies that the report format is spreadsheet
compatible and can be imported to various spreadsheet
programs. See Spreadsheet Compatible Reports for
more information.
The syntax for the DMP input statement follows:
DMP
The DMP input statement generates a dump report file with the extension .DMP.
This report format displays values for the lowest level performance counters
and timers as sampled at the recording frequency. The summary interval is
always the same as the recording frequency. The DMP input statement has no
options.
ΓòÉΓòÉΓòÉ <hidden> GROUP Input Statement ΓòÉΓòÉΓòÉ
The syntax for the GROUPS input statement follows:
GROUPS ggg ...
For ggg ..., which represents a resource group number, specify one or more
ordinals of the resource groups on which to collect data. See Resource Group
Ordinals for a list of resource groups and their corresponding ordinals.
Note: Resource groups can be specified only for the summary report.
ΓòÉΓòÉΓòÉ <hidden> APPL Input Statement ΓòÉΓòÉΓòÉ
The syntax for the APPL input statement follows:
APPL application [ program ... ]
where:
application Specifies the user-defined name for an application.
program ... Specifies the name of every program (.EXE) file to be
included in the application.
Notes:
1. You must specify the APPL input statement each time you want to create
a new application definition.
2. You can use the APPL input statement only for application, process, or
thread summary reports.
ΓòÉΓòÉΓòÉ <hidden> ILOG Input Statement ΓòÉΓòÉΓòÉ
The syntax for the ILOG input statement follows:
ILOG ilogname 'title' [ wkstname ... ]
where:
ilogname Specifies a monitor session (.LOG) file name.
'title' Specifies a descriptive name to identify the monitor
session (.LOG) file. This name is optional.
wkstname ... Specifies each workstation, or node to be included in
the report. You must specify at least one
workstation. Use capital letters to specify the
workstation name.
Note: You must specify the ILOG input statement each time you want to include
a monitor session (.LOG) file in the report.
ΓòÉΓòÉΓòÉ 7.13.1.2. Hints for Creating an .RDF File ΓòÉΓòÉΓòÉ
After you have created a new .RDF file, you can verify the contents of this
file by performing the following tasks:
1. To create the filename.LST file, which lists the contents of the new .RDF
file, at an OS/2 command prompt, type:
SPMRDF filename.RDF /F
2. To view the contents of the .RDF file, at an OS/2 command prompt, type:
e filename.LST
ΓòÉΓòÉΓòÉ <hidden> Filename.RDF ΓòÉΓòÉΓòÉ
For filename.RDF, specify the name of the output report description file, which
must have the extension .RDF.
ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
SPMRDFI ? provides a syntax diagram and brief help text for the SPMRDFI
command.
ΓòÉΓòÉΓòÉ 7.14. SPMSNAPP Command ΓòÉΓòÉΓòÉ
SPMSNAPP [?]
At an OS/2 command prompt, type SPMSNAPP to format data in the SPMSNAP.ERR log
file so that it can be displayed on the screen. You can redirect the formatted
data to an output file by using the OS/2 > redirect command.
SPMSNAPP ? provides a syntax diagram and brief help text for the SPMSNAPP
command.
ΓòÉΓòÉΓòÉ 8. SPM/2 Application Programming Interface: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
SPM/2 provides an application programming interface (API) that allows
user-written 16-bit or 32-bit applications in the C programming language to
communicate with the SPM/2 Data Collection Facility, active monitor (SPMILOG)
sessions, and monitor session (.LOG) files.
Using the SPM/2 API, you can perform the following tasks for a local machine or
a network:
o Determine active SPM/2 components
o Initiate and terminate data collection sessions
o Retrieve real-time and historical data.
The same API that you access for your applications is used by the logging,
graphing, and reporting applications for their functions. See the Component
Relationships flowchart.
The SPM/2 API accesses different components to retrieve real-time or
historical data. See the Accessing Real-Time and Historical Data
illustration.
More
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Compile information
o Notes on functionality
o General code definitions
o Log file-specific statements
o Functions
o Return codes.
ΓòÉΓòÉΓòÉ <hidden> SPM/2 API: More ΓòÉΓòÉΓòÉ
There are two principal uses for the SPM/2 API:
o Accessing historical data from a monitor session (.LOG) file
o Accessing real-time data from the Data Collection Facility.
Although several report options are available through the SPM/2 Presentation
Manager interface, at times you may want to use your own customized format to
create reports that analyze specific performance factors. The SPM/2 API
allows you to access the historical data you need for those reports. For
example, your application could use the SPM/2 API to extract CPU and file
activity from a monitor session (.LOG) file, correlate the two, and generate a
custom report.
Using the SPM/2 API to access real-time data allows you to create new
performance applications for uses such as threshold checking, alert
generation, additional graphing capability, or network monitoring.
The SPM/2 API can also be used to dynamically adjust the way your application
runs. For example, if you are running your application on a system with 16MB
of RAM, you might use the SPM/2 API to determine the amount of RAM in the
working set. If the working set is 6MB, then your application would "know"
that there is 10MB of RAM left for its use.
ΓòÉΓòÉΓòÉ 8.1. Compile Information ΓòÉΓòÉΓòÉ
The SPM/2 API is compatible with both 16-bit and 32-bit C compilers. To use the
SPM/2 API, you must install SPM/2 with the /API parameter. All files necessary
to program to the SPM/2 API are in the \API subdirectory of the main SPM/2
subdirectory.
The SPM/2 API functions reside in a dynamic link libraries (DLL) called
SPMAPI.DLL and DATETIME.DLL, which are included on your original SPM/2 program
diskettes.
Include the following files when you compile your program:
SPMAPI.H API definitions.
SPMCTRGP.H Structure definitions for data returned.
Link the SPMAPI.LIB library with your program. Linking with this library
tells your program the address of the SPM/2 functions in the .DLL libraries.
ΓòÉΓòÉΓòÉ 8.2. Notes on Functionality ΓòÉΓòÉΓòÉ
1. The monitor (SPMILOG) session directly processes the log file header and
configures the Data Collection Facility sessions.
2. Use the manifest constants provided.
3. SPM uses date, time, and datetime fields that are stored as floating point
numbers. The numbers used are compatible with the time value numbers used
by most statistical packages.
4. The log files and records returned across the real-time interface are
described in the SPMAPI.H and SPMCTRGP.H files. The records are returned
as a fixed format header and a set of additional segments which represent
groups being collected.
5. All resource collection groups are predefined and delivered with SPM/2.
Additional groups can be added by IBM, other vendors, or the end user as
user metrics. Adding a user metric generates a new SPMCTRGP.H file that
includes all locally known definitions of resource collection groups.
6. A resource collection group appears in a record only if it is active
during a collection session. There is no guarantee that any particular
group will be in a particular record.
7. In general, a report program accesses the header of a record to determine
if the record contains information about a Data Collection Facility
session (each record contains data from only one Data Collection Facility
session). If the header indicates that the record contains information of
interest, the report program scans the substructures collected for that
Data Collection Facility to find the data.
If a Data Collection Facility session does not supply data in a reporting
period, no records may exist for that session and reporting period. If a
Data Collection Facility session supplies a large amount of data in a
reporting period, two or more records may exist for that session and
reporting period.
8. A set of indicators in the collection record shows what problems, if any,
were encountered with a monitor (SPMILOG) session in the period.
ΓòÉΓòÉΓòÉ 8.3. General Definitions ΓòÉΓòÉΓòÉ
The following general structures, functions, pointers, variables, constants,
and data types have been defined for the SPM/2 API:
o OS/2 data types
o FPDATETIME, FPDATE, and FPTIME
o TIMEPERIOD and TOD
o EXTENDEDRC and PEXTENDEDRC
o FILTERSPEC, PFILTERSPEC, and PPFILTERSPEC
o LOGFILEHANDLE and PLOGFILEHANDLE
o QUOPTION and PQUOPTION
o QUTIMES and PQUTIMES
o QUERYHDR and PQUERYHDR
o SESSIONSPEC
o Definitions of constants.
ΓòÉΓòÉΓòÉ 8.3.1. OS/2 Data Types ΓòÉΓòÉΓòÉ
BOOL Unsigned short integer (flag indicating either true or false)
BYTE Unsigned character
HSEM Void (handle for a semaphore)
PSZ Unsigned character (pointer to a null-terminated string)
PUSHORT Pointer to an unsigned short integer
PVOID Pointer to a void
UCHAR Unsigned character
ULONG Unsigned long integer
USHORT Unsigned short integer
ΓòÉΓòÉΓòÉ 8.3.2. FPDATETIME, FPDATE, and FPTIME ΓòÉΓòÉΓòÉ
/* FPDATETIME:
this item is the number of seconds and fractions of a second
since 1Jan1960.
*/
typedef double FPDATETIME; /* dt */
/* DATE:
this item is the number of days since 1Jan1960. To convert to
FPDATETIME multiply by 24*60*60.
*/
typedef float FPDATE; /* date */
/* TIME:
this item is the number of seconds and parts of seconds.
*/
typedef float FPTIME; /* time */
ΓòÉΓòÉΓòÉ 8.3.3. TIMEPERIOD and TOD ΓòÉΓòÉΓòÉ
/* TIMEPERIOD:
this item is a number of seconds and parts of a second.
*/
typedef FPTIME TIMEPERIOD; /* tp */
/* TOD:
this item is a number of seconds and fractions of a second
since midnight.
*/
typedef FPTIME TOD; /* tod */
ΓòÉΓòÉΓòÉ 8.3.4. EXTENDEDRC and PEXTENDEDRC ΓòÉΓòÉΓòÉ
typedef struct _EXTENDEDRC
{
USHORT FunctionCode; /* the function being executed when */
USHORT FunctionRC; /* this error resulted */
} EXTENDEDRC;
typedef EXTENDEDRC * SPMPTR PEXTENDEDRC;
ΓòÉΓòÉΓòÉ 8.3.5. FILTERSPEC, PFILTERSPEC, and PPFILTERSPEC ΓòÉΓòÉΓòÉ
typedef struct _FILTERSPEC
/*
Determines the range of times for which data will be read,
either from the .LOG file or in real time. It is also the
underlying structure in the vector that is returned on a
Query request that returns the recording intervals on a
specific .LOG file.
*/
{
FPDATETIME dtStartDateTime;
FPDATETIME dtEndDateTime;
}FILTERSPEC;
typedef FILTERSPEC * SPMPTR PFILTERSPEC;
typedef PFILTERSPEC * SPMPTR PPFILTERSPEC;
ΓòÉΓòÉΓòÉ 8.3.6. LOGFILEHANDLE and PLOGFILEHANDLE ΓòÉΓòÉΓòÉ
typedef struct _LOGFILEHANDLE
{
BYTE cReserved[64]; /* handle of log file */
} LOGFILEHANDLE;
typedef LOGFILEHANDLE * SPMPTR PLOGFILEHANDLE;
ΓòÉΓòÉΓòÉ 8.3.7. QUOPTION and PQUOPTION ΓòÉΓòÉΓòÉ
typedef USHORT QUOPTION;
typedef QUOPTION * SPMPTR PQUOPTION;
ΓòÉΓòÉΓòÉ 8.3.8. QUTIMES and PQUTIMES ΓòÉΓòÉΓòÉ
typedef struct _QUTIMES
{
FPDATETIME dtStartTime;
FPDATETIME dtEndTime;
}QUTIMES;
typedef QUTIMES * SPMPTR PQUTIMES;
ΓòÉΓòÉΓòÉ 8.3.9. QUERYHDR and PQUERYHDR ΓòÉΓòÉΓòÉ
typedef struct _QUERYHDR
{
USHORT usResultMax; /* filled in by the caller */
USHORT usItemsReturned; /* which may be zero if none are found */
PVOID SPMPTR pbResult; /* a pointer to the returned value(s) */
}QUERYHDR;
typedef QUERYHDR * SPMPTR PQUERYHDR;
ΓòÉΓòÉΓòÉ 8.3.10. SESSIONSPEC ΓòÉΓòÉΓòÉ
typedef struct _SESSIONSPEC
{
FILTERSPEC fsFilter;
CHAR szComponentName[1];
}SESSIONSPEC;
typedef SESSIONSPEC * SPMPTR PSESSIONSPEC;
typedef PSESSIONSPEC * SPMPTR PPSESSIONSPEC;
ΓòÉΓòÉΓòÉ 8.3.11. Definitions of Constants ΓòÉΓòÉΓòÉ
#define API_GENERAL_TIMEOUT 30000
#define ILOG_GENERAL_TIMEOUT 15000
#define ILOG_HANDSHAKE_TIMEOUT 30000
#define SPMAPI_PGM_NAME "spmilog.exe"
/*
Command Constants:
*/
#define SPMAPI_DRAIN 1
#define SPMAPI_DRAIN_ALL 2
#define SPMAPI_HALT 3
#define SPMAPI_HALT_ALL 4
#define SPMAPI_ALLOC 15
/*
API Set Constants:
*/
#define SPM_SET_RECORD_MULT 18
/*
API Query Constants:
*/
#define SPM_QU_DCF_LIST 5
#define SPM_QU_ILOG_LIST 6
#define SPM_QU_ACTIVE_DCF_NODES 7
#define SPM_QU_ILOG_STAT 8
#define SPM_QU_CFGD_GROUPS 9
#define SPM_QU_CFGD_DCF_NODES 10
#define SPM_QU_CFGD_PERIODS 11
#define SPM_QU_L_ILOG_LIST 16
#define SPM_QU_ILOG_NAME 17
#define SPM_QU_RECD_DCF_NODES 18
#define SPM_QU_HIST_GROUPS 19
#define SPM_QU_CFGD_TIMES 20
#define SPM_QU_CFGD_GROUPS_PERIOD 21
#define SPM_QU_CFGD_DCF_NODES_PERIOD 22
#define SPM_QU_CFGD_TIMES_PERIOD 23
ΓòÉΓòÉΓòÉ 8.4. Log File-Specific Statements ΓòÉΓòÉΓòÉ
The following conditional compile statements relating to monitor session (.LOG)
files have been defined:
o SPM_NODENAME_SIZE
o PID1632 and TID1632
o BASICHDR
o RBA
o ROF
o VRM
o DATARECHDR and DCFGROUP
o INSTANCEBLOCK.
ΓòÉΓòÉΓòÉ 8.4.1. SPM_NODENAME_SIZE ΓòÉΓòÉΓòÉ
#define SPM_NODENAME_LEN 15
#define SPM_NODENAME_SIZE (SPM_NODENAME_LEN+1)
#define SPM_PWD_LEN 9
#define SPM_PWD_SIZE (SPM_PWD_LEN+1)
ΓòÉΓòÉΓòÉ 8.4.2. PID1632 and TID1632 ΓòÉΓòÉΓòÉ
/*
Note: the following definitions and their use
fix a problem with a PID and TID size difference between
the 16 & 32 bit tool kits.
*/
#define PID1632 ULONG
#define TID1632 ULONG
ΓòÉΓòÉΓòÉ 8.4.3. BASICHDR ΓòÉΓòÉΓòÉ
/*
BASICHDR:
In general the monitor session (.LOG) file is a typical
file, but it contains a variety of record types. The
.LOG file is readable as a sequential file of variable length
records, each with a BASICHDR of the following form:
*/
typedef struct _BASICHDR
{
USHORT usLL; /*
Noninclusive length of this
record.
Note: Noninclusive length is
used here because records are
actually read with two
DosRead() functions. The first
read is always a BASICHDR and
the next read is for the value
contained in the usLL. If the
RecordType or SubType is not
interesting, the file can be
positioned using the usLL
directly.
*/
UCHAR ucRecordSeries; /*
LLS: overall .LOG file format
indicator. If the .LOG file
format changes in a way that
precludes processing by a
program written for a prior
format, this field will
indicate that fact. It is
inadvisable to attempt to
process a .LOG file whose series
is not known to you. The initial
value is zero. This field is
reserved.
*/
UCHAR ucRecordType; /* possible record types */
UCHAR ucRecordSubType; /* possible record subtypes */
/*
Note:
The record type and subtype fields must be checked to ensure
that they are the type and subtype expected. It is inadvisable
to attempt to process a type or subtype that is undocumented.
*/
}BASICHDR;
ΓòÉΓòÉΓòÉ 8.4.4. RBA ΓòÉΓòÉΓòÉ
/*
RBA:
an RBA is the relative byte address of a record in the
.LOG file
*/
typedef ULONG RBA; /* rba */
ΓòÉΓòÉΓòÉ 8.4.5. ROF ΓòÉΓòÉΓòÉ
/*
ROF:
a ROF is the byte offset of a field in the same record of the
.LOG file. It contains the number of bytes the field is from the
first byte of the ROF field. The referenced field is always at
a higher RBA than the ROF.
Typical usage:
pszTarget = (PSZ) ((PVOID)&rofSource + rofSource);
Note: if rofSource = NULL then pszTarget automatically points
to a 0x0000 field.
*/
typedef USHORT ROF; /* rof, nrof */
ΓòÉΓòÉΓòÉ 8.4.6. VRM ΓòÉΓòÉΓòÉ
/*
VRM:
There are times when things change. To this end, SPM/2
provides indications as to the processability of a .LOG
file. Primary to this feature is the ucRecordSeries
field in the BASICHDR. Version Release Modification
status is intended to indicate less drastic changes and
to alert a processing program to the potential impact of
those changes.
A change in Modification indicates that changes to the
underlying formats of type 10 records were made that
include the addition or obsolescence of fields within
one or more groups. Fields are always added at the end
of a description. Obsolescent fields are set to zero.
Your current version will run if it provides for
protection against errors caused by zeros where
obsolescent fields are no longer being collected.
Field offsets within records have not changed. Ordinals
have not changed.
A change in Release indicates that changes to the
underlying formats of type 10 records were made that
include the addition or deletion of entire groups and
the addition or obsolescence of fields within one or
more groups. A new version is recommended. Changes
within a group have the same limitations as a change in
Modification level. Ordinals have been added or
deleted, but prior ordinals within the same version have
not changed.
A change in Version indicates that changes to the
underlying formats of type 10 records were made in a way
that will probably render programs using prior versions
of the .LOG file descriptions invalid. A new version is
required. Ordinals have probably changed.
VRM information is provided to the DCF from the Service
Functions DLL.
VRM information is reserved in SPM/2 2.0.
*/
typedef struct _VRM
{
UCHAR ucVer; /* the Version of the record */
UCHAR ucRel; /* the Release of the record */
UCHAR ucMod; /* the Mod of the record */
} VRM;
ΓòÉΓòÉΓòÉ 8.4.7. DATARECHDR and DCFGROUP ΓòÉΓòÉΓòÉ
/*
Type 10: Subtype 0: Managed Session Interval Record.
This is the basic collection record. It is sometimes
called a snapshot record. It contains all of the data
collected during a collection interval as a list of data
blocks.
The data records are constructed of the following
blocks. They are not chained, but are recorded
(possibly with interspersed Monitored Anchor records)
physically adjacent to the Monitoring Anchor record and
as a group form the data for the Monitoring Session.
Each data record contains node and timing information
and all of the requested collection items that were
available in the interval.
The DATARECHDR is the first structure in all data
collection records.
*/
typedef struct _DCFRECHDR
{
BASICHDR bhDR; /* standard basic header */
CHAR szNodeName[SPM_NODENAME_SIZE]; /* Node data came from */
FPDATETIME dtMngWrite; /* when monitoring session wrote
the record */
FPDATETIME dtMedStart; /* when the monitoring interval started
on the monitored machine */
FPDATETIME dtMedEnd; /* when the monitoring interval ended
on the monitored machine */
VRM vrmDCF; /* the VRM for the service functions
at the DCF */
BOOL fCollErrors; /* flags indicating collection errors */
#define SPM_COLLERR_PERFOVFL 0x0001 /* the internal message
queue overflowed */
#define SPM_COLLERR_GRPSOVFL 0x0002 /* groups could not be
added to record */
#define SPM_COLLERR_THESEUS 0x0004 /* THESEUS2 returned
an error */
#define SPM_COLLERR_GROUPSMISS 0x0008 /* Not all groups
were resolved */
#define SPM_COLLERR_ITEMSMISS 0x0010 /* Not all items
were resolved */
#define SPM_COLLERR_TIMERMISS 0x0020 /* DCF cannot keep up -
interval lost */
#define SPM_COLLERR_SMPPTMISS 0x0040 /* a recognized sample
could not be collected */
USHORT usGrpCnt; /* the number of groups in the record */
}DATARECHDR;
#define INTERVAL_TYPE 10
#define INTERVAL_BASIC_STYPE 0
/*
the data collection record continues with structures of collected
groups.
*/
typedef struct _DCFGROUP
{
USHORT usLL; /* the length of the collected group */
USHORT usSPMGrp; /* the group's ordinal */
PID1632 pidDR; /* process id (PID) of process if instance
data */
TID1632 tidDR; /* thread id (TID) of process if instance
data */
ROF rofszInstance; /* offset to text associated with
the instance */
BYTE byDataStart; /* start of data for this group */
/* The actual structure for the group follows this block */
/* It is followed by the Instance Block (if any) */
}DCFGROUP;
/*
The structures for all defined SPM Groups are found in
SPMCTRGP.H.
A basic interval record for a node collecting CPU, Memory, and
Disk data might look like this:
| DCFRECHDR | DCFGROUP | cpu_data | DCFGROUP | memory_data | DCFGROUP | dasd_data |
-----------------------------------------------------------------------------------
where the data types are identified by the usSPMGrp
field in the DCFGROUP that precedes them.
*/
/* for ease of use, the size of a type 10 record is limited */
#define SPM_TYPE10_MAX_SIZE (4096*4)
#define SPM_TYPE10_DEFINED
ΓòÉΓòÉΓòÉ 8.4.8. INSTANCEBLOCK ΓòÉΓòÉΓòÉ
/*
INSTANCEBLOCK:
Each data block in a type 10 record can be either persistent
or transient. A transient block is called an instance. It
tracks event data such as an open file or an active thread.
A ROF in the static section of the block points at the
instance block if the group represents an instance.
*/
typedef struct _INSTANCEBLOCK
{
FPDATETIME dtBirth; /*
The time that the instance was
born. This field is included
in the summary criteria (sample
interval < recording interval).
*/
FPDATETIME dtDeath; /*
The time that the instance
died. This field is 0e0 for
all intervals where the
instance is still alive.
*/
CHAR szzInstanceText[1];
/*
One or more null-terminated
strings that describe the
instance. The first string is
always the path to the program
that is involved. Additional
strings indicate which resource
is involved and are dependent
upon the group type. The
string of strings is terminated
by a null string.
*/
}INSTANCEBLOCK;
ΓòÉΓòÉΓòÉ 8.5. Functions ΓòÉΓòÉΓòÉ
The following functions are available:
SPMAPIQuery Allows the user to query a local or remote machine about Data
Collection Facility sessions and monitor (SPMILOG) sessions.
SPMAPIQualifyFileName Returns a standardized file name from any valid file
name.
SPMAPISet Changes configured options in a monitor session (.LOG) file.
SPMAPIInit Enables the user to start a monitor (SPMILOG) session.
SPMAPIOpen Opens the connection to a monitor session (.LOG) file.
SPMAPIGetData Returns the next instance of the sample data from a monitor
session (.LOG) file.
SPMAPIClose Closes the connection to a monitor session (.LOG) file.
SPMAPITerm Terminates one or more monitor (SPMILOG) sessions.
Date-Time functions. Process date and time strings and values.
ΓòÉΓòÉΓòÉ 8.5.1. SPMAPIQuery ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIQuery function to obtain information about the Data Collection
Facility sessions and monitor (SPMILOG) sessions currently active on a local
machine or on a network, or about the options configured in a monitor session
(.LOG) file.
It is not necessary to issue an SPMAPIInit or SPMAPIOpen function before the
SPMAPIQuery function.
SPMAPIQuery does not provide a search for inactive monitor session (.LOG)
files. That information is available through normal file directory search
functions. A query about an inactive monitor session (.LOG) file verifies
whether the file is valid.
SPMAPIQuery actually reads the monitor session (.LOG) file for both active and
inactive requests that specify a file name. The current user must have at
least read-only permission granted to a monitor session (.LOG) file that is to
be queried.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Cautions
o Return considerations
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.1.1. SPMAPIQuery Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIQuery
(QUOPTION quOption, /* input */
PSZ SPMPTR szComponentName, /* input */
PVOID SPMPTR pbResults, /* output */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> SPMAPIQuery Cautions ΓòÉΓòÉΓòÉ
1. When you query a monitor (SPMILOG) session, the monitor session (.LOG)
file name returned includes the disk, path, and file name by which the
monitor session knows the file. This does not cause a problem if the
monitor session is running on the local machine and the PATH statement
specified in the CONFIG.SYS file at startup is complete.
However, if only a partial PATH statement is specified, the startup
process attempts to completely define the name. If the monitor session
file is on a remote machine, the startup process attempts to resolve a
universal naming convention (UNC) name for the file. The probability that
the name resolved is correct is extremely high. However, to ensure correct
name resolution, you can specify complete path and file names on
nonnetwork machines and UNC names on network machines.
2. A query to determine the active monitor (SPMILOG) sessions or Data
Collection Facility components returns all the known names, regardless of
whether those names are located in the current domain. Also, no check is
done to ensure that the requester is running on the local machine.
In most cases, no problem arises from these factors. However, if the
requester is not running on the local machine, the monitor (SPMILOG)
session is not in the current domain, or the monitor (SPMILOG) session is
terminated prior to a query about it, your application needs to be capable
of handling the error.
3. The name returned for a monitor (SPMILOG) session or Data Collection
Facility session contains the computer name, which is up to 16 bytes long,
and an instance ID, which is always the last character. If the computer
name is longer than 16 characters, the last 16 are used by the API.
Because most installations limit the computer name to 8 characters, the
16-character limitation is rarely a problem. However, using a computer
name longer than 16 characters causes unreliable results unless the last
16 characters are unique.
ΓòÉΓòÉΓòÉ <hidden> Return Considerations ΓòÉΓòÉΓòÉ
Your application must provide a return area large enough to accommodate the
result. The return area must begin with a QUERYHDR structure, which contains
the following parameters:
o usResultMax
o usItemsReturned
o pbResult.
Most queries result in a list of items that are returned as a vector of the
return type. If the fields are null-terminated strings (SZ), they are
terminated by an additional null field (making them SZZ). In other cases, a
single value or structure might be returned (see the quOption parameter for
more information).
ΓòÉΓòÉΓòÉ <hidden> usResultMax parameter ΓòÉΓòÉΓòÉ
In your application, specify the maximum size of the return area in the
usResultMax parameter of the QUERYHDR structure.
Specifying Zero
If your application specifies zero for the usResultMax parameter, the API
returns the required result size in the usResultMax parameter field (replacing
the zero) along with the SPMAPI_ERR_NO_SPACE extended error. No other field in
the QUERYHDR structure is referenced. Allocate the correct size, and issue the
query again.
CAUTION:
This method of getting feedback about the required result size may not always
meet the needs of your application. The system is dynamic. The length returned
by the first call (to get the length), while correct for that call, may not be
correct for the next call to the function. The longer the interval between the
calls, the greater the chance is that the values will be different.
Specifying a Nonzero Amount
If you specify an amount other than zero for the usResultMax parameter, the
parameter field is not changed by the return, even if the amount specified does
not accommodate the entire amount of data returned. If the amount specified is
too small, the correct amount will be returned along with the
SPMAPI_ERR_NOSPACE return code.
ΓòÉΓòÉΓòÉ <hidden> usItemsReturned parameter ΓòÉΓòÉΓòÉ
The number returned in the usItemsReturned parameter field is the number of
items in the return area. The actual number of items available is equal to the
number returned only if the length of the return area is large enough to hold
them all.
If the usItemsReturned parameter value is 0, the pbResult parameter value will
be null.
ΓòÉΓòÉΓòÉ <hidden> pbResult parameter ΓòÉΓòÉΓòÉ
The pbResult parameter points to the result of a query. The actual format of
the result to which the pbResult parameter points is dependent upon the request
(see the quOption parameter for specific information).
The result is built into the return area provided by the calling application,
though not necessarily right after the header. The amount of resulting data
returned is limited by the size of the return area. The SPMAPIQuery function
attempts to terminate a truncated block, but termination is not guaranteed.
The pbResult parameter can be cast to the type of return expected.
If the usItemsReturned parameter value is 0, the pbResult parameter value will
be undefined.
ΓòÉΓòÉΓòÉ <hidden> QUOPTION quOption ΓòÉΓòÉΓòÉ
The following quOption parameters provide lists of component names:
o SPM_QU_DCF_LIST - Component names of all Data Collection Facility sessions
currently active on the network.
o SPM_QU_ILOG_LIST - Component names of all monitor (SPMILOG) sessions
currently active on the network.
o SPM_QU_L_ILOG_LIST - Component names of all monitor (SPMILOG) sessions
currently active on the local machine.
Once you know one component name, you can use the following quOption
parameters to ascertain the names of other components associated with it:
o SPM_QU_ILOG_NAME - Component name of the monitor (SPMILOG) session
associated with a particular monitor session (.LOG) file name. (Your
application must provide the full path and file name of the monitor session
(.LOG) file in the szComponentName parameter field.)
o SPM_QU_ACTIVE_DCF_NODES - Component names of all Data Collection Facility
sessions currently being collected by a particular monitor (SPMILOG)
session. (Your application must provide the name, including the suffix, of
the monitor (SPMILOG) session in the szComponentName parameter field.)
o SPM_QU_CFGD_DCF_NODES - Component names of all Data Collection Facility
sessions for which a monitor session (.LOG) file is configured. (Your
application must provide the full path and file name of the monitor session
(.LOG) file in the szComponentName parameter field.)
Note: For those queries which require a SESSIONSPEC instead of a component
name, the SESSIONSPEC pointer may be cast to a PSZ to avoid compiler errors
or warnings. The affected queries are:
- SPM_QU_CFGD_TIMES_PERIOD
- SPM_QU_CFGD_DCF_NODES_PERIOD
- SPM_QU_CFGD_GROUPS_PERIOD
Component names can be used with the following quOption parameters to obtain
additional information:
o SPM_QU_ILOG_STAT - The status of a particular monitor (SPMILOG) session.
(Your application must provide the name, including suffix, of the monitor
(SPMILOG) session in the szComponentName parameter field.)
o SPM_QU_CFGD_GROUPS - The collection groups (resources) for which a monitor
session (.LOG) file is configured. (Your application must provide the full
path and file name of the monitor session (.LOG) file in the szComponentName
parameter field.)
o SPM_QU_CFGD_TIMES - The times, collection frequency, logging frequency, and
working set interval for which a monitor session (.LOG) file is configured.
(Your application must provide the full path and file name of the monitor
session (.LOG) file in the szComponentName parameter field.)
o SPM_QU_RECD_DCF_NODES - The Data Collection Facility machine names for which
contact was established in any session in the log. (Your application must
provide the full path and file name of the monitor session (.LOG) file in
the szComponentName parameter field.)
o SPM_QU_HIST_GROUPS - All the collection groups (resources) for which a
monitor (.LOG) file has ever been configured. (Your application must
provide the full path and file name of the monitor session (.LOG) file in
the szComponentName parameter field.)
o SPM_QU_CFGD_PERIODS - The start and stop times specified for a monitor
session (.LOG) file. (Your application must provide the full path and file
name of the monitor session (.LOG) file in the szComponentName parameter
field.)
o SPM_QU_CFGD_TIMES_PERIOD - The times (collection frequency, logging
frequency, and working set interval) for which a given monitor session
(.LOG) file is configured. (Your application must provide the full path and
file name of the monitor session (.LOG) file in the szComponentName
parameter field.)
o SPM_QU_CFGD_DCF_NODES_PERIOD - Component names of Data Collection Facility
sessions for which a given monitor session (.LOG) file is configured. (Your
application must provide the full path and file name of the monitor session
(.LOG) file in the szComponentName parameter field.)
o SPM_QU_CFGD_GROUPS_PERIOD - The collection groups (resources) for which a
given monitor session (.LOG) file is configured. (Your application must
provide the full path and file name of the monitor session (.LOG) file in
the szComponentName parameter field.)
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_DCF_LIST ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_DCF_LIST option in your application, the pbResult
parameter of the QUERYHDR structure points to a vector of null-terminated names
of the Data Collection Facility sessions currently active on the network. The
names returned include suffixes.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_LIST ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_ILOG_LIST option in your application, the pbResult
parameter of the QUERYHDR structure points to a vector of null-terminated names
of the monitor (SPMILOG) sessions currently active on the network.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_L_ILOG_LIST ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_L_ILOG_LIST option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of
null-terminated names of the monitor (SPMILOG) sessions currently active on the
local machine. The names returned include suffixes.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_STAT ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_ILOG_STAT option in your application, the pbResult
parameter of the QUERYHDR structure points to a structure containing the status
of the active monitor (SPMILOG) session specified in the szComponentName
parameter field of your application. The names returned include suffixes.
See the cautions listed in Return Considerations.
The structure of the SPM_QU_ILOG_STAT option follows:
typedef struct _QUILOGSTAT
{
FPDATETIME dtStarted; /* the date & time the monitor
(SPMILOG) session started */
FPTIME tvSample; /* the collection frequency */
FPTIME tvRecording; /* the recording frequency */
CHAR szLogFileName[]; /* the full path and file name of
the monitor session (.LOG) file */
/* NOTE: The name returned is the
name by which the monitor (SPMILOG)
session knows the file. If the file
was opened with the UNC name, it may
be used directly; otherwise, map
the drive letter to the UNC
prefix or a drive letter with
a local alias. */
}QUILOGSTAT;
typedef QUILOGSTAT * SPMPTR PQUILOGSTAT;
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_NAME ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_ILOG_NAME option in your application, the pbResult
parameter of the QUERYHDR structure points to a null-terminated string
containing the name of the monitor (SPMILOG) session that is associated with
the active monitor session (.LOG) file name specified in the szComponentName
parameter field of your application. The names returned include suffixes.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ACTIVE_DCF_NODES ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_ACTIVE_DCF_NODES option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of
null-terminated names of the Data Collection Facility sessions currently being
collected by the active monitor (SPMILOG) session specified in the
szComponentName parameter field of your application. The names returned do not
include suffixes.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_DCF_NODES ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_CFGD_DCF_NODES option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of
null-terminated names of the Data Collection Facility sessions configured in
the valid monitor session (.LOG) file specified in the szComponentName
parameter field of your application. The names returned do not include
suffixes.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_GROUPS ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_CFGD_GROUPS option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of unsigned
short (USHORT) integer values. These values contain the ordinals of the
collection groups configured in the valid monitor session (.LOG) file specified
in the szComponentName parameter field of your application.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> Resource Group Ordinals ΓòÉΓòÉΓòÉ
Structures of the resource groups are found in the SPMCTRGP.H file. A list of
resource groups and their corresponding ordinals follows:
3 CPU
4 Thread
5 Memory
6 Files
7 FAT cache
9 HPFS cache
10 Working set
15 Disk 01
16 Disk 02
17 Disk 03
18 Disk 04
19 Disk 05
20 Disk 06
21 Disk 07
22 Disk 08
23 Disk 09
24 Disk 10
25 Disk 11
26 Disk 12
27 Disk 13
28 Disk 14
29 Disk 15
30 Disk 16
31 Disk 17
32 Disk 18
33 Disk 19
34 Disk 20
35 Disk 21
36 Disk 22
37 Disk 23
38 Disk 24
42 Printer 1
43 Printer 2
44 Printer 3
45 Printer 4
46 Communications port 1
47 Communications port 2
48 Communications port 3
49 Communications port 4
200 IBM LAN Server Advanced
201 IBM LAN Requester
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_TIMES ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_CFGD_TIMES option in your application, the pbResult
parameter of the QUERYHDR structure points to a structure that contains the
sampling interval, recording interval, and working set interval configured in
the valid monitor session (.LOG) file specified in the szComponentName
parameter field of your application.
See the cautions listed in Return Considerations.
The structure of the SPM_QU_CFGD_TIMES option follows:
typedef struct _QUCFGDTIMES
{
FPTIME tvSample; /* the sample interval */
FPTIME tvRecording; /* the recording interval */
FPTIME tvWSIntrvl; /* the working set interval */
}QUCFGDTIMES;
typedef QUCFGDTIMES * SPMPTR PQUCFGDTIMES;
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_RECD_DCF_NODES ΓòÉΓòÉΓòÉ
When you specify the SPM_RECD_DCF_NODES option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of
null-terminated names of the Data Collection Facility machine names configured
in the valid monitor session (.LOG) file specified in the szComponentName
parameter field of your application. The names returned do not include a
suffix.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_HIST_GROUPS ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_HIST_GROUPS option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of unsigned
short (USHORT) integer values. These values contain the ordinals of all the
collection groups ever configured in the valid monitor session (.LOG) file
specified in the szComponentName parameter field of your application.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_PERIODS ΓòÉΓòÉΓòÉ
When you specify the SPM_QU_CFGD_PERIODS option in your application, the
pbResult parameter of the QUERYHDR structure points to a vector of type
FILTERSPEC that contains the start and stop times of monitor (SPMILOG) sessions
for the valid monitor session (.LOG) file specified in the szComponentName
parameter field of your application. If the monitor (SPMILOG) session is
active, the end time of the last member of the vector is 0E0.
See the cautions listed in Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_TIMES_PERIODS ΓòÉΓòÉΓòÉ
Retrieves the times (collection frequency, logging frequency, and working set
interval) for a given start/stop session of the log file. Use
SPM_QU_CFG_PERIODS to retrieve the start/stop times of all sessions in the log
file.
pszComponentName points to a SESSIONSPEC structure, which defines the
start/stop session. pbResult returns the times in the same format as
SPM_QU_CFGD_TIMES.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_DCF_NODES_PERIOD ΓòÉΓòÉΓòÉ
Retrieves the collected nodes for a given start/stop session of the log file.
Use SPM_QU_CFG_PERIODS to retrieve the start/stop times of all sessions in the
log file.
pszComponentName points to a SESSIONSPEC structure, which defines the
start/stop session. pbResult returns the nodes in the same format as
SPM_QU_CFGD_DCF_NODES.
ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_GROUPS_PERIOD ΓòÉΓòÉΓòÉ
Retrieves the collected groups (resources) for a given start/stop session of
the log file. Use SPM_QU_CFG_PERIODS to retrieve the start/stop times of all
sessions in the log file.
pszComponentName points to a SESSIONSPEC structure, which defines the
start/stop session. pbResult returns the nodes in the same format as
SPM_QU_CFGD_GROUPS.
ΓòÉΓòÉΓòÉ <hidden> PSZ szComponentName ΓòÉΓòÉΓòÉ
Use the szComponentName parameter to specify the component name of a Data
Collection Facility session or monitor (SPMILOG) session to receive more
information about that component. See the quOption parameter for more
information about how the component name is used in various queries.
SPM/2 uses the computer name set by LAN Server or the constant LOCAL to
identify a machine that is part of the collection process. LOCAL is used when
the computer name is not available from LAN Server. In cases where there can
be more than one SPM/2 component associated with a particular machine, SPM/2
appends a suffix to the computer name. The component name including its suffix
can be up to 16 bytes long. These suffixes identify the component:
0 through 9 Data Collection Facility sessions.
All other suffixes Monitor (SPMILOG) sessions.
SPM/2 uses a fully qualified path and file name to identify a monitor session
(.LOG) file.
ΓòÉΓòÉΓòÉ <hidden> PVOID pbResults ΓòÉΓòÉΓòÉ
The pbResults parameter is a pointer to the pbResult parameter of the QUERYHDR
structure. For more information about the QUERYHDR structure and the pbResult
parameter, see Return Considerations.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIQuery function.
Possible return codes for the SPMAPIQuery function include:
FunctionCode = SPMAPI_PERR_QURESULTS;
FunctionRC = SPMAPI_ERR_NULL_PARM;
FunctionCode = SPMAPI_PERR_QURESULTS;
FunctionRC = SPMAPI_ERR_NO_SPACE;
FunctionCode = SPMAPI_PERR_QUOPTION;
FunctionRC = SPMAPI_ERR_INTERFACE_BUSY;
FunctionCode = SPMAPI_PERR_DOSCALL;
FunctionRC = from DosAllocSeg
DosCallNmPipe
DosChgFilePtr
DosOpen
DosRead
DosSemClear
DosSetNmPipeHandState
FunctionCode = SPMAPI_PERR_NBQCALL;
FunctionRC = NBQ_NBERR_RESET 100 /* Error during NETBIOS Reset */
NBQ_NBERR_ADDNAME 101 /* Error during NETBIOS AddName */
NBQ_NBERR_SENDDG 103 /* Error during SendDataGram */
NBQ_NBERR_RECVDG 105 /* Error during RecvDataGram */
NBQ_ERR_NCBALLOC 2 /* returned as a NETBIOS RC */
FunctionCode = SPMAPI_PERR_QUCOMPNAME;
FunctionRC = SPMAPI_ERR_NULL_PARM;
FunctionCode = SPMAPI_PERR_ILGPIPE;
FunctionRC = Nonzero
FunctionCode = SPMAPI_PERR_LOGFILE;
FunctionRC = SPMAPI_ERR_FILEBADFORMAT;
FunctionCode = SPMAPI_PERR_LOGFILE;
FunctionRC = SPMAPI_ERR_FILENOTINUSE;
FunctionCode = SPMAPI_PERR_QUOPTION;
FunctionRC = SPMAPI_ERR_QUOPTIONNOTVALID;
ΓòÉΓòÉΓòÉ <hidden> SPMAPIQuery Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
typedef struct _RETURN_AREA
{
QUERYHDR quHdr;
CHAR returnstr[10000];
} RETURN_AREA;
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
QUOPTION quOption;
CHAR szComponentName[256];
USHORT *us_ptr;
CHAR *c_ptr;
PQUILOGSTAT qu_ptr;
PQUCFGDTIMES t_ptr;
PFILTERSPEC fs_ptr;
USHORT rc;
CHAR szLogFileName[256], szIlogName[256];
QUILOGSTAT *pquilogstat;
LOGFILEHANDLE LogHandle;
EXTENDEDRC xrcRC;
.
.
.
quOption = SPM_QU_DCF_LIST;
return_area.quHdr.usResultMax = sizeof(return_area);
return_area.quHdr.pbResult = return_area.returnstr;
switch (quOption) // to set component name
{
case SPM_QU_ACTIVE_DCF_NODES:
case SPM_QU_ILOG_STAT:
if (szIlogName[0]) strcpy(szComponentName, szIlogName);
else strcpy(szComponentName, szLogFileName);
break;
case SPM_QU_DCF_LIST:
case SPM_QU_CFGD_TIMES:
case SPM_QU_ILOG_NAME:
case SPM_QU_CFGD_DCF_NODES:
case SPM_QU_RECD_DCF_NODES:
case SPM_QU_CFGD_GROUPS:
case SPM_QU_HIST_GROUPS:
case SPM_QU_CFGD_PERIODS:
case SPM_QU_ILOG_LIST:
case SPM_QU_L_ILOG_LIST:
default:
strcpy(szComponentName, szLogFileName);
break;
}
rc = SPMAPIQuery((QUOPTION) quOption,
(PSZ SPMPTR) &szComponentName,(PVOID SPMPTR) &return_area,
(PEXTENDEDRC) &xrcRC)))
switch (quOption)
{
case SPM_QU_DCF_LIST:
case SPM_QU_ILOG_LIST:
case SPM_QU_L_ILOG_LIST:
case SPM_QU_ILOG_NAME:
case SPM_QU_ACTIVE_DCF_NODES:
case SPM_QU_CFGD_DCF_NODES:
case SPM_QU_RECD_DCF_NODES:
c_ptr = (CHAR *) return_area.returnstr;
break;
case SPM_QU_CFGD_GROUPS:
case SPM_QU_HIST_GROUPS:
us_ptr = (USHORT *) return_area.returnstr;
break;
case SPM_QU_CFGD_PERIODS:
fs_ptr = (PFILTERSPEC) return_area.returnstr;
break;
case SPM_QU_ILOG_STAT:
qu_ptr = (PQUILOGSTAT) return_area.returnstr;
break;
case SPM_QU_CFGD_TIMES:
t_ptr = (PQUCFGDTIMES) return_area.returnstr;
break;
}
.
.
.
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.2. SPMAPIQualifyFileName ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIQualifyFileName function to return a standard file name (the
fully qualified path and file name) from any valid file name (a file name in
the current directory or in the DPATH statement in the CONFIG.SYS file). This
function is used to generate the standard file name for all SPM/2 functions
accessed through the Presentation Manager and command line interfaces.
It is not necessary to issue an SPMAPIInit or SPMAPIOpen function before the
SPMAPIQualifyFileName function.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.2.1. SPMAPIQualifyFileName Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIQualifyFileName
(PSZ SPMPTR pszFileName, /* input */
PSZ SPMPTR pszQName, /* output */
USHORT usQNameLen, /* input */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> PSZ pszFileName ΓòÉΓòÉΓòÉ
In the pszFileName parameter field, specify the valid file name for which you
want to know the standard file name.
ΓòÉΓòÉΓòÉ <hidden> PSZ pszQName ΓòÉΓòÉΓòÉ
The pszQName parameter is the area into which the standard file name is read.
If the drive specified in the pszFileName parameter is a network drive, the
SPMQualifyFileName function returns the universal naming convention (UNC) name
of the file (if it can be found).
Note: UNC names are returned only for network drive letters currently in use
on the machine where the call is issued.
If a local drive letter is specified in the pszFileName parameter but the
drive is known on the network by a different drive letter, the
SPMQualifyFileName function returns the local file name.
ΓòÉΓòÉΓòÉ <hidden> USHORT usQNameLen ΓòÉΓòÉΓòÉ
The usQNameLen parameter specifies the maximum length of the pszQName parameter
field.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIQualifyFileName
function.
Possible return codes for the SPMAPIQualifyFileName function include:
FunctionCode = SPMAPI_PERR_USERPARM;
FunctionRC = SPMAPI_ERR_NULL_PARM;
FunctionCode = SPMAPI_PERR_DOSCALL;
FunctionRC = from DosQPathInfo and DosSearchPath
ΓòÉΓòÉΓòÉ <hidden> SPMAPIQualifyFileName Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256], szQFileName[256];
EXTENDEDRC xrcRC;
.
.
.
rc = SPMAPIQualifyFileName ((PSZ SPMPTR) &szLogFileName, (USHORT) 256,
(PSZ SPMPTR) &szQFileName, (PEXTENDEDRC) &xrcRC);
.
.
.
exit(0)
ΓòÉΓòÉΓòÉ 8.5.3. SPMAPISet ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPISet function to change the parameters for a monitor (ILOG)
session currently running on the local machine or on the network. It does not
require the caller to have issued an SPMAPIInit or SPMAPIOpen command.
In general, the prior setting is returned in the pbSetting parameter field, so
the use of constants is of great danger.
Your application must provide a return area large enough to accommodate the
result. There is no standard header on this area.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.3.1. SPMAPISet Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPISet
(QUOPTION quOption, /* input */
PSZ SPMPTR pszComponentName, /* input */
PVOID SPMPTR pbSetting, /* in/out */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> QUOPTION quOption ΓòÉΓòÉΓòÉ
In the quOption parameter, specify SPM_SET_RECORD_MULT to change the monitor
(SPMILOG) session recording frequency. See the pbSetting parameter for more
information.
ΓòÉΓòÉΓòÉ <hidden> PSZ szComponentName ΓòÉΓòÉΓòÉ
Use the szComponentName parameter to specify the component name of an active
monitor (SPMILOG) session for which you want to change the options. See the
quOption parameter for more information about changing the options for the
specified monitor session.
ΓòÉΓòÉΓòÉ <hidden> PVOID pbSetting ΓòÉΓòÉΓòÉ
The pbSetting parameter is a pointer to a long integer that contains the
recording frequency multiplier, which specifies how many samples will be
averaged together to become one record in the monitor session (.LOG) file. The
prior setting of the recording frequency multiplier is returned in the same
field.
To disable recording, specify a value of 0 (zero) in the pbSetting parameter.
Unlike SPMAPIInit, a negative value does not specify the default. No negative
values are allowed.
To change the recording frequency multiplier, specify an integer in the
pbSetting parameter.
Note: To ascertain the recording value configured in the monitor session
(.LOG) file, use the SPMAPIQuery function (specify SPM_QU_CFGD_TIMES in
the quOption parameter).
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPISet function.
ΓòÉΓòÉΓòÉ <hidden> SPMAPISet Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256], szIlogName[256];
PVOID pbSetting;
LOGFILEHANDLE LogHandle;
EXTENDEDRC xrcRC;
.
.
.
rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
(PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
(PEXTENDEDRC) &xrcRC);
.
.
.
pbSetting = (PVOID) malloc (sizeof(LONG));
*pbSetting = (LONG) 0;
rc = SPMAPISet((QUOPTION) SPM_SET_RECORD_MULT, (PSZ SPMPTR) szIlogName,
(PVOID SPMPTR) pbSetting, (PEXTENDEDRC) &xrcRC);
.
.
.
rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
.
.
.
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.4. SPMAPIInit ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIInit function to start a monitor (SPMILOG) session on a local
machine. A preconfigured monitor session (.LOG) file is required for an
SPMAPIInit call.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.4.1. SPMAPIInit Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIInit
(PSZ SPMPTR pszLogFileName, /* input */
LONG lRMultOverride, /* input */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
In the pszLogFileName parameter, specify the fully qualified path and file name
of the monitor session (.LOG) file for which you want to start a monitor
(SPMILOG) session.
The monitor session (.LOG) file cannot be processed by more than one monitor
(SPMILOG) session at a time. Therefore, be certain that your application
specifies an inactive monitor session (.LOG) file.
When a high performance file system (HPFS) is used, the SPM/2 API treats file
names in the same manner as the OS/2 system does. That is, upper and lower
cases are remembered, but file names are not case-sensitive.
ΓòÉΓòÉΓòÉ <hidden> LONG lRMultOverride ΓòÉΓòÉΓòÉ
In the lRMultOverride parameter, specify one of the following values:
-1 Specifies the default recording multiplier (that is, every collection
sample is recorded). No other negative value is allowed.
0 Specifies that no collection samples be recorded.
Any other positive value Specifies a new value for the recording multiplier.
For example, specify 3 to record every third collection sample.
The value specified in this parameter overrides the value specified for the
recording multiplier in the monitor session (.LOG) file.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIInit function.
Possible return codes for the SPMAPIInit function include:
FunctionCode = SPMAPI_PERR_LOGOBJNAME;
FunctionRC = not used
FunctionCode = SPMAPI_PERR_DOSCALL;
FunctionRC = from DosOpen
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = 0
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_GETGDA;
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_GETIDA;
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_OBJECTINUSE;
FunctionCode = SPMAPI_PERR_DOSEXECPGM;
FunctionRC = from DosExecPgm
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_TIMEOUT;
ΓòÉΓòÉΓòÉ <hidden> SPMAPIInit Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256];
USHORT n;
EXTENDEDRC xrcRC;
for (n = 0; n < strlen (argv[2]); n++)
szLogFileName[n] = toupper (argv[2][n]);
rc = SPMAPIInit((PSZ SPMPTR) &szLogFileName, -1,(PEXTENDEDRC) &xrcRC);
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.5. SPMAPIOpen ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIOpen function to open the connection to an active or inactive
monitor session (.LOG) file so your application can begin the input processing
of data from that file.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.5.1. SPMAPIOpen Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIOpen
(PSZ SPMPTR pszLogFileName, /* input */
PFILTERSPEC pfsFilters, /* input */
PLOGFILEHANDLE pLogHandle, /* output */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
In the pszLogFileName parameter, specify the fully qualified path and file name
of the monitor session (.LOG) file you want to open.
The name must indicate a valid, configured monitor session (.LOG) file.
However, it does not matter whether that file is active - that is, being used
by a monitor (SPMILOG) session - or inactive.
When a high performance file system (HPFS) is used, the SPM/2 API treats file
names in the same manner as the OS/2 system does. That is, upper and lower
cases are remembered, but file names are not case-sensitive.
ΓòÉΓòÉΓòÉ <hidden> PFILTERSPEC pfsFilters ΓòÉΓòÉΓòÉ
The pfsFilters parameter must point to a valid FILTERSPEC structure, which
contains the start and stop times of the interval to be read.
To read all of the data in a monitor session (.LOG), use the datetime function
to set the start date-time value to 0e0 and the stop date-time value to the
current date and time.
Note: Your application will cause an error if the stop date-time value is
0e0, but the start date-time value is not 0e0 also.
If the monitor (SPMILOG) session associated with the monitor session (.LOG)
file is active and you set both the start and stop times to 0e0, real-time
data in the same format as historical data is returned.
If no data is available in the time frame specified, an end-of-file (EOF)
condition is encountered the first time you use the SPMAPIGetData function
after using the SPMAPIOpen function.
Dates and times should be converted from country code-specific format to SPM/2
format before being passed in the pfsFilters parameter.
The datetime function returns the correct format. The str2dt function
converts strings to the correct format.
ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
The pLogHandle parameter is a pointer to a log handle structure provided by the
calling application. Upon return, the SPMAPIOpen function supplies the values
for the log handle structure.
The pLogHandle parameter, which is the equivalent of a file handle, is required
in subsequent calls to the SPMAPIGetData and SPMAPIClose functions. When the
handle is returned, it uniquely identifies this instance of the open monitor
session (.LOG) file.
The fields in this structure should not be modified.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIOpen function.
Possible return codes for the SPMAPIOpen function include:
FunctionCode = SPMAPI_PERR_FILTERSPEC;
FunctionRC = SPMAPI_ERR_RANGE;
FunctionCode = SPMAPI_PERR_DOSCALL;
FunctionRC = from DosAllocSeg
DosChgFilePtr
DosOpen
DosRead
DosSemClear
DosSetNmPipeHandState
FunctionCode = SPMAPI_PERR_LOGFILE;
FunctionRC = SPMAPI_ERR_FILEBADFORMAT;
FunctionCode = SPMAPI_PERR_LOGFILE;
FunctionRC = SPMAPI_ERR_FILENOTINUSE;
ΓòÉΓòÉΓòÉ <hidden> SPMAPIOpen Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
typedef struct _RETURN_AREA
{
QUERYHDR quHdr;
CHAR returnstr[10000];
} RETURN_AREA;
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR tmpstr[256];
CHAR szLogFileName[256];
USHORT n;
FILTERSPEC fsFilters;
LOGFILEHANDLE LogHandle;
EXTENDEDRC xrcRC;
RETURN_AREA return_area;
if (argc > 2)
{
n = 0;
while (argv[2][n] != '\0')
tmpstr[n] = (CHAR)toupper(argv[2][n++]);
tmpstr[n] = '\0';
if ((fsFilters.dtStartDateTime = str2dt(tmpstr)) == DTERROR)
{
/* process error */
exit(1);
}
if (argc > 3)
{
n = 0;
while (argv[2][n] != '\0')
tmpstr[n] = (CHAR)toupper(argv[2][n++]);
tmpstr[n] = '\0';
if ((fsFilters.dtEndDateTime = str2dt(tmpstr)) == DTERROR)
{
/* process error */
exit(1);
}
}
else fsFilters.dtEndDateTime = 0e0;
}
else
{
fsFilters.dtStartDateTime = 0e0;
fsFilters.dtEndDateTime = 0e0;
return_area.quHdr.usResultMax = sizeof(return_area);
return_area.quHdr.pbResult = return_area.returnstr;
if (SPMAPIQuery((QUOPTION)SPM_QU_ILOG_NAME,(PSZ SPMPTR)&szLogFileName,
(PVOID SPMPTR) &return, (PEXTENDEDRC) &xrcRC))
SPMAPIInit((PSZ SPMPTR) &szLogFileName, -1,(PEXTENDEDRC) &xrcRC);
}
rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
(PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
(PEXTENDEDRC) &xrcRC);
.
.
.
rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
.
.
.
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.6. SPMAPIGetData ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIGetData function to retrieve the next instance of the sample data
from a monitor session (.LOG) file. The original SPMAPIOpen function specifies
the time interval for the data returned in the FILTERSPEC structure.
If no data is available in the time frame specified using the SPMAPIOpen
function, an end-of-file (EOF) condition is encountered the first time you use
the SPMAPIGetData function.
You must issue an SPMAPIOpen function before issuing the SPMAPIGetData
function.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Considerations
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.6.1. SPMAPIGetData Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIGetData
(PLOGFILEHANDLE pLogHandle, /* input */
PVOID SPMPTR pbLogRec, /* output */
USHORT usLogRecMaxLen, /* input */
PUSHORT SPMPTR pusLogRecLen, /* output */
PVOID pReserved1, /* reserved */
PVOID pReserved2, /* reserved */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ 8.5.6.2. SPMAPIGetData Considerations ΓòÉΓòÉΓòÉ
If the SPMAPIOpen function indicated that real-time data would be returned, the
call to SPMAPIGetData waits until that data is available or until an error is
returned by the monitor (SPMILOG) session. Because the call could be waiting a
long time, you may want to issue the SPMAPIGetData function call in in a thread
that is separate from the one that processes Presentation Manager messages.
To cleanly terminate an outstanding read, use the SPMAPIClose function to force
completion of the read and ensure that the thread issuing the read is
terminated when it receives an end-of-file (EOF) indication. EOF is defined as
zero bytes returned from an SPMAPIGetData. Failure to detect an EOF condition
(which is not an error) may result in a loop through this interface.
In real-time mode, all data received by the monitor (SPMILOG) session is
returned in the order which it was received. Network delays may make the
return order inconsistent between monitored machines. Data may be lost if the
monitor (SPMILOG) session connection is not serviced in a timely manner.
If insufficient space is available in the return area provided by the
SPMAPIGetData function, slightly different actions are taken by the API. In
the case of real-time data, the data is lost. In the case of historical data,
the API will attempt to deliver the data that caused the error on the next
SPMAPIGetData function call. In both cases, the data (if any) returned by the
call that gets the error is undefined. There is a manifest constant,
SPM_TYPE10_MAX_SIZE, that contains the maximum size of any record that will be
returned by this interface.
Underlying errors from the file system are returned if encountered while
processing historical data. These errors are the same as those returned from
DosRead. The method used to return real-time data is not defined and therefore
any underlying errors are reflected as an EOF.
Once an error or EOF is returned by the interface, EOF is returned on all
subsequent calls. To recover or reposition, the monitor (SPMILOG) session
handle should be closed (by using the SPMAPIClose function) and reopened (by
using the SPMAPIOpen function).
ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
The pLogHandle parameter is a pointer to a log handle structure provided by the
calling application. The SPMAPIOpen function supplies the values for the log
handle structure.
The pLogHandle parameter, which is the equivalent of a file handle, is required
in SPMAPIGetData function calls to identify the open monitor session (.LOG)
file.
The fields in this structure should not be modified.
ΓòÉΓòÉΓòÉ <hidden> PVOID pbLogRec ΓòÉΓòÉΓòÉ
The pbLogRec parameter is a byte-aligned area into which the next record is
read.
ΓòÉΓòÉΓòÉ <hidden> USHORT usLogRecMaxLen ΓòÉΓòÉΓòÉ
The usLogRecMaxLen parameter specifies the maximum length of the pbLogRec
parameter field.
ΓòÉΓòÉΓòÉ <hidden> PUSHORT pusLogRecLen ΓòÉΓòÉΓòÉ
The pusLogRecLen parameter is set to the actual number of bytes read.
An end-of-file (EOF) condition is indicated by a 0 (zero) in this field. When
retrieving historical data, EOF is indicated when the next record exceeds the
stop date-time value specified in the FILTERSPEC structure on the SPMAPIOpen
function call. When in real-time mode, EOF is indicated when the monitor
(SPMILOG) session is terminated.
ΓòÉΓòÉΓòÉ <hidden> PVOID pReserved1 ΓòÉΓòÉΓòÉ
The pReserved1 parameter is reserved for future use.
ΓòÉΓòÉΓòÉ <hidden> PVOID pReserved2 ΓòÉΓòÉΓòÉ
The pReserved2 parameter is reserved for future use.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIGetData function.
This parameter is not used if the value of an immediate return from an
asynchronous SPMAPIGetData function call is FALSE.
Possible return codes for the SPMAPIGetData function include:
FunctionCode = SPMAPI_PERR_BUFFERLENGTH;
FunctionRC = SPMAPI_ERR_NO_SPACE;
FunctionCode = SPMAPI_PERR_DOSCALL;
FunctionRC = from DosAllocSeg
DosChgFilePtr
DosRead
DosSemClear
FunctionCode = SPMAPI_PERR_LOGFILE;
FunctionRC = SPMAPI_ERR_FILEBADFORMAT;
FunctionCode = SPMAPI_PERR_LOGHANDLE;
FunctionRC = SPMAPI_ERR_NOT_OPEN;
ΓòÉΓòÉΓòÉ <hidden> SPMAPIGetData Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256];
USHORT usLogRecLen;
PVOID pbLogRec;
LOGFILEHANDLE LogHandle;
EXTENDEDRC xrcRC;
.
.
.
rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
(PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
(PEXTENDEDRC) &xrcRC);
.
.
.
usLogRecLen = SPM_TYPE10_MAX_SIZE;
pbLogRec = (PVOID) malloc (usLogRecLen);
rc = SPMAPIGetData((PLOGFILEHANDLE) pLogHandle,
(PVOID SPMPTR) pbLogRec, (USHORT) usLogRecMaxLen,
(PUSHORT SPMPTR) &usLogRecLen, (PVOID) NULL, (PVOID) NULL,
(PEXTENDEDRC) &xrcRC);
.
.
.
rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
.
.
.
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.7. SPMAPIClose ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPIClose function to close the connection to a monitor session
(.LOG) file, whether the data being read is historical or real-time.
If an SPMAPIGetData function is reading a record when the SPMAPIClose function
is issued, the SPMAPIGetData function is terminated with an end-of-file (EOF)
condition.
You must issue an SPMAPIOpen function before issuing the SPMAPIClose function.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.7.1. SPMAPIClose Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPIClose
(PLOGFILEHANDLE pLogHandle, /* input */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
The pLogHandle parameter is a pointer to a log handle structure provided by the
calling application. The SPMAPIOpen function supplies the values for the log
handle structure.
The pLogHandle parameter, which is the equivalent of a file handle, is required
in SPMAPIPutData function calls to identify the open monitor session (.LOG)
file that you want to close.
The fields in this structure should not be modified.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPIClose function.
Possible return codes for the SPMAPIClose function include:
FunctionCode = SPMAPI_PERR_LOGHANDLE;
FunctionRC = SPMAPI_ERR_NOT_OPEN;
ΓòÉΓòÉΓòÉ <hidden> SPMAPIClose Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256];
FILTERSPEC fsFilters;
LOGFILEHANDLE LogHandle;
EXTENDEDRC xrcRC;
.
.
.
rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
(PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
(PEXTENDEDRC) &xrcRC);
.
.
.
rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
.
.
.
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.8. SPMAPITerm ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
Use the SPMAPITerm function to terminate one or more monitor (SPMILOG)
sessions.
You must issue an SPMAPIInit function before issuing the SPMAPITerm function.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Syntax
o Coding example.
ΓòÉΓòÉΓòÉ 8.5.8.1. SPMAPITerm Syntax ΓòÉΓòÉΓòÉ
Select the highlighted parameters for more information:
BOOL SPMAPI_ENTRY SPMAPITerm
(PSZ SPMPTR pszLogFileName, /* input */
USHORT usOptions, /* input */
PEXTENDEDRC pxrcRC); /* output */
ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
In the pszLogFileName parameter, specify the fully qualified path and file name
of the monitor session (.LOG) file for which you want to stop a monitor
(SPMILOG) session.
When a high performance file system (HPFS) is used, the SPM/2 API treats file
names in the same manner as the OS/2 system does. That is, upper and lower
cases are remembered, but file names are not case-sensitive.
The pszLogFileName parameter is required for the usOptions DRAIN or HALT
operations, which affect only specified monitor session (.LOG) files. The
pszLogFileName parameter is not required for the DRAINALL and HALTALL
operations, which affect all active monitor session (.LOG) files.
ΓòÉΓòÉΓòÉ <hidden> USHORT usOptions ΓòÉΓòÉΓòÉ
The usOptions parameter has the following options:
DRAIN Allows the current operations to continue to completion and then
terminates the monitor (SPMILOG) session. This option affects only
the monitor (SPMILOG) session associated with the monitor session
(.LOG) file specified in the pszLogFileName parameter.
HALT Terminates all operations of the monitor (SPMILOG) session
immediately. This option affects only the monitor (SPMILOG) session
associated with the monitor session (.LOG) file specified in the
pszLogFileName parameter.
DRAINALL Allows the current operations to continue to completion and then
terminates the monitor (SPMILOG) sessions. This option does not
require the use of the pszLogFileName parameter.
HALT Terminates all operations of all active monitor (SPMILOG) sessions
immediately. This option does not require the use of the
pszLogFileName parameter.
ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
The pxrcRC parameter contains the return code for the SPMAPITerm function.
Possible return codes for the SPMAPITerm function include:
FunctionCode = SPMAPI_PERR_SHUTDOWN;
FunctionRC = usShutDownOption;
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_OBJECTNOTINUSE;
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = 0;
FunctionCode = SPMAPI_PERR_LOGOBJECT;
FunctionRC = SPMAPI_ERR_OBJECTNOTINUSE;
FunctionCode = SPMAPI_ERR_NAKTIMEOUT;
FunctionRC = 0;
FunctionCode = SPMAPI_ERR_DOSSEMREQUEST;
FunctionRC = from DosSemRequest
ΓòÉΓòÉΓòÉ <hidden> SPMAPITerm Coding Example ΓòÉΓòÉΓòÉ
#define INCL_NOPM
#define INCL_DOS
#define INCL_DOSERRORS
#include <os2.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "spmapi.h"
VOID main (argc, argv)
INT argc;
CHAR *argv[];
{
USHORT rc;
CHAR szLogFileName[256];
USHORT n;
EXTENDEDRC xrcRC;
for (n = 0; n < strlen (argv[2]); n++)
szLogFileName[n] = toupper (argv[2][n]);
rc = SPMAPITerm((PSZ SPMPTR) &szLogFileName, (USHORT) SPMAPI_HALT,
(PEXTENDEDRC) &xrcRC);
exit (0);
}
ΓòÉΓòÉΓòÉ 8.5.9. Date-Time Functions ΓòÉΓòÉΓòÉ
The following date-time functions are external routines contained in the
DATETIME.LIB library.
datetime Returns the current date-time value.
datepart Returns the date value from a datetime variable.
timepart Returns the time value from a datetime variable.
str2dt Converts a string to a datetime variable. Returns DTERROR if invalid.
dt2str Converts the datetime variable to a printable string.
dv2str Converts a date value to a printable string.
tv2str Converts a time value to a printable string.
ΓòÉΓòÉΓòÉ 8.5.9.1. datetime ΓòÉΓòÉΓòÉ
The datetime function returns a value containing the current date and time.
double SPMAPI_ENTRY datetime (void);
The datetime function has no parameters. The return from the function is the
current date and time.
The datetime function is limited to the length of American English names.
Problems may result if abbreviations of months are not 3 characters or if a
month or day name is longer than 9 characters.
ΓòÉΓòÉΓòÉ 8.5.9.2. datepart ΓòÉΓòÉΓòÉ
The datepart function returns the date value from a datetime value.
double SPMAPI_ENTRY datepart (double); /* input */
In the double parameter field, specify the datetime value.
ΓòÉΓòÉΓòÉ 8.5.9.3. timepart ΓòÉΓòÉΓòÉ
The timepart function returns the time value from a datetime value.
double SPMAPI_ENTRY timepart (double); /* input */
In the double parameter field, specify the datetime value.
ΓòÉΓòÉΓòÉ 8.5.9.4. str2dt ΓòÉΓòÉΓòÉ
The str2dt function converts an input string to a datetime variable. It returns
a DTERROR message if the input is invalid.
double SPMAPI_ENTRY str2dt (char * SPMPTR); /* output */
The char parameter is a pointer to a character string containing a date and
time. The format of a date string is National Language dependent (/ and : are
country dependent):
American English MM/DD/YYYY:HH:MM:SS
European YYYY/MM/DD:HH:MM:SS
Other DD/MM/YYYY:HH:MM:SS
ΓòÉΓòÉΓòÉ 8.5.9.5. dt2str ΓòÉΓòÉΓòÉ
The dt2str function converts the datetime value to a printable string.
PSZ SPMPTR SPMAPI_ENTRY dt2str
(char * SPMPTR, /* output */
double, /* input */
SPMINT); /* input */
The char parameter is a pointer to a printable string.
In the double parameter field, specify the datetime value.
In the SPMINT parameter field, specify the length for the string returned in
the char parameter. Length is the key to the format. The order of the date
components and the separators is determined by the existing National Language
Support (NLS) setup. American English is shown here. Others are similar.
less than 6 - *'s to show error
6 - mmddyy
7 - ddmmmyy
8 or 9 - mm/dd/yy
10 - ddmmmyy:hh
11 - mm/dd/yyyy
12 - mm/dd/yy:hh
13 - ddmmmyy:hh:mm
14 or 15 - mm/dd/yy:hh:mm
16 - ddmmmyy:hh:mm:ss
17 to 18 - mm/dd/yy:hh:mm:ss
19 to 22 - mm/dd/yyyy:hh:mm:ss
The following are only guaranteed to work for American English.
23 - September dd, yyyy
24 to 26 - September dd, yyyy hh:mm
27 or more - September dd, yyyy hh:mm:ss
ΓòÉΓòÉΓòÉ 8.5.9.6. dv2str ΓòÉΓòÉΓòÉ
The dv2str function converts the date value to a printable string.
PSZ SPMPTR SPMAPI_ENTRY dv2str
(char * SPMPTR, /* output */
double, /* input */
SPMINT); /* input */
The char parameter is a pointer to a printable string.
In the double parameter field, specify the datetime value.
In the SPMINT parameter field, specify the length for the string returned in
the char parameter. Length is the key to the format. The order of the date
components and the separators is determined by the existing National Language
Support (NLS) setup. American English is shown here. Others are similar.
less than 6 - *'s to show error
6 - mmddyy
7 - ddmmmyy
8 - mm/dd/yy
9 - ddmmmyyyy
10 - mm/dd/yyyy
11 - yyyy/mm/dd
The following are only guaranteed to work for American English.
12 - mmm dd, yyyy
13 - Mon mm/dd/yy
14 - Mon yy/mm/dd
15 - Mon mm/dd/yyyy
16 - Mon yyyy/mm/dd
17 - Mon mmm dd, yyyy
18 - Mon, mmm dd, yyyy
19 - Mon: mmm dd, yyyy
20 - September dd, yyyy
21 - September dd, yyyy
22 - Mon September dd, yyyy
23 - Mon, September dd, yyyy
24 - Mon: September dd, yyyy
25 - Mon: September dd, yyyy
26 - Mon: September dd, yyyy
27 - Mon: September dd, yyyy
28 - Wednesday September dd, yyyy
29 - Wednesday, September dd, yyyy
30 - Wednesday: September dd, yyyy
ΓòÉΓòÉΓòÉ 8.5.9.7. tv2str ΓòÉΓòÉΓòÉ
The tv2str function converts the time value to a printable string.
PSZ SPMPTR SPMAPI_ENTRY tv2str
(char * SPMPTR, /* output */
double, /* input */
SPMINT); /* input */
The char parameter is a pointer to a printable string.
In the double parameter field, specify the datetime value.
In the SPMINT parameter field, specify the length for the string returned in
the char parameter. Length is the key to the format. The order of the date
components and the separators is determined by the existing National Language
Support (NLS) setup. American English is shown here. Others are similar.
less than 2 - *'s to show error
2 - hh
3 - hhh
4 - hhmi
5 - hh:mi
6 - hhh:mi
7 - hhhh:mi
8 - hh:mi:ss
9 - hhh:mi:ss
10 - hh:mi:ss.t
11 - hh:mi:ss.tt
12 - hh:mi:ss.ttt
13 - hh:mm:ss.tttt
14 - hhh:mm:ss.tttt
15 - hhhh:mm:ss.tttt
ΓòÉΓòÉΓòÉ 8.6. API Return Codes ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
The actual return of any SPM/2 API function is BOOL with a value of:
TRUE Indicates the function failed.
FALSE Indicates the function succeeded.
Each of the SPM/2 API functions contains a pxrcRC parameter that is a pointer
to an EXTENDEDRC structure. This structure contains two parameters:
FunctionCode and FunctionRC. When the BOOL value is TRUE, these two
parameters contain information about the error that occurred. When the BOOL
value is FALSE, these two parameters are reserved.
The FunctionCode parameter indicates the function being executed when the
error indicated by the FunctionRC parameter occurs.
SPM/2 API functions often call other functions. In general, any function may
return a code from one of the following functions:
o SPMAPIQualifyFileName
o SPMAPIQuery.
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o FunctionCode List
o FunctionRC List.
ΓòÉΓòÉΓòÉ 8.6.1. Function Codes ΓòÉΓòÉΓòÉ
Function Code Number Description
SPMAPI_PERR_BUFFERAREA 1 The address of a buffer area
passed to the SPM/2 API is invalid.
SPMAPI_PERR_BUFFERLENGTH 2 The length of a buffer passed to
the SPM/2 API is invalid.
SPMAPI_PERR_BYTESREAD 3 The address of the byte count
return area is invalid.
SPMAPI_PERR_CONFIGDATA 4 The value of configuration data
passed to the SPM/2 API is invalid.
SPMAPI_PERR_CONFIGOPT 5 The configuration option is
invalid.
SPMAPI_PERR_DOSEXECPGM 6 An unexpected error occurred when
attempting to start a program.
This error usually indicates an
installation error or configuration
change that causes SPM/2 API to
fail to find a required .EXE or
.DLL file.
SPMAPI_PERR_FILTER 7 A filter parameter passed was
invalid.
SPMAPI_PERR_FILTERSPEC 8 A problem with a parameter in the
FILTERSPEC structure occurred.
SPMAPI_PERR_LOGFILE 9 A problem with the .LOG file
occurred.
SPMAPI_PERR_LOGHANDLE 10 A problem occurred with the log
handle specified in a request.
SPMAPI_PERR_LOGOBJHANDLEI 11 An error occurred while attempting
to add a log object to the global
list.
SPMAPI_PERR_LOGOBJHANDLEO 12 An error occurred while trying to
find a log object in the global
list.
SPMAPI_PERR_LOGOBJNAME 13 The log object name specified is
not valid.
SPMAPI_PERR_QUCOMPNAME 14 A problem occurred with a
component value derived
internally in the SPM/2 API.
SPMAPI_PERR_QUCOMPONENT 15 A problem occurred with a
component value passed to the
SPM/2 API.
SPMAPI_PERR_QUOPTION 16 A problem occurred with the
quOption parameter.
SPMAPI_PERR_QURESULTS 17 A problem occurred with the
pbResults parameter
of the SPMAPIQuery function.
SPMAPI_PERR_RETURNCODE 18 The address of a return code
field is invalid. (Internal error.)
SPMAPI_PERR_SHUTDOWN 19 The shutdown option is not
defined. (Internal error.)
SPMAPI_PERR_SHUTDOWNOPT 19 The shutdown option passed to the
SPM/2 API is not valid.
SPMAPI_PERR_LOGOBJECT 20 A problem with the LogObject
parameter occurred. If returned
with a FunctionRC of zero, the
parameter was null or invalid.
SPMAPI_PERR_USERPARM 21 A required parameter passed to
the SPM/2 API is null or unusable.
SPMAPI_PERR_FILENAME 22 The filename passed to the SPM/2
API is not in the correct state for
the request.
SPMAPI_PERR_ILGPIPE 253 An internal error occurred in the
monitor (SPMILOG) session
query/command system.
Note: If the FunctionCode value returned is ILGPIPE, the FunctionRCvalue
returned is the failure code from the SPMILOG pipe header. These
failures normally reflect a temporary network error. A retry of the
call will probably succeed, but should be limited in case the network
error is permanent.
SPMAPI_PERR_NBQCALL 254 A network related error occurred.
A stream of return codes is
contained in theFunctionRC
parameter. The left-most,
nonzero byte is usually the
NETBIOS return code. The NETBIOS
return codes are documented in
the IBM LAN Technical
Reference. Return codes
above 0x40 normally indicate
hardware errors.
Note: If the FunctionCode value returned is NBQCALL, the FunctionRC value
returned may contain the failure code from the underlying NETBIOS call.
However, the NETBIOS Query package used by SPM/2 returns a concatenated
error string that may be longer than the FunctionRC variable. In such
a case, if the lowest level NETBIOS code does not fit into the return
area, it may be recorded in the SPMSNAP.ERR file in a separate message.
Because SPM/2 is a network application, network errors and problems may
be reflected in SPM/2, but may also be reported by the underlying
network software.
SPMAPI_PERR_DOSCALL 255 An unexpected error occurred in
an underlying system call.
Note: If the FunctionCode value returned is DOSCALL, the FunctionRC value
returned is the failure code from the underlying OS/2 call.
ΓòÉΓòÉΓòÉ 8.6.2. Function Return Codes ΓòÉΓòÉΓòÉ
Function Return Code Number Description
SPMAPI_ERR 1 For testing the BOOL return code
from an SPM/2 API function.
SPMAPI_ERROR 1 The exact error could not be
determined; for example, in a trap
recovery.
SPMAPI_ERR_DOSALLOCSHRSEG 2 An error occurred in a
DosAllocShrSeg function.
SPMAPI_ERR_DOSCLOSE 3 An error occurred in a DosClose
function.
SPMAPI_ERR_DOSCLOSESEM 4 An error occurred in a
DosCloseSem function.
SPMAPI_ERR_DOSCREATESEM 5 An error occurred in a
DosCreateSem function.
SPMAPI_ERR_DOSEXECPGM 6 An error occurred in a DosExecPgm
function.
SPMAPI_ERR_DOSGETSHRSEG 7 An error occurred in a
DosGetShrSeg function.
SPMAPI_ERR_DOSOPENSEM 8 An error occurred in a DosOpenSem
function.
SPMAPI_ERR_DOSSEMREQUEST 9 A required semaphore operation
failed.
SPMAPI_ERR_FILEBADFORMAT 10 The specified .LOG file is not a
valid file or is corrupted.
SPMAPI_ERR_FILEINUSE 11 A request was made to use a file
that is currently in use. The use
requested implied exclusive
access.
SPMAPI_ERR_FILENOTINUSE 12 Either the file does not exist,
has never been used for collection,
or is not currently active for
collection. The request for the
file required that it be currently
in use.
SPMAPI_ERR_GDBUFFERAREA 13 An error occurred that indicates
the global data buffer area
is invalid or not available. The
error is permanent. You cannot
retry this operation.
SPMAPI_ERR_GDBUFFERLENGTH 14 The length of the global data
buffer does not match that which
was expected at this time.
(Internal error.)
SPMAPI_ERR_GETGDA 18 The global data area is not
accessible. You may retry the
operation, but the retry should be
limited.
SPMAPI_ERR_GETIDA 19 The log object was found,
but its data was not found.
(Internal error.)
SPMAPI_ERR_INTERFACE_BUSY 20 A required resource was not
available, and waiting was not
allowed. This error is
transient. You may retry the
operation, but the retries should
be spaced with DosSleep(n) calls
and limited if the calling
process is interactive.
SPMAPI_ERR_NAKTIMEOUT 21 A monitor (SPMILOG) session
failed to respond to a shutdown
request.
SPMAPI_ERR_NOSPACE 22 Not enough space was provided in
a return area for an SPMAPIQuery or
SPMAPIGetData function. SPMAPIQuery
has a mechanism to return the
(probable) length of the required
area. For SPMAPIGetData calls, a
constant that always provides
enough space is supplied in the
SPMAPI.H file. (Internal error.)
SPMAPI_ERR_NOT_FOUND 23 A request was made to find an
SPM/2 element or component. The
element or component was not
found.
SPMAPI_ERR_NOT_OPEN 24 The specified log handle has not
been opened.
SPMAPI_ERR_NOT_SUPPORTED 25 The request is not supported for
the query or operation being
processed.
SPMAPI_ERR_NO_SPACE 26 Not enough space was provided in
a return area for an SPMAPIQuery or
SPMAPIGetData function. SPMAPIQuery
has a mechanism to return the
(probable) length of the required
area. For SPMAPIGetData calls, a
constant that always provides
enough space is supplied in the
SPMAPI.H file.
SPMAPI_ERR_QUOPTIONNOTVALID 27 The specified query option is not
defined.
SPMAPI_ERR_RANGE 28 The range of a parameter is
incorrect or illogical.
SPMAPI_ERR_TIMEOUT 29 An action against a log object
could not be performed in the
allotted time.
SPMAPI_ERR_TOOMANY 30 An internal limit has been reached.
SPMAPI_NDE_FOUND 33 An attempt to add a node failed
because it already exists.
(Internal error.)
SPMAPI_NDE_NOTFOUND 34 An attempt to find a node failed
because it does not exist.
(Internal error.)
SPMAPI_ERR_OBJECTINUSE 36 An action against a log object
could not be performed because
the action required that the
object not be active.
SPMAPI_ERR_OBJECTNOTINUSE 37 An action against a log object
could not be performed because
the action required that the
object be active.
SPMAPI_ERR_NULL_PARM 38 An error occurred because a null
parameter was passed.
SPMAPI_ERR_NOT_TERMINATED 39 A .LOG file was not closed
properly last time it was used.
No SPM/2 API function can
process this file.
Note: The following two codes may be returned by a query when an operation is
otherwise successful. They are internal return codes which may be
otherwise reflected.
SPMAPI_INFO_FILEREPAIRED 40 A file against which a query was
issued has been repaired by the
SPM/2 API.
SPMAPI_INFO_FILEINUSE 41 A file against which a query was
issued was in use at the time of
the query.
ΓòÉΓòÉΓòÉ 9. User Metrics: Overview ΓòÉΓòÉΓòÉ
ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
SPM/2 provides you with the capability to embed user metrics (various counters
and timers) in your application to collect application-specific data in
addition to the standard metrics collected by SPM/2.
Metrics, also known as hooks, can be used for fine-tuning during the
development phase of an application and removed afterward, or they can be left
in the application as an integral part of it, so that the end user can access
performance data about the application itself.
Metrics can be embedded in applications at two different ring levels: Ring 3
and Ring 0.
For applications that are written for Ring 3, SPM/2 provides metric definitions
in the C programming language.
Metric definitions are provided in Assembly language for applications written
for Ring 0 device drivers, file system drivers, and virtual device drivers.
More
ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
Select one:
o Using metrics
o Types of metrics
o Metric definition file format
o Ring 3 applications
o Ring 0 applications
o Installing the metric definition file
o Viewing collected metric data.
ΓòÉΓòÉΓòÉ <hidden> User Metrics: More ΓòÉΓòÉΓòÉ
There are two principal uses for user metric data:
o Help in fine-tuning an application.
o Ability to manage an application.
You can obtain much performance data by using just the provided OS/2
performance metrics. However, with user metrics, you can gather additional
data specific to your application. For example, you could employ a user
metric to count the number of times a subroutine is called. In a database
application, you could count the number of times that records are updated.
If you are managing a system, you might want to track tunable parameters. For
example, you could employ user metrics to track the number of buffers
allocated compared to the number of buffers actually used and then adjust the
allocations accordingly. Or, you could determine the maximum number of files
an application opens concurrently and adjust other factors to allow the
application enough RAM during times of peak usage. You can also use metrics to
measure a network's average end-to-end response time, which is the amount of
time elapsed between issuing a request and receiving a response.
ΓòÉΓòÉΓòÉ 9.1. Using Metrics ΓòÉΓòÉΓòÉ
User metrics work in the following way:
1. Your application must:
o Define the metrics
o Register the metrics with SPM/2
o Update the data values in the metrics.
2. Along with your application, you create a metric definition file. The
metric definition file contains the declaration of the metrics.
3. The metric definition file must be installed along with your application
by using the SPMAPPIN command. Your application can either install the
metric definition file for the user or instruct the user on the
installation process.
4. SPM/2 accesses the application's memory and retrieves the values in the
metrics at the specified sampling interval.
5. The user views the results through one of the following:
o Dump report provided by SPM/2
o Specialized report provided by a separate program through use of the
SPM/2 API.
ΓòÉΓòÉΓòÉ 9.2. Types of Metrics ΓòÉΓòÉΓòÉ
There are different types of metrics to measure different types of program
activity:
Counter 4-byte value. Increments by 1 for each occurrence of an
event (for example, number of disk read operations).
Timer 8-byte value. Counts ticks of the system clock (one tick
is equivalent to 838 nanoseconds on a Personal System/2
(PS/2) computer). When combined with other counters,
timers are used to measure how long an event takes.
Bulk Counter 8-byte value. Increments by quantities (for example,
number of bytes read since data collection began).
State Counter 4-byte value. Indicates the current state of a resource.
Its value increases or decreases one at a time (for
example, the number of pages in memory).
State Timer 8-byte value. The value and units are defined by the
application.
Bulk State Counter 8-byte value. A combination of the bulk counter and state
counter concepts. Indicates the current state of a
resource. Its value increases or decreases by quantities.
Queue length Consists of two parts:
o Queue count. This is 4-byte state counter that contains the current
number of elements in the queue at the time the snapshot of the hook
values was taken. This is just an instantaneous value, and is not used
in computing queue length over the entire interval.
o Queue time. This is an 8-byte timer that contains a value that is not
purely time, but rather a composite of the amount of time each element
has been in the queue.
To compute average number of elements in the queue over
the interval represented by this queue sample, use the
following equation:
Avg number of elements Queue Time
over the interval = ----------
Interval
CAUTION:
The timer, state timer, and queue length user metrics are more intrusive on
the system in terms of CPU cycles than are the counter, state counter, bulk
counter, and bulk state counter.
ΓòÉΓòÉΓòÉ 9.3. Metric Definition File Format ΓòÉΓòÉΓòÉ
The metric definition file is an ASCII text file with .SPM as the file name
extension. The format of the file should have the following characteristics:
o Comments begin with an asterisk and cannot be listed on the same line as the
statement.
o Column placement is not important, but it is useful for legibility.
o Blank lines are not allowed.
This structure may be repeated as many times as necessary in the metric
definition (.SPM) file.
A sample beginning of a metric definition file follows:
sftwnme=SPM/2
* name of software group
prgmnme=SPMINST
* name of program
groupnme="CPU"
* name of metric group -
* displayed to user on SPM/2 setup
* panels; must be in double quotes
groupord=3
* resource group ordinal
grouptag=CPU
* name of group as registered
* with SPM/2
fieldnme="counter"
* name of data item - column
* heading in dump report;
* must be in double quotes
fieldtag=counter
* name of data item as registered
* with SPM/2
fieldtyp=counter
* possible values
* - counter
* - timer
* - bulkcounter
* - statecounter
* - statetimer
* - bulkstatecounter
* - queue
fielddsc="Counter ticks"
* description of field
fieldhlp=
* reserved
fieldnme="timer"
fieldtag=timer
fieldtyp=timer
fielddsc=
fieldhlp=
fieldnme="bulkCounter"
fieldtag=bulkCounter
fieldtyp=bulkCounter
fielddsc=
fieldhlp=
ΓòÉΓòÉΓòÉ 9.4. Ring 3 Applications ΓòÉΓòÉΓòÉ
Example coding
The SPMUH.H file (included on your SPM/2 application installation diskettes)
defines the Ring 3 functions and must be included when you compile your
application if you want to use these functions.
The data block cannot have any variables that are not declared in the name
block, and they must be declared in the same order.
You must install SPM/2 using the /API option. Files are installed in the
drive:\spmPath\API subdirectory.
Use the following functions to define and register your application's
performance metrics:
SPMDataItem Defines one data item in a metric group.
SPMEnd Ends the definition of data items in a metric group.
SPMRegister Registers a metric group with SPM/2 for collection.
SPMDeregister Releases a metric group from collection.
Use the following functions to update your application's performance metrics:
SPMSetSem Allows the application to acquire the SPM/2 semaphore while updating
a group.
SPMClearSem Releases the SPM/2 semaphore. This function should be called
after the values in the Data block are finished being updated.
SPMUpdateCtr Increments the specified counter or state counter by the
specified positive or negative amount.
SPMUpdateBulkCtr Increments the specified bulk counter by the specified
positive or negative amount.
SPMAddQword Adds 2 quadwords, which are 8-byte signed integers.
SPMSubQword Subtracts 2 quadwords.
SPMStartTimer Starts a timer or state timer.
SPMStopTimer Stops a timer or state timer.
SPMEnterQ Adds the specified number of elements to the specified queue,
updating both the counter and timer parts of the queue.
SPMExitQ Removes the specified number of elements from the specified queue,
updating both the counter and timer parts of the queue.
SPMSetQueue Resets the value of the queue to the specified amount, updating
both the counter and timer parts of the queue.
SPMQueryTime Gets the current time.
SPMQueryFreq Gets the time frequency in hertz (Hz).
SPMAddQueueElement Adds one element to a queue.
SPMRemoveQueueElement Removes one element from a queue.
ΓòÉΓòÉΓòÉ 9.4.1. SPMDataItem ΓòÉΓòÉΓòÉ
Use the SPMDataItem function to define items in a metric group.
SPMDataItem
(var, /* input */
typ, /* input */
nam); /* input */
In the var parameter field, specify the variable name of the metric.
In the typ parameter field, specify the type of metric. Possible values are:
o SPM_T_CTR
o SPM_T_TMR
o SPM_T_QL
o SPM_T_BULKCTR
o SPM_T_CTR_STATE
o SPM_T_TMR_STATE
o SPM_T_BULKCTR_STATE
In the nam parameter field, specify the descriptive name of the parameter.
This name should be the same as the fielddsc parameter in the metric
definition file.
ΓòÉΓòÉΓòÉ 9.4.2. SPMEnd ΓòÉΓòÉΓòÉ
Use the SPMEnd function to end the definition of items in a metric group.
SPMEnd
This function has no parameters.
ΓòÉΓòÉΓòÉ 9.4.3. SPMRegister ΓòÉΓòÉΓòÉ
Use the SPMRegister function to register a metric group with SPM/2 for
collection. This function must be called before any of the update functions.
Select the highlighted parameters for more information about them:
ULONG APIENTRY SPMRegister
(PSZ SpmSWName, /* input */
PSZ SpmProgramName, /* input */
PSZ SpmProgramType, /* input */
PSZ SpmComment, /* input */
PSZ SpmDataGroupName, /* input */
PDBH SpmDataGroup, /* input */
PNAMES SpmNames, /* input */
PULONG SpmGroupHandle); /* output */
Return values
ΓòÉΓòÉΓòÉ <hidden> PSZ SpmSWName ΓòÉΓòÉΓòÉ
In the SpmSWName parameter, specify the name of your software package. For
example, "IBM SPM/2" is the name of this software package. This is the same
value as that in the softwnme parameter in the metric definition file.
ΓòÉΓòÉΓòÉ <hidden> PSZ SpmProgramName ΓòÉΓòÉΓòÉ
In the SpmProgramName parameter, specify the name of your program (.EXE) file.
For example, SPMINST is the name of the SPM/2 installation program file. This
is the same value as that in the prgmnme parameter in the metric definition
file.
ΓòÉΓòÉΓòÉ <hidden> PSZ SpmProgramType ΓòÉΓòÉΓòÉ
In the SpmProgramType parameter, specify one of the following program types:
PM Presentation Manager API program.
DD Device driver.
VDD Virtual device driver.
IFS Installable file system.
FULLSCREEN Full screen program.
WINDOWCOMPAT Window compatible program.
ΓòÉΓòÉΓòÉ <hidden> PSZ SpmComment ΓòÉΓòÉΓòÉ
In the SpmComment parameter, specify any identifying information.
ΓòÉΓòÉΓòÉ <hidden> PSZ SpmDataGroupName ΓòÉΓòÉΓòÉ
In the SpmDataGroupName parameter, specify a name for the SPMDataGroup. This
name must be unique and can be up to 20 characters long. This is the same
value as that in the grouptag parameter in the metric definition file.
Do not register the same group name more than once. If you do, SPM/2 picks up
only the last instance of a repeated group name.
ΓòÉΓòÉΓòÉ <hidden> PDBH SpmDataGroup ΓòÉΓòÉΓòÉ
In the SPMDataGroup parameter field, specify the address of the SPMDataGroup
block.
ΓòÉΓòÉΓòÉ <hidden> PNAMES SpmNames ΓòÉΓòÉΓòÉ
In the SPMNames parameter field, specify the address of the SPM names.
ΓòÉΓòÉΓòÉ <hidden> PULONG SpmGroupHandle ΓòÉΓòÉΓòÉ
The SPMGroupHandle parameter is a pointer to a ULONG parameter provided by the
calling application. Upon return, the SPMRegister function supplies the values
for the group handle structure.
The SPMGroupHandle parameter is required in subsequent calls to the
SPMDeregister, SPMSetSem, and SPMClearSem functions.
ΓòÉΓòÉΓòÉ <hidden> SPMRegister Return Values ΓòÉΓòÉΓòÉ
Possible return values for the SPMRegister function follow:
0 Successful.
1 Low word. The high word is the variable number that is in error.
2 The value specified in the SpmProgramType parameter field is not a valid
program type.
Any other value Return code from an OS/2 function used by the SPMRegister
function.
ΓòÉΓòÉΓòÉ 9.4.4. SPMDeregister ΓòÉΓòÉΓòÉ
Use the SPMDeregister function to release a metric group from collection.
ULONG APIENTRY SPMDeregister
(ULONG SpmGroupHandle); /* input/output */
The SPMGroupHandle parameter was returned by the SPMRegister.
Return values
ΓòÉΓòÉΓòÉ <hidden> SPMDeregister Return Values ΓòÉΓòÉΓòÉ
Possible return values for the SPMDeregister function follow:
0 Successful.
1 Group is not currently registered.
Any other value Return code from an OS/2 function used by the SPMDeregister
function.
ΓòÉΓòÉΓòÉ 9.4.5. SPMSetSem ΓòÉΓòÉΓòÉ
Use the SPMSetSem function to allow the application to acquire the SPM/2
semaphore while updating a group. While the application owns this semaphore,
SPM/2 will not collect data from that group, eliminating the possibility of
collecting data that is only partially updated. This function should be called
before the values in the data block are updated.
Note: The semaphore is set in the SPMRegister function.
ULONG APIENTRY SPMSetSem
(ULONG SpmGroupHandle); /* input */
The SPMGroupHandle parameter was returned by the SPMRegister.
ΓòÉΓòÉΓòÉ 9.4.6. SPMClearSem ΓòÉΓòÉΓòÉ
Use the SPMClearSem function to release the SPM/2 semaphore. This function
should be called after the values in the data block are finished being updated.
ULONG APIENTRY SPMClearSem
(ULONG SpmGroupHandle); /* input */
The SPMGroupHandle parameter was returned by the SPMRegister.
ΓòÉΓòÉΓòÉ 9.4.7. SPMUpdateCtr ΓòÉΓòÉΓòÉ
Use the SPMUpdateCtr function to increment a counter or state counter by a
positive or negative amount.
VOID APIENTRY SPMUpdateCtr
(PCTR SpmCtr, /* input */
LONG delta); /* input */
In the SpmCtr parameter field, specify the address of the counter you want
updated.
In the delta parameter field, specify the delta value of the counter.
ΓòÉΓòÉΓòÉ 9.4.8. SPMUpdateBulkCtr ΓòÉΓòÉΓòÉ
Use the SPMUpdateBulkCtr function to increment a bulk counter or bulk state
counter by a positive or negative amount.
VOID APIENTRY SPMUpdateBulkCtr
(PBULKCTR SpmBulkCtr, /* input */
LONG delta); /* input */
In the SpmCtr parameter field, specify the address of the bulk counter you want
updated.
In the delta parameter field, specify the delta value of the counter.
ΓòÉΓòÉΓòÉ 9.4.9. SPMAddQword ΓòÉΓòÉΓòÉ
Use the SPMAddQword function to add two quadwords (8-byte signed integers)
together.
BOOL APIENTRY SPMAddQword
(PQWORD a, /* input/output */
PQWORD b); /* input */
In the a parameter field, specify the address of the first quadword.
In the b parameter field, specify the address of the second quadword.
The function performed is:
*a = *a + *b
The answer is returned in the a parameter field. The return code is the
processor carry flag.
ΓòÉΓòÉΓòÉ 9.4.10. SPMSubQword ΓòÉΓòÉΓòÉ
Use the SPMSubQword function to subtract one quadword (8-byte signed integer)
from another quadword.
BOOL APIENTRY SPMSubQword
(PQWORD a, /* input/output */
PQWORD b); /* input */
In the a parameter field, specify the address of the first quadword.
In the b parameter field, specify the address of the second quadword.
The function performed is:
*a = *a - *b
The answer is returned in the a parameter field. The return code is the
processor carry flag.
ΓòÉΓòÉΓòÉ 9.4.11. SPMStartTimer ΓòÉΓòÉΓòÉ
Use the SPMStartTimer function to start a timer or state timer. When the timer
is started, the current time is subtracted from the current value of the timer.
When the timer is stopped, the current time is added to the value of the timer,
showing the amount of time that the timer ran.
VOID APIENTRY SPMStartTimer
(PTMR pTimer); /* input */
In the pTimer parameter field, specify the address of the timer you want
started.
ΓòÉΓòÉΓòÉ 9.4.12. SPMStopTimer ΓòÉΓòÉΓòÉ
Use the SPMStopTimer function to stop a timer or state timer, which is done by
adding the current time to the current value of the timer.
VOID APIENTRY SPMStopTimer
(PTMR pTimer); /* input */
In the pTimer parameter field, specify the address of the timer you want
stopped.
ΓòÉΓòÉΓòÉ 9.4.13. SPMEnterQ ΓòÉΓòÉΓòÉ
Use the SPMEnterQ function to add one or more elements to a queue. Both the
counter and timer parts of the queue are updated.
VOID APIENTRY SPMEnterQ
(PQL pqlQueue, /* input */
ULONG ulDelta); /* input */
In the pqlQueue parameter field, specify the address of the queue length.
In the ulDelta parameter field, specify the number of elements (normally 1)
added to the queue.
ΓòÉΓòÉΓòÉ 9.4.14. SPMExitQ ΓòÉΓòÉΓòÉ
Use the SPMExitQ function to remove one or more elements from a queue. Both the
counter and timer parts of the queue are updated.
VOID APIENTRY SPMExitQ
(PQL pqlQueue, /* input */
ULONG ulDelta); /* input */
In the pqlQueue parameter field, specify the address of the queue length.
In the ulDelta parameter field, specify the number of elements (normally 1)
removed from the queue.
ΓòÉΓòÉΓòÉ 9.4.15. SPMSetQueue ΓòÉΓòÉΓòÉ
Use the SPMSetQueue function to reset the value of the queue length to a
specified amount. Both the counter and timer parts of the queue are updated.
VOID APIENTRY SPMSetQueue
(PQL pqlQueue, /* input */
PQWORD pqwTime, /* input */
LONG ulNewCount); /* input */
In the pqlQueue parameter field, specify the address of the queue length.
In the pqwTime parameter field, specify the address of the current time. If
NULL is specified, current time will be used.
In the ulNewCount parameter field, specify the number of elements to be placed
in the queue length.
ΓòÉΓòÉΓòÉ 9.4.16. SPMQueryTime ΓòÉΓòÉΓòÉ
Use the SPMQueryTime function to get the current time.
VOID APIENTRY SPMQueryTime
(PQWORD pqwTime); /* input */
In the pqwTime parameter field, specify the address in which to put the current
time.
ΓòÉΓòÉΓòÉ 9.4.17. SPMQueryFreq ΓòÉΓòÉΓòÉ
Use the SPMQueryFreq function to get the current timer frequency, expressed in
hertz (Hz).
VOID APIENTRY SPMQueryFreq
(PULONG pulFreq); /* input */
In the pulFreq parameter field, specify the address in which to put the current
timer frequency.
ΓòÉΓòÉΓòÉ 9.4.18. SPMAddQueueElement ΓòÉΓòÉΓòÉ
Use the SPMAddQueueElement to add one element to a queue length.
SPMAddQueueElement
(Qcnt, /* input */
Qlen); /* input */
In the Qcnt parameter field, specify a name for the Qcnt variable. This will
have the total number of elements added to the queue. The Qcnt parameter is of
type "counter."
In the Qlen parameter field, specify a name for the Qlen variable.
ΓòÉΓòÉΓòÉ 9.4.19. SPMRemoveQueueElement ΓòÉΓòÉΓòÉ
Use the SPMRemoveQueueElement to remove one element from a queue length.
SPMRemoveQueueElement
(Qcnt, /* input */
Qlen); /* input */
In the Qcnt parameter field, specify a name for the Qcnt variable. This will
have the total number of elements added to the queue. The Qcnt parameter is of
type "counter."
In the Qlen parameter field, specify a name for the Qlen variable.
ΓòÉΓòÉΓòÉ 9.4.20. Ring 3 Example Coding ΓòÉΓòÉΓòÉ
#include <os2.h>
#include "SPMUH.h"
struct _test_db {
DBH dbh;
CTR counter;
TMR timer;
QL queueLength;
BULKCTR bulkCounter;
CTR_STATE counter_state;
TMR_STATE timer_state;
BULKCTR_STATE bulkcnt_state;
} test_db;
NAMES names[]={
SPMDataItem( test_db.counter, SPM_T_CTR, "counter"),
SPMDataItem( test_db.timer, SPM_T_TMR, "timer"),
SPMDataItem( test_db.queueLength, SPM_T_QL, "queueLength"),
SPMDataItem( test_db.bulkCounter, SPM_T_BULKCTR, "bulkCounter"),
SPMDataItem( test_db.counter_state, SPM_T_CTR_STATE, "counter_state"),
SPMDataItem( test_db.timer_state, SPM_T_TMR_STATE, "timer_state"),
SPMDataItem( test_db.bulkcnt_state, SPM_T_BULKCTR_STATE, "bulkcnt_state"),
SPMEnd
};
VOID main( int argc, char *argv[])
{
ULONG rc;
ULONG SPMhandle;
QWORD qwCurrentTime;
rc = SPMRegister( "SPM test",
"SPMT32",
"WindowCompat",
"commEnt, and more, and still more",
"testing_32",
(PDBH) &test_db,
(PNAMES) &names,
&SPMhandle);
if (rc == 0)
{
// Let's update them.
// The sempahore must be set before we start updating the values.
SPMSetSem( SPMhandle);
// The counter can be updated.
SPMUpdateCtr( &test_db.counter, +1);
SPMUpdateCtr( &test_db.counter, -2);
// The timer is started and then stopped.
SPMStartTimer( &test_db.timer);
SPMStopTimer( &test_db.timer);
// Set the Queue_Length to zeroes before starting.
test_db.queueLength.ql_ct =
test_db.queueLength.ql_tm.ulHi =
test_db.queueLength.ql_tm.ulLo = 0;
// Enter and exit with various amounts.
SPMEnterQ( &test_db.queueLength, 1);
SPMEnterQ( &test_db.queueLength, 2);
SPMExitQ( &test_db.queueLength, 2);
SPMExitQ( &test_db.queueLength, 1);
// Set the Queue_Length fields back to zeroes.
test_db.queueLength.ql_ct =
test_db.queueLength.ql_tm.ulHi =
test_db.queueLength.ql_tm.ulLo = 0;
// Set specific values into the Queue_Length, using 'current' time.
SPMSetQueue( &test_db.queueLength, NULL, 4);
SPMSetQueue( &test_db.queueLength, NULL, 3);
SPMSetQueue( &test_db.queueLength, NULL, 0);
// Query current time value.
SPMQueryTime( &qwCurrentTime);
// Set the Queue_Length fields back to zeroes.
test_db.queueLength.ql_ct =
test_db.queueLength.ql_tm.ulHi =
test_db.queueLength.ql_tm.ulLo = 0;
// Set specific values into the Queue_Length, using a specified time.
SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 4);
SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 3);
SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 0);
// Now that we are done, clear the semaphore.
SPMClearSem( SPMhandle);
// Can now deregister the group.
rc = SPMDeregister( SPMhandle);
}
}
ΓòÉΓòÉΓòÉ 9.5. Ring 0 Applications ΓòÉΓòÉΓòÉ
Example coding
The Ring 0 programmer must be more knowledgeable about the SPM/2 data
structures. The definition macros provided for Ring 3 applications are not
possible for Ring 0, so you must allocate all of the data structures yourself.
The SPMUH.INC file (included on your SPM/2 application installation diskettes)
defines the Ring 0 functions and must be included when you compile your
application if you want to use these functions.
You must install SPM/2 using the /API option. Files are installed in the
drive:\SPM2V2\API subdirectory.
Ring 0 registration must be done at device driver initialization. Do not
register the same group name more than once. If you do, SPM/2 picks up only
the last instance of a repeated group name.
To place metrics into a device driver, do the following:
1. Include the SPMUH.INC file.
2. Allocate all of the following three data structures:
Data block The data block is where the actual data items reside.
The data block cannot have any variables that are not
declared in the name block, and the variables must be
declared in the same order.
Text block The text block is associated with the data block at
registration time. The text block contains a pointer
to the name block which contains the text descriptions
for each data item. The order of the data items in the
name block must correspond exactly to the order of the
data items in the data block.
Name block The name block contains the text descriptions for each
data item. This text description will show up in the
report. The name can be a maximum of 13 characters.
3. At device driver initialization time, register the data and text blocks
with the OS/2 system through one of the following functions:
dh_RegisterPerfCtrs Allows a device driver to register a metric data
block for collection or to release a metric data
block from collection.
fsh_RegisterPerfCtrs Allows a file-system device driver to register a
metric data block for collection or to release a
metric data block from collection.
vdh_RegisterPerfCtrs Allows a virtual device driver to register a
metric data block for collection or to release a
metric data block from collection.
SPMDataItem Defines data items in a name block.
4. Use the following functions to update your application's performance
metrics:
SPMSetSem Allows the application to acquire the SPM semaphore
while updating a group. While the application owns
this semaphore, SPM will not collect data from that
group, eliminating the possibility of collecting data
that is only partially updated.
SPMClearSem Releases the SPM semaphore.
In addition, the OS/2 program provides two Ring 0 timer functions. The
address of these functions is returned in the data block after a register
call.
pfnTmrSub Starts a timer by subtracting the current time from the
current value of the timer.
pfnTmrAdd Stops a timer by adding the current time to the current
value of the timer. The combined time values indicate
how long the timer ran. Negative numbers indicate that
the timer is running.
Note: It is the responsibility of the Ring 0 application programmer to write
the code to update metrics.
ΓòÉΓòÉΓòÉ 9.5.1. Ring 0 Example Coding ΓòÉΓòÉΓòÉ
Select one of the following code fragments for the various functions:
o Declare a metric group
o Register a metric group
o Update a single counter
o Update a single timer
o Add a queue element to a queue length
o Remove a queue element from a queue length.
ΓòÉΓòÉΓòÉ 9.5.1.1. Declare a Metric Group (SPMDataItem) ΓòÉΓòÉΓòÉ
TimerStart DD 0 ; Address of Timer Start routine
TimerStop DD 0 ; Address of Timer Stop routine
; PervView "group"
DataBlock DB SIZE pvdbh_s dup (0)
Counter CTR <>
Timer TMR <>
DataBlockEnd EQU $
; PerfView "name block"
str1 db "Counter", 0
str2 db "Timer", 0
; Group name
GroupName db "SPMDD_Group", 0
; Instance name
InstanceName db "SPM,SPMDD,DD,0,0,This is a sample Device Driver", 0
; Null string
Null db 0
even
NameBlock EQU $
SPMDataItem SPM_T_CTR,CTR,str1
SPMDataItem SPM_T_TMR,TMR,str2
TextBlock dd TBH_VER_2_0_0_0
dw 0 ; Block instance ID
dw 0 ; Block group ID
; Group name
dd 0 ; flags
dw 0 ; size
dw 0 ; message ID
dw offset GroupName
dw seg GroupName
; Instance name
dd 0 ; flags
dw 0 ; size
dw 0 ; message ID
dw offset InstanceName
dw seg InstanceName
; trailer info
dd 0 ; Message File
dd 0 ; Help File
dd 2 ; number of DataItems
dw offset NameBlock
dw seg NameBlock
ΓòÉΓòÉΓòÉ 9.5.1.2. Register a Metric Group (SPMRegister) ΓòÉΓòÉΓòÉ
MOV EAX,OFFSET DataBlockEnd - OFFSET DataBlock
MOV DataBlock.dbh_ulTotLen,EAX
MOV ECX,SPM_REGISTER_DD
MOV DataBlock.dbh_flFlags,ECX
MOV WORD PTR DataBlock.dbh_ulSem,1 ; Set the semaphore -PTR 1680
MOV WORD PTR DataBlock.dbh_ulSem+2,0 ; Clear update count-PTR 1680
MOV SI,SEG DataBlock
MOV AX,OFFSET DataBlock
MOV DI,SEG TextBlock
MOV BX,OFFSET TextBlock
MOV DL,DevHlp_RegisterPerfCtrs
CALL [DEVHLP]
MOV EAX,DataBlock.dbh_pfnTmrSub
MOV TimerStart,EAX
MOV EAX,DataBlock.dbh_pfnTmrAdd
MOV TimerStop,EAX
ΓòÉΓòÉΓòÉ 9.5.1.3. Update a Single Counter (SPMUpdateCtr) ΓòÉΓòÉΓòÉ
SPMSetSem DataBlock
INC Counter
SPMClearSem DataBlock
ΓòÉΓòÉΓòÉ 9.5.1.4. Update a Single Timer (SPMStartTimer and SPMStopTimer) ΓòÉΓòÉΓòÉ
SPMStartTimer
SPMSetSem DataBlock
PUSH DS
PUSH OFFSET Timer
CALL [TimerStart]
SPMClearSem DataBlock
SPMStopTimer
SPMSetSem DataBlock
PUSH DS
PUSH OFFSET Timer
CALL [TimerStop]
SPMClearSem DataBlock
ΓòÉΓòÉΓòÉ 9.5.1.5. Add a Queue Element to a Queue Length (SPMEnterQ) ΓòÉΓòÉΓòÉ
SPMSetSem DataBlock
INC ql_ct
PUSH DS
PUSH OFFSET ql_tm
CALL [TimerStart]
SPMClearSem DataBlock
ΓòÉΓòÉΓòÉ 9.5.1.6. Remove a Queue Element from a Queue Length (SPMExitQ) ΓòÉΓòÉΓòÉ
SPMSetSem DataBlock
DEC ql_ct
PUSH DS
PUSH OFFSET ql_tm
CALL [TimerStop]
SPMClearSem DataBlock
ΓòÉΓòÉΓòÉ 9.6. Installing the Metric Definition File ΓòÉΓòÉΓòÉ
Your application's metric definition file must be installed using SPM/2 in
order for the file to be recognized by the SPM/2 application. Your application
can either:
o Programmatically install its metric definition file
or
o Instruct the user in how to install the file by using SPM/2.
To install the metric definition file, enter the following command at an OS/2
command prompt:
SPMAPPIN drive:\path\filename.SPM
where drive:\path\filename.SPM is the fully qualified name of the metric
definition file you are installing.
SPM/2 adds the information in the metric definition file to the SPMAPP.INI
file. SPM/2 then uses the SPMAPP.INI file to determine which metrics are
available to be collected.
When you install your metric definition file, SPM/2 rebuilds the SPMCTRGP.H
file, which contains a description of the OS/2 data structures, and adds a
description of the structures in your application.
Note: SPMAPPIN ? provides a syntax diagram and brief help text for the
SPMAPPIN command.
ΓòÉΓòÉΓòÉ 9.7. Viewing the Collected Metric Data ΓòÉΓòÉΓòÉ
SPM/2 provides a dump report type for viewing the values of the collected
counters and timers. This report shows the decimal values for all data items
in all collected groups at each collection interval.
If an application has special analysis requirements that the dump report does
not satisfy, the application developer can write an application that uses the
SPM/2 API to retrieve the performance data either in real time or from the log
file, analyze the data, and write a customized report.
ΓòÉΓòÉΓòÉ 10. SPM/2 Messages ΓòÉΓòÉΓòÉ
Access a message number through the Contents window for more information.
Return codes appear in some messages. Descriptions of those codes can be found
in the following references:
o IBM OS/2 LAN Server Version 3.0 Application Programmer's Reference
o IBM OS/2 Technical Library, Programming Guides.
ΓòÉΓòÉΓòÉ 10.1. SPM0001 ΓòÉΓòÉΓòÉ
Not enough memory to initialize National Language Support.
There is insufficient swap space. Increase the amount of space available to the
SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.2. SPM0002 ΓòÉΓòÉΓòÉ
Message file error - name - return code.
Message file is missing or locked by another process. Make sure the SPM.MSG
file is in the message path.
ΓòÉΓòÉΓòÉ 10.3. SPM0005 ΓòÉΓòÉΓòÉ
Not enough memory to complete initialization.
There is insufficient swap space. Increase the amount of space available to the
SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.4. SPM0006 ΓòÉΓòÉΓòÉ
Out of heap space.
There is insufficient swap space. Increase the amount of space available to the
SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.5. SPM0007 ΓòÉΓòÉΓòÉ
SPMDCF should not be started from the command line.
The program should not be executed from the command line. Do not execute
SPMDCF.EXE from the command line.
ΓòÉΓòÉΓòÉ 10.6. SPM0008 ΓòÉΓòÉΓòÉ
DosExecPgm failed. Return code = %1. Load error = %2.
Program is missing or damaged, or the path is wrong. Verify that setup and
installation are correct.
ΓòÉΓòÉΓòÉ 10.7. SPM0010 ΓòÉΓòÉΓòÉ
/LISTEN or /STOPLISTEN or /HALTALL parameter missing.
Command line syntax is incorrect. A required parameter was missing. Enter the
command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.8. SPM0012 ΓòÉΓòÉΓòÉ
Command line parameters must begin with the / character.
Command line syntax is incorrect. A parameter did not begin with a / character.
Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.9. SPM0013 ΓòÉΓòÉΓòÉ
Too many command line parameters.
Command line syntax is incorrect. There were too many parameters specified in
the command. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.10. SPM0014 ΓòÉΓòÉΓòÉ
Command line parameter must be /LISTEN or /STOPLISTEN or /HALTALL.
Command line syntax is incorrect. One of the indicated parameters must be
specified with the SPMNBL command. Enter the command followed by a ? to
display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.11. SPM0016 ΓòÉΓòÉΓòÉ
Command line parameters must include /LISTEN or /STOPLISTEN or /HALTALL.
Command line syntax is incorrect. One of the indicated parameters must be
specified with the SPMNBL command. Enter the command followed by a ? to
display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.12. SPM0020 ΓòÉΓòÉΓòÉ
Unable to locate or create shared storage area.
A shared storage area is locked and therefore unavailable. A system CPU
overload or software failure has occurred.
Reduce the CPU load on the system. Stop all SPM/2 components on the system.
Retry the operation.
ΓòÉΓòÉΓòÉ 10.13. SPM0021 ΓòÉΓòÉΓòÉ
Unable to create an instance of the DCF.
A shared storage area is locked and therefore unavailable. A system CPU
overload or software failure has occurred.
Reduce the CPU load on the system. Stop all SPM/2 components on the system.
Retry the operation.
ΓòÉΓòÉΓòÉ 10.14. SPM0023 ΓòÉΓòÉΓòÉ
DCF started but no response. DCF failure likely.
The NETBIOS listener has not received a startup acknowledgment from a Data
Collection Facility.
Check the SPMSNAP.ERR file and use PSTAT to determine if the Data Collection
Facility session has started. If the Data Collection Facility has started, no
action is necessary. If the condition persists, shut down and restart your
system.
ΓòÉΓòÉΓòÉ 10.15. SPM0024 ΓòÉΓòÉΓòÉ
Unable to locate DCF instance area %1.
An internal error has occurred. System should recover after 5 minutes.
ΓòÉΓòÉΓòÉ 10.16. SPM0025 ΓòÉΓòÉΓòÉ
Open named pipe failed. Return code = %1.
A pipe name is not currently available to the Data Collection Facility. This
is typically a temporary condition.
Verify that the associated SPMILOG is still running. Verify that network
security permits access to the pipe. Check the return code in the SPMSNAP.ERR
file.
ΓòÉΓòÉΓòÉ 10.17. SPM0026 ΓòÉΓòÉΓòÉ
Not enough memory for the pipe buffer.
The pipe buffer size exceeds the size of the buffer pool. This is an internal
error.
ΓòÉΓòÉΓòÉ 10.18. SPM0027 ΓòÉΓòÉΓòÉ
Pipe read failure. Read return code = %1.
This message indicates one of the following:
o The SPMILOG was stopped using the /HALT parameter rather than the usual
/DRAIN parameter.
o A forced disconnect from the network of the workstation on which the SPMILOG
was running.
o An SPMILOG error or failure.
Check the return code in the SPMSNAP.ERR file.
ΓòÉΓòÉΓòÉ 10.19. SPM0028 ΓòÉΓòÉΓòÉ
Pipe idle.
The DCF has not received messages from the SPMILOG for an extended period.
ΓòÉΓòÉΓòÉ 10.20. SPM0029 ΓòÉΓòÉΓòÉ
Pipe multiplexer wait error. Return code = %1.
An internal error has occurred. Retry the operation.
ΓòÉΓòÉΓòÉ 10.21. SPM0031 ΓòÉΓòÉΓòÉ
Out of memory for pipe buffers.
The amount of buffer space requested exceeds the buffer pool size. This is an
internal error.
ΓòÉΓòÉΓòÉ 10.22. SPM0035 ΓòÉΓòÉΓòÉ
Pipe write error. Return code =
DosWrite failed with the return code listed. The cause is probably the
shutdown of associated SPMILOG, or possibly a network failure.
Examine the return code to determine cause of failure.
ΓòÉΓòÉΓòÉ 10.23. SPM0038 ΓòÉΓòÉΓòÉ
NETBIOS listener already active.
The SPMNBL command was used with the /LISTEN parameter while a listener was
already active. Only one listener is permitted per workstation.
ΓòÉΓòÉΓòÉ 10.24. SPM0040 ΓòÉΓòÉΓòÉ
NETBIOS listener idle.
The NETBIOS listener has not received a message for an extended period.
ΓòÉΓòÉΓòÉ 10.25. SPM0041 ΓòÉΓòÉΓòÉ
Queue multiplexer wait error. Return code = %1.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.26. SPM0047 ΓòÉΓòÉΓòÉ
Listener not active.
A STOPLISTEN command was entered while no listener was active.
ΓòÉΓòÉΓòÉ 10.27. SPM0049 ΓòÉΓòÉΓòÉ
NETBIOS listener unable to register with NETBIOS.
The NETBIOS listener was unable to activate the NETBIOS query and NETBIOS
interfaces. Probable cause is the absence of a network.
Make sure the network is active and properly configured.
ΓòÉΓòÉΓòÉ 10.28. SPM0051 ΓòÉΓòÉΓòÉ
Datagram rejected for password or workstation name.
The NETBIOS listener has received a datagram which contains an invalid password
or workstation name. This is probably a network error.
No action is necessary. SPM/2 should recover.
ΓòÉΓòÉΓòÉ 10.29. SPM0052 ΓòÉΓòÉΓòÉ
No memory for datagram buffers.
Datagram buffer size is larger than the memory pool. This is an internal error.
ΓòÉΓòÉΓòÉ 10.30. SPM0053 ΓòÉΓòÉΓòÉ
SPMNET: Unable to locate global descriptor area.
An internal error has occurred.
Stop and then restart the NETBIOS listener.
ΓòÉΓòÉΓòÉ 10.31. SPM0054 ΓòÉΓòÉΓòÉ
SPMNET: No memory for workstation name buffer.
Datagram buffer size larger than memory pool. This is an internal error.
ΓòÉΓòÉΓòÉ 10.32. SPM0055 ΓòÉΓòÉΓòÉ
SPMNET: Cannot open DCF start queue. DosOpenQueue return code = %1.
A file system error has occurred.
ΓòÉΓòÉΓòÉ 10.33. SPM0056 ΓòÉΓòÉΓòÉ
SPMNBL: Cannot create DCF start queue.
The queue name is not permitted by the file system. Check restrictions on queue
names.
ΓòÉΓòÉΓòÉ 10.34. SPM0057 ΓòÉΓòÉΓòÉ
SPMNET: NETBIOS not available. Network code shutdown.
An SPMNBL /LISTEN was requested but NETBIOS was not available. Start the
network.
ΓòÉΓòÉΓòÉ 10.35. SPM0058 ΓòÉΓòÉΓòÉ
Unable to start SPMNBL. DosExecPgm return code = %1.
A DosExecProgram failed with the indicated return code. Probable cause is an
inability to find SPMNET.EXE in path. The SWAPPER.DAT file may be full.
Make sure program path includes SPMNET.EXE.
ΓòÉΓòÉΓòÉ 10.36. SPM0060 ΓòÉΓòÉΓòÉ
Command line error. The .LOG file name is missing.
Command line syntax is incorrect. The .LOG file name was not specified. Enter
the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.37. SPM0061 ΓòÉΓòÉΓòÉ
Command line error too many parameters.
Command line syntax is incorrect. Too many parameters were specified for the
command. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.38. SPM0063 ΓòÉΓòÉΓòÉ
.LOG file name is not permitted for HALTALL or DRAINALL.
Command line syntax is incorrect. A file name was specified with the SPMISTOP
/HALTALL or /DRAINALL parameters. Enter the command followed by a ? to display
the correct syntax.
Retype the command correctly.
Note: To stop a single SPMILOG, use the /HALT or /DRAIN parameter with the
file name.
ΓòÉΓòÉΓòÉ 10.39. SPM0065 ΓòÉΓòÉΓòÉ
Not enough memory to construct a sample point. Return code = %1.
There was not enough memory during the sampling process. The probable cause is
an inability to expand the SWAPPER.DAT file.
Expand the space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.40. SPM0066 ΓòÉΓòÉΓòÉ
Unable to resolve OS/2 kernel symbolics. Return code = %1.
A group name specified for collection is not available. This can be a temporary
situation for groups that register with OS/2 kernel after collection has
started. Or it could be that device driver or other OS/2 kernel user is not
installed.
Check the spelling of the group name.
ΓòÉΓòÉΓòÉ 10.41. SPM0067 ΓòÉΓòÉΓòÉ
Unable to locate OS/2 kernel data block. Return code = %1.
A group data block is unavailable for a registered group. Probably, a group was
deregistered during the configuration process.
ΓòÉΓòÉΓòÉ 10.42. SPM0068 ΓòÉΓòÉΓòÉ
Unable to build memory pools. Return code = %1.
There is probably a shortage of swap space.
Expand the space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.43. SPM0069 ΓòÉΓòÉΓòÉ
Unable to configure a OS/2 kernel element. Return code = %1.
The configuration call for a data group requiring configuration failed. An
application error probably occurred.
ΓòÉΓòÉΓòÉ 10.44. SPM0070 ΓòÉΓòÉΓòÉ
Too many command line parameters.
Command line syntax is incorrect. There are more command line parameters than
the command allows. Enter the command followed by a ? to display the correct
syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.45. SPM0071 ΓòÉΓòÉΓòÉ
Too few command line parameters.
Command line syntax is incorrect. The minimum number of command line parameters
have not been supplied. Enter the command followed by a ? to display the
correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.46. SPM0072 ΓòÉΓòÉΓòÉ
.LOG file %1 is not active.
The command entered requires an active .LOG file, and none were active.
Retype the command and specify the name of an active .LOG file.
ΓòÉΓòÉΓòÉ 10.47. SPM0073 ΓòÉΓòÉΓòÉ
Cannot access message log file SPM.MSG.
The message file cannot be accessed, or its contents are wrong. Possible
installation error.
Make sure that SPM.MSG has not been corrupted and is in the DPATH.
ΓòÉΓòÉΓòÉ 10.48. SPM0075 ΓòÉΓòÉΓòÉ
Unable to access global descriptor area.
A shared resource was unavailable for an extended period.
Wait a while and retry the operation.
ΓòÉΓòÉΓòÉ 10.49. SPM0076 ΓòÉΓòÉΓòÉ
Command line parameter %1 not recognized.
Command line syntax is incorrect. A parameter on the command line is not
spelled correctly. Enter the command followed by a ? to display the correct
syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.50. SPM0077 ΓòÉΓòÉΓòÉ
SPMISTOP parameter (/DRAIN /HALT /DRAINALL /HALTALL) is missing.
Command line syntax is incorrect. A required parameter was not supplied. Enter
the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.51. SPM0079 ΓòÉΓòÉΓòÉ
No response from SPMILOG.
The SPMILOG did not acknowledge a SPMISTOP /DRAIN or /HALT command.
The problem may be temporary. Retry the operation.
ΓòÉΓòÉΓòÉ 10.52. SPM0081 ΓòÉΓòÉΓòÉ
Internal error shutdown option.
An internal error occurred.
ΓòÉΓòÉΓòÉ 10.53. SPM0082 ΓòÉΓòÉΓòÉ
Unable to allocate remote pipe buffer.
The system is probably out of swap space.
Make more swap space available.
ΓòÉΓòÉΓòÉ 10.54. SPM0083 ΓòÉΓòÉΓòÉ
Unable to allocate a sample point buffer. Return code = %1.
The system is probably out of swap space.
Make more swap space available. Reduce the number of items being collected.
ΓòÉΓòÉΓòÉ 10.55. SPM0084 ΓòÉΓòÉΓòÉ
Unable to allocate timer semaphore.
The maximum number of semaphores supported by OS/2 has been reached.
Reduce the number of active processes.
ΓòÉΓòÉΓòÉ 10.56. SPM0085 ΓòÉΓòÉΓòÉ
Unable to start timer.
The maximum number of timers supported by OS/2 has been reached.
Reduce the number of active processes.
ΓòÉΓòÉΓòÉ 10.57. SPM0086 ΓòÉΓòÉΓòÉ
Timer wait error - DCF stopping. Return code = %1.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.58. SPM0087 ΓòÉΓòÉΓòÉ
Unable to allocate multiplexer wait semaphore %1.
The maximum number of multiplexer wait semaphores supported by OS/2 has been
reached.
Reduce the number of active processes.
ΓòÉΓòÉΓòÉ 10.59. SPM0088 ΓòÉΓòÉΓòÉ
No memory for instance names - instance collection disabled. Return code = %1.
The system is probably out of swap space.
Make more swap space available. Reduce the number of items being collected.
ΓòÉΓòÉΓòÉ 10.60. SPM0089 ΓòÉΓòÉΓòÉ
DCF stopping because of pipe error. Return code = %1.
A pipe I/O error has been recognized. An unexpected termination of an SPMILOG
session probably occurred.
Restart the SPMILOG.
ΓòÉΓòÉΓòÉ 10.61. SPM0091 ΓòÉΓòÉΓòÉ
Group list element ordinal %1 not recognized.
No information is available for the ordinal number noted. An internal error
probably occurred.
ΓòÉΓòÉΓòÉ 10.62. SPM0092 ΓòÉΓòÉΓòÉ
Group list element ordinal type not supported. Ordinal type %1.
The ordinal number specified is of an unknown type.
ΓòÉΓòÉΓòÉ 10.63. SPM0093 ΓòÉΓòÉΓòÉ
Group list element service function undefined. Return code = %1.
A service function required by an ordinal is not available in the SPMSRVFS.DLL
file on the monitored workstation.
ΓòÉΓòÉΓòÉ 10.64. SPM0094 ΓòÉΓòÉΓòÉ
Error while loading SPMSRVFS.DLL. Return code = %1.
Probable cause - damaged .DLL file.
Ensure the integrity of the SPMSRVFS.DLL file.
ΓòÉΓòÉΓòÉ 10.65. SPM0095 ΓòÉΓòÉΓòÉ
SPMGetOrdInfo missing from SPMSRVFS. Return code = %1.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.66. SPM0099 ΓòÉΓòÉΓòÉ
DCF stopped, cause unknown - code %1.
An internal error occurred.
ΓòÉΓòÉΓòÉ 10.67. SPM0109 ΓòÉΓòÉΓòÉ
Command line parameter %1 not recognized.
The command line parameter indicated was not recognized.
Check the syntax for the command and retype it.
ΓòÉΓòÉΓòÉ 10.68. SPM0115 ΓòÉΓòÉΓòÉ
Mutually exclusive command line parameters found.
Command line syntax is incorrect. Conflicting parameters were entered. Enter
the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.69. SPM0117 ΓòÉΓòÉΓòÉ
Cannot listen. NETBIOS not available.
A request has been made to listen for Data Collection Facility start commands
on the network, but no network is installed.
ΓòÉΓòÉΓòÉ 10.70. SPM0125 ΓòÉΓòÉΓòÉ
Semaphore timeout waiting for shared storage area.
The NETBIOS listener was unable to start or stop a Data Collection Facility
because the global descriptor area was locked for an extended period.
The condition may be temporary. The SPMILOG session will retry start commands
within 5 minutes. You can retry stop commands.
ΓòÉΓòÉΓòÉ 10.71. SPM0126 ΓòÉΓòÉΓòÉ
No memory left in global descriptor area (shared storage).
There is insufficient memory remaining in the global descriptor area to start
another Data Collection Facility. This can happen after repeated failures of a
Data Collection Facility.
Stop the NETBIOS listener, all Data Collection Facilities, and SPMILOG sessions
active on the workstation experiencing the problem. When all have terminated,
they may be restarted.
ΓòÉΓòÉΓòÉ 10.72. SPM0127 ΓòÉΓòÉΓòÉ
Maximum number of DCFs already active.
An attempt was made to activate a second Data Collection Facility. No more
than one Data Collection Facility sessions can be active on a single
workstation.
ΓòÉΓòÉΓòÉ 10.73. SPM0132 ΓòÉΓòÉΓòÉ
Command line parameter %1 not recognized.
Command line syntax is incorrect. The parameter indicated is not a valid
parameter for the command. Enter the command followed by a ? to display the
correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.74. SPM0140 ΓòÉΓòÉΓòÉ
Unable to access %1. Open return code = %2.
The program was unable to access the file and obtained the return code
indicated.
ΓòÉΓòÉΓòÉ 10.75. SPM0142 ΓòÉΓòÉΓòÉ
%1 is not a .LOG file or is badly corrupted.
The file indicated is either:
o Not a .LOG file that was created by SPM/2 software
o Has been altered by non-SPM/2 software
o Was being recorded when a system crash occurred.
The .LOG file cannot be reused.
ΓòÉΓòÉΓòÉ 10.76. SPM0143 ΓòÉΓòÉΓòÉ
%1 was not properly closed when last used. Execution continues.
The .LOG file was not closed as part of the orderly shut down of an SPMILOG.
Content errors may exist in log and session status records.
No action is necessary. The error flag is reset. The content records are not
corrected, and the file is used normally.
ΓòÉΓòÉΓòÉ 10.77. SPM0144 ΓòÉΓòÉΓòÉ
File %1 not found or DPATH not set. DosSearchPath return code = %2.
The file indicated was not located.
Check the file name and DPATH for errors.
ΓòÉΓòÉΓòÉ 10.78. SPM0145 ΓòÉΓòÉΓòÉ
National Language Support message file missing or in error.
The National Language Support file could not be accessed, or a specific message
number is missing from the file. A preceding message gives the specific
message number. Probable cause - installation error.
Put the message file in a path that can be accessed from the program.
ΓòÉΓòÉΓòÉ 10.79. SPM0147 ΓòÉΓòÉΓòÉ
File %1 verified but collection may not have started - check SPMSNAP.ERR for
more information.
The .LOG file specified in the start command meets basic structure and content
requirements. An SPMILOG was started but has not signaled that it initialized
successfully. The SPMILOG may or may not have started successfully.
If the SPMILOG has failed there will be additional diagnostic messages in the
SPMSNAP.ERR file. The PSTAT command may be used to determine if SPMILOG.EXE is
running. The user interface will indicate the status of SPMILOG.
ΓòÉΓòÉΓòÉ 10.80. SPM0149 ΓòÉΓòÉΓòÉ
Drain of %1 initiated but failed. Return code = %2.
A drain of the indicated .LOG file was scheduled but the SPMILOG has not
signaled acceptance of the command.
If the SPMILOG fails to drain, enter an SPMISTOP /HALT command.
ΓòÉΓòÉΓòÉ 10.81. SPM0151 ΓòÉΓòÉΓòÉ
Drain of all active .LOG files initiated but failed. Return code = %1.
A drain of all active .LOG files was scheduled, but one or more SPMILOGs failed
to signal acceptance of the command.
If any SPMILOG fails to drain, retype the command. Use an SPMISTOP /HALT or
/HALTALL command.
ΓòÉΓòÉΓòÉ 10.82. SPM0153 ΓòÉΓòÉΓòÉ
Halt of %1 initiated but failed. Return code = %2.
A halt of the indicated .LOG file was scheduled, but the SPMILOG has not
signaled acceptance of the command.
If the SPMILOG fails to halt use the SPMNBL /HALTALL command. If the SPMNBL
/HALTALL command fails, shut down and restart your system.
ΓòÉΓòÉΓòÉ 10.83. SPM0155 ΓòÉΓòÉΓòÉ
Halt of all active .LOG files initiated but failed. Return code = %1.
A halt of all active .LOG files was scheduled but one or more SPMILOG sessions
failed to signal acceptance of the command.
If any SPMILOG fails to halt, retype the command. Use the SPMNBL /HALTALL
command to stop any processes that fail to halt. If the SPMNBL /HALTALL
command fails, shut down and restart your system.
ΓòÉΓòÉΓòÉ 10.84. SPM0157 ΓòÉΓòÉΓòÉ
Command line parameter (%1) not recognized or is a duplicate.
Check the command syntax and retype the command.
ΓòÉΓòÉΓòÉ 10.85. SPM0158 ΓòÉΓòÉΓòÉ
Command line parameter (%1) erroneously begins with a /Q.
Command line syntax is incorrect. An invalid parameter beginning with /Q was
entered. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.86. SPM0159 ΓòÉΓòÉΓòÉ
Command line parameter (%1) not followed by numeric field.
Command line syntax is incorrect. The command line parameter specified requires
a numeric field for a suffix. Enter the command followed by a ? to display the
correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.87. SPM0161 ΓòÉΓòÉΓòÉ
Command line /R value is not a valid integer.
The suffix of the /Rnnn parameter is not completely numeric or is not in the
appropriate range.
Retype the command and supply the proper numeric suffix on the /R parameter.
ΓòÉΓòÉΓòÉ 10.88. SPM0162 ΓòÉΓòÉΓòÉ
API return code %1 function code %2 function return code %3.
The return code and function code from the SPM/2 API for a previously indicated
error is being supplied for diagnostic purposes.
Evaluate the error in light of the function and return codes.
ΓòÉΓòÉΓòÉ 10.89. SPM0204 ΓòÉΓòÉΓòÉ
Session record creation error - not enough memory.
There is insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.90. SPM0205 ΓòÉΓòÉΓòÉ
Not enough memory to complete initialization.
There is insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.91. SPM0207 ΓòÉΓòÉΓòÉ
Wrong number of command line parameters. Too many command line parameters were
entered for the command.
Command line syntax is incorrect. Too many command line parameters were entered
for the command. Enter the command followed by a ? to display the correct
syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.92. SPM0208 ΓòÉΓòÉΓòÉ
Unable to build thread control blocks. Return code = %1.
The information contained in the .LOG file header is in error. The .LOG file
may be corrupted.
If the .LOG file has been damaged, recreate it.
ΓòÉΓòÉΓòÉ 10.93. SPM0209 ΓòÉΓòÉΓòÉ
Unable to add monitoring session information to .LOG. Return code = %1.
Probable cause - the .LOG file is full. A preceding message is been more
specific.
Evaluate preceding error messages.
ΓòÉΓòÉΓòÉ 10.94. SPM0210 ΓòÉΓòÉΓòÉ
File name and the /DRAIN or /HALT parameter are missing.
Command line syntax is incorrect. No parameters were supplied on the command
line. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.95. SPM0211 ΓòÉΓòÉΓòÉ
File name missing.
Command line syntax is incorrect. The file name is missing on the command line.
Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.96. SPM0212 ΓòÉΓòÉΓòÉ
/DRAIN or /HALT parameter is missing.
Command line syntax is incorrect. A required parameter is missing from the
command line. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.97. SPM0213 ΓòÉΓòÉΓòÉ
Too many command line parameters.
Command line syntax is incorrect. Too many command line parameters have been
entered. Enter the command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.98. SPM0214 ΓòÉΓòÉΓòÉ
Command line parameter must be /DRAIN or /HALT.
Command line syntax is incorrect. An incorrect parameter was entered. Enter the
command followed by a ? to display the correct syntax.
Retype the command correctly.
ΓòÉΓòÉΓòÉ 10.99. SPM0220 ΓòÉΓòÉΓòÉ
Do not start SPMILOG from the command line. SPMILOG unable to locate or create
shared storage area.
The SPMILOG has not been able to locate the shared communication area. Probable
cause - SPMILOG was started by a process other than SPMISTRT - Probably the
command line.
Do not use any process other than SPMISTRT to invoke SPMILOG.
ΓòÉΓòÉΓòÉ 10.100. SPM0224 ΓòÉΓòÉΓòÉ
Unable to locate SPMILOG instance area for %1.
Extremely busy system has prevented the SPMILOG from accessing its shared
storage.
Try restarting the SPMILOG.
ΓòÉΓòÉΓòÉ 10.101. SPM0250 ΓòÉΓòÉΓòÉ
Unable to configure DCF.
An error occurred while the SPMILOG was initializing a Data Collection
Facility. There may be related error messages in the SPMSNAP.ERR file.
Probable causes:
o Workstation running Data Collection Facility failed
o Network error
o Mismatched versions of the SPMILOG and Data Collection Facility.
Retry the operation.
ΓòÉΓòÉΓòÉ 10.102. SPM0251 ΓòÉΓòÉΓòÉ
Pipe transmission error.
A pipe read or write operation returned a nonzero return code.
Workstation running Data Collection Facility failed or network error.
ΓòÉΓòÉΓòÉ 10.103. SPM0255 ΓòÉΓòÉΓòÉ
.LOG write error. .LOG inactive.
A disk error has occurred while logging data to the disk.
Probable cause - full disk.
Make sure that the disk is not full.
ΓòÉΓòÉΓòÉ 10.104. SPM0256 ΓòÉΓòÉΓòÉ
Out of memory for service list entry.
There was not sufficient memory available to start another output thread.
Probable cause - shortage of swap space or too many applications requesting
data from the real-time interface.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.105. SPM0257 ΓòÉΓòÉΓòÉ
Insufficient memory, SPMAPIGetData start failed.
There was not sufficient memory available to start another output thread.
Probable cause - shortage of swap space or too many applications requesting
data from the real-time interface.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.106. SPM0258 ΓòÉΓòÉΓòÉ
Unable to create SPMAPIGetData pipe.
After repeated tries, the SPMILOG was unable to create an instance of a named
pipe.
Probable cause - Network resources exhausted.
Retry the operation when the network is less busy.
ΓòÉΓòÉΓòÉ 10.107. SPM0260 ΓòÉΓòÉΓòÉ
SPMAPIGetData pipe write error. Write return code = %1.
A thread putting data on a real-time pipe received a nonzero return code.
Probable cause - the application on the other end of the pipe exited without
notifying the SPM/2 API.
ΓòÉΓòÉΓòÉ 10.108. SPM0262 ΓòÉΓòÉΓòÉ
Unable to create SPMAPIQuery pipe.
After repeated tries, the SPMILOG was unable to create an an instance of a
named pipe.
Probable cause - Network resources exhausted.
Retry the operation when the network is less busy.
ΓòÉΓòÉΓòÉ 10.109. SPM0263 ΓòÉΓòÉΓòÉ
Insufficient memory. SPMAPIQuery pipe start failed.
There was not sufficient memory available to start another query service
thread.
Probable cause - shortage of swap space or too many applications making
simultaneous queries.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.110. SPM0264 ΓòÉΓòÉΓòÉ
.LOG file %1 open. Return code = %2.
While opening a .LOG file, the SPMILOG received the return code indicated.
Correct the problem indicated by the return code and retry the operation.
ΓòÉΓòÉΓòÉ 10.111. SPM0267 ΓòÉΓòÉΓòÉ
.LOG file session record write error.
The SPMILOG received a nonzero return code while adding a session record to the
.LOG file.
Probable cause - disk is full.
Make additional disk space available.
ΓòÉΓòÉΓòÉ 10.112. SPM0268 ΓòÉΓòÉΓòÉ
.LOG file session record update error.
While updating an SPMILOG session or Data Collection Facility session record in
the .LOG file, the SPMILOG received a nonzero return code. Probable cause -
Disk has been rendered unavailable.
Make the disk available.
ΓòÉΓòÉΓòÉ 10.113. SPM0269 ΓòÉΓòÉΓòÉ
.LOG file header record update error.
While updating the .LOG file header records the SPMILOG received a nonzero
return code.
Probable cause - Disk has been rendered unavailable. Hardware failure is
possible but not likely.
Make the disk available.
ΓòÉΓòÉΓòÉ 10.114. SPM0270 ΓòÉΓòÉΓòÉ
DCF pipe error during logon.
During the process of initializing a Data Collection Facility the SPMILOG
received a nonzero return code from a pipe read or write operation.
Probable cause - the workstation running the Data Collection Facility failed or
the network failed.
ΓòÉΓòÉΓòÉ 10.115. SPM0271 ΓòÉΓòÉΓòÉ
DCF record creation error - not enough memory.
There was insufficient memory to create a Data Collection Facility session
record.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.116. SPM0272 ΓòÉΓòÉΓòÉ
.LOG file DCF session record write error.
The SPMILOG received a nonzero return code while adding a session record to the
.LOG file.
Probable cause - disk is full.
Make additional disk space available.
ΓòÉΓòÉΓòÉ 10.117. SPM0273 ΓòÉΓòÉΓòÉ
.LOG file DCF session record update error.
While updating a Data Collection Facility session record, the SPMILOG received
a nonzero return code.
Probable cause - Disk has been rendered unavailable. Hardware failure is
possible but not likely.
Make the disk available.
ΓòÉΓòÉΓòÉ 10.118. SPM0274 ΓòÉΓòÉΓòÉ
.LOG file session record update error.
While updating a Data Collection Facility session record, the SPMILOG received
a nonzero return code.
Probable cause - Disk has been rendered unavailable. Hardware failure is
possible but not likely.
Make the disk available.
ΓòÉΓòÉΓòÉ 10.119. SPM0275 ΓòÉΓòÉΓòÉ
No additional function available; recording multiplier set to 1.
The additional function used by the SPMILOG during summarization is not in the
SPMSRV16.DLL file.
Probable cause - installation error.
Make sure the SPMSRV16.DLL file is the correct version number and is available
to the SPMILOG.
ΓòÉΓòÉΓòÉ 10.120. SPM0276 ΓòÉΓòÉΓòÉ
Connection monitor out of memory.
The connection monitor thread was unable to obtain a segment for a work area.
Probable cause - swap file is out of space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.121. SPM0277 ΓòÉΓòÉΓòÉ
Unable to start pipe service thread.
The SPMILOG was unable to start a thread to service Data Collection Facility
sessions.
No action is necessary. The SPMILOG should recover within 5 minutes.
ΓòÉΓòÉΓòÉ 10.122. SPM0278 ΓòÉΓòÉΓòÉ
Move of sample data to .LOG buffer failed.
No memory available for a .LOG file record buffer.
Probable cause - shortage of swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.123. SPM0279 ΓòÉΓòÉΓòÉ
Duplicate node name (%1) specified.
A node (workstation) name was specified more than once in a .LOG file.
Probable error - the workstation name was specified twice in an SPMLOGF
command.
Create a new .LOG file with the correct workstation names.
ΓòÉΓòÉΓòÉ 10.124. SPM0280 ΓòÉΓòÉΓòÉ
SPMAPIQuery pipe read error.
The thread servicing an SPMAPIQuery pipe received a nonzero return code for a
read.
Probable cause - program at other end of pipe exited without notifying SPM/2
API.
ΓòÉΓòÉΓòÉ 10.125. SPM0281 ΓòÉΓòÉΓòÉ
SPMAPIQuery pipe multiplexer wait error.
Internal Error.
ΓòÉΓòÉΓòÉ 10.126. SPM0282 ΓòÉΓòÉΓòÉ
Unable to process a workstation name.
The SPMILOG was unable to place a workstation name in a shared memory area.
Probable cause - Too many workstations already being monitored. (There is not a
specific upper limit.)
Reduce the number of workstation names specified.
ΓòÉΓòÉΓòÉ 10.127. SPM0283 ΓòÉΓòÉΓòÉ
Unable to allocate storage for thread monitor. Return code =
Insufficient available memory (64 kilobytes) for a thread stack.
Probable cause - shortage of swap file space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.128. SPM0284 ΓòÉΓòÉΓòÉ
Thread start for %1 failed. Return code = %2.
The start thread process failed for the indicated thread with the indicated
return code.
Probable cause - shortage of memory.
Check availability of swap space.
ΓòÉΓòÉΓòÉ 10.129. SPM0289 ΓòÉΓòÉΓòÉ
Command not recognized - value is %1.
Internal Error.
ΓòÉΓòÉΓòÉ 10.130. SPM0290 ΓòÉΓòÉΓòÉ
NETBIOS query initialization failed. Return code = %1.
The SPMILOG was unable to initialize the NETBIOS interface.
Probable cause - network related.
Restart the network and retry the operation.
ΓòÉΓòÉΓòÉ 10.131. SPM0291 ΓòÉΓòÉΓòÉ
.LOG file node information table record missing.
The .LOG file is corrupted.
Do not use it to start an SPMILOG session.
ΓòÉΓòÉΓòÉ 10.132. SPM0292 ΓòÉΓòÉΓòÉ
.LOG file group list element record missing.
The .LOG file is corrupted.
Do not use it to start an SPMILOG session.
ΓòÉΓòÉΓòÉ 10.133. SPM0293 ΓòÉΓòÉΓòÉ
.LOG file sample interval record missing.
The .LOG file is corrupted.
Do not use it to start an SPMILOG session.
ΓòÉΓòÉΓòÉ 10.134. SPM0294 ΓòÉΓòÉΓòÉ
.LOG file contents directory record missing.
The .LOG file is corrupted.
Do not use it to start an SPMILOG session.
ΓòÉΓòÉΓòÉ 10.135. SPM0295 ΓòÉΓòÉΓòÉ
Out of memory for DCF thread control blocks.
There was insufficient memory for control blocks for the number of workstations
specified in the .LOG file.
Reduce the number of workstations specified. Increase the amount of space
available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.136. SPM0296 ΓòÉΓòÉΓòÉ
Network workstation names present and network not installed.
The .LOG file contains network workstation names but network software is not
installed on the system.
ΓòÉΓòÉΓòÉ 10.137. SPM0297 ΓòÉΓòÉΓòÉ
Network workstation names present and network not active.
The .LOG file contains network workstation names, but the network is not
active.
ΓòÉΓòÉΓòÉ 10.138. SPM0298 ΓòÉΓòÉΓòÉ
Network workstation names present and network status (%1) unknown.
The .LOG file contains network workstation names, but the network is not
available.
ΓòÉΓòÉΓòÉ 10.139. SPM0299 ΓòÉΓòÉΓòÉ
Query pipe DosRead return code.
A nonzero return code was received from a read pipe operation.
Probable cause - application using pipe exited without notifying SPM/2 API.
ΓòÉΓòÉΓòÉ 10.140. SPM0300 ΓòÉΓòÉΓòÉ
Multiplexer wait unknown. Return code = %1.
Internal Error.
ΓòÉΓòÉΓòÉ 10.141. SPM0301 ΓòÉΓòÉΓòÉ
RunDCF pipe read error. Return code = %1.
A thread servicing a Data Collection Facility received a nonzero return code on
a pipe read.
Probable cause - workstation running Data Collection Facility was turned off.
ΓòÉΓòÉΓòÉ 10.142. SPM0302 ΓòÉΓòÉΓòÉ
RunDCF unexpected EOF on DCF pipe to %1.
A thread servicing a Data Collection Facility received a end-of-file (EOF)
condition on a pipe read.
Probable cause - the Data Collection Facility was stopped by an SPMNBL /HALTALL
command.
ΓòÉΓòÉΓòÉ 10.143. SPM0303 ΓòÉΓòÉΓòÉ
Post of service list failed. Return code = %1.
Internal error.
ΓòÉΓòÉΓòÉ 10.144. SPM0304 ΓòÉΓòÉΓòÉ
Unknown semaphore index - %1.
Internal error.
ΓòÉΓòÉΓòÉ 10.145. SPM0305 ΓòÉΓòÉΓòÉ
RunDCF pipe read error. Return code = %1.
A thread servicing a Data Collection Facility received a nonzero return code on
a pipe read.
Probable cause - workstation running Data Collection Facility was turned off.
ΓòÉΓòÉΓòÉ 10.146. SPM0306 ΓòÉΓòÉΓòÉ
RunDCF pipe disconnect error. Return code = %1.
A nonzero return code was returned in response to a disconnect pipe call.
Probable cause - network error.
ΓòÉΓòÉΓòÉ 10.147. SPM0310 ΓòÉΓòÉΓòÉ
Allocation of global descriptor area space failed. Return code = %1.
There was not sufficient shared memory to build control blocks.
Probable cause - too many Data Collection Facility or SPMILOG sessions already
active.
Reduce the number of active SPMILOG sessions and Data Collection Facility
sessions.
ΓòÉΓòÉΓòÉ 10.148. SPM0311 ΓòÉΓòÉΓòÉ
%1 ended abnormally. Return code = %2.
The SPMILOG using the indicated .LOG file has ended abnormally with the return
code shown.
Previous error messages indicate the cause of the abnormal end.
ΓòÉΓòÉΓòÉ 10.149. SPM0312 ΓòÉΓòÉΓòÉ
Out of disk .LOG space.
Make more disk space available for the .LOG.
ΓòÉΓòÉΓòÉ 10.150. SPM0313 ΓòÉΓòÉΓòÉ
Disk full adding monitoring record.
The disk filled when the SPMILOG session record was being written.
Make more space available for the .LOG file.
ΓòÉΓòÉΓòÉ 10.151. SPM0314 ΓòÉΓòÉΓòÉ
Disk error adding monitoring record.
The SPMILOG obtained a nonzero return code while attempting to write the
SPMILOG session record.
Probable cause - Disk drive has become unavailable. Hardware failure less
likely but possible.
Make sure disk drive is available and properly functioning.
ΓòÉΓòÉΓòÉ 10.152. SPM0315 ΓòÉΓòÉΓòÉ
Disk full adding monitored record.
The disk filled when a Data Collection Facility session record was being
written.
Make more space available for the .LOG file.
ΓòÉΓòÉΓòÉ 10.153. SPM0316 ΓòÉΓòÉΓòÉ
Disk error adding monitored record.
The SPMILOG obtained a nonzero return code while attempting to write a Data
Collection Facility session record.
Probable cause - Disk drive has become unavailable. Hardware failure less
likely but possible.
Make sure that the disk drive is available and properly functioning.
ΓòÉΓòÉΓòÉ 10.154. SPM0317 ΓòÉΓòÉΓòÉ
No segment available for pipe buffers.
A request for a segment for pipe buffers failed.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.155. SPM0318 ΓòÉΓòÉΓòÉ
No memory available for SPM/2 ordinal name tables.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.156. SPM0319 ΓòÉΓòÉΓòÉ
SPMGetOrdNames unexpected return code = %1.
Internal error, or the SPMSRV16.DLL file is missing or corrupted.
Make sure the SPMSRV16.DLL file is available.
ΓòÉΓòÉΓòÉ 10.157. SPM0320 ΓòÉΓòÉΓòÉ
No memory available for ordinal translation tables.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.158. SPM0321 ΓòÉΓòÉΓòÉ
SPMGetOrdInfo unexpected return code = %1.
Internal error, or the SPMSRV16.DLL file is missing or corrupted.
Make sure the SPMSRV16.DLL file is available.
ΓòÉΓòÉΓòÉ 10.159. SPM0322 ΓòÉΓòÉΓòÉ
Ordinal %1 not found - not sent to DCF. SPMGetOrdInfo return code = %2.
The ordinal number specified is not supported.
For a .LOG file built with the command line interface, check the ordinal
numbers. For a .LOG file built with the panel interface, check the list of
available resources in the panel interface.
ΓòÉΓòÉΓòÉ 10.160. SPM0323 ΓòÉΓòÉΓòÉ
Error writing translation table to pipe. Return code = %1.
The SPMILOG received a nonzero return code for a pipe write while initializing
a Data Collection Facility.
Probable causes:
o Workstation running Data Collection Facility was turned off during
initialization
o Network failure.
Investigate status of Data Collection Facility.
ΓòÉΓòÉΓòÉ 10.161. SPM0324 ΓòÉΓòÉΓòÉ
Error reading response to translation table. Return code = %1.
The SPMILOG received a nonzero return code for a pipe read while initializing a
Data Collection Facility.
Probable causes:
o Workstation running Data Collection Facility was turned off during
initialization
o Network failure.
Investigate status of Data Collection Facility.
ΓòÉΓòÉΓòÉ 10.162. SPM0325 ΓòÉΓòÉΓòÉ
Pipe write error configuring DCF. Return code = %1.
The SPMILOG received a nonzero return code for a pipe write while initializing
a Data Collection Facility.
Probable causes:
o Workstation running Data Collection Facility was turned off during
initialization
o Network failure.
Investigate status of Data Collection Facility.
ΓòÉΓòÉΓòÉ 10.163. SPM0326 ΓòÉΓòÉΓòÉ
Pipe read error configuring DCF. Return code = %1.
The SPMILOG received a nonzero return code for a pipe read while initializing a
Data Collection Facility.
Probable causes:
o Workstation running Data Collection Facility was turned off during
initialization
o Network failure.
Investigate status of Data Collection Facility.
ΓòÉΓòÉΓòÉ 10.164. SPM0327 ΓòÉΓòÉΓòÉ
SPMAPIQuery pipe out of memory.
There was insufficient memory to start a thread to service a query request.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.165. SPM0328 ΓòÉΓòÉΓòÉ
SPMAPIQuery pipe unable to buffer user record.
The response to a query exceeded the memory available for buffering it.
Probable cause - insufficient swap file space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.166. SPM0351 ΓòÉΓòÉΓòÉ
Unexpected EOF on pipe.
While performing a pipe read the Data Collection Facility received an EOF
return code.
Probable cause - the SPMILOG terminated prematurely as the result of a HALTALL
command or a software or hardware failure.
Determine the cause of the SPMILOG termination and correct it.
ΓòÉΓòÉΓòÉ 10.167. SPM0353 ΓòÉΓòÉΓòÉ
Shutdown command generated locally.
The Data Collection Facility detected an error condition and has signaled its
threads to shut down.
Probable cause - the pipe to the SPMILOG has broken.
Previous messages will have occurred indicating the specific error. Correct it
and resume.
ΓòÉΓòÉΓòÉ 10.168. SPM0354 ΓòÉΓòÉΓòÉ
Command received via pipe not recognized %1.
Internal error.
ΓòÉΓòÉΓòÉ 10.169. SPM0356 ΓòÉΓòÉΓòÉ
Unable to construct semaphore. AllocateSemaphore return code = %1.
OS/2 system was unable to create a semaphore requested by the Data Collection
Facility. Probable cause - overload of OS/2 resources.
Reduce load on the system.
ΓòÉΓòÉΓòÉ 10.170. SPM0357 ΓòÉΓòÉΓòÉ
Out of memory constructing group list.
There was insufficient memory to construct group list. Probable cause -
insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.171. SPM0358 ΓòÉΓòÉΓòÉ
Out of memory building thread stop acknowledgement.
There was insufficient memory to allocate a stop acknowledgement buffer.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.172. SPM0359 ΓòÉΓòÉΓòÉ
DLL %1 not available.
The SPMSRVFS.DLL file was not found. Probable cause - installation or
configuration error.
Review the LIBPATH statement in the CONFIG.SYS file and ensure that the
SPMSRVFS.DLL file is in the path.
ΓòÉΓòÉΓòÉ 10.173. SPM0361 ΓòÉΓòÉΓòÉ
Ordinal number %1 specified in group list element number %2 not found.
Samples cannot be collected for the ordinal number indicated because the tables
for the ordinal were not supplied by the SPMILOG. Probable cause - using a
.LOG file with a different SPMAPP.INI file than the one against which the .LOG
file was created.
Install the correct metric definition file on the workstation on which you want
to use the .LOG file.
ΓòÉΓòÉΓòÉ 10.174. SPM0363 ΓòÉΓòÉΓòÉ
Ordinal type %1 not recognized.
The ordinal type was not recognized. Probable cause - a mismatch between the
versions of the Data Collection Facility and SPMILOG.
Make sure all the SPM/2 components are from compatible versions.
ΓòÉΓòÉΓòÉ 10.175. SPM0364 ΓòÉΓòÉΓòÉ
Pipe buffer size (%1) is smaller than sum of fixed sample lengths (%2).
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.176. SPM0365 ΓòÉΓòÉΓòÉ
Unable to activate OS/2 kernel message queue. Return code = %1.
OS/2 kernel returned an error code to an attempt to activate the message queue.
ΓòÉΓòÉΓòÉ 10.177. SPM0366 ΓòÉΓòÉΓòÉ
OS/2 kernel message queue size error. Return code = %1.
OS/2 kernel returned an error code to a request for the message queue size.
ΓòÉΓòÉΓòÉ 10.178. SPM0367 ΓòÉΓòÉΓòÉ
No memory for OS/2 kernel message queue - instance collection disabled.
There was insufficient memory to buffer the OS/2 kernel message queue. Probable
cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.179. SPM0368 ΓòÉΓòÉΓòÉ
Collection time exceeded sample interval by %1 milliseconds.
The sample interval is too short to collect all the samples. Increase the
sample interval or reduce the number of items being collected.
ΓòÉΓòÉΓòÉ 10.180. SPM0369 ΓòÉΓòÉΓòÉ
Higher priority processing has prevented the collection of %1 sample(s).
A very high priority process has prevented the dispatch of the Data Collection
Facility for a period longer than a sample interval.
Use SPM/2 to isolate the offending process and remove it from the system.
ΓòÉΓòÉΓòÉ 10.181. SPM0370 ΓòÉΓòÉΓòÉ
The collection timer mechanism has malfunctioned.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.182. SPM0371 ΓòÉΓòÉΓòÉ
Unable to notify SPMILOG of shutdown.
The pipe to the SPMILOG has become unavailable during the shutdown process.
Probable cause - SPMISTOP /HALT command was issued to SPMILOG.
ΓòÉΓòÉΓòÉ 10.183. SPM0372 ΓòÉΓòÉΓòÉ
A maximum of %1 messages were required to transport a single sample.
The data in a single sample interval has exceeded the size of a pipe buffer.
No action is necessary. The data is transported by successive messages.
ΓòÉΓòÉΓòÉ 10.184. SPM0374 ΓòÉΓòÉΓòÉ
Group name %1 not found.
An ordinal specified a group name that OS/2 kernel did not have registered.
Probable causes:
o Group is not registered because it will be registered at a later time by an
application
o Name is for an uninstalled device driver
o .LOG file was configured for all possible groups but not all groups are
installed on the workstation being monitored.
ΓòÉΓòÉΓòÉ 10.185. SPM0375 ΓòÉΓòÉΓòÉ
Text block name %1 in group %2 not found.
Collection was specified for the text and block indicated. It cannot be
collected because the text block is not contained in the group. This would be
normal for a superset definition but may be an error.
Determine if the definition is a superset. If not, correct the definition with
the user metrics.
ΓòÉΓòÉΓòÉ 10.186. SPM0377 ΓòÉΓòÉΓòÉ
Allocation of sample point type %1 not supported.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.187. SPM0381 ΓòÉΓòÉΓòÉ
No memory for text list - 1.
Insufficient memory to build a list of OS/2 kernel text blocks. Probable cause
- insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.188. SPM0382 ΓòÉΓòÉΓòÉ
No memory for text list - 2.
Insufficient memory to build a list of OS/2 kernel text blocks. Probable cause
- insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.189. SPM0383 ΓòÉΓòÉΓòÉ
Sample point not allocated.
Insufficient memory to build a sample point. Probable cause - insufficient
swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.190. SPM0384 ΓòÉΓòÉΓòÉ
OS/2 kernel data error. Instance name not in sample.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.191. SPM0385 ΓòÉΓòÉΓòÉ
The OS/2 kernel message queue has overflowed - data lost.
More data was generated in a sample interval than fit in the OS/2 kernel
message queue.
Reduce the sample interval.
ΓòÉΓòÉΓòÉ 10.192. SPM0386 ΓòÉΓòÉΓòÉ
Unknown type %1 in OS/2 kernel message queue.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.193. SPM0387 ΓòÉΓòÉΓòÉ
Warning: OS/2 kernel message queue not active.
The messages were expected but not found in the message queue.
ΓòÉΓòÉΓòÉ 10.194. SPM0389 ΓòÉΓòÉΓòÉ
Unknown sample point type %1 encountered.
A sample point of unknown type was specified for collection. Probable cause -
mismatch of versions of SPM/2 components.
Review the installation and configuration. Ensure that all components are from
compatible releases.
ΓòÉΓòÉΓòÉ 10.195. SPM0390 ΓòÉΓòÉΓòÉ
Unknown sample point type %1 encountered.
A sample point of unknown type was specified for collection. Probable cause -
mismatch of versions of SPM/2 components.
Review the installation and configuration. Ensure that all components are from
compatible releases.
ΓòÉΓòÉΓòÉ 10.196. SPM0391 ΓòÉΓòÉΓòÉ
DosWaitThread return code = %1.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.197. SPM0392 ΓòÉΓòÉΓòÉ
Service function %1 is specified but is not in the SPMSRVFS.DLL. Return code =
%2.
The function name is specified by the ordinal number but is not available in
the SPMSRVFS.DLL. Probable cause - mismatch among versions of SPM/2
components.
Review the installation and configuration. Ensure that all components are from
compatible releases.
ΓòÉΓòÉΓòÉ 10.198. SPM0394 ΓòÉΓòÉΓòÉ
Pipe availability wait period not available or in error - default to indefinite
wait.
The message file is unavailable or in error. An internal error has occurred.
Review the installation, configuration, and DPATH to ensure message file is
available.
ΓòÉΓòÉΓòÉ 10.199. SPM0396 ΓòÉΓòÉΓòÉ
Insufficient memory to build ordinal translation table - ordinal discarded.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.200. SPM0397 ΓòÉΓòÉΓòÉ
Insufficient memory to add to inactive item list.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.201. SPM0398 ΓòÉΓòÉΓòÉ
Insufficient memory to register user group dynamically.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.202. SPM0400 ΓòÉΓòÉΓòÉ
THESEUS2 cannot be started because the message queue is not available.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.203. SPM0403 ΓòÉΓòÉΓòÉ
Error loading THESEUS2 start string.
The message file is unavailable or in error.
Review the installation, configuration, and DPATH to ensure message file is
available.
ΓòÉΓòÉΓòÉ 10.204. SPM0404 ΓòÉΓòÉΓòÉ
DosExecPgm of THESEUS2 failed. Return code = %1.
Probable cause - SPMWS.EXE not in path.
Ensure that the SPMWS.EXE file is in the path.
ΓòÉΓòÉΓòÉ 10.205. SPM0405 ΓòÉΓòÉΓòÉ
Error loading THESEUS2 stop string.
The message file is unavailable or in error.
Review the installation, configuration and DPATH to ensure message file is
available.
ΓòÉΓòÉΓòÉ 10.206. SPM0407 ΓòÉΓòÉΓòÉ
InsertSamplePoint error - point already exists.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.207. SPM0408 ΓòÉΓòÉΓòÉ
Sample point list size exceeded.
More than 4096 active sample points have accumulated. Probable cause -
extremely large number of open files or extremely long sample interval.
Reduce sample interval and number of open files.
ΓòÉΓòÉΓòÉ 10.208. SPM0450 ΓòÉΓòÉΓòÉ
Have initiated stop of DCF %1, and broken the pipe to it.
A collection thread has encountered a problem and has broken its connection to
a Data Collection Facility.
Examine preceding error messages and take appropriate action.
ΓòÉΓòÉΓòÉ 10.209. SPM0501 ΓòÉΓòÉΓòÉ
DosFileLocks received a nonzero return code.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.210. SPM0502 ΓòÉΓòÉΓòÉ
CreateThread cannot add an entry to the thread table.
More than 200 threads are active. Probable cause - internal error.
ΓòÉΓòÉΓòÉ 10.211. SPM0503 ΓòÉΓòÉΓòÉ
DosAllocSeg for thread stack failed.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.212. SPM0504 ΓòÉΓòÉΓòÉ
DosCreateThread failed.
The SPMILOG was unable to start a thread due to a previously noted error or an
OS/2 problem.
Examine the return code shown and the preceding error messages and take
appropriate action.
ΓòÉΓòÉΓòÉ 10.213. SPM0505 ΓòÉΓòÉΓòÉ
Connection monitor write to NETBIOS listener queue failed.
A write to the queue connecting to the local NETBIOS listener has failed.
Probable cause - termination and restart of NETBIOS listener.
No action is necessary. Recovery logic will correct problem.
ΓòÉΓòÉΓòÉ 10.214. SPM0506 ΓòÉΓòÉΓòÉ
QueryPipe connection attempt failed.
The SPMILOG was unable to establish a wait for a query connection after
multiple tries. The return code shows the reason. Probable cause - lack of
network resources.
Check network configuration.
ΓòÉΓòÉΓòÉ 10.215. SPM0507 ΓòÉΓòÉΓòÉ
QueryPipe write error.
An SPMILOG pipe write in response to a query received a nonzero return code.
Probable cause - application making query terminated without notifying SPM/2
API.
ΓòÉΓòÉΓòÉ 10.216. SPM0508 ΓòÉΓòÉΓòÉ
QueryPipe Multiplexer wait index error.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.217. SPM0509 ΓòÉΓòÉΓòÉ
RunDCF - Unable to connect named pipe. Return code = %1. This thread will
terminate and relaunch.
The SPMILOG was unable to establish a wait for a Data Collection Facility
connection after multiple tries. The return code shows the reason. Probable
cause - lack of network resources.
Check network configuration.
ΓòÉΓòÉΓòÉ 10.218. SPM0510 ΓòÉΓòÉΓòÉ
Multiple wait unknown return code.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.219. SPM0511 ΓòÉΓòÉΓòÉ
StopDCFThread pipe write error.
A nonzero return code was returned to a write pipe operation. Probable causes:
o Premature termination of Data Collection Facility
o Workstation running Data Collection Facility was turned off
o Data Collection Facility was stopped with an SPMNBL /HALTALL command
o Network error.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.220. SPM0512 ΓòÉΓòÉΓòÉ
StopDCFThread pipe read error.
A nonzero return code was returned to a read pipe operation. Probable causes:
o Premature termination of Data Collection Facility
o Workstation running Data Collection Facility was turned off
o Data Collection Facility was stopped with an SPMNBL /HALTALL command
o Network error.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.221. SPM0513 ΓòÉΓòÉΓòÉ
DeconfigureDCF pipe write error.
A nonzero return code was returned to a write pipe operation. Probable causes:
o Premature termination of Data Collection Facility
o Workstation running Data Collection Facility was turned off
o Data Collection Facility was stopped with an SPMNBL /HALTALL command
o Network error.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.222. SPM0514 ΓòÉΓòÉΓòÉ
StopDCF pipe write error
A nonzero return code was returned to a write pipe operation. Probable causes:
o Premature termination of Data Collection Facility
o Workstation running Data Collection Facility was turned off
o Data Collection Facility was stopped with an SPMNBL /HALTALL command
o Network error.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.223. SPM0515 ΓòÉΓòÉΓòÉ
StopDCF pipe read error
A nonzero return code was returned to a read pipe operation. Probable causes:
o Premature termination of Data Collection Facility
o Workstation running Data Collection Facility was turned off
o Data Collection Facility was stopped with an SPMNBL /HALTALL command
o Network error.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.224. SPM0517 ΓòÉΓòÉΓòÉ
Disklog multiple wait unknown return code.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.225. SPM0518 ΓòÉΓòÉΓòÉ
SPMAPIGetData: Unable to connect named pipe.
The SPMILOG was unable to establish a wait for a real-time pipe connection
after multiple tries. The return code shows the reason. Probable cause - lack
of network resources.
Check network configuration.
ΓòÉΓòÉΓòÉ 10.226. SPM0519 ΓòÉΓòÉΓòÉ
ExtendWrite: Doswrite to disk failed.
An attempt to add data to the end of the log file failed for a previously noted
reason.
Examine previous error messages in the SPMSNAP.ERR file and take appropriate
action.
ΓòÉΓòÉΓòÉ 10.227. SPM0520 ΓòÉΓòÉΓòÉ
ExtendWrite: A DosWrite has failed because the disk is full.
There is not sufficient space on the disk to add more data to the log file.
Make more space available on the disk.
ΓòÉΓòÉΓòÉ 10.228. SPM0521 ΓòÉΓòÉΓòÉ
Monitored session record write error.
A disk error occurred while writing a DCF session record to the .LOG file.
Examine the SPMSNAP.ERR file for additional related errors.
ΓòÉΓòÉΓòÉ 10.229. SPM0522 ΓòÉΓòÉΓòÉ
PostDiskLog: Unable to allocate memory for a buffer.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.230. SPM0523 ΓòÉΓòÉΓòÉ
Unable to allocate memory for a group summary element.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.231. SPM0524 ΓòÉΓòÉΓòÉ
SrchPollList returned an error code
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.232. SPM0525 ΓòÉΓòÉΓòÉ
ConvertToOffsetForm called with a null pointer.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.233. SPM0526 ΓòÉΓòÉΓòÉ
DeconfigureDCF pipe read error.
A nonzero return code was returned to a read pipe operation. Probable cause -
premature termination of Data Collection Facility, workstation running Data
Collection Facility was turned off, the Data Collection Facility was stopped
with an SPMNBL /HALTALL command or a network error occurred.
Examine the SPMSNAP.ERR file from workstation running Data Collection Facility
and take appropriate corrections.
ΓòÉΓòÉΓòÉ 10.234. SPM0528 ΓòÉΓòÉΓòÉ
RunDCF: Argument Count = 0. No strings in logon message.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.235. SPM0529 ΓòÉΓòÉΓòÉ
RunDCF: Logon rejected. DCF attempted to connect to incorrect SPMILOG.
A Data Collection Facility attempted to connect to an SPMILOG that did not
start it. Probable cause - A Data Collection Facility was in error recovery
when its owning SPMILOG terminated. Subsequently another SPMILOG with the same
network name started.
No action is necessary. The offending Data Collection Facility will timeout.
ΓòÉΓòÉΓòÉ 10.236. SPM0530 ΓòÉΓòÉΓòÉ
Pipe read, bytes read.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.237. SPM0531 ΓòÉΓòÉΓòÉ
RunDCF: Unable to read logon pipe. Disconnecting before logon. Return code =
A network or Data Collection Facility error has occurred.
ΓòÉΓòÉΓòÉ 10.238. SPM0532 ΓòÉΓòÉΓòÉ
RunDCF: Unable to make named pipe after 10 tries. This thread will terminate
and relaunch.
The network is temporarily out of resources.
No action is necessary. The SPMILOG will keep trying to connect.
ΓòÉΓòÉΓòÉ 10.239. SPM0533 ΓòÉΓòÉΓòÉ
RunDCF: Unable to connect named pipe. This thread will terminate and
relaunch.
The network is temporarily out of resources.
No action is necessary. The SPMILOG will keep trying to connect.
ΓòÉΓòÉΓòÉ 10.240. SPM0600 ΓòÉΓòÉΓòÉ
RunDCF: Summarization out of memory.
Probable cause - insufficient swap space.
Increase the amount of space available to the SWAPPER.DAT file.
ΓòÉΓòÉΓòÉ 10.241. SPM0602 ΓòÉΓòÉΓòÉ
[DtctSem] contents of %1.
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.242. SPM0603 ΓòÉΓòÉΓòÉ
[DtctSem] %1 is %2
An internal error has occurred.
ΓòÉΓòÉΓòÉ 10.243. SPM1501 ΓòÉΓòÉΓòÉ
SPMAPI: FixLog - damaged .LOG repaired.
The API was able to recover a .LOG file that was incorrectly closed by a prior
collection.
Run a report on the session that was incorrectly closed to determine how much,
if any, collection data was lost.
ΓòÉΓòÉΓòÉ 10.244. SPM1601 ΓòÉΓòÉΓòÉ
NBQRQMgr: Failed on preread.
An invalid internal message was detected. Stop all SPM/2 components and restart
SPM/2.
ΓòÉΓòÉΓòÉ 10.245. SPM1602 ΓòÉΓòÉΓòÉ
NBQRQMgr: LL field incorrect value.
An invalid length of an internal message was detected. Stop all SPM/2
components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.246. SPM1603 ΓòÉΓòÉΓòÉ
NBQRspnd: Incorrect number of parameters.
This program cannot be invoked by the user. Do not attempt to run the program
from the command line.
ΓòÉΓòÉΓòÉ 10.247. SPM1604 ΓòÉΓòÉΓòÉ
NBQRspnd: Parameter is invalid.
This program cannot be invoked by the user. Do not attempt to run the program
from the command line.
ΓòÉΓòÉΓòÉ 10.248. SPM1605 ΓòÉΓòÉΓòÉ
NBQRspnd: Named shared storage does not exist or is already in use.
This program cannot be invoked by the user. Do not attempt to run the program
from the command line.
ΓòÉΓòÉΓòÉ 10.249. SPM1606 ΓòÉΓòÉΓòÉ
NBQRspnd: NETBIOS Error: %0.
An unexpected NETBIOS error occurred from which the responder cannot recover.
This may be a hardware problem.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.250. SPM1607 ΓòÉΓòÉΓòÉ
NBQRspnd: AddGroup Error: %0.
An unexpected NETBIOS error occurred while attempting to add the name of the
responder to the network list. There may not be enough names available.
Ensure that sufficient NETBIOS resources are allocated at IPL. Refer to the
installation instructions. Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.251. SPM1608 ΓòÉΓòÉΓòÉ
NBQRspnd: Cannot make pipe.
An unexpected OS/2 error occurred while attempting to make an internal pipe.
The responder cannot continue. There may not be enough resources available.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.252. SPM1609 ΓòÉΓòÉΓòÉ
NBQRspnd: Cannot allocate memory.
An unexpected OS/2 error occurred while attempting to allocate memory. The
responder cannot continue. There may not be enough resources available.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.253. SPM1610 ΓòÉΓòÉΓòÉ
NBQRspnd: Cannot start thread.
An unexpected OS/2 error occurred while attempting to start a thread. The
responder cannot continue. There may not be enough resources available.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.254. SPM1611 ΓòÉΓòÉΓòÉ
NBQRspnd: ReceiveDatagram error.
An unexpected NETBIOS error occurred from which the responder cannot recover.
This may be a hardware problem. The responder stops.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.255. SPM1612 ΓòÉΓòÉΓòÉ
NBQRspnd: Unexpected NETBIOS error.
An unexpected NETBIOS error occurred from which the responder cannot recover.
This is probably a hardware problem. The responder stops.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.256. SPM1613 ΓòÉΓòÉΓòÉ
NBQOQMgr: Could not find anchor block.
An NETBIOS query thread could not find its anchor block and cannot continue.
The process may be terminating abnormally or a system problem may have
occurred.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.257. SPM1614 ΓòÉΓòÉΓòÉ
NBQOQMgr: LL field incorrect value.
An invalid length of an internal message was detected. Stop all SPM/2
components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.258. SPM1615 ΓòÉΓòÉΓòÉ
NBQOQMgr: Invalid message type: %0.
An invalid internal message was detected. Stop all SPM/2 components and restart
SPM/2.
ΓòÉΓòÉΓòÉ 10.259. SPM1616 ΓòÉΓòÉΓòÉ
NBQIQMgr: Could not find anchor block.
An NETBIOS query thread could not find its anchor block and cannot continue.
The process may be terminating abnormally or a system problem may have
occurred.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.260. SPM1617 ΓòÉΓòÉΓòÉ
NBQIQMgr: Could not allocate memory.
An unexpected OS/2 error occurred while attempting to allocate memory. The
Queue Manager cannot continue. There may not be enough resources available.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.261. SPM1618 ΓòÉΓòÉΓòÉ
NBQIQMgr: NETBIOS error: %0.
An unexpected NETBIOS error occurred from which the Queue Manager cannot
recover. This may be a hardware problem. The Queue Manager stops.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.262. SPM1619 ΓòÉΓòÉΓòÉ
NBQIQMgr: Could not issue MSW.
An unexpected OS/2 error occurred while attempting to wait for a series of
appends. The Queue Manager cannot continue. There may not be enough resources
available.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.263. SPM1620 ΓòÉΓòÉΓòÉ
NBQIQMgr: An append failed.
An unexpected NETBIOS error occurred from which the append cannot recover.
This may be a hardware problem. The Queue Manager continues in degraded mode.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.264. SPM1621 ΓòÉΓòÉΓòÉ
NBQIQMgr: Append work area: %0.
This message follows an appendage failure and contains the network control
block for the failing appendage. The operation being performed is in the first
byte of the snap data and the NETBIOS return code in the second byte. Refer to
the IBM LAN Technical Reference for the meaning of these fields.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.265. SPM1623 ΓòÉΓòÉΓòÉ
NBQIQMgr: NETBIOS error: %0
An unexpected NETBIOS error occurred from which the Queue Manager cannot
recover. This may be a hardware problem.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.266. SPM1624 ΓòÉΓòÉΓòÉ
NBQIQMgr: DosWrite error: %0.
An unexpected OS/2 error occurred from which the Queue Manager cannot recover.
The Queue Manager stops.
Stop all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.267. SPM1625 ΓòÉΓòÉΓòÉ
NBQIQMgr: Unknown message type.
An invalid internal message was detected. Stop all SPM/2 components and restart
SPM/2.
ΓòÉΓòÉΓòÉ 10.268. SPM1626 ΓòÉΓòÉΓòÉ
NBQIQMgrApdg: Poll response received but poll list inactive.
A message from another workstation was received, but the workstation issuing
the message is no longer in poll mode. This is not a fatal error. The message
may have been delayed beyond the poll window.
If this message appears often, it is possible that the path from the remote
workstation to the issuing workstation is badly routed. See your network
administrator to determine why a round trip message is taking more than 5
seconds.
ΓòÉΓòÉΓòÉ 10.269. SPM2000 through SPM2002 ΓòÉΓòÉΓòÉ
Messages:
SPM2000: %1.
SPM2001: Error in %1 call for %2. Return code = %3.
SPM2002: For more information type: HELP %3.
These are generic error messages for DOS and SPM/2 API errors; %1 is the API
name, %2 qualifies the API call, %3 is the API return code. In some cases
further qualification is supplied by the SPM2000 message. If the error is for
a DOS API SPM2002 is displayed to suggest how to use the OS/2 HELP command to
get explanation of the error.
Use the OS/2 HELP command for DOS API errors, or consult the SPM/2 API
documentation for SPM/2 API errors. SPMRDF may or may not continue.
ΓòÉΓòÉΓòÉ 10.270. SPM2003 through SPM2005 ΓòÉΓòÉΓòÉ
Messages:
SPM2003: Unable to obtain counter group map for '%1' ordinal %2. Return code = %3.
SPM2004: Unable to obtain counter group list. Return code = %3.
SPM2005: Unable to retrieve RDF parameter string %1.
SPMRDF was not able to obtain SPM/2 system information; the counter group list
and counter group maps are contained in SPMAPP.INI and the parameter string is
in the SPM.MSG.
This may be an installation error; make sure that the SPMAPP.INI and SPM.MSG
files are correct and available to the SPM/2 system. SPMRDF will stop.
ΓòÉΓòÉΓòÉ 10.271. SPM2006 ΓòÉΓòÉΓòÉ
Report description file name not specified.
The first parameter in the CLI command string was not recognized as a valid
filename (for example, the extension was not .RDF). The specified .RDF file
did not have any .LOG selection records.
Specify another .RDF file. SPMRDF stops.
ΓòÉΓòÉΓòÉ 10.272. SPM2007 through SPM2009 ΓòÉΓòÉΓòÉ
Messages:
SPM2007: Report description file '%1' is not usable.
SPM2008: Print file '%1' is not usable.
SPM2009: Log file '%1' is not usable.
These messages indicate that a file is not in a correct format; this may be
because the file was not created using SPM/2.
Use another file or recreate the file. SPMRDF stops.
ΓòÉΓòÉΓòÉ 10.273. SPM2010 through SPM2012 ΓòÉΓòÉΓòÉ
Messages:
SPM2010: Error while reading from input file, run cancelled.
SPM2011: Error while writing to output file, run cancelled.
SPM2012: Error while collecting data from the .LOG file.
These messages indicate an error occurred while processing a file.
Correct the error described by the accompanying SPM2000 message and rerun the
report. SPMRDF stops.
ΓòÉΓòÉΓòÉ 10.274. SPM2013 and SPM2014 ΓòÉΓòÉΓòÉ
Messages:
SPM2013: One or more errors detected; report may be incorrect.
SPM2014: No report generated.
While processing a report request SPMRDF encountered problems which may have
affected the data in the report.
Correct any error(s) described by preceding SPM20.. messages and rerun the
report.
ΓòÉΓòÉΓòÉ 10.275. SPM2015 ΓòÉΓòÉΓòÉ
Local floating point error handler not enabled.
SPMRDF was not able to install its own floating point error handler.
SPMRDF will continue, but floating point errors may cause it to stop.
ΓòÉΓòÉΓòÉ 10.276. SPM2016 ΓòÉΓòÉΓòÉ
Floating point error detected, type=%3.
The SPMRDF local floating point error handler has been notified of a floating
point error and is allowing SPMRDF to continue.
Floating point errors are typically due to invalid data in the .LOG file;
SPMRDF will continue, but some report items may be in error.
ΓòÉΓòÉΓòÉ 10.277. SPM2017 through SPM2019 ΓòÉΓòÉΓòÉ
Messages:
SPM2017: No data collected from .LOG file %1.
SPM2018: No data selected from .LOG file %1.
SPM2019: No data selected for report %1.
These messages indicate that various data selection rules are causing ALL data
to be discarded;
o SPM2017 indicates rules applied during data collection for each .LOG file.
o SPM2018 indicates rules applied after data collection for each .LOG file.
o SPM2019 indicates rules applied prior to the final report.
For example, specifying only FILE data for selection, then requesting a
Tabular report will result in SPM2100 since the Tabular report does not use
FILE data.
If the results are unexpected, change the data selection parameters and rerun
the report.
ΓòÉΓòÉΓòÉ 10.278. SPM2501 ΓòÉΓòÉΓòÉ
SPM/2 V2.00 - Unrecovered error %0.
SPM/2 attempted to log an error, but could not.
Determine the reason that the message could not be logged. If it is not due to
a problem in the local system, terminate all SPM/2 components and restart
SPM/2.
ΓòÉΓòÉΓòÉ 10.279. SPM2503 ΓòÉΓòÉΓòÉ
SPMSNAP: Could not start logging process. Return code = %0.
SPM/2 could not start its process. The return code is an OS/2 system code
which indicates the error.
Determine the reason error logging could not be started. If it is not due to a
problem in the local system, terminate all SPM/2 components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.280. SPM2504 ΓòÉΓòÉΓòÉ
SPMSNAP: Logging process did not initialize. Return code = %0.
SPM/2 could not initialize its error log. The return code is an OS/2 system
code which indicates the error.
Determine the reason that error logging could not be started. If it is not due
to a problem in the local system, terminate all SPM/2 components and restart
SPM/2.
ΓòÉΓòÉΓòÉ 10.281. SPM2505 ΓòÉΓòÉΓòÉ
SPMSNAP: Could not acquire named shared storage. Return code = %0.
SPM/2 could not acquire control of the logging environment to log a message.
The return code is an OS/2 system code which indicates the error that was
encountered.
Determine the reason that the logging environment could not be acquired. If it
is not due to a problem in the local system, terminate all SPM/2 components and
restart SPM/2.
ΓòÉΓòÉΓòÉ 10.282. SPM2506 ΓòÉΓòÉΓòÉ
SPMSNAP: Named shared storage semaphore timeout occurred.
SPM/2 could not acquire control of the logging environment in a reasonable
amount of time. The system may be too heavily over-committed and SPM/2 is not
being dispatched.
If the system was very busy at the time that the message was received, reduce
the workload and continue monitoring. Otherwise, terminate all SPM/2
components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.283. SPM2507 ΓòÉΓòÉΓòÉ
SPMSNAP: Named shared storage semaphore error occurred. Return code = %0.
SPM/2 could not acquire control of the logging environment for a reason other
than timeout. A resource shortage may have occurred.
The return code is the OS/2 return code at the point of error. Determine if
the error is due to the configuration of the issuing workstation. Increase the
resource limit of the unavailable resource. Otherwise, terminate all SPM/2
components and restart SPM/2.
ΓòÉΓòÉΓòÉ 10.284. SPM2508 ΓòÉΓòÉΓòÉ
SPMSNAP: Logging semaphore error occurred. Return code = %0.
SPM/2 could not acquire control of the logging environment to log a message.
The return code is an OS/2 system code which indicates the error that was
encountered.
Determine the reason that the logging environment could not be acquired. If it
is not due to a problem in the local system, terminate all SPM/2 components and
restart SPM/2.
ΓòÉΓòÉΓòÉ 10.285. SPM2519 ΓòÉΓòÉΓòÉ
SPMSNAPC: Incorrect number of parameters.
The program was started from the command line with an incorrect number of
parameters.
Refer to the usage message that precedes this message.
ΓòÉΓòÉΓòÉ 10.286. SPM2520 ΓòÉΓòÉΓòÉ
SPMSNAPC: Class code not valid.
The program was started from the command line with an incorrect class code.
Refer to the usage message that precedes this message.
ΓòÉΓòÉΓòÉ 10.287. SPM2521 ΓòÉΓòÉΓòÉ
SPMSNAPC: Could not change file name - logger running.
The program was started from the command line with an attempt to change the
SPMSNAP.ERR file name. The logger was already running and the new file name
was ignored.
Terminate all SPM/2 components and wait for 60 seconds for the logger to
timeout. Then reissue the command.
ΓòÉΓòÉΓòÉ 10.288. SPM2522 ΓòÉΓòÉΓòÉ
SPMSNAPC: Could not start logger. Return code = %d.
SPM/2 could not start its logging process. The return code is an OS/2 system
code which indicates the error that was encountered.
Determine the reason that the logging environment could not be started. If it
is not due to a problem in the local system, terminate all SPM/2 components and
restart SPM/2.
ΓòÉΓòÉΓòÉ 10.289. SPM2523 ΓòÉΓòÉΓòÉ
SPMSNAPC: Logger did not initialize. Return code = %d.
SPM/2 could not initialize its logging environment. The return code is an OS/2
system code which indicates the error that was encountered.
Determine the reason that the logging environment could not be started. If it
is not due to a problem in the local system, terminate all SPM/2 components and
restart SPM/2.
ΓòÉΓòÉΓòÉ 10.290. SPM2524 ΓòÉΓòÉΓòÉ
SPMSNAPC: Filename changed to %s.
SPM/2 was requested to change the default error log file (SPMSNAP.ERR) and that
change was accomplished without error.
ΓòÉΓòÉΓòÉ 10.291. SPM2525 ΓòÉΓòÉΓòÉ
SPMSNAPC: Could not acquire named shared storage. Return code = %ld.
SPM/2 could not acquire control of the logging environment to log a message.
The return code is an OS/2 system code which indicates the error that was
encountered.
Determine the reason that the logging environment could not be acquired. If it
is not due to a problem in the local system, terminate all SPM/2 components and
restart SPM/2.
ΓòÉΓòÉΓòÉ 10.292. SPM2526 ΓòÉΓòÉΓòÉ
SPMSNAPC: Logging level has been reset.
SPM/2 was requested to change the default logging level and that change was
accomplished without error.
ΓòÉΓòÉΓòÉ 10.293. SPM2530 ΓòÉΓòÉΓòÉ
SPMSNAPL may not be executed from the command line.
An attempt was made to start this program from the command line. This program
cannot be invoked by the user.
ΓòÉΓòÉΓòÉ 10.294. SPM2531 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. Close of SPMSNAP.ERR file on timeout failed.
Return code = %0.
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.295. SPM2532 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. An unexpected error was returned by
DosSemWait. Return code = %0
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.296. SPM2533 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. Open for the SPMSNAP failed. Return code =
%0.
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.297. SPM2534 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. Positioning the log file failed. Return code
= %0.
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.298. SPM2535 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. DosWrite failed. Return code = %0.
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.299. SPM2536 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. Disk is full.
The disk to which the SPM/2 snap logger is writing has been filled. Message
logging is set to quiet mode.
Clear space on the disk for the snap log. Stop and restart all SPM/2
components when that option is available. Data logging will continue if the
data log is on another disk.
ΓòÉΓòÉΓòÉ 10.300. SPM2537 ΓòÉΓòÉΓòÉ
SPMSNAPL: Message logging ended. DosClose failed in CLOSE command. Return code
= %0.
An error occurred in the SPM/2 snap logger. The return code is an OS/2 error
code and indicates the type of error. Message logging is set to quiet mode.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.301. SPM2540 ΓòÉΓòÉΓòÉ
SPMSNAPP: Incorrect number of parameters.
The program was started from the command line with an incorrect number of
parameters.
Refer to the usage message that precedes this message.
ΓòÉΓòÉΓòÉ 10.302. SPM2541 ΓòÉΓòÉΓòÉ
SPMSNAPP: The log file is currently active.
The program was started from the command line while the logger was running. If
the program is delayed for any reason, timeouts may occur.
Do not delay the completion of the program.
ΓòÉΓòÉΓòÉ 10.303. SPM2543 ΓòÉΓòÉΓòÉ
SPMSNAPP: Could not acquire control of the log.
SPM/2 could not acquire control of the logging environment to print the log.
Try again later. While it is not necessary to stop SPM/2 to process the snap
log, it is often not possible at a time of high activity.
ΓòÉΓòÉΓòÉ 10.304. SPM2545 ΓòÉΓòÉΓòÉ
SPMSNAPP: File could not be opened. Return code = %d.
An error occurred in the SPM/2 snap formatter. The return code is an OS/2
error code and indicates the type of error. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.305. SPM2546 ΓòÉΓòÉΓòÉ
SPMSNAPP: File read error. Return code = %d.
An error occurred in the SPM/2 snap formatter. The return code is an OS/2
error code and indicates the type of error. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.306. SPM2547 ΓòÉΓòÉΓòÉ
SPMSNAPP: Invalid file format - header length.
An error occurred checking the format of the input file. The formatter
terminates.
Ensure that the input file is a valid snap file.
ΓòÉΓòÉΓòÉ 10.307. SPM2548 ΓòÉΓòÉΓòÉ
SPMSNAPP: Out of memory.
An error attempting to acquire memory. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.308. SPM2549 ΓòÉΓòÉΓòÉ
SPMSNAPP: File read error. Return code = %d.
An error occurred in the SPM/2 snap formatter. The return code is an OS/2
error code and indicates the type of error. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.309. SPM2550 ΓòÉΓòÉΓòÉ
SPMSNAPP: Invalid file format - bad marker.
An error occurred checking the format of the input file. The formatter
terminates.
Ensure that the input file is a valid snap file.
ΓòÉΓòÉΓòÉ 10.310. SPM2551 ΓòÉΓòÉΓòÉ
SPMSNAPP: File read error. Return code = %d.
An error occurred in the SPM/2 snap formatter. The return code is an OS/2
error code and indicates the type of error. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.311. SPM2552 ΓòÉΓòÉΓòÉ
SPMSNAPP: Out of memory.
An error attempting to acquire memory. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.312. SPM2553 ΓòÉΓòÉΓòÉ
SPMSNAPP: File read error. Return code = %d.
An error occurred in the SPM/2 snap formatter. The return code is an OS/2
error code and indicates the type of error. The formatter terminates.
Determine the reason for the error.
ΓòÉΓòÉΓòÉ 10.313. SPM3001 and SPM3002 ΓòÉΓòÉΓòÉ
Messages:
SPM3001: Unable to load phase '%1.CMD'.
SPM3002: Unable to load function '%1' from '%2.DLL'.
These messages generally indicate an installation error; a SYS... message may
accompany this error.
Make sure the requested .CMD and .DLL files are available to SPMAPPIN; use the
OS/2 HELP command to explain any SYS.... message. SPMAPPIN will stop.
ΓòÉΓòÉΓòÉ 10.314. SPM3003 ΓòÉΓòÉΓòÉ
Unable to locate text file '%1'.
The .SPM file specified in %1 could not be found in the current directory or
through the path supplied in the CLI command string.
Ensure the file specification is correct. SPMAPPIN stops.
ΓòÉΓòÉΓòÉ 10.315. SPM3004 ΓòÉΓòÉΓòÉ
Unable to locate SPMAPP.INI file '%1'.
The SPMAPP.INI file specified could not be located in the current directory or
through the DPATH environment variable.
Ensure the file specification is correct. SPMAPPIN stops.
ΓòÉΓòÉΓòÉ 10.316. SPM3007 ΓòÉΓòÉΓòÉ
Phase %1 initialization failed.
Indicates that initialization of an SPMAPPIN phase failed.
Correct any errors indicated by preceding SPM30.. or SYS... messages.
SPMAPPIN stops.
ΓòÉΓòÉΓòÉ 10.317. SPM3008 and SPM3009 ΓòÉΓòÉΓòÉ
Messages:
SPM3008: Phase %1 started.
SPM3009: Phase %1 finished.
Indicates the status of SPMAPPIN processing phases; %1 specifies which
SPMAPP0x.CMD phase is in use.
ΓòÉΓòÉΓòÉ 10.318. SPM3010 ΓòÉΓòÉΓòÉ
Unable to open file '%1'.
A SPMAPPIN phase was unable to open the file specified.
Correct any errors indicated by preceding SYS... messages. SPMAPPIN stops.
ΓòÉΓòÉΓòÉ 10.319. SPM3014 and SPM3015 ΓòÉΓòÉΓòÉ
Messages:
SPM3014: Unable to retrieve SPMAPP.INI file item '%1'/'%2'.
SPM3015: Unable to update SPMAPP.INI file item '%1'/'%2'.
Phase 02 was not able to retrieve an SPMAPP.INI file item which should have
been in the SPMAPP.INI file, or was not able to add or replace an SPMAPP.INI
file item. %1 specifies the application and %2 specifies the key for the
SPMAPP.INI file item. This may be caused by using an incorrect or
uninitialized SPMAPP.INI file.
Ensure that you are using a correct SPMAPP.INI file. SPMAPPIN may or may not
continue.
ΓòÉΓòÉΓòÉ 10.320. SPM3019 and SPM3020 ΓòÉΓòÉΓòÉ
Messages:
SPM3019: Ordinal %1 dropped.
SPM3020: Ordinal %1 replaced.
Input from the .SPM file has caused a counter group definition previously found
in the SPMAPP.INI file to be discarded or replaced.
If this was not an expected situation, correct the .SPM file. SPMAPPIN
continues.
ΓòÉΓòÉΓòÉ 10.321. SPM3021 ΓòÉΓòÉΓòÉ
Group '%1', ordinal %2 has the same name as group %3.
A duplicate group name has been found while merging the old and new counter
group descriptions.
If this was not an expected situation, correct the .SPM file. SPMAPPIN
continues.
ΓòÉΓòÉΓòÉ 11. Glossary ΓòÉΓòÉΓòÉ
This glossary defines terms that are used with IBM Operating System/2 System
Performance Monitor/2 Version 2.0.
A
access
access control
action bar
adapter
address
administrator
alert
alias
allocate
American Standard Code for Information Interchange (ASCII)
API
append
application
application programming interface (API)
ASCII
asynchronous
B
base operating system
block
boot
buffer
bulk counter
bulk state counter
C
cache
call
cancel
case-sensitive
characteristic
check box
CLI
cluster
CM
code
COM
command line interface
communication port
Communications Manager
compile
component
configuration response file
constant
coprocessor
counter
D
database server
.DEL file
delimited report
device
device driver
dialog box
disable
disk
diskette
disk operating system (DOS)
.DMP file
domain
DOS
dump
dump report
E
enable
end user
entry field
environment
error log
event
exit
F
FAT
field
file allocation table (FAT)
file specification
file system
filespec
filter
flag
floating point number
format
frame
H
handle
hook
I
IBM Extended Services for OS/2
IBM LAN Server
IBM Operating System/2 LAN Server
IBM Operating System/2 Standard Edition
icon
ID
integer
interface
interrupt
K
KB
kernel
kilobyte (KB)
L
LAN
LAN adapter
LAN Requester
LAN Server
list box
local
local area network (LAN)
local database
log
.LOG file
LS
M
memory allocation
menu
message
message log
metric
metric definition file
monitor
monitored workstation
monitoring server
monitor session
monitor session file
N
multiplexer
named pipe
NETBIOS
network administrator
network basic input/output system (NETBIOS)
node
normal stop
null
O
offset
online
OS/2 LAN Requester
OS/2 LAN Server
P
page
panel
parameter
path
pipe
pointer
port
Presentation Manager
privilege level
process
process ID
process identification number (process ID)
processor
profile
program name
pull-down
pushbutton
Q
query
queue
queue length
R
radio button
RAM
random access
random access memory (RAM)
.RDF file
read-only
record
remote
remote database
replace
report description file
requester
resource
restore
return code
ring
S
screen
select button
semaphore
server
session
shutdown
SPM/2
.SPM file
string
state counter
state timer
.SUM file
summary report
synchronous
syntax
system
system administrator (SYSADM)
System menu
System Performance Monitor/2
system trace
T
.TAB file
tabular report
template
thread
threshold
throughput
timer
title bar
toggle
trace services
transaction
U
UNC
universal naming convention (UNC)
UPM
user
user ID
user interface
user profile
User Profile Management (UPM)
V
vector
W
window
workstation
X
X.25
ΓòÉΓòÉΓòÉ <hidden> access ΓòÉΓòÉΓòÉ
1. The manner in which files or data are referred to by a computer.
2. The controlled authorization to enter or to make use of objects.
ΓòÉΓòÉΓòÉ <hidden> access control ΓòÉΓòÉΓòÉ
The means by which network administrators restrict access to network resources
and user programs and data.
ΓòÉΓòÉΓòÉ <hidden> action bar ΓòÉΓòÉΓòÉ
The highlighted area at the top of a panel that contains the choices currently
available in the application program that a user is running.
ΓòÉΓòÉΓòÉ <hidden> adapter ΓòÉΓòÉΓòÉ
A piece of hardware that connects a computer and an external device.
ΓòÉΓòÉΓòÉ <hidden> address ΓòÉΓòÉΓòÉ
A value that identifies the location of a register, a particular part of
storage, or a network node.
ΓòÉΓòÉΓòÉ <hidden> administrator ΓòÉΓòÉΓòÉ
The person responsible for the designing, planning, installing, configuring,
controlling, managing, and maintaining of a network, system, or database. See
system administrator and network administrator.
ΓòÉΓòÉΓòÉ <hidden> alert ΓòÉΓòÉΓòÉ
1. In communications, an error message sent to the system services control
point (SSCP) at the host system.
2. In OS/2 LAN Server, an error or warning specified in the IBMLAN.INI file
that is sent to the user.
ΓòÉΓòÉΓòÉ <hidden> alias ΓòÉΓòÉΓòÉ
1. An alternative name used to identify an object or a database.
2. A nickname set up by the network administrator for a file, printer, or
serial device.
3. A name used to identify a network resource to a domain. Aliases are
similar to network names but can be used only through the full-screen
interface.
ΓòÉΓòÉΓòÉ <hidden> allocate ΓòÉΓòÉΓòÉ
To assign a resource to perform a specific task.
ΓòÉΓòÉΓòÉ <hidden> American Standard Code for Information Interchange (ASCII) ΓòÉΓòÉΓòÉ
The standard code with a coded character set consisting of 7-bit coded
characters (8 bits including parity check), used for information interchange
among data processing systems and data communication systems. The ASCII set
consists of control characters and graphic characters.
ΓòÉΓòÉΓòÉ <hidden> API ΓòÉΓòÉΓòÉ
See application programming interface.
ΓòÉΓòÉΓòÉ <hidden> append ΓòÉΓòÉΓòÉ
To attach a record or file to the end of another record or file. Contrast with
replace.
ΓòÉΓòÉΓòÉ <hidden> application ΓòÉΓòÉΓòÉ
A program or set of programs that perform a task; for example, a payroll
application.
ΓòÉΓòÉΓòÉ <hidden> application programming interface (API) ΓòÉΓòÉΓòÉ
A formally-defined programming language interface that is between an IBM system
control program or a licensed program and the user of a program.
ΓòÉΓòÉΓòÉ <hidden> ASCII ΓòÉΓòÉΓòÉ
See American Standard Code for Information Interchange.
ΓòÉΓòÉΓòÉ <hidden> asynchronous ΓòÉΓòÉΓòÉ
Pertaining to the lack of regular time relationship; unpredictable with respect
to the execution of program instructions. Contrast with synchronous.
ΓòÉΓòÉΓòÉ <hidden> base operating system ΓòÉΓòÉΓòÉ
The component that manages system resources, excluding Database Manager,
Communications Manager, and LAN Server.
ΓòÉΓòÉΓòÉ <hidden> block ΓòÉΓòÉΓòÉ
1. A string of data elements recorded or transmitted as a unit.
2. To wait, usually for an input/output (I/O) event to complete or for a
resource to become available.
3. In SPM/2, a sector or 512 kilobytes.
ΓòÉΓòÉΓòÉ <hidden> boot ΓòÉΓòÉΓòÉ
To prepare a computer system for operation by loading an operating system.
ΓòÉΓòÉΓòÉ <hidden> buffer ΓòÉΓòÉΓòÉ
A memory area reserved for use in performing input/output (I/O) operations.
ΓòÉΓòÉΓòÉ <hidden> bulk counter ΓòÉΓòÉΓòÉ
Metric with an 8-byte value. Increments by quantities (for example, bytes read
since data collection began).
ΓòÉΓòÉΓòÉ <hidden> bulk state counter ΓòÉΓòÉΓòÉ
Metric with an 8-byte value. Indicates the current state of a resource. Its
value increases or decreases by quantities.
ΓòÉΓòÉΓòÉ <hidden> cache ΓòÉΓòÉΓòÉ
A high-speed storage buffer that contains frequently accessed instructions and
data; it is used to reduce access time.
ΓòÉΓòÉΓòÉ <hidden> call ΓòÉΓòÉΓòÉ
The action of bringing a computer program, routine, or subroutine into effect,
usually by specifying the entry conditions and an entry point.
ΓòÉΓòÉΓòÉ <hidden> cancel ΓòÉΓòÉΓòÉ
1. To end a task before it is completed.
2. An action that removes the current panel or window without processing it
and returns to a previous one. See also exit.
ΓòÉΓòÉΓòÉ <hidden> case-sensitive ΓòÉΓòÉΓòÉ
A condition in which entries for an entry field must conform to a specific
lowercase, uppercase, or mixed-case format in order to be valid.
ΓòÉΓòÉΓòÉ <hidden> characteristic ΓòÉΓòÉΓòÉ
An element of a managed object class definition. This element can be a
definition of: an attribute, an attribute group, a notification, an action, a
behavior, a parameter, or a package.
ΓòÉΓòÉΓòÉ <hidden> check box ΓòÉΓòÉΓòÉ
A user-interface component that is a square box with associated text. It acts
like a switch that users can toggle on and off. An x is displayed in the check
box to show a choice is selected. Many check boxes are combined in related
sets so users can choose one or more choices or no choices. Contrast with
radio button.
ΓòÉΓòÉΓòÉ <hidden> CLI ΓòÉΓòÉΓòÉ
See command line interface.
ΓòÉΓòÉΓòÉ <hidden> cluster ΓòÉΓòÉΓòÉ
On an IBM personal computer, a particular measure of space on a disk or
diskette for files allocated in cluster increments.
ΓòÉΓòÉΓòÉ <hidden> CM ΓòÉΓòÉΓòÉ
See Communications Manager.
ΓòÉΓòÉΓòÉ <hidden> code ΓòÉΓòÉΓòÉ
1. A set of instructions for the computer.
2. To write instructions for the computer.
3. A representation of a condition, such as an error code.
ΓòÉΓòÉΓòÉ <hidden> COM ΓòÉΓòÉΓòÉ
A representation of one of the asynchronous serial communications ports, (COM1,
COM2, and COM3), supported by the OS/2 program.
ΓòÉΓòÉΓòÉ <hidden> command line interface ΓòÉΓòÉΓòÉ
A user interface that allows a user to interact with and perform operations on
a system, program, or device by entering commands at a command prompt or on a
command line.
ΓòÉΓòÉΓòÉ <hidden> communication port ΓòÉΓòÉΓòÉ
1. An access point for data entry or exit to or from a communication device
such as a terminal.
2. On a personal computer, a synchronous or asynchronous serial port to which
a modem can be attached. Synonymous with port.
ΓòÉΓòÉΓòÉ <hidden> Communications Manager ΓòÉΓòÉΓòÉ
A component of the IBM Extended Services program that lets a workstation
connect to a host computer and use the host resources as well as the resources
of other personal computers to which the workstation is attached, either
directly or through a host.
ΓòÉΓòÉΓòÉ <hidden> compile ΓòÉΓòÉΓòÉ
1. To translate a program written in a high-level programming language into a
machine language program.
2. The computer actions required to transform a source file into an
executable object file.
ΓòÉΓòÉΓòÉ <hidden> component ΓòÉΓòÉΓòÉ
1. A functional part of IBM Extended Services for OS/2 (Communications
Manager and Database Manager) or the base operating system.
2. A constituent part, for example, each step is a component in a procedure.
ΓòÉΓòÉΓòÉ <hidden> configuration response file ΓòÉΓòÉΓòÉ
In Communications Manager, a file that describes the devices, optional
features, communications parameters, and programs installed on a workstation.
ΓòÉΓòÉΓòÉ <hidden> constant ΓòÉΓòÉΓòÉ
A fixed value.
ΓòÉΓòÉΓòÉ <hidden> coprocessor ΓòÉΓòÉΓòÉ
A microprocessor that extends the address range of the processor in the system
unit or adds specialized instructions to handle a particular category of
operations; for example, an input/output (I/O) coprocessor, a math processor, a
networking processor.
ΓòÉΓòÉΓòÉ <hidden> counter ΓòÉΓòÉΓòÉ
Metric with a 4-byte value. Increments by 1 for each occurrence of an event
(for example, number of disk read operations).
ΓòÉΓòÉΓòÉ <hidden> database server ΓòÉΓòÉΓòÉ
A Database Manager Remote Data Services workstation which provides database
services for its local databases to other Remote Data Services workstations.
ΓòÉΓòÉΓòÉ <hidden> .DEL file ΓòÉΓòÉΓòÉ
Synonymous with delimited report.
ΓòÉΓòÉΓòÉ <hidden> delimited report ΓòÉΓòÉΓòÉ
A report format that provides the same level of detail as the tabular report
format, but the data in the dump format is delimited by quotation marks and can
be imported into many spreadsheet programs.
ΓòÉΓòÉΓòÉ <hidden> device ΓòÉΓòÉΓòÉ
1. An input/output (I/O) unit such as a terminal, display, or printer.
2. In OS/2 LAN Server, a drive (for files resources) or port (for printers
and serial devices) that is assigned when a resource is used.
ΓòÉΓòÉΓòÉ <hidden> device driver ΓòÉΓòÉΓòÉ
The executable code needed to attach and use a device such as a display,
printer, plotter, or communications adapter.
ΓòÉΓòÉΓòÉ <hidden> dialog box ΓòÉΓòÉΓòÉ
A window that allows the application to receive data typed by the user or to
present formatted information to the user.
ΓòÉΓòÉΓòÉ <hidden> directory ΓòÉΓòÉΓòÉ
1. A list of the files that are stored on a disk or diskette. A directory
also contains information about the file such as size and date of last
change.
2. A named grouping of files in a file system.
ΓòÉΓòÉΓòÉ <hidden> disable ΓòÉΓòÉΓòÉ
1. To make nonfunctional.
2. The state of a processing unit that prevents the occurrence of certain
types of interruptions.
ΓòÉΓòÉΓòÉ <hidden> disk ΓòÉΓòÉΓòÉ
A magnetic disk unit. See also diskette.
ΓòÉΓòÉΓòÉ <hidden> diskette ΓòÉΓòÉΓòÉ
A thin, flexible magnetic disk enclosed in a protective container that is
removable from the hardware. See also disk.
ΓòÉΓòÉΓòÉ <hidden> disk operating system (DOS) ΓòÉΓòÉΓòÉ
An operating system for computer systems that use disks and diskettes for
auxiliary storage of programs and data.
ΓòÉΓòÉΓòÉ <hidden> .DMP file ΓòÉΓòÉΓòÉ
Synonymous with dump report.
ΓòÉΓòÉΓòÉ <hidden> domain ΓòÉΓòÉΓòÉ
A set of servers that allocates shared network resources within a single
logical system.
ΓòÉΓòÉΓòÉ <hidden> DOS ΓòÉΓòÉΓòÉ
See disk operating system.
ΓòÉΓòÉΓòÉ <hidden> dump ΓòÉΓòÉΓòÉ
To copy data from memory onto an external medium such as a diskette or printer.
ΓòÉΓòÉΓòÉ <hidden> dump report ΓòÉΓòÉΓòÉ
A report format that displays values for the lowest level performance counters
and timers as sampled at the requested intervals. The file extension for a dump
report file is .DMP.
ΓòÉΓòÉΓòÉ <hidden> enable ΓòÉΓòÉΓòÉ
To make functional.
ΓòÉΓòÉΓòÉ <hidden> end user ΓòÉΓòÉΓòÉ
The ultimate source or destination of data flowing through a network. An end
user can be an application program or a workstation operator.
ΓòÉΓòÉΓòÉ <hidden> entry field ΓòÉΓòÉΓòÉ
A panel element, usually highlighted in some manner and usually with its
boundaries indicated, where users type information.
ΓòÉΓòÉΓòÉ <hidden> environment ΓòÉΓòÉΓòÉ
The collective hardware and software configuration of a system.
ΓòÉΓòÉΓòÉ <hidden> error log ΓòÉΓòÉΓòÉ
A file that stores error information for later access. See log.
ΓòÉΓòÉΓòÉ <hidden> event ΓòÉΓòÉΓòÉ
An occurrence of significance to a task; for example, the completion of an
asynchronous operation such as an input/output (I/O) operation, failure of a
subsystem, the end of work to fix a problem, or the end of processing.
ΓòÉΓòÉΓòÉ <hidden> exit ΓòÉΓòÉΓòÉ
An action that ends the current function and returns to a higher-level
function. See also cancel.
ΓòÉΓòÉΓòÉ <hidden> FAT ΓòÉΓòÉΓòÉ
See file allocation table.
ΓòÉΓòÉΓòÉ <hidden> field ΓòÉΓòÉΓòÉ
An area in a record or on a panel used to contain data.
ΓòÉΓòÉΓòÉ <hidden> file allocation table (FAT) ΓòÉΓòÉΓòÉ
In IBM personal computers, a table used to allocate space on a disk for a file.
This can then be used to locate and chain together parts of the file that may
be scattered on different sectors so that the file can be used in a random or
sequential manner.
ΓòÉΓòÉΓòÉ <hidden> file specification ΓòÉΓòÉΓòÉ
The full identifier for a file, which includes its drive, path, file name, and
file name extension.
ΓòÉΓòÉΓòÉ <hidden> file system ΓòÉΓòÉΓòÉ
The collection of files and file management structures on a physical or logical
mass storage device such as a disk.
ΓòÉΓòÉΓòÉ <hidden> filespec ΓòÉΓòÉΓòÉ
The name and location of a file. The format is dependent on the storage medium
of a file; for example, C:\path\filename.ext.
ΓòÉΓòÉΓòÉ <hidden> filter ΓòÉΓòÉΓòÉ
A device or program that modifies data, signals, or material in accordance with
specified criteria.
ΓòÉΓòÉΓòÉ <hidden> flag ΓòÉΓòÉΓòÉ
1. A modifier that defines the action of a command.
2. The action or return from a command.
ΓòÉΓòÉΓòÉ <hidden> floating point number ΓòÉΓòÉΓòÉ
A number followed by an exponent designator, for example, 1.234E2, -5.678E2, or
1.234E-2.
ΓòÉΓòÉΓòÉ <hidden> format ΓòÉΓòÉΓòÉ
1. A specific arrangement of a set of data.
2. In the base operating system (both DOS and OS/2 modes), a command used to
prepare a diskette.
ΓòÉΓòÉΓòÉ <hidden> frame ΓòÉΓòÉΓòÉ
1. In high level data link control (HDLC), the sequence of contiguous bits
bracketed by and including the opening and closing flag (01111110).
Frames are used to transfer data and control information across a data
link.
2. A data structure that consists of fields predetermined by a protocol for
the transmission of user data and control data.
3. In X.25 packet switching data networks, the contiguous sequence of 8-bit
bytes delimited by beginning and ending flags. Frames are used at the
frame level (level 2) of the X.25 protocol to transport information that
performs control functions, data transfers, and transmission checking.
ΓòÉΓòÉΓòÉ <hidden> handle ΓòÉΓòÉΓòÉ
An identifier that represents an object, such as a device, window, or file.
ΓòÉΓòÉΓòÉ <hidden> hook ΓòÉΓòÉΓòÉ
1. In programming, an area of program code that makes connections with other
program codes possible.
2. A mechanism by which procedures are called when certain events occur in
the system; for example, the filtering of mouse and keyboard input before
it is received by an application program.
ΓòÉΓòÉΓòÉ <hidden> IBM Extended Services for OS/2 ΓòÉΓòÉΓòÉ
A program that contains the Database Manager and Communications Manager
components and uses a base operating system equivalent to IBM Operating
System/2 Standard Edition Version 1.30.2.
ΓòÉΓòÉΓòÉ <hidden> IBM LAN Server ΓòÉΓòÉΓòÉ
See IBM Operating System/2 LAN Server.
ΓòÉΓòÉΓòÉ <hidden> IBM Operating System/2 LAN Server ΓòÉΓòÉΓòÉ
A program that contains the LAN Server, OS/2 LAN Requester, and DOS LAN
Requester components. It allows resources to be shared with other computers on
the network. See server.
ΓòÉΓòÉΓòÉ <hidden> IBM Operating System/2 Standard Edition ΓòÉΓòÉΓòÉ
The base operating system for OS/2 programs.
ΓòÉΓòÉΓòÉ <hidden> icon ΓòÉΓòÉΓòÉ
A pictorial representation of a choice for the user to select. Icons can
represent things (such as a document or file) the user wants to work on. Icons
can also represent actions the user wants to perform.
ΓòÉΓòÉΓòÉ <hidden> ID ΓòÉΓòÉΓòÉ
Identification; identifier.
ΓòÉΓòÉΓòÉ <hidden> integer ΓòÉΓòÉΓòÉ
A whole number, for example, one of the numbers 0, +1, -1.
ΓòÉΓòÉΓòÉ <hidden> interface ΓòÉΓòÉΓòÉ
1. A set of verbs used by a program to communicate with another program.
2. A shared boundary between two or more entities. An interface might be a
hardware component to link two devices together or it might be a portion
of memory or registers accessed by two or more computer programs.
3. It describes all properties that an object can exhibit to its client, such
as attributes, actions, notifications, and behavior.
4. The exterior appearance of a class, object or module that emphasizes its
abstract generic nature while hiding its structure and the specifics of
its behavior.
ΓòÉΓòÉΓòÉ <hidden> interrupt ΓòÉΓòÉΓòÉ
A suspension of a process, such as the execution of a computer program caused
by an event external to that process, performed in such a way that the process
can be resumed.
ΓòÉΓòÉΓòÉ <hidden> KB ΓòÉΓòÉΓòÉ
See kilobyte.
ΓòÉΓòÉΓòÉ <hidden> kernel ΓòÉΓòÉΓòÉ
The part of an operating system that performs basic functions such as
allocating hardware resources.
ΓòÉΓòÉΓòÉ <hidden> kilobyte (KB) ΓòÉΓòÉΓòÉ
A term meaning 1024 bytes.
ΓòÉΓòÉΓòÉ <hidden> LAN ΓòÉΓòÉΓòÉ
See local area network.
ΓòÉΓòÉΓòÉ <hidden> LAN adapter ΓòÉΓòÉΓòÉ
A card that is installed in a computer and that is used to attach the computer
to a local area network.
ΓòÉΓòÉΓòÉ <hidden> LAN Requester ΓòÉΓòÉΓòÉ
The component of OS/2 LAN Server that allows users to access shared network
resources made available by OS/2 LAN Servers. See requester.
ΓòÉΓòÉΓòÉ <hidden> LAN Server ΓòÉΓòÉΓòÉ
See IBM Operating System/2 LAN Server.
ΓòÉΓòÉΓòÉ <hidden> list box ΓòÉΓòÉΓòÉ
In Presentation Interface, a vertical, scrollable list of items.
ΓòÉΓòÉΓòÉ <hidden> local ΓòÉΓòÉΓòÉ
Pertaining to a device or system that is connected directly to, or a file that
is read directly from your system, without the use of communications line.
Contrast with remote.
ΓòÉΓòÉΓòÉ <hidden> local area network (LAN) ΓòÉΓòÉΓòÉ
1. Two or more computing units connected for local resource sharing.
2. A network in which communication is limited to a moderate-sized geographic
area, such as a single office building, warehouse, or campus, and that do
not extend across public rights-of-way.
ΓòÉΓòÉΓòÉ <hidden> local database ΓòÉΓòÉΓòÉ
A database physically located on the workstation in use. Contrast with remote
database.
ΓòÉΓòÉΓòÉ <hidden> log ΓòÉΓòÉΓòÉ
To record; for example, to log all messages on the system printer. See message
log and error log.
ΓòÉΓòÉΓòÉ <hidden> .LOG file ΓòÉΓòÉΓòÉ
Synonymous with monitor session file.
ΓòÉΓòÉΓòÉ <hidden> LS ΓòÉΓòÉΓòÉ
See LAN Server.
ΓòÉΓòÉΓòÉ <hidden> memory allocation ΓòÉΓòÉΓòÉ
An operating system function that assigns memory areas to tasks.
ΓòÉΓòÉΓòÉ <hidden> menu ΓòÉΓòÉΓòÉ
1. A displayed list of available machine functions for selection by a user.
2. A displayed list of items from which a user can make a selection.
ΓòÉΓòÉΓòÉ <hidden> message ΓòÉΓòÉΓòÉ
The information not requested by users but presented to users by the computer
in response to a user action or internal process.
ΓòÉΓòÉΓòÉ <hidden> message log ΓòÉΓòÉΓòÉ
A file used to save or log certain types of messages and status information.
See log.
ΓòÉΓòÉΓòÉ <hidden> metric ΓòÉΓòÉΓòÉ
A measure of performance with specific units, for example, writes per second.
Synonymous with hook.
ΓòÉΓòÉΓòÉ <hidden> metric definition file ΓòÉΓòÉΓòÉ
An ASCII text file containing definitions of the metrics for an application.
ΓòÉΓòÉΓòÉ <hidden> monitor ΓòÉΓòÉΓòÉ
1. An action that observes and records selected events and activities within
a data processing system for purposes of analysis.
2. To collect data about a process or activity.
*
ΓòÉΓòÉΓòÉ <hidden> monitored workstation ΓòÉΓòÉΓòÉ
Any workstation in a network that is monitored by the monitoring server using
System Performance Monitor/2.
ΓòÉΓòÉΓòÉ <hidden> monitoring server ΓòÉΓòÉΓòÉ
Any server in a network that is monitoring other workstations using System
Performance Monitor/2.
ΓòÉΓòÉΓòÉ <hidden> monitor session ΓòÉΓòÉΓòÉ
1. The period of time in which System Performance Monitor/2 monitors selected
resources of specified workstations.
2. The SPM/2 program that monitors the resources and workstations.
ΓòÉΓòÉΓòÉ <hidden> monitor session file ΓòÉΓòÉΓòÉ
The file containing the parameters that determine what data is collected by a
monitor session and the data itself.
ΓòÉΓòÉΓòÉ <hidden> multiplexer ΓòÉΓòÉΓòÉ
1. A device that takes several input signals and combines them into a single
output signal in such a manner that each of the input signals can be
recovered.
2. A device capable of interleaving events of two or more activities or
capable of distributing events of an interleaved sequence to the
respective activities.
ΓòÉΓòÉΓòÉ <hidden> named pipe ΓòÉΓòÉΓòÉ
A two-way flow of data from one program to another that is referenced by a
logical name. Named pipes allow two processes to communicate with each other
even if these programs are on separate machines on a network. See pipe.
ΓòÉΓòÉΓòÉ <hidden> NETBIOS ΓòÉΓòÉΓòÉ
See network basic input/output system.
ΓòÉΓòÉΓòÉ <hidden> network administrator ΓòÉΓòÉΓòÉ
The person responsible for the installation, management, control, and
configuration of a network. The network administrator defines the resources to
be shared and user access to the shared resources, and determines the type of
access those users can have.
ΓòÉΓòÉΓòÉ <hidden> network basic input/output system (NETBIOS) ΓòÉΓòÉΓòÉ
A system that provides a programming interface to the local area network (LAN)
so that an application program can have LAN communication without knowledge and
responsibility of some of the lower layer protocol functions. Nodes are
identified on the LAN by NETBIOS names, and two types of data transfer are
supported. Session support provides guaranteed delivery of the data, while
datagram support does not guarantee delivery. NETBIOS is a part of LAN Adapter
and Protocol Support.
ΓòÉΓòÉΓòÉ <hidden> node ΓòÉΓòÉΓòÉ
An end point of a communications link or a junction common to two or more links
in a network. Nodes can be processors, communication controllers, cluster
controllers, terminals, or workstations.
ΓòÉΓòÉΓòÉ <hidden> normal stop ΓòÉΓòÉΓòÉ
In System Performance Monitor/2, the routine shutdown process for stopping a
recording or graphing session.
ΓòÉΓòÉΓòÉ <hidden> null ΓòÉΓòÉΓòÉ
A special value that indicates the absence of information.
ΓòÉΓòÉΓòÉ <hidden> offset ΓòÉΓòÉΓòÉ
The number of measuring units from an arbitrary starting point in a record,
area, control block, or a segment to some other point.
ΓòÉΓòÉΓòÉ <hidden> online ΓòÉΓòÉΓòÉ
1. Pertaining to a user's ability to interact with a computer. A description
of a user's access to a computer by way of a screen.
2. Pertaining to the operation of a functional unit that is under the
continuous control of a computer.
ΓòÉΓòÉΓòÉ <hidden> OS/2 LAN Requester ΓòÉΓòÉΓòÉ
See IBM Operating System/2 LAN Requester.
ΓòÉΓòÉΓòÉ <hidden> OS/2 LAN Server ΓòÉΓòÉΓòÉ
See IBM Operating System/2 LAN Server.
ΓòÉΓòÉΓòÉ <hidden> page ΓòÉΓòÉΓòÉ
1. In a virtual storage system, a fixed-length block that has a virtual
address and is transferred as a unit between memory and disk storage.
2. To transfer a page between memory and disk storage.
ΓòÉΓòÉΓòÉ <hidden> panel ΓòÉΓòÉΓòÉ
A particular arrangement of information grouped together for presentation to
the user.
ΓòÉΓòÉΓòÉ <hidden> parameter ΓòÉΓòÉΓòÉ
An item for which the user specifies a value or for which the system provides a
value when the users selection is interpreted.
ΓòÉΓòÉΓòÉ <hidden> path ΓòÉΓòÉΓòÉ
The route used to locate files on a disk or diskette. The route consists of a
collection of drives and directories.
ΓòÉΓòÉΓòÉ <hidden> pipe ΓòÉΓòÉΓòÉ
To direct the data so that the output from one process becomes the input to
another process.
ΓòÉΓòÉΓòÉ <hidden> pointer ΓòÉΓòÉΓòÉ
In the C language, an indirect means of accessing the value of a particular
data item.
ΓòÉΓòÉΓòÉ <hidden> port ΓòÉΓòÉΓòÉ
Synonym for communication port.
ΓòÉΓòÉΓòÉ <hidden> Presentation Manager ΓòÉΓòÉΓòÉ
The interface of the OS/2 program that presents, in windows, a graphics-based
interface to applications and files installed and running on the OS/2 program.
ΓòÉΓòÉΓòÉ <hidden> privilege level ΓòÉΓòÉΓòÉ
1. Privilege level is a protection mechanism of the processor that provides
four hierarchical protection levels to ensure program reliability. At any
one time, a task executes at one of the four levels. A task executing at
one level cannot access data at a more privileged level, nor can it call a
procedure at a less privileged level. The most trusted service procedures
occupy the higher levels (levels 0, 1, and 2) while the less trusted
application programs are placed at the lowest level of privilege (level
3).
2. The level of resources a piece of code has access to.
ΓòÉΓòÉΓòÉ <hidden> process ΓòÉΓòÉΓòÉ
A collection of system resources that include one or more threads of execution
that perform a task.
ΓòÉΓòÉΓòÉ <hidden> process ID ΓòÉΓòÉΓòÉ
See process identification number.
ΓòÉΓòÉΓòÉ <hidden> process identification number (process ID) ΓòÉΓòÉΓòÉ
A unique number assigned to a process by the operating system. The number is
used internally by processes to communicate.
ΓòÉΓòÉΓòÉ <hidden> processor ΓòÉΓòÉΓòÉ
In a computer, a functional unit that interprets and processes instructions.
ΓòÉΓòÉΓòÉ <hidden> profile ΓòÉΓòÉΓòÉ
1. An object that contains information about the characteristics of a
computer system or application.
2. In Communications Manager, a part of a configuration file.
ΓòÉΓòÉΓòÉ <hidden> program name ΓòÉΓòÉΓòÉ
In System Performance Monitor/2, the name of an executable file associated with
an application.
ΓòÉΓòÉΓòÉ <hidden> pull-down ΓòÉΓòÉΓòÉ
An extension of the action bar that displays a list of one or more choices that
are available for a selected action bar choice.
ΓòÉΓòÉΓòÉ <hidden> pushbutton ΓòÉΓòÉΓòÉ
A rounded-corner rectangle with text inside used in graphics applications for
actions that occur when the pushbutton is selected.
ΓòÉΓòÉΓòÉ <hidden> query ΓòÉΓòÉΓòÉ
A request for information from the database based on specific conditions; for
example, a request for a list of all customers in a customer table whose
balance is greater than $1000.
ΓòÉΓòÉΓòÉ <hidden> queue ΓòÉΓòÉΓòÉ
1. A line or list formed by items waiting to be processed; for example, a
list of print jobs waiting to be printed.
2. A set of items. For example, a queue counter represents the number of
items.
ΓòÉΓòÉΓòÉ <hidden> queue length ΓòÉΓòÉΓòÉ
Consists of two parts:
o Queue count. This is 4-byte state counter that contains the current number
of elements in the queue at the time the snapshot of the hook values was
taken. This is just an instantaneous value.
o Queue time. This is an 8-byte timer that contains a value that is not
purely time, but rather a composite of the amount of time each element has
been in the queue.
ΓòÉΓòÉΓòÉ <hidden> radio button ΓòÉΓòÉΓòÉ
A round button on the screen that is used to indicate items in a list from
which only one item can be selected. Contrast with check box.
ΓòÉΓòÉΓòÉ <hidden> RAM ΓòÉΓòÉΓòÉ
See random access memory.
ΓòÉΓòÉΓòÉ <hidden> random access ΓòÉΓòÉΓòÉ
An access mode in which records can be read from, written to, or removed from a
file in any order.
ΓòÉΓòÉΓòÉ <hidden> random access memory (RAM) ΓòÉΓòÉΓòÉ
The physical memory installed in a personal computer (PC).
ΓòÉΓòÉΓòÉ <hidden> .RDF file ΓòÉΓòÉΓòÉ
Synonymous with report description file.
ΓòÉΓòÉΓòÉ <hidden> read-only ΓòÉΓòÉΓòÉ
A type of access to data that allows it to be read but not copied, printed, or
modified.
ΓòÉΓòÉΓòÉ <hidden> record ΓòÉΓòÉΓòÉ
1. To write pertinent data to a file. Synonymous with log.
2. A set of data treated as a unit, such as a collected set of metrics.
ΓòÉΓòÉΓòÉ <hidden> remote ΓòÉΓòÉΓòÉ
Pertaining to a system, program, or device that is accessed through a
telecommunication line. Contrast with local.
ΓòÉΓòÉΓòÉ <hidden> remote database ΓòÉΓòÉΓòÉ
A database physically located on some workstation other than the one currently
in use. Contrast with local database.
ΓòÉΓòÉΓòÉ <hidden> replace ΓòÉΓòÉΓòÉ
To substitute one record or file for another record or file. Contrast with
append.
ΓòÉΓòÉΓòÉ <hidden> report description file ΓòÉΓòÉΓòÉ
The file containing the parameters that determine the output format and content
of a report.
ΓòÉΓòÉΓòÉ <hidden> requester ΓòÉΓòÉΓòÉ
A computer that accesses shared network resources made available by other
computers running as servers on the network.
ΓòÉΓòÉΓòÉ <hidden> resource ΓòÉΓòÉΓòÉ
Any facility of a computing system or operating system required by a job or
task, and including memory, input/output (I/O) devices, processing unit, data
files, and control or processing programs.
ΓòÉΓòÉΓòÉ <hidden> response time ΓòÉΓòÉΓòÉ
The time it takes to complete a single request (from the end user's
perspective). Examples of response time would be the number of microseconds it
takes to complete a record transfer or a screen update.
ΓòÉΓòÉΓòÉ <hidden> restore ΓòÉΓòÉΓòÉ
1. To reestablish an original condition.
2. In Presentation Manager, to return a window to its original size or
position following a sizing or moving action.
3. An OS/2 command that restores files that have been backed up.
ΓòÉΓòÉΓòÉ <hidden> return code ΓòÉΓòÉΓòÉ
A value returned to a program to indicate the results of an operation requested
by that program.
ΓòÉΓòÉΓòÉ <hidden> ring ΓòÉΓòÉΓòÉ
Synonymous with privilege level.
ΓòÉΓòÉΓòÉ <hidden> screen ΓòÉΓòÉΓòÉ
The physical surface of a display device upon which information is presented to
the user. See also panel.
ΓòÉΓòÉΓòÉ <hidden> select button ΓòÉΓòÉΓòÉ
The button on a pointing device, such as a mouse, that is pressed to select a
menu choice. Also known as button 1.
ΓòÉΓòÉΓòÉ <hidden> semaphore ΓòÉΓòÉΓòÉ
A system mechanism used to control access to system resources.
ΓòÉΓòÉΓòÉ <hidden> server ΓòÉΓòÉΓòÉ
1. On a local area network (LAN), a workstation that provides facilities to
other workstations.
2. A computer that shares its resources with other computers on the network.
3. In OS/2 LAN Server, the component that allows a computer to share its
resources with other computers on the network. This component is a
composite of all the base components that must be installed for the LAN
Server to be installed.
ΓòÉΓòÉΓòÉ <hidden> session ΓòÉΓòÉΓòÉ
1. A sequence of management operations and notifications requested by a
particular client using the same session OM object.
2. A logical connection between two machines on a network.
3. In OS/2 LAN Server, a logical connection between a server and a requester
that begins with a successful request for a shared resource.
4. The period of time during which a user can communicate with an interactive
system.
ΓòÉΓòÉΓòÉ <hidden> shutdown ΓòÉΓòÉΓòÉ
In Task Manager, the procedure required before the computer is switched off to
ensure that data and configuration information is not lost.
ΓòÉΓòÉΓòÉ <hidden> SPM/2 ΓòÉΓòÉΓòÉ
See System Performance Monitor/2.
ΓòÉΓòÉΓòÉ <hidden> .SPM file ΓòÉΓòÉΓòÉ
Synonymous with metric definition file.
ΓòÉΓòÉΓòÉ <hidden> string ΓòÉΓòÉΓòÉ
A sequence of elements of the same nature, such as characters, considered as a
whole.
ΓòÉΓòÉΓòÉ <hidden> state counter ΓòÉΓòÉΓòÉ
Metric with a 4-byte value. Indicates the current state of a resource. Its
value increases or decreases one at a time (for example, the number of pages in
memory).
ΓòÉΓòÉΓòÉ <hidden> state timer ΓòÉΓòÉΓòÉ
Metric with an 8-byte value. This is an application-defined value in units.
ΓòÉΓòÉΓòÉ <hidden> .SUM file ΓòÉΓòÉΓòÉ
Synonymous with summary report.
ΓòÉΓòÉΓòÉ <hidden> summary report ΓòÉΓòÉΓòÉ
A report format that summarizes performance data at any of several detail
levels, including workstation, application, process, and thread. The file
extension for a summary report file is .SUM.
ΓòÉΓòÉΓòÉ <hidden> synchronous ΓòÉΓòÉΓòÉ
Pertaining to two or more processes that depend upon the occurrences of
specific events such as a common timing signal. Contrast with asynchronous.
ΓòÉΓòÉΓòÉ <hidden> syntax ΓòÉΓòÉΓòÉ
1. The relationship among characters or groups of characters, independent of
their meanings or the manner of their interpretation and use.
2. The structure of expressions in a language.
3. The rules governing the structure of a language.
4. The rules for the construction of a statement.
ΓòÉΓòÉΓòÉ <hidden> system ΓòÉΓòÉΓòÉ
A computer and its associated devices and programs. See also workstation.
ΓòÉΓòÉΓòÉ <hidden> system administrator (SYSADM) ΓòÉΓòÉΓòÉ
1. A user with administrator authority. Such users can grant other users or
groups the right to access objects and can revoke such rights.
2. In Communications Manager, the person responsible for installing,
configuring, and setting up local communications networks, and ensuring
the proper use of Communications Manager on all supported hardware.
ΓòÉΓòÉΓòÉ <hidden> System menu ΓòÉΓòÉΓòÉ
The pull-down in the top left-hand corner of all primary windows that allows
windows to be moved and sized. It can also be used to close a program and to
select Task Manager.
ΓòÉΓòÉΓòÉ <hidden> System Performance Monitor/2 ΓòÉΓòÉΓòÉ
A program that collects, records, and graphs performance data and processes the
data into various report formats.
ΓòÉΓòÉΓòÉ <hidden> system trace ΓòÉΓòÉΓòÉ
A historical record of specific events in the execution of the Extended
Services program. The record is usually produced for debugging purposes.
ΓòÉΓòÉΓòÉ <hidden> .TAB file ΓòÉΓòÉΓòÉ
Synonymous with tabular report.
ΓòÉΓòÉΓòÉ <hidden> tabular report ΓòÉΓòÉΓòÉ
A report format that provides a high-level summary of performance data. This
report format is not as detailed as the summary report format. The file
extension for a tabular report file is .TAB.
ΓòÉΓòÉΓòÉ <hidden> template ΓòÉΓòÉΓòÉ
A pattern used as a guide in the construction of items of the same kind.
ΓòÉΓòÉΓòÉ <hidden> think time ΓòÉΓòÉΓòÉ
The amount of time between each request. It affects the arrival rate of events
at the servicing machine or application.
ΓòÉΓòÉΓòÉ <hidden> thread ΓòÉΓòÉΓòÉ
Single sequential flow of control within a process.
ΓòÉΓòÉΓòÉ <hidden> threshold ΓòÉΓòÉΓòÉ
A level set in the managing workstation at which a message is sent or an
error-handling program is called; a percentage value set for a resource and
compared to a calculated error-to-traffic ratio.
ΓòÉΓòÉΓòÉ <hidden> throughput ΓòÉΓòÉΓòÉ
The ability of a system to complete some number of end user or application
requests (transactions) in a given amount of time. Throughput is generally
expressed in kilobytes per second (KB/sec) or transactions per second.
ΓòÉΓòÉΓòÉ <hidden> timer ΓòÉΓòÉΓòÉ
Metric with an 8-byte value. Counts nanosecond tics of the system clock. When
combined with other counters, timers are used to measure how long an event
takes.
ΓòÉΓòÉΓòÉ <hidden> title bar ΓòÉΓòÉΓòÉ
The area at the top of the window that contains the window title.
ΓòÉΓòÉΓòÉ <hidden> toggle ΓòÉΓòÉΓòÉ
1. The ability to switch between two modes; for example, insert and replace.
2. To switch between two modes; for example, on a personal computer connected
to a network, to switch between the data entry and command entry modes or
between stand-alone operation and terminal emulation.
ΓòÉΓòÉΓòÉ <hidden> trace services ΓòÉΓòÉΓòÉ
In Communications Manager, a menu-driven utility used to trace application
programming interfaces (APIs) and data transmitted on communication links.
ΓòÉΓòÉΓòÉ <hidden> transaction ΓòÉΓòÉΓòÉ
An exchange between a workstation and a program, between two workstations, or
between two programs that accomplishes a particular action or result.
ΓòÉΓòÉΓòÉ <hidden> UNC ΓòÉΓòÉΓòÉ
See universal naming convention.
ΓòÉΓòÉΓòÉ <hidden> universal naming convention ΓòÉΓòÉΓòÉ
A name used to identify the server and netname of a resource, taking the form:
\\servername\netname\pathnamr\filename or \\servername\netname\devicename.
ΓòÉΓòÉΓòÉ <hidden> UPM ΓòÉΓòÉΓòÉ
See User Profile Management.
ΓòÉΓòÉΓòÉ <hidden> user ΓòÉΓòÉΓòÉ
A person who uses a resource on a computer.
ΓòÉΓòÉΓòÉ <hidden> user ID ΓòÉΓòÉΓòÉ
A unique name that identifies a user to the network.
ΓòÉΓòÉΓòÉ <hidden> user interface ΓòÉΓòÉΓòÉ
The hardware, software, or both that allows a user to interact with and perform
operations on a system, program, or device. See interface.
ΓòÉΓòÉΓòÉ <hidden> user profile ΓòÉΓòÉΓòÉ
1. In OS/2 LAN Server, a command file containing commands that set
environment values and run programs automatically when a user logs on.
2. A description of a user that includes such information as user ID, user
name, access authority, and other attributes obtained at logon.
ΓòÉΓòÉΓòÉ <hidden> User Profile Management (UPM) ΓòÉΓòÉΓòÉ
User Profile Management is automatically installed with the Extended Services
program. It provides user ID validation and user and group management
facilities that are used by Database Manager, LAN Services, and Communications
Manager. Each installation of User Profile Management is local to the
particular workstation where it is installed and validates users accessing
controlled data or using programs that reside on that particular workstation.
It also provides the mechanism for users to log on to the system and log off
from the system to identify and authenticate system users.
ΓòÉΓòÉΓòÉ <hidden> vector ΓòÉΓòÉΓòÉ
A data structure in which any item may be located by a single index or
subscript.
ΓòÉΓòÉΓòÉ <hidden> window ΓòÉΓòÉΓòÉ
An area of the screen with visible boundaries through which a panel or portion
of a panel is displayed.
ΓòÉΓòÉΓòÉ <hidden> working set ΓòÉΓòÉΓòÉ
Includes the memory pages (data and code) that are accessed in a given
environment during a specific time interval. Working set RAM includes pages
that are used during the time interval.
ΓòÉΓòÉΓòÉ <hidden> workstation ΓòÉΓòÉΓòÉ
1. For LAN purposes, a workstation is either a requester or a server. A
workstation can have only one name by which it is known to the network.
See also system.
2. In SPM/2, a stand-alone workstation (no LAN services installed) is called
LOCAL.
ΓòÉΓòÉΓòÉ <hidden> X.25 ΓòÉΓòÉΓòÉ
A protocol defining the interface between a computer and a packet switching
network.