home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: SysTools / SysTools.zip / spm2.zip / spmref20.inf (.txt) < prev    next >
OS/2 Help File  |  1993-11-11  |  414KB  |  14,430 lines

  1.  
  2. ΓòÉΓòÉΓòÉ <hidden> Glossary Button ΓòÉΓòÉΓòÉ
  3.  
  4.  Glossary 
  5.  
  6.  
  7. ΓòÉΓòÉΓòÉ 1. Notices ΓòÉΓòÉΓòÉ
  8.  
  9. References in this publication to IBM products, programs, or services do not 
  10. imply that IBM intends to make these available in all countries in which IBM 
  11. operates. 
  12.  
  13. Any reference to an IBM product, program, or service is not intended to state 
  14. or imply that only IBM's product, program, or service may be used. 
  15.  
  16. Any functionally equivalent product, program, or service that does not infringe 
  17. any of IBM's intellectual property rights or other legally protectible rights 
  18. may be used instead of the IBM product, program, or service. 
  19.  
  20. Evaluation and verification of operation in conjunction with other products, 
  21. programs, or services, except those expressly designated by IBM, are the user's 
  22. responsibility. 
  23.  
  24. IBM may have patents or pending patent applications covering subject matter in 
  25. this document.  The furnishing of this document does not give you any rights to 
  26. these patents. 
  27.  
  28. You can inquire, in writing, to the IBM Director of Commercial Relations, IBM 
  29. Corporation, Purchase, NY 10577 - USA, or to the IBM Director of Commercial 
  30. Relations, IBM World Trade Asia Corporation, IBM Kamiya-cho Building, 4-3-9 
  31. Toranomon, Minato-ku, Tokyo, Japan. 
  32.  
  33. The following terms, denoted by an asterisk (*) in this reference, are 
  34. trademarks of the IBM Corporation in the United States and/or other countries: 
  35.  
  36.  IBM                                Presentation Manager 
  37.  OS/2                               Operating System/2 
  38.  PS/2                               Personal System/2 
  39.  THESEUS2                           System Performance Monitor/2 
  40.  SystemView 
  41.  
  42.  The following paragraph does not apply to the United Kingdom or any country 
  43.  where such provisions are inconsistent with local law. 
  44.  
  45.  INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS INFORMATION "AS IS" 
  46.  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT 
  47.  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 
  48.  PARTICULAR PURPOSE. 
  49.  
  50.  Some states do not allow disclaimer of express or implied warranties in 
  51.  certain transactions; therefore, this statement may not apply to you. 
  52.  
  53.  This information could include technical inaccuracies or typographical errors. 
  54.  Changes are periodically made to the information herein; these changes will be 
  55.  incorporated in new editions of the information.  IBM may make improvements 
  56.  and/or changes in the product(s) and/or the program(s) described in this 
  57.  information at any time. 
  58.  
  59.  It is possible that this information may contain reference to, or information 
  60.  about, IBM products (machines and programs), programming, or services that are 
  61.  not announced in your country.  Such references or information must not be 
  62.  construed to mean that IBM intends to announce such IBM products, programming, 
  63.  or services in your country. 
  64.  
  65.  Requests for copies of this information and for technical information about 
  66.  IBM products should be made to your IBM Authorized Dealer or your IBM 
  67.  Marketing Representative. 
  68.  
  69.  (C) Copyright International Business Machines Corporation 1992.  All rights 
  70.  reserved. 
  71.  
  72.  Note to U.S. Government Users:  Documentation and programs related to 
  73.  restricted rights.  Use, duplication, or disclosure is subject to restrictions 
  74.  set forth in GSA ADP Schedule Contract with IBM Corp. 
  75.  
  76.  System Performance Monitor/2* is a SystemView* product. 
  77.  
  78.  
  79. ΓòÉΓòÉΓòÉ 2. SPM/2: Overview ΓòÉΓòÉΓòÉ
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  83.  
  84. The IBM System Performance Monitor/2* Version 2.0 (SPM/2) application is 
  85. designed to assist you in analyzing the performance of hardware and software in 
  86. an OS/2 2.0 environment. 
  87.  
  88. The Presentation Manager* interface allows you to customize data monitoring and 
  89. report generation.  The command line interface allows you an alternate access 
  90. to many of the same functions. 
  91.  
  92. The Directory Analyzer and THESEUS2* (a memory analyzer) are SPM/2 functions 
  93. that can help you narrow the focus on specific problems.  (See the THESEUS2 
  94. Reference for more information about the memory analyzer.) 
  95.  
  96. SPM/2 provides an application programming interface (API) that allows your 
  97. application to communicate with SPM/2 components and to register user metrics 
  98. that aid you in collecting data specific to your application. 
  99.  
  100. In addition to collecting performance data on a stand-alone system, SPM/2 
  101. supports data collection from remote systems.  Monitored systems can be 
  102. supported by either another copy of SPM/2 or the Distributed Feature, which 
  103. contains only those programs necessary to collect the data and send it to the 
  104. monitoring system. 
  105.  
  106. More 
  107.  
  108.  
  109. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  110.  
  111. Select one: 
  112.  
  113.  o Process overview 
  114.  o Program architecture 
  115.  o Control window 
  116.  o Monitoring a network 
  117.  o Monitoring data 
  118.  o Creating reports 
  119.  o Using the data 
  120.  o Sizing directories 
  121.  o Command line interface 
  122.  o Application programming interface 
  123.  o User metrics. 
  124.  o Messages. 
  125.  
  126.  
  127. ΓòÉΓòÉΓòÉ <hidden> SPM/2 Trademark ΓòÉΓòÉΓòÉ
  128.  
  129. System Performance Monitor/2 is a registered trademark of the IBM Corporation 
  130. in the United States and/or other countries. 
  131.  
  132.  
  133. ΓòÉΓòÉΓòÉ <hidden> THESEUS2 Trademark ΓòÉΓòÉΓòÉ
  134.  
  135. THESEUS2 is a trademark of the IBM Corporation in the United States and/or 
  136. other countries. 
  137.  
  138.  
  139. ΓòÉΓòÉΓòÉ <hidden> Presentation Manager Trademark ΓòÉΓòÉΓòÉ
  140.  
  141. Presentation Manager is a trademark of the IBM Corporation in the United States 
  142. and/or other countries. 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ <hidden> SPM/2 Overview: More ΓòÉΓòÉΓòÉ
  146.  
  147. SPM/2 can help you manage computer resources to achieve greater efficiency from 
  148. your system. 
  149.  
  150. SPM/2: 
  151.  
  152.  o Collects performance data about the OS/2 system and the applications running 
  153.    on it. 
  154.  o Displays performance data in graphs (in both real-time and playback modes). 
  155.  o Creates performance reports to print or to use in spreadsheets or database 
  156.    programs. 
  157.  o Calculates directory, subdirectory, and file sizes. 
  158.  o Analyzes memory at several levels, including working set. 
  159.  o Allows you to retrieve performance data directly for your applications. 
  160.  
  161.  
  162. ΓòÉΓòÉΓòÉ 2.1. SPM/2 Process: Overview ΓòÉΓòÉΓòÉ
  163.  
  164. The following steps describe how to record and graph performance data from your 
  165. LOCAL system.  SPM/2 2.0 also supports graphing and recording of data from 
  166. remote systems attached via LAN Server and LAN Requester. 
  167.  
  168.  o Set Up Local Monitoring 
  169.  
  170.      1. Start the SPM/2 control window, by double-clicking on the SPM/2 icon in 
  171.         the SPM/2 folder.  The SPM/2 control window can also be started by 
  172.         typing SPM from the OS/2 command line. 
  173.  
  174.      2. Create a description for a monitor session (.LOG) file from the action 
  175.         bar of the SPM/2 control window. 
  176.  
  177.        - Specify the LOCAL workstation to be included in the monitor session. 
  178.  
  179.        - Define the resources you want to monitor and how often you want data 
  180.          collected. 
  181.  
  182.      3. Save the monitor session (.LOG) file from the action bar of the Monitor 
  183.         Session Description window. 
  184.  
  185.  o Use the SPM/2 Control Window to Graph and Record Data 
  186.  
  187.      1. Start the monitor session from the action bar of the SPM/2 control 
  188.         window and perform one the following tasks: 
  189.  
  190.        Note:  The NETBIOS Listener, which starts the Data Collection Facility 
  191.               when requested, must be started to use this function. Normally, 
  192.               the NETBIOS Listener is started by the CONFIG.SYS file when you 
  193.               start your system.  However, if you have stopped the NETBIOS 
  194.               Listener, you must restart it.  (See the SPMNBL command for more 
  195.               information.) 
  196.  
  197.        - Record the data in the monitor session (.LOG) file. 
  198.  
  199.        - Graph the data in real time if desired. 
  200.  
  201.        Notes: 
  202.  
  203.            a. After you have recorded your data in a monitor session, you can 
  204.               graph this prerecorded data using the playback function from the 
  205.               SPM/2 Graph window. 
  206.  
  207.            b. If you are an application programmer, you can perform the 
  208.               following tasks for your own application: 
  209.  
  210.              - Embed user metrics to collect data specific to your application. 
  211.  
  212.              - Use the API to access monitor sessions and retrieve data. 
  213.  
  214.      2. Stop a recording or graphing session from the action bar of the SPM/2 
  215.         control window. 
  216.  
  217.  o Generate Reports 
  218.  
  219.      1. Create a report description (.RDF) file from the action bar of the 
  220.         SPM/2 control window. 
  221.  
  222.      2. Run the report, creating a summary report (.SUM) file, tabular report 
  223.         (.TAB) file, dump report (.DMP) file, or a delimited report (.DEL) file 
  224.         from the action bar of the SPM/2 control window. 
  225.  
  226.      3. Print the summary, tabular, or dump report from the action bar of the 
  227.         SPM/2 control window. 
  228.  
  229.        Note:  You can import delimited tabular reports directly into some 
  230.               spreadsheet applications. 
  231.  
  232.  o Use THESEUS2 to Collect More Detailed Information 
  233.  
  234.      1. From the SPM/2 folder, double-click on the THESEUS2 icon and select OK 
  235.         to display the THESEUS2 Process Hierarchy window. A hierarchical 
  236.         display of all the processes currently running on the system is 
  237.         displayed on the THESEUS2 Process Hierarchy window. 
  238.  
  239.        Note:  To adjust font size, from the action bar of the THESEUS2 Process 
  240.               Hierarchy window, select Misc to display the Misc pull-down. 
  241.  
  242.      2. Double-click on any process listed in the THESEUS2 Process Hierarchy 
  243.         window to display a listing of all the threads that are running in that 
  244.         process. (For example, when you double-click on PMSHL32, the General 
  245.         Information about PMSHL32 window is displayed.) 
  246.  
  247.        Note:  Some of the information in the general information about a 
  248.               process window is displayed in black type and some of it is 
  249.               displayed in blue type.  Double-click on the blue type to display 
  250.               more information. 
  251.  
  252.      3. The working set is a calculation of the amount of memory that is 
  253.         touched during a scenario of interest.  To obtain instructions for 
  254.         calculating the working set: 
  255.  
  256.         a. From the action bar of the THESEUS2 window, select Help, and Help 
  257.            Index to display the Help Index pull-down. 
  258.  
  259.         b. From the Help Index pull-down, scroll down to Working Set and 
  260.            double-click on one of the following topics: 
  261.  
  262.           - Of a single process (how to) 
  263.           - Of multiple processes (how to) 
  264.           - Of the entire system (how to) 
  265.  
  266.        Notes: 
  267.  
  268.            a. You can select other THESEUS2 functions from the action bar of 
  269.               the THESEUS2 Process Hierarchy window or select topics of 
  270.               interest from the Help Index pull-down. 
  271.  
  272.            b. For more information, see the "How to Do Things" section of the 
  273.               "How to Use THESEUS2" chapter in the THESEUS2 Reference.) 
  274.  
  275.  o Setup Requirements for Remote Monitoring 
  276.  
  277.    See the Requirements for Monitoring a Network to make sure that both the 
  278.    monitoring and monitored systems have the correct IBM products installed. 
  279.  
  280.  
  281. ΓòÉΓòÉΓòÉ 2.2. Program Architecture ΓòÉΓòÉΓòÉ
  282.  
  283.  
  284. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  285.  
  286. When you start a monitor session (.LOG) file, SPM/2 starts a program called 
  287. SPMILOG, which controls the monitor session.  There is one instance of the 
  288. SPMILOG program for each active monitor session (.LOG) file. 
  289.  
  290. The SPMILOG program sends a request to the NETBIOS Listener (SPMNBL) to start 
  291. the Data Collection Facility. 
  292.  
  293.  Notes: 
  294.  
  295.      1. The SPM/2 installation program places a RUN statement in the CONFIG.SYS 
  296.         file to start the NETBIOS Listener (SPMNBL).  Therefore, SPMNBL will 
  297.         normally be started automatically when you start your system, and it 
  298.         will run in the background. 
  299.  
  300.         However, if the Listener has been stopped, it must be restarted using 
  301.         the SPMNBL /LISTEN command.  When you start the Listener with this 
  302.         command, it runs in a window and you can see it respond to monitor 
  303.         session start and stop requests. 
  304.  
  305.      2. If you are monitoring only a local machine, you do not have to have 
  306.         NETBIOS installed in order to use the Listener.  If NETBIOS is 
  307.         installed, the Listener uses it.  However, if NETBIOS is not installed, 
  308.         the Listener uses local named pipes to perform its function. 
  309.  
  310.      3. Once you start a recording or graphing session, data continues to be 
  311.         collected until you stop the recording or graphing session. Closing the 
  312.         SPM/2 control window, SPM/2 Graph, or SPM/2 folder does not stop data 
  313.         collection. 
  314.  
  315.  The Data Collection Facility sends performance data back to the SPMILOG 
  316.  program, where it is placed in memory for real-time graphing or is recorded in 
  317.  the monitor session (.LOG) file for later retrieval. 
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  321.  
  322. Select one: 
  323.  
  324.  o Component relationships 
  325.  o Accessing real-time and historical data 
  326.  o Performance metrics 
  327.  o Monitor session (.LOG) file structure. 
  328.  
  329.  
  330. ΓòÉΓòÉΓòÉ 2.2.1. Component Relationships ΓòÉΓòÉΓòÉ
  331.  
  332.  
  333. ΓòÉΓòÉΓòÉ 2.2.2. Accessing Real-Time and Historical Data ΓòÉΓòÉΓòÉ
  334.  
  335.  
  336. ΓòÉΓòÉΓòÉ 2.2.3. Performance Metrics ΓòÉΓòÉΓòÉ
  337.  
  338. The performance metrics architected into the OS/2 2.0 operating system are 
  339. called counters and timers.  Performance metrics are control blocks that count 
  340. the occurrences of various events and activities.  There are the following 
  341. general types: 
  342.  
  343.  Event counter         Increments by 1 for each occurrence of an event (for 
  344.                        example, number of disk read operations). 
  345.  
  346.  Timer                 Counts ticks of the system clock (one tick is equivalent 
  347.                        to 838 nanoseconds on a Personal System/2 (PS/2) 
  348.                        computer).  When combined with other counters, timers 
  349.                        are used to measure how long an event takes. 
  350.  
  351.  Bulk counter          Increments by quantities (for example, number of bytes 
  352.                        read since data collection began). 
  353.  
  354.  State counter         Indicates the current state of a resource.  Its value 
  355.                        increases or decreases one at a time (for example, the 
  356.                        number of pages in memory). 
  357.  
  358.  Bulk state counter    A combination of the bulk counter and state counter 
  359.                        concepts. Indicates the current state of a resource. 
  360.                        Its value increases or decreases by quantities. 
  361.  
  362.  Queue length          Consists of two parts: 
  363.  
  364.     o Queue count.  This is 4-byte state counter that contains the current 
  365.       number of elements in the queue at the time the snapshot of the hook 
  366.       values was taken.  This is just an instantaneous value. 
  367.  
  368.     o Queue time.  This is an 8-byte timer that contains a value that is not 
  369.       purely time, but rather a composite of the amount of time each element 
  370.       has been in the queue. 
  371.  
  372.  The Data Collection Facility takes a sample of these counters and timers at an 
  373.  interval specified by the collection frequency parameter in the monitor 
  374.  session (.LOG) file.  As each sample is taken, the difference, or delta, 
  375.  between the last value and the current value is computed, and the data is 
  376.  passed back to the SPMILOG program.  The SPMILOG program, upon a request 
  377.  through the API, passes the data to: 
  378.  
  379.  Graphing Facility     Displays the data in the SPM/2 Graph. 
  380.  
  381.  Recording Facility    Stores data in the monitor session (.LOG) file in 
  382.                        accordance with the specified recording frequency.  For 
  383.                        example, if the multiple for the recording frequency is 
  384.                        5, every 5 samples collected by the Data Collection 
  385.                        Facility are averaged (or summarized) and stored as 1 
  386.                        record in the file. 
  387.  
  388.  User application      Uses data as desired. 
  389.  
  390.  
  391. ΓòÉΓòÉΓòÉ 2.2.4. Monitor Session File Structure ΓòÉΓòÉΓòÉ
  392.  
  393. The monitor session (.LOG) file contains both the description of the monitor 
  394. session (for example, the workstations and resources selected for monitoring) 
  395. and any performance data recorded while the monitor session is active. 
  396.  
  397. When you use the Monitor Setup options New..., Open..., and Copy..., only the 
  398. description portion of the .LOG file (the part that instructs the SPMILOG 
  399. program what data to collect) is accessed. 
  400.  
  401. The first time you start recording for a particular monitor session 
  402. description, the collected data is appended to the end of the same .LOG file. 
  403. In subsequent recording sessions you have the option to replace that data or to 
  404. append the new data to the end of the file.  See Note. 
  405.  
  406. The report description (contained in an .RDF file) tells SPM/2 what data to 
  407. pull from every monitor session (.LOG) file specified.  When you select Run 
  408. report, SPM/2 pulls the information for the report from the data portion of 
  409. each .LOG file. 
  410.  
  411.  
  412. ΓòÉΓòÉΓòÉ <hidden> Large .LOG Files ΓòÉΓòÉΓòÉ
  413.  
  414. Because data may be appended to monitor session (.LOG) files every time 
  415. recording is started, those files can eventually get large.  You may select the 
  416. Replace option to overwrite the old data. 
  417.  
  418. If you want to save your old data, but have your monitor session description in 
  419. a smaller file, you can select Monitor, Set up ==>, and Copy to copy your setup 
  420. information to a new file name.  The new file contains only the description, 
  421. and the data in the old file will still be available to generate reports. 
  422.  
  423.  
  424. ΓòÉΓòÉΓòÉ 2.3. The SPM/2 Control Window: Overview ΓòÉΓòÉΓòÉ
  425.  
  426.  
  427. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  428.  
  429. The SPM/2 control window provides access to most of the SPM/2 functions through 
  430. the following action bar options: 
  431.  
  432.  View      Select View to customize how the information is displayed in the 
  433.            control window and to specify what level of messages are displayed 
  434.            in the pop-up panels.  Select from the topic list for more 
  435.            information about the View options. 
  436.  
  437.  Monitor   Select Monitor to access all the monitor session functions:  setup, 
  438.            graphing, and recording.  These functions are covered in Monitoring 
  439.            Performance Data. 
  440.  
  441.  Report    Select Report to access all the report functions:  setup, running, 
  442.            and printing.  These functions are covered in Creating Performance 
  443.            Reports. 
  444.  
  445.  Help      Provides context-sensitive information. 
  446.  
  447.  Note:  Once you start a recording or graphing session, data continues to be 
  448.         collected until you stop the recording or graphing session. Closing the 
  449.         SPM/2 control window, SPM/2 Graph, or SPM/2 folder does not stop data 
  450.         collection. 
  451.  
  452.  
  453. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  454.  
  455. Select one: 
  456.  
  457.  o Sort by 
  458.  o Status by 
  459.  o Full path 
  460.  o Logged messages. 
  461.  
  462.  
  463. ΓòÉΓòÉΓòÉ 2.3.1. Sorting by Monitor Session or Workstation: Procedure ΓòÉΓòÉΓòÉ
  464.  
  465.   1. From the SPM/2 control window action bar, select View to display the View 
  466.      pull-down. 
  467.  
  468.   2. Select Sort by -> and then select either: 
  469.  
  470.     o Monitor session 
  471.     o Workstation. 
  472.  
  473.  
  474. ΓòÉΓòÉΓòÉ <hidden> Sorting by Monitor Session ΓòÉΓòÉΓòÉ
  475.  
  476. Select Monitor session to alphabetically sort the monitor sessions active on 
  477. the local system.  Highlighting a monitor session displays the workstations 
  478. being monitored by that session in the Workstations: list box.  This option is 
  479. the default. 
  480.  
  481.  
  482. ΓòÉΓòÉΓòÉ <hidden> Sorting by Workstation ΓòÉΓòÉΓòÉ
  483.  
  484. Select Workstation to alphabetically sort the workstations participating in all 
  485. monitor sessions active on the local system. Highlighting a workstation 
  486. displays the session monitoring that workstation in the Sessions: list box. 
  487.  
  488.  
  489. ΓòÉΓòÉΓòÉ 2.3.2. Status by Monitor Session or Workstation: Procedure ΓòÉΓòÉΓòÉ
  490.  
  491.   1. From the SPM/2 control window action bar, select View to display the View 
  492.      pull-down. 
  493.  
  494.   2. Select Status by -> and then select either: 
  495.  
  496.     o Monitor session 
  497.     o Workstation. 
  498.  
  499.  
  500. ΓòÉΓòÉΓòÉ <hidden> Status by Monitor Session ΓòÉΓòÉΓòÉ
  501.  
  502. Select Monitor session to have the Status: list box display the status of the 
  503. monitor sessions listed in the Sessions: list box.  This option is the default. 
  504.  
  505. Possible status types include: 
  506.  
  507.  o Pending - shown when not all workstations are running.  This status type may 
  508.    indicate a problem.  Switch to status by workstation to show which 
  509.    workstations are not running. 
  510.  o Graphing 
  511.  o Recording 
  512.  o Graph/Record. 
  513.  
  514.  
  515. ΓòÉΓòÉΓòÉ <hidden> Status by Workstation ΓòÉΓòÉΓòÉ
  516.  
  517. Select Workstation to have the Status: list box display the status of the 
  518. workstations listed in the Workstations: list box. 
  519.  
  520. Possible status types include: 
  521.  
  522.  o On-line 
  523.  o Off-line. 
  524.  
  525.  
  526. ΓòÉΓòÉΓòÉ 2.3.3. Displaying Full Path: Procedure ΓòÉΓòÉΓòÉ
  527.  
  528.   1. From the SPM/2 control window action bar, select View to display the View 
  529.      pull-down. 
  530.  
  531.   2. Select Full path to display the full path of the monitor session (.LOG) 
  532.      files listed in the Sessions: list box. 
  533.  
  534.      Deselect Full path to display only the monitor session (.LOG) file names 
  535.      in the Sessions: list box. 
  536.  
  537.  
  538. ΓòÉΓòÉΓòÉ 2.3.4. Logged Messages: Overview ΓòÉΓòÉΓòÉ
  539.  
  540. All SPM/2 errors and messages are recorded in the SPMSNAP.ERR file.  The level 
  541. of messages logged to the SPMSNAP.ERR file is determined by the SET SPMSNAP 
  542. statement in the CONFIG.SYS file. 
  543.  
  544. You can use the SPMSNAPP command to format the data in the SPMSNAP.ERR file and 
  545. either view it on the screen or redirect it to a file. 
  546.  
  547. You can also view logged messages in pop-up panels.  Only logged messages can 
  548. be displayed.  For example, if the SET SPMSNAP statement in the CONFIG.SYS file 
  549. specifies that only error messages will be logged, then warning messages will 
  550. not be available for display in a pop-up panel. 
  551.  
  552. Of the messages being logged, you can select the level of messages for display 
  553. in pop-up panels through the View selection on the SPM/2 control window action 
  554. bar. 
  555.  
  556.  
  557. ΓòÉΓòÉΓòÉ 2.3.4.1. Displaying Messages in Windows: Procedure ΓòÉΓòÉΓòÉ
  558.  
  559. To change the level of logged messages displayed in pop-up panels: 
  560.  
  561.   1. From the SPM/2 control window action bar, select View to display the View 
  562.      pull-down. 
  563.  
  564.   2. Select Logged messages -> and then one of the following: 
  565.  
  566.     Warning        Displays warning and error messages. 
  567.  
  568.     Error          Displays only error messages.  This is the default. 
  569.  
  570.  Notes: 
  571.  
  572.      1. If you deselect both options, only fatal (nonrecoverable) errors are 
  573.         displayed on the screen. 
  574.      2. This function is dependent on the logged message level specified in the 
  575.         SET SPMSNAP statement in the CONFIG.SYS file. 
  576.      3. If the SPM/2 control window is not active, messages are still logged, 
  577.         but are not displayed, with the exception of fatal (nonrecoverable) 
  578.         errors, which are always displayed.  Fatal errors are displayed in a 
  579.         full-screen format if the SPM/2 control window is not active. 
  580.  
  581.  
  582. ΓòÉΓòÉΓòÉ 2.3.4.2. SET SPMSNAP Statement ΓòÉΓòÉΓòÉ
  583.  
  584. When you install SPM/2, the following statement is added to the CONFIG.SYS 
  585. file: 
  586.  
  587. SET SPMSNAP=E,D:\SPM2V2\SPMSNAP.ERR
  588. where E specifies that only error messages be recorded, and D:\SPM2V2\ 
  589. specifies that the SPMSNAP.ERR file be located in the SPM2V2 directory of the 
  590. D: drive. 
  591.  
  592.  Note:  The actual drive and path specified in the SET SPMSNAP statement is the 
  593.         location of the SPM/2 product as specified when installing. 
  594.  
  595.  To change the location of the SPMSNAP.ERR file, replace the specified drive 
  596.  and directory with a new path. 
  597.  
  598.  To change the level of messages being recorded, instead of E, specify either W 
  599.  (for warning and error messages) or I (for information, warning, and error 
  600.  messages). 
  601.  
  602.   CAUTION:
  603.  When the message level is set to I, the number of messages sent to the 
  604.  SPMSNAP.ERR file can be quite large.  Before erasing the SPMSNAP.ERR file, 
  605.  shut down all SPM/2 processes. 
  606.  
  607.  
  608. ΓòÉΓòÉΓòÉ 2.4. Monitoring a Network: Overview ΓòÉΓòÉΓòÉ
  609.  
  610.  
  611. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  612.  
  613. In addition to collecting performance data on a stand-alone system, SPM/2 
  614. supports data collection from remote systems using a remote named-pipe 
  615. interface. 
  616.  
  617. Workstations that are only monitored remotely only need the Distributed Feature 
  618. installed on them rather than the entire SPM/2 product.  The Distributed 
  619. Feature consists of just the programs needed to collect data and send it to the 
  620. monitoring system. 
  621.  
  622. Remote data collection minimizes overhead on the system being monitored by 
  623. moving the SPM/2 recording and graphing functions to a separate system.  Remote 
  624. monitoring also allows you to monitor many workstations from one location. 
  625.  
  626. Remote data collection can also help you tune the performance of LAN-based 
  627. applications, because a monitoring system can collect data from multiple 
  628. servers or requesters in a LAN environment. 
  629.  
  630.  
  631. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  632.  
  633. Select one: 
  634.  
  635.  o Network monitoring requirements 
  636.  o Illustration of a monitored network 
  637.  o Component relationships. 
  638.  
  639.  
  640. ΓòÉΓòÉΓòÉ 2.4.1. Requirements for Monitoring a Network ΓòÉΓòÉΓòÉ
  641.  
  642.  
  643. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  644.  
  645. SPM/2 remote data collection requires that IBM LAN Server 2.0 Entry, LAN Server 
  646. 3.0, or LAN Requester 3.0 with Peer Services be installed on the monitoring 
  647. system, and that either IBM LAN Server 2.0 Entry (or 3.0) or the IBM LAN 
  648. Requester 2.0 (or 3.0) be installed on the monitored OS/2 2.0 system.  Either 
  649. the SPM/2 Distributed Feature or an additional copy of the entire SPM/2 
  650. application is required for each monitored system. In addition, OS/2 2.0 with 
  651. the Service Pak1 (or Service Pak2), or OS/2 2.1 must be installed on both the 
  652. monitoring and the monitored systems. 
  653.  
  654. In order to monitor a remote machine, the monitoring system must grant remote 
  655. named pipe access to the monitored systems. 
  656.  
  657. If the monitoring system is a: 
  658.  
  659.  o LAN Server - Log both the monitoring and monitored systems on to a domain to 
  660.    get remote named pipe access. 
  661.  
  662.    To monitor a system across domains you must grant the GUESTS group access to 
  663.    named pipes.  For more information about GUEST group access, see 
  664.    Cross-domain monitoring. 
  665.  
  666.  o Peer Server, with: 
  667.  
  668.     - User Level Security 
  669.  
  670.        o Access granted to only specific IDs - Log the monitoring system on to 
  671.          a domain to get remote named pipe access.  The monitored system will 
  672.          have remote named pipe access with no further action required. 
  673.        o Access granted to GUEST account - Both monitoring and monitored 
  674.          systems will have remote named pipe access with no further action 
  675.          required. 
  676.  
  677.     - Share Level Security - Both monitoring and monitored systems will have 
  678.       remote named pipe access with no further action required. 
  679.  
  680.    Notice: If you want to log on to a domain, you should do it before starting 
  681.    SPM/2. If SPM/2 is already started, stop SPM/2 processes before trying to 
  682.    log on. If SPM/2 is started and is collecting remote data, you will not be 
  683.    able to log on to a domain. 
  684.  
  685.  The NETBIOS Listener (SPMNBL.EXE), which starts the Data Collection Facility 
  686.  when requested, must be started on each of the workstations to be monitored. 
  687.  Normally, the NETBIOS Listener is started by the CONFIG.SYS file when you 
  688.  start your system.  However, if you have stopped the NETBIOS Listener, you 
  689.  must restart it.  (See the SPMNBL command for more information.) 
  690.  
  691.  Three NETBIOS resource parameters must be adjusted in the LAN Server 
  692.  configuration in order to accommodate SPM/2. First, check the 
  693.  /IBMCOM\LANTRAN.LOG file to determine the existing values for these NETBIOS 
  694.  resource parameters. Then, refer to NETBIOS Resource Parameters to determine 
  695.  how to adjust these resource parameters. 
  696.  
  697.  
  698. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  699.  
  700. Select one: 
  701.  
  702.  o Distributed Feature 
  703.  o Cross-domain monitoring 
  704.  o Peer Services 
  705.  o NETBIOS resource parameters 
  706.  o IBMLAN.INI parameters. 
  707.  
  708.  
  709. ΓòÉΓòÉΓòÉ <hidden> Named pipe access ΓòÉΓòÉΓòÉ
  710.  
  711. SPM/2 performs remote communications through named pipes provided by LAN 
  712. Server.  The SPM/2 monitoring system creates a named pipe then sends the name 
  713. of that pipe to the remote workstation to be monitored. 
  714.  
  715. The remote workstation must open a named pipe before monitoring can start. For 
  716. the open to be successful the user ID of the remote workstation must have 
  717. access to named pipes on the monitoring system. 
  718.  
  719.  
  720. ΓòÉΓòÉΓòÉ 2.4.1.1. Distributed Feature ΓòÉΓòÉΓòÉ
  721.  
  722. A Distributed Feature License must be acquired for each machine that uses the 
  723. Distributed Feature function. 
  724.  
  725. You may copy and distribute these features as described in the IBM Customer 
  726. Agreement or on the Proof of License for Distributed Feature. You may not 
  727. transfer a Distributed Feature to any third party. 
  728.  
  729. You must label, when recorded on portable media, copies of the Distributed 
  730. Feature and the documentation with: 
  731.  
  732.  o The Program number 
  733.  o The words:  Copyright International Business Machines Corporation 
  734.  o The copyright year as shown on the Program or documentation 
  735.  o The words:  Licensed Material - Property of IBM. IBM retains title to this 
  736.    copy and to any copy made from it. 
  737.  The label on any copied documentation must include the words: 
  738.  
  739.  Reprinted by permission of IBM. 
  740.  
  741.  You may not transfer possession of copies of the Distributed Feature or any 
  742.  associated documentation to any third party. 
  743.  
  744.  
  745. ΓòÉΓòÉΓòÉ 2.4.1.2. Cross-Domain Monitoring ΓòÉΓòÉΓòÉ
  746.  
  747. SPM/2 2.0 supports remote monitoring of workstations that are in other domains. 
  748. However, because SPM/2 2.0 performs its remote communication through named 
  749. pipes, any workstation in another domain that is to be monitored must have 
  750. access to the named pipe resource on the monitoring system.  (This is because 
  751. the SPM/2 monitoring system creates a named pipe, and then sends the name of 
  752. that pipe to the remote workstation it wants to monitor.  Before monitoring can 
  753. start, the remote workstation must open that named pipe.  For the open to be 
  754. successful, the user ID of the remote workstation must have access to named 
  755. pipes on the monitoring system.) To get access: 
  756.  
  757.  o If the monitoring system is a LAN Server and the user ID currently logged on 
  758.    at the cross-domain monitored system: 
  759.  
  760.     - is defined on the monitoring system (that is, it exists on the monitoring 
  761.       system with the exact same name and password), then access will be 
  762.       granted to the named pipe. 
  763.     - is not defined on the monitoring system (that is, no user ID of that name 
  764.       exists on the monitoring system), then that user ID is considered part of 
  765.       the GUESTS group.  To grant the GUESTS group access to named pipes, issue 
  766.       the following command: 
  767.  
  768.             NET ACCESS \PIPE /GRANT GUESTS:WRC
  769.  
  770.  o If the monitoring system is a Peer Server with user level security that 
  771.    grants access to only specific user IDs then you can monitor only those 
  772.    machines defined on your Peer Server, regardless of their logon domain. 
  773.  
  774.  o If the monitoring system is a Peer Server with user level security and a 
  775.    GUEST account with named pipe access or if the monitoring system is a Peer 
  776.    Server with share level security, you can monitor cross-domain with no 
  777.    additional actions other than that required to grant named pipe access as 
  778.    specified in Peer Services. 
  779.  
  780.  
  781. ΓòÉΓòÉΓòÉ 2.4.1.3. Peer Services ΓòÉΓòÉΓòÉ
  782.  
  783. Peer Services Installation and Configuration 
  784.  
  785. When installing a LAN Requester to be a Peer Server, you must select Advanced 
  786. installation and then specifically install Peer Services.  (The default LAN 
  787. Requester installation will not install Peer Services.) 
  788.  
  789. Peer Services can be set to either ON or OFF.  If you set it to OFF, then you 
  790. must always issue a NET START PEER command after issuing the NET START REQ 
  791. command. 
  792.  
  793. Access Authority and SPM/2 
  794.  
  795. When configuring Peer Services, you must define who can access resources on the 
  796. Peer Server.  The resource of concern for SPM/2 2.0 is the named pipe resource. 
  797.  
  798. When doing remote performance monitoring, the SPM/2 monitoring system creates a 
  799. named pipe, and then sends the name of that pipe to the remote workstation to 
  800. be monitored.  Before monitoring can start, the remote workstation must open 
  801. that named pipe.  For the open to be successful, the user ID of the remote 
  802. workstation must have access to named pipes on the monitoring system. 
  803.  
  804. There are two methods of setting up access to named pipes at the Peer Server, 
  805. depending on whether USER LEVEL security or SHARE LEVEL security was selected 
  806. during installation of the Peer Server. 
  807.  
  808.  o User Level Security 
  809.  
  810.    To set up user level access to named pipes on the Peer Server, log on 
  811.    locally as an administrator at the Peer Server and do one of the following: 
  812.  
  813.     - Grant named pipe access to only the remote workstations you want to 
  814.       monitor. 
  815.  
  816.       The user IDs of all the remotely monitored workstations must be added to 
  817.       the Peer Server.  Specifying a password is optional. If you specify a 
  818.       password for a user ID it should be the same as that of the user ID on 
  819.       the original remote workstation. 
  820.  
  821.        OR 
  822.  
  823.     - Create a GUEST account that gives named pipe access to any remote 
  824.       workstation you want to monitor. 
  825.  
  826.       To create the GUEST account, type: 
  827.  
  828.             NET USER GUEST /PRIVILEGE:GUEST /ADD /PASSWORDREQ:NO
  829.  
  830.       To grant named pipe access to the GUEST account, type: 
  831.  
  832.             NET ACCESS \PIPE /GRANT GUEST:WRC
  833.       The GUEST account stays in effect until revoked. 
  834.  
  835.  o Share level security 
  836.  
  837.    Under share level security, you must issue a command that lets the named 
  838.    pipe resource on the Peer Server be shared with anyone who accesses it.  To 
  839.    issue this command you must be logged on as an administrator at the Peer 
  840.    Server.  Below are the specific steps required (which you may want to put 
  841.    into STARTUP.CMD): 
  842.  
  843.      1. Start the requester service on the Peer Server: 
  844.  
  845.                 NET START REQ
  846.  
  847.      2. Logon as an administrator: 
  848.  
  849.                 LOGON userid /P:password
  850.  
  851.         where userid and password are the default administrator user ID (or 
  852.         could be any other user ID with administrator authority). 
  853.  
  854.      3. Share the named pipe (IPC$) resource: 
  855.  
  856.                 NET SHARE IPC$
  857.  
  858.         At this point you can logoff as an administrator, if you desire. 
  859.  
  860.  
  861. ΓòÉΓòÉΓòÉ 2.4.1.4. NETBIOS Resource Parameters ΓòÉΓòÉΓòÉ
  862.  
  863. Remote monitoring requires increased values for three NETBIOS resource 
  864. parameters (which can be found in LAN Adapter and Protocol Support).  The 
  865. amount the values should be increased depends on the number of SPMILOG sessions 
  866. you expect to run at any one time. 
  867.  
  868. For the first instance of SPMILOG, the minimum increases to the NETBIOS 
  869. Resource parameters follow: 
  870.  
  871.  Maximum Sessions         Add 7 to the default parameter value. 
  872.  Maximum Commands         Add 8 to the default parameter value. 
  873.  Maximum Names            Add 4 to the default parameter value. 
  874.  
  875.  For each additional SPMILOG instance, make the following changes: 
  876.  
  877.  Maximum Sessions         Add 2. 
  878.  Maximum Commands         Add 2. 
  879.  Maximum Names            Add 1. 
  880.  
  881.  For example, if you expect to run the maximum number of 26 SPMILOG programs at 
  882.  one time, you would specify the following values: 
  883.  
  884.  o Maximum Sessions 
  885.  
  886.       Default value + 7 + (25 x 2) = default + 57.
  887.  
  888.    where 7 is the increase for the first SPMILOG instance, 25 is the number of 
  889.    expected additional SPMILOG instances, and 2 is the increase for each 
  890.    additional SPMILOG instance. 
  891.  
  892.  o Maximum Commands 
  893.  
  894.       Default value + 8 for 1st session + (25 x 2) = default + 58.
  895.  
  896.  o Maximum Names 
  897.  
  898.       Default value + 4 for 1st session + (25 x 1) = default + 29.
  899.  
  900.  
  901. ΓòÉΓòÉΓòÉ 2.4.1.5. IBMLAN.INI Parameters ΓòÉΓòÉΓòÉ
  902.  
  903. IBMLAN.INI Parameters for Monitoring Workstations 
  904.  
  905. The following IBMLAN.INI parameters may need increasing on monitoring 
  906. workstations (both Servers and Peer Servers): 
  907.  
  908.  o maxconnections 
  909.  o maxusers 
  910.  o numreqbuf 
  911.  
  912.  The following text provides guidelines on how much to change these parameters 
  913.  to support remote SPM/2 2.0 monitoring.  However, please refer to the IBM OS/2 
  914.  LAN Server Network Administrator Reference, Volume 2: Performance Tuning for 
  915.  complete instructions on how much to increase each parameter, as well as for 
  916.  information on possible interdependencies between these and other IBMLAN.INI 
  917.  parameters. 
  918.  
  919.  o maxconnections 
  920.  
  921.    As stated in the LAN Network Administrator Reference, this parameter 
  922.    specifies the maximum number of connections that a server can handle.  Each 
  923.    remote workstation monitored by SPM/2 represents one user at the monitoring 
  924.    system.  Hence, this parameter should be set large enough to support the 
  925.    maximum number of remote workstations that will be monitored simultaneously 
  926.    by SPM/2. 
  927.  
  928.  o maxusers 
  929.  
  930.    The LAN Network Administrator Reference states that this parameter sets the 
  931.    maximum number of users that can be using the server simultaneously.  Each 
  932.    remote workstation monitored by SPM/2 requires one connection at the 
  933.    monitoring system.  Hence, this parameter should be set large enough to 
  934.    support the maximum number of remote workstations that will be monitored 
  935.    simultaneously by SPM/2. 
  936.  
  937.  o numreqbuf 
  938.  
  939.    The LAN Network Administrator Reference indicates that 2 additional buffers 
  940.    are required for each named pipe used.  Each instance of SPMILOG (that is, 
  941.    each active .LOG file) requires the following number of named pipes: 
  942.  
  943.     - 1 named pipe for each workstation being monitored from a .LOG file 
  944.     - 4 named pipes for other work that might be done during the monitoring 
  945.       session. 
  946.  
  947.    Since each named pipe requires 2 request buffers, the number of additional 
  948.    request buffers needed for each active .LOG file is: 
  949.  
  950.       (4 + number_of_workstations) * 2
  951.  
  952.  IBMLAN.INI Parameters for Monitored Workstations 
  953.  
  954.  When the monitoring system or the LAN network gets busy, it may take a while 
  955.  for the monitoring system to respond to requests coming from a monitored 
  956.  system.  The sesstimeout parameter in IBMLAN.INI specifies how long a 
  957.  requester will wait for a response from a server before disconnecting a 
  958.  session. 
  959.  
  960.  If server or network workload is extremely busy, or if you are going across 
  961.  bridges that could slow transmission time, it is suggested that you increase 
  962.  the sesstimeout parameter on the monitored systems.  The default sesstimeout 
  963.  value is 45 seconds.  If there are problems with the monitored system dropping 
  964.  the connection, increase it to 90 seconds. 
  965.  
  966.  
  967. ΓòÉΓòÉΓòÉ <hidden> Typical Monitored Network ΓòÉΓòÉΓòÉ
  968.  
  969.  
  970. ΓòÉΓòÉΓòÉ 3. Monitoring Performance Data: Overview ΓòÉΓòÉΓòÉ
  971.  
  972.  
  973. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  974.  
  975. To monitor and collect performance data using SPM/2, you must set up a 
  976. customized monitor session description that tells the system what data to 
  977. collect.  Then you can start recording, graphing, or both. 
  978.  
  979.  Note:  A requester or server must be logged onto the network before 
  980.         performance data on its operation can be collected remotely. 
  981.  
  982.  
  983. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  984.  
  985. Select one: 
  986.  
  987.  o Setting up a monitor session description 
  988.  o Recording the data 
  989.  o Displaying data in a graph. 
  990.  
  991.  
  992. ΓòÉΓòÉΓòÉ 3.1. Setting Up a Monitor Session Description: Overview ΓòÉΓòÉΓòÉ
  993.  
  994.  
  995. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  996.  
  997. Setting up customized monitor session descriptions allows the collection of 
  998. specific data, as needed.  Create as many monitor session descriptions as your 
  999. system requires. 
  1000.  
  1001. Specify the following aspects of data collection when creating or changing a 
  1002. monitor session description: 
  1003.  
  1004.  o A comment that identifies the description 
  1005.  o Workstations from which data is collected 
  1006.  o Resources about which data is collected 
  1007.  o Frequency of data collection and recording. 
  1008.  
  1009.  
  1010. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  1011.  
  1012. Select one: 
  1013.  
  1014.  o Creating a monitor session description 
  1015.  o Changing a monitor session description 
  1016.  o Copying a monitor session description. 
  1017.  
  1018.  
  1019. ΓòÉΓòÉΓòÉ 3.1.1. Creating a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
  1020.  
  1021. Use this option to define a new monitor session description. 
  1022.  
  1023.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1024.      Monitor pull-down. 
  1025.  
  1026.   2. Select Setup-> and then New... to display the Monitor Session Description 
  1027.      window, and complete the following: 
  1028.  
  1029.     o Comment 
  1030.     o Workstations to be included in monitor session. 
  1031.  
  1032.   3. Select Preferences from the action bar to define the following: 
  1033.  
  1034.     o Resources 
  1035.     o Time periods. 
  1036.  
  1037.   4. Select File from the action bar, and then select Save as... to display and 
  1038.      complete the Save As panel. 
  1039.  
  1040.   5. Select OK to return to the SPM/2 control window. 
  1041.  
  1042.  
  1043. ΓòÉΓòÉΓòÉ <hidden> Comment ΓòÉΓòÉΓòÉ
  1044.  
  1045. In the Comment: entry field, type up to 80 characters of information to 
  1046. identify the monitor session.  Optional. 
  1047.  
  1048. The comment is displayed on the SPM/2 control window when a session is 
  1049. highlighted. 
  1050.  
  1051.  
  1052. ΓòÉΓòÉΓòÉ 3.1.1.1. Specifying Workstations: Procedure ΓòÉΓòÉΓòÉ
  1053.  
  1054. To specify a workstation to be included in a monitor session: 
  1055.  
  1056. In the Monitor Session Description window, either: 
  1057.  
  1058.  o Type the name of a single workstation in the Workstation: entry field and 
  1059.    press Enter.  Entries in this field are reflected in the Selected: list box. 
  1060.    Repeat until all desired workstations are entered. 
  1061.  
  1062.    or 
  1063.  
  1064.  o Highlight entries in the Available: list box. Select Add >> to copy the 
  1065.    highlighted entries to the Selected: list box.  (Double-clicking 
  1066.    automatically selects the entry.) 
  1067.  
  1068.  Notes: 
  1069.  
  1070.      1. A workstation can be monitored by only one monitor session description 
  1071.         at a time. 
  1072.  
  1073.      2. If you want to monitor a local workstation on which NETBIOS is 
  1074.         installed, specify the computer name for the workstation, rather than 
  1075.         specifying LOCAL.  (The computer name for the local workstation can be 
  1076.         found in the COMPUTERNAME= statement in the IBMLAN.INI file.) 
  1077.  
  1078.      3. If you are working at a stand-alone workstation on which no LAN 
  1079.         services are installed, type LOCAL in the workstation entry field, or 
  1080.         select LOCAL from the Available: list box. 
  1081.  
  1082.  Related information: 
  1083.  
  1084.  o Query available workstations 
  1085.  o Delete an entry from the Available: list box 
  1086.  o Select all entries 
  1087.  o Remove an entry from the Selected: list box. 
  1088.  
  1089.  
  1090. ΓòÉΓòÉΓòÉ <hidden> Query ΓòÉΓòÉΓòÉ
  1091.  
  1092. Select Query to display a list of all workstations enabled for performance 
  1093. monitoring (that is, workstations on which the NETBIOS Listener (SPMNBL) is 
  1094. running.  This list is added to the Available: list box. 
  1095.  
  1096.  Note:  Query can be selected only if you have LAN Server or LAN Requester 
  1097.         installed.  Otherwise, the button is gray and cannot be selected. 
  1098.  
  1099.  
  1100. ΓòÉΓòÉΓòÉ <hidden> Delete ΓòÉΓòÉΓòÉ
  1101.  
  1102. To remove an entry from the Available: list box, highlight that entry and then 
  1103. select Delete. 
  1104.  
  1105.  
  1106. ΓòÉΓòÉΓòÉ <hidden> Select All Entries ΓòÉΓòÉΓòÉ
  1107.  
  1108. Use the Select all check box to highlight all entries in both list boxes.  Then 
  1109. you may select: 
  1110.  
  1111.  o Add >> to copy all the highlighted entries in the Available: list box to the 
  1112.    Selected: list box. 
  1113.  
  1114.    or 
  1115.  
  1116.  o << Remove to remove all the highlighted entries in the Selected: list box. 
  1117.  
  1118.  
  1119. ΓòÉΓòÉΓòÉ <hidden> Removing an Entry ΓòÉΓòÉΓòÉ
  1120.  
  1121. To remove an entry from the Selected: list box, highlight that entry and then 
  1122. select << Remove. 
  1123.  
  1124.  
  1125. ΓòÉΓòÉΓòÉ 3.1.1.2. Specifying Monitor Session Resources: Procedure ΓòÉΓòÉΓòÉ
  1126.  
  1127. To specify resources to be monitored: 
  1128.  
  1129.   1. From the Monitor Session Description window action bar, select Preferences 
  1130.      and then Resources... to display the Monitor Session Resources panel. 
  1131.  
  1132.   2. Highlight entries in the Available: list box, and then select Add >> to 
  1133.      copy those choices to the Selected: list box.  CPU, Disk 01, and Memory 
  1134.      appear as default selections. 
  1135.  
  1136.     Notes: 
  1137.  
  1138.         a. To have the data graphed, the Selected: list box must contain at 
  1139.            least one of the default selections. 
  1140.  
  1141.         b. The following resources must be selected if you want their 
  1142.            corresponding data lines displayed in the SPM/2 Graph: 
  1143.  
  1144.           CPU            CPU line in the CPU graph. 
  1145.  
  1146.           Disk           Disk lines in the Disk graph.  For example, if you 
  1147.                          select Disk 01, a data line is displayed for disk 1, 
  1148.                          but not for disks 2 through 24. 
  1149.  
  1150.           Memory         Pages-in, Pages-out, and Used Memory lines in the RAM 
  1151.                          graph. 
  1152.  
  1153.           Working set    Working Set and Fixed Memory lines in the RAM graph. 
  1154.                          (The default selections do not include Working Set 
  1155.                          because monitoring the working set causes a greater 
  1156.                          impact on system resources than monitoring the default 
  1157.                          selections.) 
  1158.  
  1159.         c. Before making a selection, you may want to expand the entries with 
  1160.            ellipses (...) in the Available: list box by checking the Expand 
  1161.            available resources box.  Selecting an unexpanded entry causes all 
  1162.            instances of that resource to be selected. For example, selecting 
  1163.            Disk... actually selects Disk 01 through Disk 24. 
  1164.  
  1165.         d. To collect data about the HPFS 386 cache, select the IBM LAN Server 
  1166.            3.0 resource.  This data can be displayed using the Dump report 
  1167.            format. 
  1168.  
  1169.   3. Select OK to save your selections and return to the Monitor Session 
  1170.      Description window. 
  1171.  
  1172.  Related information: 
  1173.  
  1174.  o Select all entries 
  1175.  o Remove an entry from the Selected: list box 
  1176.  o Collect application, process, and thread level data. 
  1177.  
  1178.  
  1179. ΓòÉΓòÉΓòÉ <hidden> Collect Application, Process, and Thread Level Data ΓòÉΓòÉΓòÉ
  1180.  
  1181. Select Collect application/process/thread level data to collect and record 
  1182. detailed data about system resources. If this box is not selected, data is 
  1183. collected for the workstation level only. 
  1184.  
  1185. CAUTION:
  1186. This option can be very intrusive on the system, in terms of CPU cycles, RAM 
  1187. used to hold performance metric control blocks, and the large amount of data 
  1188. stored in the collection files.  Use this option only when very detailed 
  1189. reports are required for intensive problem solving or for debugging 
  1190. applications. 
  1191.  
  1192.  
  1193. ΓòÉΓòÉΓòÉ 3.1.1.3. Specifying Collection and Recording Periods: Procedure ΓòÉΓòÉΓòÉ
  1194.  
  1195. To specify data collection and recording frequencies and working set period: 
  1196.  
  1197.   1. From the Monitor Session Description window action bar, select Preferences 
  1198.      and then Time Periods... to display the Monitor Session Time Periods 
  1199.      panel. 
  1200.  
  1201.   2. Specify the: 
  1202.  
  1203.     o Collection frequency 
  1204.     o Recording frequency multiplier 
  1205.     o Working set period. 
  1206.  
  1207.   3. Select OK to save your selections and return to the Monitor Session 
  1208.      Description window. 
  1209.  
  1210.  
  1211. ΓòÉΓòÉΓòÉ <hidden> Collection Frequency ΓòÉΓòÉΓòÉ
  1212.  
  1213. Specify how often the data should be collected in hours, minutes, and seconds. 
  1214. For example, to collect data every 2 hours, 15 minutes, 3 seconds, specify 
  1215. 02 15 03.  Either type this information in the respective fields or use the 
  1216. spin buttons to increase or decrease each field value.  The minimum collection 
  1217. frequency is once per second.  The default frequency is to collect data every 
  1218. 10 seconds. 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ <hidden> Recording Frequency Multiplier ΓòÉΓòÉΓòÉ
  1222.  
  1223. Use the Multiplier: field to specify the recording frequency as a multiple of 
  1224. the collection frequency.  Either type this information in the field or use the 
  1225. spin button to increase or decrease the field value.  The resultant recording 
  1226. frequency will be displayed in the Recording frequency: fields. 
  1227.  
  1228. A multiplier of 1 causes every sample collected by the Data Collection Facility 
  1229. to be recorded in the monitor session (.LOG) file.  Any other multiplier value 
  1230. specifies how many samples will be averaged together to become one record in 
  1231. the monitor session (.LOG) file. 
  1232.  
  1233. For example, a collection frequency of 00 00 05 and a multiplier of 05 result 
  1234. in a recording frequency of 00 00 25. 
  1235.  
  1236.  
  1237. ΓòÉΓòÉΓòÉ <hidden> Working Set Period ΓòÉΓòÉΓòÉ
  1238.  
  1239. The working set period specifies the time interval SPM/2 uses each time it 
  1240. calculates the RAM working set.  The time interval is bounded at the end by the 
  1241. current time, and at the beginning by the current time minus the working set 
  1242. period.  The default is 60 seconds. 
  1243.  
  1244. For more information about the working set, see Interpreting Graphs, RAM Graph: 
  1245. Description. 
  1246.  
  1247.  
  1248. ΓòÉΓòÉΓòÉ 3.1.1.4. Saving a New File: Procedure ΓòÉΓòÉΓòÉ
  1249.  
  1250. To save a new monitor session description or a new report description: 
  1251.  
  1252.   1. From the action bar of the Monitor Session Description window or Report 
  1253.      Description window, select File and then Save as... to display and 
  1254.      complete the Save As panel. 
  1255.  
  1256.   2. Complete the Filename field. 
  1257.  
  1258.     Note:  A file type of .LOG is supplied for a monitor session file, or a 
  1259.            file type of .RDF is supplied for a report description file. 
  1260.  
  1261.   3. Select OK to save the selection and return to the previous window. 
  1262.  
  1263.  Note:  If you select an existing file name, a pop-up window warns that the new 
  1264.         description will overwrite the old one of the same name.  Select 
  1265.         Overwrite to overwrite the old description with the new one. 
  1266.  
  1267.  
  1268. ΓòÉΓòÉΓòÉ <hidden> Specifying a File Name ΓòÉΓòÉΓòÉ
  1269.  
  1270. To specify a file name, either: 
  1271.  
  1272.  o Type the name of a single file in the Filename: entry field.  You may 
  1273.    precede the file name with the fully qualified path, or you may accept the 
  1274.    path displayed in the Drive: and Directory: boxes. 
  1275.  
  1276.    or 
  1277.  
  1278.  o Select a drive from the Drive: drop-down list.  A list of available 
  1279.    directories for that drive is displayed in the Directory: list box.  (To 
  1280.    display subdirectories, double-click on the highlighted directory item.) 
  1281.    Select a directory. A list of available monitor session (.LOG) files for 
  1282.    that directory is displayed in the File: list box.  Select the file you 
  1283.    want. 
  1284.  
  1285.  
  1286. ΓòÉΓòÉΓòÉ 3.1.2. Changing a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
  1287.  
  1288. Use this option to check the parameters of an existing monitor session 
  1289. description or make a change to the description. 
  1290.  
  1291.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1292.      Monitor pull-down. 
  1293.  
  1294.   2. Select Setup-> and then Open... to display the Open Monitor Description 
  1295.      panel, and complete the Filename field. 
  1296.  
  1297.   3. Select OK to display the Monitor Session Description window, and modify 
  1298.      the following: 
  1299.  
  1300.     o Comment 
  1301.     o Workstations to be included in monitor session. 
  1302.  
  1303.   4. Select Preferences from the action bar to redefine the following: 
  1304.  
  1305.     o Resources 
  1306.     o Time periods. 
  1307.  
  1308.   5. Select File from the action bar, and then select Save to save the revised 
  1309.      monitor session description under the existing fully qualified file name. 
  1310.  
  1311.     Note:  To save the changed monitor session description under a new name, 
  1312.            select File and then Save as... 
  1313.  
  1314.   6. Select OK to return to the SPM/2 control window. 
  1315.  
  1316.  
  1317. ΓòÉΓòÉΓòÉ 3.1.3. Copying a Monitor Session Description: Procedure ΓòÉΓòÉΓòÉ
  1318.  
  1319. Use this option to make a backup copy of a monitor session description or to 
  1320. use an existing description as a template for a new one. 
  1321.  
  1322.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1323.      Monitor pull-down. 
  1324.  
  1325.   2. Select Setup-> and then Copy... to display the Copy Monitor Description 
  1326.      panel, and complete the following: 
  1327.  
  1328.     o Source file 
  1329.     o Target file. 
  1330.  
  1331.   3. Select OK to save your selections and return to the SPM/2 control window. 
  1332.  
  1333.  Note:  The action bar Copy option copies only the monitor session description, 
  1334.         not the associated data in the .LOG file.  To copy the entire .LOG 
  1335.         file, use the OS/2 COPY command. 
  1336.  
  1337.  
  1338. ΓòÉΓòÉΓòÉ <hidden> Specifying a Source File ΓòÉΓòÉΓòÉ
  1339.  
  1340. To specify the file to be copied, either: 
  1341.  
  1342.  o Type the name of the file in the Source file: entry field.  You may precede 
  1343.    the file name with the fully qualified path, or you may accept the path 
  1344.    displayed in the Drive: and Directory: boxes. 
  1345.  
  1346.    or 
  1347.  
  1348.  o Select a drive from the Drive: box.  A list of available directories for 
  1349.    that drive is displayed in the Directory: list box.  (To display 
  1350.    subdirectories, double-click on the highlighted directory item.)  Select a 
  1351.    directory. A list of available source files for that directory is displayed 
  1352.    in the File: list box.  Select the source file you want to copy. 
  1353.  
  1354.  
  1355. ΓòÉΓòÉΓòÉ <hidden> Specifying a Target File ΓòÉΓòÉΓòÉ
  1356.  
  1357. To specify the target file, type the name of the file in the Target file: entry 
  1358. field.  You may precede the file name with the fully qualified path, or you may 
  1359. accept the path displayed in the Drive: and Directory: boxes. 
  1360.  
  1361.  
  1362. ΓòÉΓòÉΓòÉ 3.2. Recording Data: Overview ΓòÉΓòÉΓòÉ
  1363.  
  1364.  
  1365. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  1366.  
  1367. A monitor session must be specified before data is collected. 
  1368.  
  1369. If you do not yet have a monitor session description, see the procedures for 
  1370. Setting Up a Monitor Session Description. 
  1371.  
  1372. CAUTION:
  1373. You must stop data collection properly before you turn off or reboot a machine 
  1374. to avoid corrupting your monitor session (.LOG) file. Otherwise, when you 
  1375. attempt to modify the monitor session (.LOG) file, start a graphing or 
  1376. recording session, play back data on the SPM/2 Graph, or run a report, you will 
  1377. receive a pop-up message warning that the monitor session (.LOG) file has been 
  1378. corrupted. 
  1379.  
  1380.  
  1381. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  1382.  
  1383. Select one: 
  1384.  
  1385.  o Starting a recording session 
  1386.  o Stopping a recording session. 
  1387.  
  1388.  
  1389. ΓòÉΓòÉΓòÉ 3.2.1. Starting a Recording Session: Procedure ΓòÉΓòÉΓòÉ
  1390.  
  1391.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1392.      Monitor pull-down. 
  1393.  
  1394.     Note:  The NETBIOS Listener, which starts the Data Collection Facility when 
  1395.            requested, must be started to use this function.  Normally, the 
  1396.            NETBIOS Listener is started by the CONFIG.SYS file when you start 
  1397.            your system.  However, if you have stopped the NETBIOS Listener, you 
  1398.            must restart it.  (See the SPMNBL command for more information.) 
  1399.  
  1400.   2. Select Start -> and then Recording... to display the Start Recording 
  1401.      panel, and complete the Filename field. 
  1402.  
  1403.     Notes: 
  1404.  
  1405.         a. You can start more than one monitor session.  However, a workstation 
  1406.            cannot be monitored by more than one monitor session at the same 
  1407.            time. 
  1408.  
  1409.         b. To start recording and graphing simultaneously, select Monitor, 
  1410.            Start ->, and Both. 
  1411.  
  1412.   3. Select OK to start recording and return to the SPM/2 control window. 
  1413.  
  1414.  Note:  If one or more of the selected sessions already contains data in the 
  1415.         monitor session (.LOG) file from a previous recording session, the 
  1416.         Recording Options panel is displayed when you select OK. 
  1417.  
  1418.  
  1419. ΓòÉΓòÉΓòÉ <hidden> Specifying Monitor Session File Names ΓòÉΓòÉΓòÉ
  1420.  
  1421. To specify which monitor session files to use, either: 
  1422.  
  1423.  o Type the name of a single monitor session (.LOG) file in the entry field and 
  1424.    press Enter.  Entries in this field are reflected in the Selected: list box. 
  1425.    Repeat until all desired sessions are entered.  You may precede the file 
  1426.    name with the fully qualified path, or you may accept the path displayed in 
  1427.    the Drive: and Directory: boxes. 
  1428.  
  1429.    or 
  1430.  
  1431.  o Select a drive from the Drive: drop-down list.  A list of available 
  1432.    directories for that drive is displayed in the Directory: drop-down list. 
  1433.    (To display subdirectories, double-click on the highlighted directory item.) 
  1434.    Select a directory.  A list of available monitor session (.LOG) files for 
  1435.    that directory is displayed in the Available: list box.  Highlight entries 
  1436.    in the Available: list box.  Select Add >> to copy the highlighted entries 
  1437.    to the Selected: list box. 
  1438.  
  1439.  Related information: 
  1440.  
  1441.  o Select all entries 
  1442.  o Remove an entry from the Selected: list box. 
  1443.  
  1444.  
  1445. ΓòÉΓòÉΓòÉ 3.2.1.1. Specifying Recording Options: Procedure ΓòÉΓòÉΓòÉ
  1446.  
  1447. To specify whether recorded data is to be appended to or written over any 
  1448. existing data in the monitor session (.LOG) file: 
  1449.  
  1450.   1. In the Recording Options panel, select either: 
  1451.  
  1452.     o Append 
  1453.     o Replace. 
  1454.  
  1455.   2. Select OK to start recording and return to the SPM/2 control window. 
  1456.  
  1457.  
  1458. ΓòÉΓòÉΓòÉ <hidden> Append ΓòÉΓòÉΓòÉ
  1459.  
  1460. Select Append to append recorded data to any existing data in the monitor 
  1461. session (.LOG) file.  This option is the default. 
  1462.  
  1463.  
  1464. ΓòÉΓòÉΓòÉ <hidden> Replace ΓòÉΓòÉΓòÉ
  1465.  
  1466. Select Replace to substitute new recorded data for any existing data in the 
  1467. monitor session (.LOG) file. 
  1468.  
  1469.  
  1470. ΓòÉΓòÉΓòÉ 3.2.2. Stopping a Recording Session: Procedure ΓòÉΓòÉΓòÉ
  1471.  
  1472. Once you start a recording session, data continues to be collected until you 
  1473. stop the recording session. Closing the SPM/2 control window or SPM/2 folder 
  1474. does not stop data collection.  To stop a recording session: 
  1475.  
  1476.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1477.      Monitor pull-down. 
  1478.  
  1479.   2. Select Stop -> and then Recording... to display the Stop Recording panel. 
  1480.  
  1481.     Note:  To stop recording and graphing simultaneously, select Monitor, 
  1482.            Stop ->, and Both. 
  1483.  
  1484.   3. Specify the monitor sessions to be stopped by highlighting entries in the 
  1485.      Available: list box.  Then select Add >> to copy those choices to the 
  1486.      Selected: list box. 
  1487.  
  1488.     Note:  The Available: list box displays a list of all the active monitor 
  1489.            session (.LOG) files. 
  1490.  
  1491.   4. Select OK to stop recording and return to the SPM/2 control window. 
  1492.  
  1493.  Related information: 
  1494.  
  1495.  o Remove an entry 
  1496.  o Select all entries 
  1497.  o Display full path. 
  1498.  
  1499.  
  1500. ΓòÉΓòÉΓòÉ <hidden> Display Full Path ΓòÉΓòÉΓòÉ
  1501.  
  1502. Select Display full path to display the fully qualified path names of all 
  1503. entries in the Available: and Selected: list boxes. 
  1504.  
  1505.  
  1506. ΓòÉΓòÉΓòÉ 3.3. Displaying Data in a Graph: Overview ΓòÉΓòÉΓòÉ
  1507.  
  1508.  
  1509. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  1510.  
  1511. The SPM/2 Graph provides a visual monitor of critical system resources: CPU, 
  1512. disk, and memory.  Data is summarized in graphical form and continuously 
  1513. updated on the display. 
  1514.  
  1515. Once a monitor session description has been created (see Setting Up a Monitor 
  1516. Session Description,) a graphing session can be started. 
  1517.  
  1518. CAUTION:
  1519. You must stop data collection properly before you turn off or reboot a machine 
  1520. to avoid corrupting your monitor session (.LOG) file. Otherwise, when you 
  1521. attempt to modify the monitor session (.LOG) file, start a graphing or 
  1522. recording session, play back data on the SPM/2 Graph, or run a report, you will 
  1523. receive a pop-up message warning that the monitor session (.LOG) file has been 
  1524. corrupted. 
  1525.  
  1526.  
  1527. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  1528.  
  1529. Select one: 
  1530.  
  1531.  o Starting a graphing session 
  1532.  o Stopping a graphing session 
  1533.  o Graph options. 
  1534.  
  1535.  
  1536. ΓòÉΓòÉΓòÉ 3.3.1. Starting a Graphing Session: Procedure ΓòÉΓòÉΓòÉ
  1537.  
  1538.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1539.      Monitor pull-down. 
  1540.  
  1541.     Note:  The NETBIOS Listener, which starts the Data Collection Facility when 
  1542.            requested, must be started to use this function.  Normally, the 
  1543.            NETBIOS Listener is started by the CONFIG.SYS file when you start 
  1544.            your system.  However, if you have stopped the NETBIOS Listener, you 
  1545.            must restart it.  (See the SPMNBL command for more information.) 
  1546.  
  1547.   2. Select Start -> then Graphing -> to display the Start Graphing panel, and 
  1548.      complete the Filename field. 
  1549.  
  1550.     Notes: 
  1551.  
  1552.         a. You can start more than one monitor session.  However, a workstation 
  1553.            cannot be monitored by more than one monitor session at the same 
  1554.            time. 
  1555.  
  1556.         b. To start recording and graphing simultaneously, select Monitor, 
  1557.            Start ->, and Both. 
  1558.  
  1559.   3. Select OK to start graphing and return to the SPM/2 control window. 
  1560.  
  1561.  
  1562. ΓòÉΓòÉΓòÉ 3.3.2. Stopping a Graphing Session: Procedure ΓòÉΓòÉΓòÉ
  1563.  
  1564. Once you start a graphing session, data continues to be collected until you 
  1565. stop the graphing session. Closing the SPM/2 control window, SPM/2 Graph, or 
  1566. SPM/2 folder does not stop data collection.  To stop a graphing session: 
  1567.  
  1568.   1. From the SPM/2 control window action bar, select Monitor to display the 
  1569.      Monitor pull-down. 
  1570.  
  1571.   2. Select Stop -> and then Graphing to display the Stop Graphing panel. 
  1572.  
  1573.     Note:  To stop recording and graphing simultaneously, select Monitor, 
  1574.            Stop ->, and Both. 
  1575.  
  1576.   3. Specify the monitor sessions to be stopped by highlighting entries in the 
  1577.      Available: list box. Then select Add >> to copy those choices to the 
  1578.      Selected: list box. 
  1579.  
  1580.     Note:  The Available: list box displays a list of all the active monitor 
  1581.            session (.LOG) files. 
  1582.  
  1583.   4. Select OK to stop graphing and return to the SPM/2 control window. 
  1584.  
  1585.  Note:  All the individual resource graphs and the monitor session stop when 
  1586.         the SPM/2 Graph window is closed. 
  1587.  
  1588.  Related information: 
  1589.  
  1590.  o Remove an entry 
  1591.  o Select all entries 
  1592.  o Display full path. 
  1593.  
  1594.  
  1595. ΓòÉΓòÉΓòÉ 3.3.3. Graph Options: Overview ΓòÉΓòÉΓòÉ
  1596.  
  1597. While the SPM/2 Graph is active, the following options are available: 
  1598.  
  1599.  o Opening individual resource graphs 
  1600.  o Closing individual resource graphs 
  1601.  o Viewing another workstation 
  1602.  o Freezing graphs (allows data collection to continue, but no new points are 
  1603.    plotted) 
  1604.  o Cascading or tiling individual resource graphs 
  1605.  o Changing data collection and display frequencies 
  1606.  o Resetting (synchronizing) the resource graphs 
  1607.  o Selecting one of two graph refresh modes 
  1608.  o Modifying graph colors 
  1609.  o Displaying exact usage percentages using the cross hair 
  1610.  o Displaying graph legends 
  1611.  o Playing back previously recorded data. 
  1612.  
  1613.  
  1614. ΓòÉΓòÉΓòÉ 3.3.3.1. Opening a Graph: Procedure ΓòÉΓòÉΓòÉ
  1615.  
  1616.   1. In the SPM/2 Graph window, select Display from the action bar to display 
  1617.      the Display pull-down. 
  1618.  
  1619.      A check mark next to the appropriate Display menu item indicates an open 
  1620.      resource graph.  Possible choices are CPU, Disk, and RAM. The default is 
  1621.      to open all three graphs. 
  1622.  
  1623.   2. Select the resource graph you want to open. 
  1624.  
  1625.  
  1626. ΓòÉΓòÉΓòÉ 3.3.3.2. Closing a Graph: Procedure ΓòÉΓòÉΓòÉ
  1627.  
  1628. Click on the System Menu icon for the resource graph to be closed and select 
  1629. Close. 
  1630.  
  1631.  
  1632. ΓòÉΓòÉΓòÉ 3.3.3.3. Viewing Another Workstation: Procedure ΓòÉΓòÉΓòÉ
  1633.  
  1634. The status bar of the SPM/2 Graph displays the name of the active monitor 
  1635. session (.LOG) file and the local or remote workstation currently displayed in 
  1636. the resource graphs. 
  1637.  
  1638. To view another workstation being monitored by the same monitor session: 
  1639.  
  1640.   1. In the SPM/2 Graph window, select  from the function control bar to 
  1641.      display a list of workstations configured for the active monitor session. 
  1642.  
  1643.     Note:  All configured workstations are displayed in the list, whether or 
  1644.            not they are active.  If you select an inactive workstation to be 
  1645.            graphed, an empty graph is displayed. 
  1646.  
  1647.   2. Select the workstation you want to view. 
  1648.  
  1649.   3. Select OK. 
  1650.  
  1651.  
  1652. ΓòÉΓòÉΓòÉ 3.3.3.4. Freezing Graphs: Procedure ΓòÉΓòÉΓòÉ
  1653.  
  1654.   1. In the SPM/2 Graph window, select Display from the action bar to display 
  1655.      the Display pull-down. 
  1656.  
  1657.   2. Select Freeze graphs. The resource graphs are frozen. 
  1658.  
  1659.     Note:  When Freeze graphs is deselected, the first new point plotted 
  1660.            reflects the most recent time period. 
  1661.  
  1662.  
  1663. ΓòÉΓòÉΓòÉ 3.3.3.5. Cascading or Tiling Graphs: Procedure ΓòÉΓòÉΓòÉ
  1664.  
  1665.   1. In the SPM/2 Graph window, select Window from the action bar to display 
  1666.      the Window pull-down. 
  1667.  
  1668.   2. Select one of the following: 
  1669.  
  1670.     o Cascade 
  1671.     o Tile horizontal 
  1672.     o Tile vertical. 
  1673.  
  1674.  
  1675. ΓòÉΓòÉΓòÉ <hidden> Cascade ΓòÉΓòÉΓòÉ
  1676.  
  1677. Select Cascade to arrange the resource graphs in a stair-step fashion within 
  1678. the SPM/2 Graph window. 
  1679.  
  1680.  
  1681. ΓòÉΓòÉΓòÉ <hidden> Tile Horizontal ΓòÉΓòÉΓòÉ
  1682.  
  1683. Select Tile horizontal to arrange the resource graphs side-by-side within the 
  1684. SPM/2 Graph window. 
  1685.  
  1686.  
  1687. ΓòÉΓòÉΓòÉ <hidden> Tile Vertical ΓòÉΓòÉΓòÉ
  1688.  
  1689. Select Tile vertical to arrange the resource graphs one above the other within 
  1690. the SPM/2 Graph window.  This option is the default. 
  1691.  
  1692.  
  1693. ΓòÉΓòÉΓòÉ 3.3.3.6. Changing Graphing Frequencies: Procedure ΓòÉΓòÉΓòÉ
  1694.  
  1695.   1. In the SPM/2 Graph window, select Options from the action bar to display 
  1696.      the Options pull-down. 
  1697.  
  1698.   2. Select Time periods to display the Time Periods dialog box. 
  1699.  
  1700.   3. Type the desired intervals in the following fields: 
  1701.  
  1702.     o Viewing period 
  1703.     o Vertical gridlines every 
  1704.  
  1705.   4. Select OK to implement the new interval values and return to the SPM/2 
  1706.      Graph window. 
  1707.  
  1708.  
  1709. ΓòÉΓòÉΓòÉ <hidden> Viewing Period ΓòÉΓòÉΓòÉ
  1710.  
  1711. The viewing period specifies the amount of time represented in a resource 
  1712. window.  For example, 600 seconds implies that 10 minutes of data are 
  1713. represented from the left to the right of the window. This value must be a 
  1714. multiple of the collection frequency. The default is 500 seconds. 
  1715.  
  1716.  Note:  The viewing period value divided by the collection frequency value must 
  1717.         be less than 250. 
  1718.  
  1719.  
  1720. ΓòÉΓòÉΓòÉ <hidden> Vertical Grid Lines ΓòÉΓòÉΓòÉ
  1721.  
  1722. The vertical grid lines on the SPM/2 Graph are initially spaced at intervals 10 
  1723. times the collection frequency.  Specify a number between 1 and 64000 seconds 
  1724. to space the grid lines at more or less frequent intervals. 
  1725.  
  1726.  
  1727. ΓòÉΓòÉΓòÉ 3.3.3.7. Resetting (Synchronizing) Graphs: Procedure ΓòÉΓòÉΓòÉ
  1728.  
  1729. To reset all the resource data lines to the same point on the horizontal axis: 
  1730.  
  1731.   1. In the SPM/2 Graph window, select Display from the action bar to display 
  1732.      the Display pull-down. 
  1733.  
  1734.   2. Select Reset graphs. 
  1735.  
  1736.  
  1737. ΓòÉΓòÉΓòÉ 3.3.3.8. Changing Graph Refresh Mode: Procedure ΓòÉΓòÉΓòÉ
  1738.  
  1739.   1. In the SPM/2 Graph window, select Options from the action bar to display 
  1740.      the Options pull-down. 
  1741.  
  1742.   2. Select Sliding graphs to change mode from sliding to shifting, or from 
  1743.      shifting to sliding. Sliding graphs allows you to toggle between the two 
  1744.      modes. 
  1745.  
  1746.  
  1747. ΓòÉΓòÉΓòÉ <hidden> Sliding Graphs ΓòÉΓòÉΓòÉ
  1748.  
  1749. When the Sliding graphs option is: 
  1750.  
  1751.  Checked The resource data lines of the SPM/2 Graph slide left one point each 
  1752.       time a new point is added after the data line reaches the right side of 
  1753.       the window.  (The point at the far left disappears, and a new point is 
  1754.       added at the far right of the line.) 
  1755.  
  1756.  Not checked The resource data lines of the SPM/2 Graph shift left 1/3 the 
  1757.       width of the window when the data line reaches the right side of the 
  1758.       window.  This mode, which is the default, is less CPU-intensive. 
  1759.  
  1760.  
  1761. ΓòÉΓòÉΓòÉ 3.3.3.9. Modifying Graph Colors: Procedure ΓòÉΓòÉΓòÉ
  1762.  
  1763.   1. In the SPM/2 Graph window, select Options from the action bar to get the 
  1764.      Options pull-down. 
  1765.  
  1766.   2. Select Set colors to display the Set Colors dialog box. 
  1767.  
  1768.   3. Select the graph to be modified.  The Colors Preview box displays the 
  1769.      current color selections for that graph. 
  1770.  
  1771.   4. Select an item to modify (for example, background color or grid color). 
  1772.  
  1773.   5. Select Next color or Previous color to move forward or backward to the 
  1774.      desired color.  The Colors Preview box displays the color selection you 
  1775.      have made. 
  1776.  
  1777.   6. Repeat steps 3, 4, and 5, as necessary, for the items to be modified in 
  1778.      each resource graph. 
  1779.  
  1780.   7. Select Set to implement the changes and to return to the SPM/2 Graph 
  1781.      window. 
  1782.  
  1783.  The legend at the right of each individual graph lists the resources being 
  1784.  graphed.  Each resource name is the same color as the resource data line to 
  1785.  which it corresponds. 
  1786.  
  1787.  
  1788. ΓòÉΓòÉΓòÉ 3.3.3.10. Using the Cross Hair: Procedure ΓòÉΓòÉΓòÉ
  1789.  
  1790.   1. Move the mouse cursor into a resource graph window. The cursor changes 
  1791.      from an arrow to a cross hair. 
  1792.  
  1793.   2. Position the cross hair anywhere in the graph window. 
  1794.  
  1795.   3. Click the left mouse button.  The following information is displayed for 
  1796.      that point: 
  1797.  
  1798.     t    Actual time stamp in minutes and seconds. 
  1799.     %    Approximate percentage of vertical axis value. 
  1800.  
  1801.  Note:  If the graph window is sized too small, the t and % boxes disappear. 
  1802.  
  1803.  
  1804. ΓòÉΓòÉΓòÉ 3.3.3.11. Displaying Graph Legends: Procedure ΓòÉΓòÉΓòÉ
  1805.  
  1806.   1. In the SPM/2 Graph window, select Options from the action bar to get the 
  1807.      Options pull-down. 
  1808.  
  1809.   2. Select Legend to display the legend at the right side of each resource 
  1810.      graph. 
  1811.  
  1812.      When Legend is: 
  1813.  
  1814.     o Checked - resource graph legends are displayed. 
  1815.  
  1816.     o Not checked - resource graph legends are not displayed. 
  1817.  
  1818.  
  1819. ΓòÉΓòÉΓòÉ 3.3.3.12. Playing Back Previously Recorded Data: Procedure ΓòÉΓòÉΓòÉ
  1820.  
  1821. To replay previously recorded data for a currently active monitor session: 
  1822.  
  1823.   1. In the SPM/2 Graph window, select  from the function control bar to clear 
  1824.      the real-time resource graphs and display the playback resource graphs. 
  1825.  
  1826.     Note:  Data collection continues while the graphs are in playback mode. 
  1827.  
  1828.   2. Use the following buttons to control playback graph functions: 
  1829.  
  1830.            Play. 
  1831.            Fast forward. 
  1832.            Pause. (Select the Play button to restart playback at the point 
  1833.            where it stopped.) 
  1834.            Reset the graph to the beginning of the monitor session. (Select the 
  1835.            Play button to restart playback at the beginning of the data.) 
  1836.            Displays the Go To dialog box, which allows you to specify a 
  1837.            starting date and time for the period of data you want to review. 
  1838.  
  1839.  To return to real-time graphing, select  . 
  1840.  
  1841.  Notes: 
  1842.  
  1843.      1. Using the Presentation Manager interface, you can playback previously 
  1844.         recorded data only for an active monitor session.  To playback data 
  1845.         from an inactive monitor session (.LOG) file, use the SPMMON /P command 
  1846.         at an OS/2 command prompt. 
  1847.  
  1848.      2. Graph fonts may be changed using the OS/2 system font editor. 
  1849.  
  1850.  
  1851. ΓòÉΓòÉΓòÉ <hidden> Go To ΓòÉΓòÉΓòÉ
  1852.  
  1853. The Go To dialog box displays the periods that the monitor session was active. 
  1854. Specify a starting date and time for the period of data you want to review. 
  1855. Either type this information in the respective fields or use the spin buttons 
  1856. to increase or decrease each field value.  The starting time must fall within 
  1857. the range of time during which the specified .LOG file was active. 
  1858.  
  1859.  
  1860. ΓòÉΓòÉΓòÉ 4. Creating Performance Reports: Overview ΓòÉΓòÉΓòÉ
  1861.  
  1862.  
  1863. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  1864.  
  1865. Many different types of report output can be obtained from collected data.  You 
  1866. can specify that data be pulled from one or from many monitor session (.LOG) 
  1867. files with the same specified resource and recording frequency preferences.  A 
  1868. report can contain all or just a portion of the collected data.  Reports can be 
  1869. generated from a .LOG file while the monitor session is still active or after 
  1870. it has been stopped. 
  1871.  
  1872. Your customized report description (.RDF) file selectively defines which 
  1873. monitor session (.LOG) files, resources, and workstations are included in the 
  1874. report, the format of the data, and the time period for the data you want to 
  1875. see.  Several detail levels are also available, depending on the type of data 
  1876. collected during recording. 
  1877.  
  1878. To generate a report, you can create a new report description, run a report 
  1879. from a description created previously, or use the sample report description 
  1880. supplied with SPM/2. 
  1881.  
  1882.  
  1883. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  1884.  
  1885. Select one: 
  1886.  
  1887.  o Setting up a report description 
  1888.  o Running a report 
  1889.  o Printing a report. 
  1890.  
  1891.  
  1892. ΓòÉΓòÉΓòÉ 4.1. Setting Up a Report Description: Overview ΓòÉΓòÉΓòÉ
  1893.  
  1894.  
  1895. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  1896.  
  1897. Using SPM/2, you can create customized report descriptions and receive reports 
  1898. on only the data you want.  Specify the following aspects of the report when 
  1899. creating or changing a report description: 
  1900.  
  1901.   1. Log files from which to get the data 
  1902.   2. Report format 
  1903.   3. Level of detail at which data is summarized 
  1904.   4. Resources to be included 
  1905.   5. Workstations to be included 
  1906.   6. Reporting period 
  1907.   7. Frequency of summaries. 
  1908.  
  1909.  
  1910. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  1911.  
  1912. Select one: 
  1913.  
  1914.  o Creating a performance report description 
  1915.  o Changing a performance report description 
  1916.  o Copying a performance report description. 
  1917.  
  1918.  
  1919. ΓòÉΓòÉΓòÉ 4.1.1. Creating a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
  1920.  
  1921. Use this option to define a new report description. 
  1922.  
  1923.   1. From the SPM/2 control window action bar, select Report to display the 
  1924.      Report pull-down. 
  1925.  
  1926.   2. Select Setup-> and then New... to display the Report Description window, 
  1927.      and complete the following: 
  1928.  
  1929.     o Title 
  1930.     o Monitor sessions to be included in the report. 
  1931.  
  1932.        Note:  If multiple files are selected, every .LOG file must have the 
  1933.               same specified resources and collection frequency. 
  1934.  
  1935.   3. Select Preferences from the Report Description window action bar to define 
  1936.      the following: 
  1937.  
  1938.      a. Format 
  1939.      b. Summarization level 
  1940.  
  1941.        Note:  Summarization level can be specified only for the summary report. 
  1942.  
  1943.      c. Resources 
  1944.  
  1945.        Note:  Resources can be specified only for the summary and dump reports. 
  1946.  
  1947.      d. Workstations 
  1948.      e. Time periods. 
  1949.  
  1950.   4. Select File from the action bar, and then select Save as... to display and 
  1951.      complete the Save As panel. 
  1952.  
  1953.   5. Select OK to return to the SPM/2 control window. 
  1954.  
  1955.  Related information: 
  1956.  
  1957.  Restore report defaults. 
  1958.  
  1959.  
  1960. ΓòÉΓòÉΓòÉ <hidden> Report Title ΓòÉΓòÉΓòÉ
  1961.  
  1962. Type a title, 80-characters maximum, for the new report in the Title entry 
  1963. field. 
  1964.  
  1965.  
  1966. ΓòÉΓòÉΓòÉ 4.1.1.1. Specifying Report Format: Procedure ΓòÉΓòÉΓòÉ
  1967.  
  1968.   1. From the Report Description window action bar, select Preferences and then 
  1969.      Format-> to display a cascaded menu. 
  1970.  
  1971.   2. Select from the following: 
  1972.  
  1973.     o Tabular... 
  1974.     o Summary 
  1975.     o Dump 
  1976.     o Country options... 
  1977.  
  1978.     Note:  The first three menu items are mutually exclusive.  A check mark 
  1979.            appears beside the selected menu item.  Country options... is a 
  1980.            separately selectable item. 
  1981.  
  1982.  
  1983. ΓòÉΓòÉΓòÉ <hidden> Tabular Report Format ΓòÉΓòÉΓòÉ
  1984.  
  1985. Select Tabular... to generate a tabular summary file with the extension .TAB. 
  1986. The tabular report provides a high-level summary of data similar to that of the 
  1987. SPM/2 Graph.  This option is the default format.  When you select this option, 
  1988. the Report Tabular Format panel is displayed.  Complete the following: 
  1989.  
  1990.  o For column heading, specify either: 
  1991.  
  1992.     - Workstation 
  1993.     - Resource data. 
  1994.  
  1995.  o For resource data representation, specify either: 
  1996.  
  1997.     - Unit 
  1998.     - Percentage. 
  1999.  
  2000.  Related information: 
  2001.  
  2002.  Spreadsheet-compatible reports 
  2003.  
  2004.  
  2005. ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
  2006.  
  2007. Causes the report to be formatted with the workstation name as the column 
  2008. heading. 
  2009.  
  2010.  
  2011. ΓòÉΓòÉΓòÉ <hidden> Resource Data ΓòÉΓòÉΓòÉ
  2012.  
  2013. Causes the report to be formatted with the resource data as the column heading. 
  2014. This option is the default. 
  2015.  
  2016.  
  2017. ΓòÉΓòÉΓòÉ <hidden> Unit ΓòÉΓòÉΓòÉ
  2018.  
  2019. Causes the report to be formatted with resource data represented by unit value 
  2020. (for example, bytes or number of occurrences). 
  2021.  
  2022.  
  2023. ΓòÉΓòÉΓòÉ <hidden> Percentage ΓòÉΓòÉΓòÉ
  2024.  
  2025. Causes the report to be formatted with resource data represented by a 
  2026. percentage.  This option is the default. 
  2027.  
  2028.  
  2029. ΓòÉΓòÉΓòÉ <hidden> Spreadsheet Compatible Reports ΓòÉΓòÉΓòÉ
  2030.  
  2031. Select the Spreadsheet compatible report check box to create a report format 
  2032. that can be imported to various spreadsheet programs.  In this format, text 
  2033. strings are delimited with quotation marks.  When this box is selected, the 
  2034. name of the file generated ends with the extension .DEL. 
  2035.  
  2036.  
  2037. ΓòÉΓòÉΓòÉ <hidden> Summary Format ΓòÉΓòÉΓòÉ
  2038.  
  2039. Select Summary to generate a summary file with the extension .SUM.  A summary 
  2040. report can provide information about the following system resources:  CPU, 
  2041. memory, files, file system (FAT and HPFS), physical disk, printers, and 
  2042. communication ports.  See Specifying Summarization Level to specify the level 
  2043. of detail for this report. This option is the most detailed. 
  2044.  
  2045.  
  2046. ΓòÉΓòÉΓòÉ <hidden> Dump Format ΓòÉΓòÉΓòÉ
  2047.  
  2048. Select Dump to generate a dump file with the extension .DMP.  This report 
  2049. format displays values for the lowest level performance counters and timers as 
  2050. sampled at the recording frequency The summary interval is always the same as 
  2051. the recording frequency. 
  2052.  
  2053.  
  2054. ΓòÉΓòÉΓòÉ <hidden> Country Options ΓòÉΓòÉΓòÉ
  2055.  
  2056. Select Country options... to display the Report Country Options panel, where 
  2057. you can specify special characters to be used in the report: 
  2058.  
  2059.  List separator Specify a character to be used for separating lists in the 
  2060.       processed report.  The default character is a comma. 
  2061.  
  2062.  Decimal point Specify a character to be used as a decimal point in the 
  2063.       processed report.  The default character is a period. 
  2064.  
  2065.  Select OK to save your selections and return to the Report Description window. 
  2066.  
  2067.  
  2068. ΓòÉΓòÉΓòÉ 4.1.1.2. Specifying Summarization Level: Procedure ΓòÉΓòÉΓòÉ
  2069.  
  2070. When you create a summary report, data is summarized at the workstation level 
  2071. unless you select another summarization level.  To do so: 
  2072.  
  2073.   1. From the Report Description window action bar, select Preferences and then 
  2074.      Summarization level-> to display a cascaded menu. 
  2075.  
  2076.   2. Select one of the following: 
  2077.  
  2078.     o Workstation 
  2079.     o Application... 
  2080.     o Process... 
  2081.     o Thread... 
  2082.  
  2083.     Notes: 
  2084.  
  2085.         a. The menu items are mutually exclusive.  A check mark appears beside 
  2086.            the selected menu item. 
  2087.  
  2088.         b. If application/process/thread level data was not collected, data can 
  2089.            be summarized at the workstation level only. 
  2090.  
  2091.  
  2092. ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
  2093.  
  2094. The data is summarized as total activity for the each workstation. This option 
  2095. is the default. 
  2096.  
  2097.  
  2098. ΓòÉΓòÉΓòÉ <hidden> Application ΓòÉΓòÉΓòÉ
  2099.  
  2100. The data for the activity is summarized both by workstation and by individual 
  2101. application running at that workstation. When you select this option, the 
  2102. Report Application Definition panel is displayed. 
  2103.  
  2104.  
  2105. ΓòÉΓòÉΓòÉ <hidden> Specifying Report Application Definitions: Procedure ΓòÉΓòÉΓòÉ
  2106.  
  2107.   1. Highlight entries in the Available: list box, and then select Add >> to 
  2108.      copy those choices to the Selected: list box. 
  2109.  
  2110.     Note:  Any processes that are not included in an application definition are 
  2111.            considered to be unassigned.  You must select the Report unassigned 
  2112.            processes check box to see these processes in a report. 
  2113.  
  2114.   2. Select OK to save your selections and return to the Report Description 
  2115.      window. 
  2116.  
  2117.  Related information: 
  2118.  
  2119.  o Application concepts 
  2120.  o Remove an entry 
  2121.  o Select all entries 
  2122.  o Define new application 
  2123.  o Change an application definition 
  2124.  o Delete an application definition 
  2125.  
  2126.  
  2127. ΓòÉΓòÉΓòÉ <hidden> Define New Application ΓòÉΓòÉΓòÉ
  2128.  
  2129.   1. In the Report Application Definition panel, select New... to display the 
  2130.      Define New Application panel, and complete the following: 
  2131.  
  2132.     o Application name 
  2133.     o Program (.EXE) files to be included in the definition. 
  2134.  
  2135.   2. Select OK to save your entries and return to the Report Application 
  2136.      Definition panel. 
  2137.  
  2138.  Notes: 
  2139.  
  2140.      1. You cannot select OK until you have entered an application name. 
  2141.      2. The application you defined will appear in the Available: list box in 
  2142.         Report Application Definition panel. 
  2143.  
  2144.  
  2145. ΓòÉΓòÉΓòÉ <hidden> Specifying an Application Name ΓòÉΓòÉΓòÉ
  2146.  
  2147. Type a name for the new application in the entry field. 
  2148.  
  2149.  
  2150. ΓòÉΓòÉΓòÉ <hidden> Program (.EXE) Names ΓòÉΓòÉΓòÉ
  2151.  
  2152. To specify the names of program (.EXE) files to be included in an application, 
  2153. either: 
  2154.  
  2155.  o Type a single program file name in the Program (.EXE) name: entry field and 
  2156.    press Enter.  Entries in this field are reflected in the Selected: list box. 
  2157.    Repeat until all desired program names are entered for the highlighted 
  2158.    application. 
  2159.  
  2160.    or 
  2161.  
  2162.  o Select a drive from the Drive: drop-down list.  A list of available 
  2163.    directories for that drive is displayed in the Directory: drop-down list. 
  2164.    (To display subdirectories, double-click on the highlighted directory item.) 
  2165.    Select a directory.  A list of available program (.EXE) files for that 
  2166.    directory is displayed in the Available: list box.  Highlight entries in the 
  2167.    Available: list box.  Select Add >> to copy the highlighted entries to the 
  2168.    Selected: list box. 
  2169.  
  2170.  Note:  There is nothing that prevents you from defining two different 
  2171.         applications that reference the same process (.EXE file).  SPM/2 will 
  2172.         provide the correct amount of time for each application definition. 
  2173.         However, note that the percentages will not add up to 100%. 
  2174.  
  2175.         As an example, suppose the following application definitions exist: 
  2176.  
  2177.                 Appl_ABC       Appl_XYZ
  2178.                 --------       --------
  2179.                  a.exe          c.exe
  2180.                  b.exe          d.exe
  2181.                  c.exe          e.exe
  2182.  
  2183.         The numbers for the amount of CPU time used for each application will 
  2184.         be correct.  However, since process "c.exe" is counted twice, the 
  2185.         percentages of Appl_ABC + Appl_XYZ could be > 100%. 
  2186.  
  2187.  Related information: 
  2188.  
  2189.  o Select all entries 
  2190.  o Remove an entry from the Selected: list box. 
  2191.  
  2192.  
  2193. ΓòÉΓòÉΓòÉ <hidden> Change an Application Definition ΓòÉΓòÉΓòÉ
  2194.  
  2195.   1. In the Report Application Definition panel, highlight the application 
  2196.      definition you want to change. 
  2197.  
  2198.   2. Select Change... to display the Change Application Definition panel where 
  2199.      you can modify the list of Program (.EXE) files to be included in the 
  2200.      definition. 
  2201.  
  2202.   3. Select OK to save your entries and return to the Report Application 
  2203.      Definition panel. 
  2204.  
  2205.  
  2206. ΓòÉΓòÉΓòÉ <hidden> Deleting an Application Definition ΓòÉΓòÉΓòÉ
  2207.  
  2208.   1. In the Report Application Definition panel, highlight the application 
  2209.      definition you want to delete. 
  2210.  
  2211.   2. Select Delete. 
  2212.  
  2213.  Note:  Program (.EXE) files formerly assigned to the deleted application 
  2214.         definition will now be considered unassigned.  To see these processes 
  2215.         in a report, you must select the Report unassigned processes check box. 
  2216.  
  2217.  
  2218. ΓòÉΓòÉΓòÉ <hidden> Application Concepts ΓòÉΓòÉΓòÉ
  2219.  
  2220. The OS/2 system has processes, which are .EXE files.  Processes contain 
  2221. threads.  An application consists of one or more processes that do useful work. 
  2222.  
  2223. SPM/2 provides some applications predefined, to serve as an example. These 
  2224. application examples include such OS/2 applications as: 
  2225.  
  2226.  o Extended Services 1.0 - Communications Manager 
  2227.  o Extended Services 1.0 - Database Manager 
  2228.  o LAN Server 2.0 Entry 
  2229.  o NTS/2 2.01 
  2230.  o SPM/2 2.0. 
  2231.  
  2232.  Note:  These examples do not represent every possible configuration or 
  2233.         installation of these applications.  For example, Extended Services 
  2234.         Communications Manager has many different configurations (such as 3270 
  2235.         Emulation, SNA, Asynchronous Communications, X.25, etc.).  The example 
  2236.         provided for Communications Manager only describes a system configured 
  2237.         to support two 3270 emulation sessions over a token ring network, and 
  2238.         OS/2 LAN Server over token ring. 
  2239.  
  2240.  However, you may want to obtain reports about applications not previously 
  2241.  defined.  Through the Define New Application panel, you can specify what 
  2242.  processes you want grouped together in an application and assign that 
  2243.  application a name. 
  2244.  
  2245.  The process (.EXE) files of application are generally all found in the same 
  2246.  subdirectory.  Therefore, if you are not sure what .EXE files to include in an 
  2247.  application definition, you can try looking at a directory listing for that 
  2248.  application's subdirectory. 
  2249.  
  2250.  
  2251. ΓòÉΓòÉΓòÉ <hidden> Report Unassigned Processes ΓòÉΓòÉΓòÉ
  2252.  
  2253. When you select an application in the Report Application Definition panel, the 
  2254. processes defined as constituting the application are grouped under the 
  2255. application's heading in the report. 
  2256.  
  2257. Some processes may not be assigned to an application.  To have SPM/2 report on 
  2258. performance data for unassigned processes, select the Report unassigned 
  2259. processes check box. 
  2260.  
  2261.  Note:  Although, a process may be defined as belonging to an application, if 
  2262.         the application has not been selected in the Report Application 
  2263.         Definition panel, SPM/2 treats it as an unassigned process, and will 
  2264.         identify it individually in the report rather than as part of its 
  2265.         application. 
  2266.  
  2267.  
  2268. ΓòÉΓòÉΓòÉ <hidden> Process ΓòÉΓòÉΓòÉ
  2269.  
  2270. In addition to workstation totals and application breakdown, activity is also 
  2271. listed by individual process. When you select this option the Report 
  2272. Application Definition panel is displayed. 
  2273.  
  2274.  
  2275. ΓòÉΓòÉΓòÉ <hidden> Thread ΓòÉΓòÉΓòÉ
  2276.  
  2277. Activity is summarized at the thread level and at every higher level (that is, 
  2278. workstation, application, and process). When you select this option, the Report 
  2279. Application Definition panel is displayed. 
  2280.  
  2281. CAUTION:
  2282. When you select Thread, the report file can become very large. 
  2283.  
  2284.  
  2285. ΓòÉΓòÉΓòÉ 4.1.1.3. Specifying Resources for the Report: Procedure ΓòÉΓòÉΓòÉ
  2286.  
  2287. To specify resources to be included in the summary or dump reports: 
  2288.  
  2289.   1. From the Report Description window action bar, select Preferences and then 
  2290.      Resources... to display the Report Resources panel. 
  2291.  
  2292.   2. Highlight entries in the Available: list box, and then select Add >> to 
  2293.      copy those choices to the Selected: list box. 
  2294.  
  2295.           CAUTION:
  2296.      When you select Files, the report file can become very large. 
  2297.  
  2298.     Notes: 
  2299.  
  2300.         a. The dump report does not contain data about files even when Files is 
  2301.            selected. 
  2302.  
  2303.         b. The Available: list box displays all the resources configured in the 
  2304.            monitor session (.LOG) files selected for the report. 
  2305.  
  2306.         c. Before making a selection, you may want to expand the entries with 
  2307.            ellipses (...) in the Available: list box by checking the Expand 
  2308.            available resources box.  Selecting an unexpanded entry causes all 
  2309.            instances of that resource to be selected. For example, selecting 
  2310.            DISK actually selects DISK 01 through DISK 24. 
  2311.  
  2312.         d. The dump report does not include metrics for threads or files, even 
  2313.            when those resources are selected for inclusion in the report. 
  2314.  
  2315.   3. Select Verbose (include nonactive resources) to display all data, 
  2316.      including data for nonactive applications, processes, threads, or files. 
  2317.      In other words, if the activity for any application, process, thread, or 
  2318.      file is zero (no activity), select Verbose to include this information in 
  2319.      the summary report. 
  2320.  
  2321.     Note:  If you do not select Verbose, only data from applications, 
  2322.            processes, threads, or files that contain activity is included in 
  2323.            the summary report. 
  2324.  
  2325.   4. Select OK to save your selections and return to the Report Description 
  2326.      window. 
  2327.  
  2328.  Related information: 
  2329.  
  2330.  o Remove an entry 
  2331.  o Select all entries. 
  2332.  
  2333.  
  2334. ΓòÉΓòÉΓòÉ 4.1.1.4. Specifying Workstations: Procedure ΓòÉΓòÉΓòÉ
  2335.  
  2336. To specify workstations to be included in the report: 
  2337.  
  2338.   1. From the Report Description window action bar, select Preferences and then 
  2339.      Workstations... to display the Report Workstations panel. 
  2340.  
  2341.   2. Highlight entries in the Available: list box. Select Add >> to copy the 
  2342.      highlighted entries to the Selected: list box. 
  2343.  
  2344.     Note:  The Available: list box displays all the workstations configured in 
  2345.            the monitor session (.LOG) files selected for the report. 
  2346.  
  2347.   3. Select OK to save your selections and return to the Report Description 
  2348.      window. 
  2349.  
  2350.  Note:  If you want to generate a report about a local workstation on which 
  2351.         NETBIOS is installed, specify the computer name for the workstation, 
  2352.         rather than specifying LOCAL.  (The computer name for the local 
  2353.         workstation can be found in the COMPUTERNAME= statement in the 
  2354.         IBMLAN.INI file.) 
  2355.  
  2356.  Related information: 
  2357.  
  2358.  o Select all entries 
  2359.  o Remove an entry from the Selected: list box. 
  2360.  
  2361.  
  2362. ΓòÉΓòÉΓòÉ 4.1.1.5. Specifying Report Time Periods: Procedure ΓòÉΓòÉΓòÉ
  2363.  
  2364. To specify report time periods: 
  2365.  
  2366.   1. From the Report Description window action bar, select Preferences and then 
  2367.      Time Periods... to display the Report Time Periods panel. 
  2368.  
  2369.   2. Specify the: 
  2370.  
  2371.     o Date and time 
  2372.     o Summary interval. 
  2373.  
  2374.   3. Select OK to save your selections and return to the Report Description 
  2375.      window. 
  2376.  
  2377.  Note:  When creating your .RDF file, SPM/2 initializes the time period values 
  2378.         so that all the performance data in the .LOG file is included in the 
  2379.         report and is reported in one summary interval.  However, SPM/2 does 
  2380.         this in two different ways, depending on whether there is already data 
  2381.         in the .LOG file at the time the .RDF file is created. 
  2382.  
  2383.     o If you create the .RDF file before collecting any data in your .LOG file, 
  2384.       the start and stop date-times and the summary interval time are set to 
  2385.       all zeros, meaning that, when a report is run, the entire contents of the 
  2386.       .LOG file will be used. 
  2387.  
  2388.     o If the .RDF file is created after the desired .LOG file contains data, 
  2389.       SPM/2 picks up the actual start and stop times from the .LOG file and 
  2390.       stores these values in the .RDF file as the start and stop times for 
  2391.       generating the report.  SPM/2 also sets the summary interval to the total 
  2392.       time span of the data in the .LOG file, unless that data is greater than 
  2393.       24 hours.  In this case, the summary interval will be set to 24 hours (1 
  2394.       day). If, at a later time, more data is recorded to this .LOG file, the 
  2395.       report is still only generated for the times that were originally stored 
  2396.       in the .RDF file. 
  2397.  
  2398.       Hence, if you want to specify that the entire .LOG file always be used 
  2399.       when generating a report, and you create the .RDF file after logging data 
  2400.       to the specified .LOG file, you must manually set the start, stop, and 
  2401.       summary interval values in the Report Time Periods panel to zeros. 
  2402.  
  2403.  
  2404. ΓòÉΓòÉΓòÉ <hidden> Report Times ΓòÉΓòÉΓòÉ
  2405.  
  2406. The Collection time periods in selected logs box displays the active periods 
  2407. for the monitor session (.LOG) files specified in the Report Description 
  2408. window.  The report time periods must fall within the range of time during 
  2409. which all the specified .LOG files were active. 
  2410.  
  2411. In the Time periods to be included in the report fields, specify a start 
  2412. date-time and a stop date-time between which to analyze the data.  Either type 
  2413. this information in the respective fields or use the spin buttons. 
  2414.  
  2415. Time periods are specified in a year, month, day, hour, minute, second 
  2416. (YY MMDD HH MM SS) format.  The defaults are the earliest and latest date-times 
  2417. when data was recorded in all the monitor session (.LOG) files.  If one of the 
  2418. monitor sessions is active, the default for the stop time is the time of the 
  2419. most current record. 
  2420.  
  2421. For example, although data recording was started on February 10, 1992, at 
  2422. 10:05:22 and stopped on February 15, 1992, at 22:42:25, you may only want to 
  2423. examine the data for a short period of time on February 14 when you had a 
  2424. performance problem.  So, in the Start field, you would enter 92 02 14 
  2425. 16 15 00, and in the Stop field, 92 02 14 17 45 00. 
  2426.  
  2427. To specify that the report always include all the data in the .LOG file 
  2428. (independent of the specific time values in the .LOG file), set the start and 
  2429. stop date-time values to all zeros. 
  2430.  
  2431.  
  2432. ΓòÉΓòÉΓòÉ <hidden> Summary Interval ΓòÉΓòÉΓòÉ
  2433.  
  2434. Specify the interval at which data should be summarized.  Summary intervals are 
  2435. specified in a day, hour, minute, second (DDD HH MM SS) format. 
  2436.  
  2437. For the summary and tabular reports, the default is to process the report as a 
  2438. single recording interval (unless the data spans 24 hours, in which case the 
  2439. default interval is 1 day).  To specify that the report always be summarized as 
  2440. a single interval, set the summary interval value to all zeros. 
  2441.  
  2442. For the dump report, the summary interval is always  the same as the recording 
  2443. frequency, so that every sample is shown. 
  2444.  
  2445. For example, samples of the data may have been recorded every 10 seconds, but 
  2446. you only need a summary of the data every 60 seconds. In this case, you would 
  2447. enter 000 00 01 00. Either type this information in the respective fields or 
  2448. use the spin buttons. 
  2449.  
  2450.  Note:  When you select OK from the Report Time Periods panel, you may receive 
  2451.         a pop-up message warning that the "selected summarization interval 
  2452.         could produce distorted results."  This should only be of concern when 
  2453.         your report contains data from multiple workstations.  In this case, 
  2454.         the recommended value for the summary interval is at least 20 times the 
  2455.         largest collection frequency.  The reason for this is that the time 
  2456.         values across the systems being included in the report may be slightly 
  2457.         "out of synch" with each other, due to variances in the clocks across 
  2458.         the systems, and/or variances in the time it takes to return 
  2459.         performance data to the monitoring system.  By summarizing 20 or more 
  2460.         samples, some of this variance can be "cancelled out." 
  2461.  
  2462.  
  2463. ΓòÉΓòÉΓòÉ <hidden> Restoring Report Defaults ΓòÉΓòÉΓòÉ
  2464.  
  2465. To restore defaults instead of saving new selections, select Preferences and 
  2466. then Restore defaults. 
  2467.  
  2468. If you are creating a new file, the Restore defaults selection restores the 
  2469. entire Report Description window to the state in which it was opened. 
  2470.  
  2471. If you are modifying an existing file, the Restore defaults selection restores 
  2472. the preferences that were specified in the report description (.RDF) file at 
  2473. the time it was accessed.  However, any monitor session (.LOG) files that you 
  2474. have selected since opening the window remain in the Selected: list box. 
  2475.  
  2476.  
  2477. ΓòÉΓòÉΓòÉ 4.1.2. Changing a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
  2478.  
  2479. Use this option to check the parameters of an existing report description or 
  2480. change the description. 
  2481.  
  2482.   1. From the SPM/2 control window action bar, select Report to display the 
  2483.      Report pull-down. 
  2484.  
  2485.   2. Select Setup-> and then Open... to display the Open Report Description 
  2486.      panel, and complete the Filename field. 
  2487.  
  2488.   3. Select OK to display the Report Description window and modify the 
  2489.      following: 
  2490.  
  2491.     o Title 
  2492.     o Monitor sessions to be included in the report. 
  2493.  
  2494.   4. Select Preferences from the Report Description window action bar to define 
  2495.      the following: 
  2496.  
  2497.     o Format 
  2498.     o Summarization level 
  2499.  
  2500.        Note:  Summarization level can be specified only for the summary report. 
  2501.  
  2502.     o Resources 
  2503.  
  2504.        Note:  Resources can be specified only for the summary and dump reports. 
  2505.  
  2506.     o Workstations 
  2507.     o Time periods. 
  2508.  
  2509.   5. Select File from the action bar, and then select Save to overwrite the 
  2510.      existing .RDF file and save the new report description file under the 
  2511.      existing fully qualified file name. 
  2512.  
  2513.   6. Select OK to return to the SPM/2 control window. 
  2514.  
  2515.  Related information: 
  2516.  
  2517.  Restore report defaults. 
  2518.  
  2519.  
  2520. ΓòÉΓòÉΓòÉ 4.1.3. Copying a Performance Report Description: Procedure ΓòÉΓòÉΓòÉ
  2521.  
  2522. Use this option to make a backup copy of a report description or to use an 
  2523. existing description as a template for a new one. 
  2524.  
  2525.   1. From the SPM/2 control window action bar, select Report to display the 
  2526.      Report pull-down. 
  2527.  
  2528.   2. Select Setup-> and then Copy... to display the Copy Report Description 
  2529.      panel, and complete the following: 
  2530.  
  2531.     o Source file 
  2532.     o Target file. 
  2533.  
  2534.   3. Select OK to save your selections and return to the SPM/2 control window. 
  2535.  
  2536.  
  2537. ΓòÉΓòÉΓòÉ 4.2. Running a Report: Procedure ΓòÉΓòÉΓòÉ
  2538.  
  2539.   1. From the SPM/2 control window action bar, select Report to display the 
  2540.      Report pull-down. 
  2541.  
  2542.   2. Select Run... to display the Run Report panel, and complete the Filename 
  2543.      field. 
  2544.  
  2545.      Warning: Report files (.TAB, .SUM, .DMP, and .DEL) always overwrite an 
  2546.      existing file of the same name.  No confirmation message is displayed. 
  2547.  
  2548.   3. Select OK to start report processing. 
  2549.  
  2550.  Notes: 
  2551.  
  2552.      1. A pop-up panel displays a message that the report is running. If you 
  2553.         want to stop report generation before it is complete, select Stop. 
  2554.  
  2555.      2. The same pop-up panel tells you when report generation is completed 
  2556.         successfully.  Select Done to close the pop-up panel.  (This button 
  2557.         cannot be selected until report generation is complete.) 
  2558.  
  2559.  
  2560. ΓòÉΓòÉΓòÉ 4.3. Printing a Report: Procedure ΓòÉΓòÉΓòÉ
  2561.  
  2562.   1. From the SPM/2 control window action bar, select Report to display the 
  2563.      Report pull-down. 
  2564.  
  2565.   2. Select Print... to display the Print Report panel, and complete the 
  2566.      following: 
  2567.  
  2568.     o Filename 
  2569.     o Type of file 
  2570.     o Output Port. 
  2571.  
  2572.   3. Select OK to start printing the report and return to the SPM/2 control 
  2573.      window. 
  2574.  
  2575.  
  2576. ΓòÉΓòÉΓòÉ <hidden> Specifying a File Type ΓòÉΓòÉΓòÉ
  2577.  
  2578. To specify the file type, select the appropriate file extension from the Type 
  2579. of file: drop-down list: 
  2580.  
  2581.  .SUM      Summary report file 
  2582.  .TAB      Tabular report file 
  2583.  .DMP      Dump report file. 
  2584.  
  2585.  
  2586. ΓòÉΓòÉΓòÉ <hidden> Specifying an Output Port ΓòÉΓòÉΓòÉ
  2587.  
  2588. Select a printer from the Output Port: drop-down list. 
  2589.  
  2590.  
  2591. ΓòÉΓòÉΓòÉ 5. Using the Data: Overview ΓòÉΓòÉΓòÉ
  2592.  
  2593.  
  2594. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  2595.  
  2596. To aid you in using the data collected by SPM/2, this section includes an 
  2597. overview of performance concepts, a performance analysis method, and 
  2598. discussions of graph interpretation and report output. 
  2599.  
  2600.  
  2601. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  2602.  
  2603. Select one: 
  2604.  
  2605.  o Performance concepts 
  2606.  o Performance analysis 
  2607.  o Interpreting graphs 
  2608.  o Report output. 
  2609.  
  2610.  
  2611. ΓòÉΓòÉΓòÉ 5.1. Performance Concepts ΓòÉΓòÉΓòÉ
  2612.  
  2613. System performance can be described by throughput, which should be measured and 
  2614. evaluated from the perspective of the originator of the request (that is, at 
  2615. the workstation where the end user or application is located), and response 
  2616. times. The goal is to maximize throughput while still achieving acceptable 
  2617. response times. 
  2618.  
  2619.  o Throughput formula 
  2620.  o Plotting throughput and response time. 
  2621.  
  2622.  
  2623. ΓòÉΓòÉΓòÉ 5.1.1. Throughput Formula ΓòÉΓòÉΓòÉ
  2624.  
  2625. The following formula is used to compute system throughput. It is generally 
  2626. expressed in number of transactions per second. 
  2627.  
  2628.                    total_transactions_during_run
  2629. throughput_rate =  -----------------------------
  2630.                       (end_time - begin_time)
  2631.  
  2632. This measure is useful for evaluating the workload capacity of a system. 
  2633.  
  2634.  
  2635. ΓòÉΓòÉΓòÉ 5.1.2. Plotting Throughput and Response Time ΓòÉΓòÉΓòÉ
  2636.  
  2637. The system's overall throughput versus response time ratio can be demonstrated 
  2638. by plotting the throughput and response times for different numbers of active 
  2639. end users with requests arriving at different rates (due to user "think time"). 
  2640. This is useful in choosing system hardware, planning future growth, and making 
  2641. application design choices. 
  2642.  
  2643. A plot of throughput or a plot of response time over a wide range of workloads 
  2644. (or number of users) will typically have three phases: 
  2645.  
  2646.  o Underloading 
  2647.  o Optimum loading 
  2648.  o Overloading. 
  2649.  
  2650.  
  2651. ΓòÉΓòÉΓòÉ <hidden> Typical Throughput Curve ΓòÉΓòÉΓòÉ
  2652.  
  2653.  
  2654. ΓòÉΓòÉΓòÉ <hidden> Typical Response Time Curve ΓòÉΓòÉΓòÉ
  2655.  
  2656.  
  2657. ΓòÉΓòÉΓòÉ <hidden> Underloading ΓòÉΓòÉΓòÉ
  2658.  
  2659. Underloading results when system capacity exceeds the amount of work. As work 
  2660. is added (more workstations or transaction requests), the throughput rate will 
  2661. continue to climb.  In this phase, system response time tends to remain flat. 
  2662.  
  2663.  
  2664. ΓòÉΓòÉΓòÉ <hidden> Optimum Loading ΓòÉΓòÉΓòÉ
  2665.  
  2666. During optimum loading, the throughput rate remains nominally flat as more work 
  2667. is added.  The optimum loading portion of the throughput curve is typically 
  2668. very wide.  In this phase, system response time tends to increase linearly. 
  2669.  
  2670.  
  2671. ΓòÉΓòÉΓòÉ <hidden> Overloading ΓòÉΓòÉΓòÉ
  2672.  
  2673. Overloading results when the system has more work to do than can be handled by 
  2674. available resources.  Typically, one resource is fully consumed first, thereby 
  2675. limiting system throughput even though performance at other points in the 
  2676. system remains normal.  This limiting resource is called a bottleneck. 
  2677.  
  2678. In this phase, system response time usually increases exponentially. Throughput 
  2679. may stay flat or fall sharply.  For example, throughput falls when too many 
  2680. applications are running simultaneously and the sum of their working sets 
  2681. exceeds the available RAM.  As a result, the system continually swaps pages in 
  2682. and out of memory. 
  2683.  
  2684. However, in some cases, the response time of an overloaded system may not 
  2685. increase exponentially.  For example, in a communications environment, frame 
  2686. rejects or queue overruns may be the only symptom. Instead of an exponential 
  2687. increase in response time, you may see the throughput rate rise and fall like a 
  2688. wave. 
  2689.  
  2690.  
  2691. ΓòÉΓòÉΓòÉ 5.2. Performance Analysis ΓòÉΓòÉΓòÉ
  2692.  
  2693.  
  2694. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  2695.  
  2696. There are many variables to consider in determining how to improve the response 
  2697. time and throughput of a system.  Because of this, performance tuning can be a 
  2698. slow and tedious task.  The answer to many performance-related questions is 
  2699. often, "It depends." 
  2700.  
  2701. To effectively tune a system, a methodical approach is needed.  When changes to 
  2702. the system are made with no particular rhyme or reason, the cross-effects of 
  2703. multiple, simultaneous changes may make it difficult to determine the 
  2704. individual effect each change has on the system. 
  2705.  
  2706. Even though tuning can be a slow process, much of it is common sense, involving 
  2707. the major steps in the topic list. 
  2708.  
  2709.  
  2710. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  2711.  
  2712. Select topics in order: 
  2713.  
  2714.   1. Preanalysis checklist 
  2715.   2. Problem definition 
  2716.   3. Hypothesizing solutions 
  2717.   4. Designing tests 
  2718.   5. Testing solutions 
  2719.   6. Analyzing results. 
  2720.  
  2721.  
  2722. ΓòÉΓòÉΓòÉ 5.2.1. Preanalysis Checklist ΓòÉΓòÉΓòÉ
  2723.  
  2724. Before starting to diagnose a performance problem, you should check the 
  2725. following things that can affect performance: 
  2726.  
  2727.  o Active trace programs 
  2728.  o Hardware setup. 
  2729.  
  2730.  
  2731. ΓòÉΓòÉΓòÉ <hidden> Active Trace Programs ΓòÉΓòÉΓòÉ
  2732.  
  2733. Trace programs can have a significant impact on performance.  Be sure that all 
  2734. trace programs have been disabled unless you explicitly want them. 
  2735.  
  2736.  
  2737. ΓòÉΓòÉΓòÉ <hidden> Hardware Setup ΓòÉΓòÉΓòÉ
  2738.  
  2739. Use your OS/2 Reference Diskette to ensure that all adapters are properly 
  2740. installed and configured, especially memory and communications adapters. 
  2741.  
  2742.  
  2743. ΓòÉΓòÉΓòÉ 5.2.2. Problem Definition ΓòÉΓòÉΓòÉ
  2744.  
  2745. Defining the problem means more than saying, "The system is slow."  It means 
  2746. getting specific about the symptoms, understanding system interactions, and 
  2747. determining acceptable performance: 
  2748.  
  2749.  o Identify the symptoms 
  2750.  o Consider the environment 
  2751.  o Define a goal. 
  2752.  
  2753.  
  2754. ΓòÉΓòÉΓòÉ <hidden> Identify the Symptoms ΓòÉΓòÉΓòÉ
  2755.  
  2756. Answers to the following questions can give a more specific picture of a 
  2757. performance problem: 
  2758.  
  2759.  o What activity seems slow?  For example, the problem may happen when using a 
  2760.    particular application, disk access, or combination of components. 
  2761.  o How slow is it?  How long does the activity actually take? 
  2762.  o What performance did you expect or do you believe is reasonable? 
  2763.  
  2764.  Examples of problems 
  2765.  
  2766.  
  2767. ΓòÉΓòÉΓòÉ <hidden> Examples of Problems ΓòÉΓòÉΓòÉ
  2768.  
  2769. The following are examples of problems you may encounter: 
  2770.  
  2771.  o When the user hot-keys from a spreadsheet program, it takes 10 seconds to 
  2772.    bring up the OS/2 Task List.  Desired performance time is 1 or 2 seconds. 
  2773.  o When 10 more users are added to a LAN, and all users on the LAN are running 
  2774.    the "end of day report," 5 or more systems cannot complete the report due to 
  2775.    time outs at the server.  Desired performance is that all users be able to 
  2776.    complete their reports. 
  2777.  o Database report XYZ takes 15 minutes to run.  Desired performance time is 3 
  2778.    minutes. 
  2779.  o SPM/2 indicates that CPU utilization is nearing 100% for extended periods of 
  2780.    time. 
  2781.  
  2782.  
  2783. ΓòÉΓòÉΓòÉ <hidden> Consider the Environment ΓòÉΓòÉΓòÉ
  2784.  
  2785. Consider what aspects of the system environment could affect the performance of 
  2786. the problem component.  Possibilities include any one or a combination of the 
  2787. following: 
  2788.  
  2789.  o Stand-alone or LAN environment 
  2790.  o Communication link 
  2791.  o Hardware configuration (for example, memory, CPU, disk space, or 
  2792.    coprocessor) 
  2793.  o Operating system configuration 
  2794.  o Application configuration 
  2795.  o Application set. 
  2796.  
  2797.  
  2798. ΓòÉΓòÉΓòÉ <hidden> Define a Goal ΓòÉΓòÉΓòÉ
  2799.  
  2800. Define a goal . . . be realistic.  Decide what improvement you would like to 
  2801. see and how you will know when you see it.  This will probably be an iterative 
  2802. process.  Setting your desired goal may be very easy.  Whether this goal is 
  2803. realistic will become apparent over time, as you learn more about how your 
  2804. system and application work and locate the bottlenecks. 
  2805.  
  2806.  
  2807. ΓòÉΓòÉΓòÉ 5.2.3. Hypothesizing Solutions ΓòÉΓòÉΓòÉ
  2808.  
  2809. Once you have identified a problem and the environmental factors that affect 
  2810. it, you can narrow down possible causes and solutions. This involves 
  2811. identifying possible bottlenecks, verifying whether they are indeed 
  2812. bottlenecks, and devising possible solutions to alleviate them. 
  2813.  
  2814. Always ensure that the correct bottleneck is identified to avoid ineffective 
  2815. use of technical resources and unnecessary expense.  Be aware that once a 
  2816. bottleneck is identified and resources are applied to relieve it, another 
  2817. bottleneck may suddenly surface.  This may be caused by several things in your 
  2818. system running near capacity. 
  2819.  
  2820. Select one: 
  2821.  
  2822.  o Identifying possible bottlenecks 
  2823.  o Identifying possible solutions. 
  2824.  
  2825.  
  2826. ΓòÉΓòÉΓòÉ 5.2.3.1. Identifying Bottlenecks ΓòÉΓòÉΓòÉ
  2827.  
  2828. Bottlenecks occur at points in the system where requests are arriving faster 
  2829. than they can be handled (as with I/O operations), or where resources (such as 
  2830. buffers) are insufficient to hold adequate amounts of data. 
  2831.  
  2832. Finding a bottleneck is essentially a step-by-step process of narrowing down 
  2833. the causes of the problem: 
  2834.  
  2835.   1. Identify the device or service. 
  2836.   2. Identify the resource that is affected. 
  2837.   3. Consider what is happening behind the scenes when the function is 
  2838.      performing poorly. 
  2839.   4. Identify which parts of the process are accessing the problem resource. 
  2840.  
  2841.  
  2842. ΓòÉΓòÉΓòÉ <hidden> Identify the Device or Service ΓòÉΓòÉΓòÉ
  2843.  
  2844. In a network environment, try to determine whether the bottleneck is occurring 
  2845. on the requester or the server.  If neither of these seems to have a problem, 
  2846. check the network, including cabling and all connectivity devices. 
  2847.  
  2848.  
  2849. ΓòÉΓòÉΓòÉ <hidden> Identify the Resource ΓòÉΓòÉΓòÉ
  2850.  
  2851. Which monitor indicates resource overuse: CPU, disk, or RAM? Use the SPM/2 
  2852. functions to examine which of these environments is suffering poor performance. 
  2853.  
  2854.  
  2855. ΓòÉΓòÉΓòÉ <hidden> Identify Resource - CPU ΓòÉΓòÉΓòÉ
  2856.  
  2857. Use the recording and reporting functions to determine the CPU utilization for 
  2858. each individual process. 
  2859.  
  2860.  
  2861. ΓòÉΓòÉΓòÉ <hidden> Identify Resource - Disk ΓòÉΓòÉΓòÉ
  2862.  
  2863. Use the recording and reporting functions to collect disk operation 
  2864. information, summarized or detailed by activity.  The Directory Analyzer and 
  2865. THESEUS2 can also be used to complete the picture of disk usage. 
  2866.  
  2867.  
  2868. ΓòÉΓòÉΓòÉ <hidden> Identify Resource - RAM ΓòÉΓòÉΓòÉ
  2869.  
  2870. Use the recording and reporting functions to determine an application's RAM 
  2871. usage and gather details about paging activity.  Use THESEUS2 to calculate the 
  2872. total RAM required by a particular application set. 
  2873.  
  2874.  
  2875. ΓòÉΓòÉΓòÉ <hidden> Behind the Scenes ΓòÉΓòÉΓòÉ
  2876.  
  2877. Consider all the steps undertaken by the poorly performing function.  For 
  2878. example, a server downloading an application to a requester may appear to be a 
  2879. single action.  However, that operation can be broken down into the following 
  2880. component actions: 
  2881.  
  2882.  o Looks up application definition to find alias name. 
  2883.  o Checks access control file for that alias to find permissions. 
  2884.  o Looks up user ID in User Profile Management (UPM) to verify access. 
  2885.  o Sends application code over network to requester. 
  2886.  
  2887.  
  2888. ΓòÉΓòÉΓòÉ <hidden> Identify Parts of Process Accessing Problem Resource ΓòÉΓòÉΓòÉ
  2889.  
  2890. For example, if you suspect that excessive disk usage is causing the 
  2891. bottleneck, examine those components that access the disk. 
  2892.  
  2893. When all the components of a particular function are taken into account, it may 
  2894. become obvious why a resource is overused.  Combining knowledge about your 
  2895. application with data received from SPM/2 should point you in the right 
  2896. direction. 
  2897.  
  2898.  
  2899. ΓòÉΓòÉΓòÉ 5.2.3.2. Identifying Possible Solutions ΓòÉΓòÉΓòÉ
  2900.  
  2901. Once you have narrowed down the probable causes of a bottleneck, think of ways 
  2902. to relieve it, by either increasing capacity or off-loading some work.  Select 
  2903. one of the following for possible solutions: 
  2904.  
  2905.  o CPU and RAM 
  2906.  o DISK. 
  2907.  
  2908.  
  2909. ΓòÉΓòÉΓòÉ <hidden> CPU and RAM ΓòÉΓòÉΓòÉ
  2910.  
  2911.  o Faster hardware 
  2912.  o Additional memory 
  2913.  o Parameter tuning 
  2914.  o Removing unnecessary applications from application set 
  2915.  o Running OS/2 LAN Requester applications remotely at server (although this 
  2916.    would increase server CPU utilization) 
  2917.  o Application redesign 
  2918.  o Redistribution of RAM among LAN workstations (for example, when 2 
  2919.    workstations have the same workload requirements, but one has 12MB and the 
  2920.    other 4MB). 
  2921.  
  2922.  
  2923. ΓòÉΓòÉΓòÉ <hidden> Disk ΓòÉΓòÉΓòÉ
  2924.  
  2925.  o Faster, larger, or additional disk 
  2926.  o Disk planning (partitioning) 
  2927.  o Disk maintenance (defragmentation) 
  2928.  o Use of host DASD (consider impact on host DASD performance) 
  2929.  o Use of additional storage media (for example, optical disk or tape) 
  2930.  o Increasing the amount of physical RAM (reduce paging) 
  2931.  o Redistribution of workload among servers. 
  2932.  
  2933.  
  2934. ΓòÉΓòÉΓòÉ 5.2.4. Designing Tests ΓòÉΓòÉΓòÉ
  2935.  
  2936. Given the possible causes and solutions, design ways to test them. Prioritize 
  2937. your ideas from most likely to have an impact with minimal effort to least 
  2938. likely to have an impact with lots of effort.  Start with a single hypothesis 
  2939. to prove or disprove; do not try to examine several factors in one test. 
  2940.  
  2941. Good tests should yield results that act as benchmarks, which are standards by 
  2942. which something can be measured or judged. Select from the following topics for 
  2943. more information about benchmark tests: 
  2944.  
  2945.  o Good benchmarking characteristics 
  2946.  o Simple benchmarking suggestions 
  2947.  o The value of sensitivity studies. 
  2948.  
  2949.  
  2950. ΓòÉΓòÉΓòÉ 5.2.4.1. Benchmarking Characteristics ΓòÉΓòÉΓòÉ
  2951.  
  2952. Characteristics of good benchmark tests include: 
  2953.  
  2954.  o Each test is repeatable. 
  2955.  o Each iteration of a test is started in the same system state. 
  2956.  o No functions or applications are active in the system except the ones being 
  2957.    measured (unless the scenario includes other system activity).  Do not have 
  2958.    applications started and sitting idle, because they will use up RAM 
  2959.    resources, thereby increasing the likelihood of paging. 
  2960.  o The hardware and software used for benchmarking matches your production 
  2961.    environment. 
  2962.  
  2963.  More 
  2964.  
  2965.  
  2966. ΓòÉΓòÉΓòÉ <hidden> Benchmarking Characteristics: More ΓòÉΓòÉΓòÉ
  2967.  
  2968. Benchmarking involves running tests that use a representative set of programs 
  2969. and data designed to evaluate the performance of computer hardware and software 
  2970. in a given configuration.  When you are trying to identify bottlenecks in a 
  2971. system, benchmarking is essential for measuring progress. 
  2972.  
  2973. Begin benchmarking by running in a normal environment.  As a performance 
  2974. problem is narrowed down, develop specialized test cases to limit the scope of 
  2975. the performance factor being tested and observed.  Benchmarking does not have 
  2976. to be complex.  That is, the specialized test cases need not emulate an entire 
  2977. application to obtain valuable information.  Think in terms of simple 
  2978. measurements, and increase the complexity only when warranted. 
  2979.  
  2980.  
  2981. ΓòÉΓòÉΓòÉ 5.2.4.2. Benchmarking Suggestions ΓòÉΓòÉΓòÉ
  2982.  
  2983. Following are suggestions for simple benchmarking: 
  2984.  
  2985.  o Select individual functions. 
  2986.  o Use synthesized data. 
  2987.  o Take measurements before and after changes. 
  2988.  o For distributed environments: 
  2989.  
  2990.     - First, measure a one-requester run 
  2991.     - Simulate many users from a single requester. 
  2992.  
  2993.  
  2994. ΓòÉΓòÉΓòÉ <hidden> Select Individual Functions ΓòÉΓòÉΓòÉ
  2995.  
  2996. Select individual functions from your application that are indicative of the 
  2997. problem being addressed.  Generate a test case that emulates each function as 
  2998. simply as possible.  You do not necessarily need to run the whole application. 
  2999.  
  3000.  
  3001. ΓòÉΓòÉΓòÉ <hidden> Use Synthesized Data ΓòÉΓòÉΓòÉ
  3002.  
  3003. Meaningful values are not always necessary, so do not invest the time to create 
  3004. them.  Some examples follow: 
  3005.  
  3006.  o To determine how fast data can be retrieved across a communications line, 
  3007.    files or records containing miscellaneous characters will probably be 
  3008.    sufficient. 
  3009.  o To test screen response to a user-initiated request, the data presented on 
  3010.    the screen does not have to be meaningful or original. 
  3011.  o For a database application in which you search for records based on matching 
  3012.    values, those values do not need to be real. However, the size of the 
  3013.    database should match the production environment.  For example, if a large 
  3014.    database is needed, write a program to generate useful patterns of data 
  3015.    rather than keying in an entire database. 
  3016.  
  3017.  As you learn more about the operational characteristics and performance of 
  3018.  your system, you can then focus on a few complex scenarios using real data, if 
  3019.  necessary. 
  3020.  
  3021.  
  3022. ΓòÉΓòÉΓòÉ <hidden> Measurements Before and After ΓòÉΓòÉΓòÉ
  3023.  
  3024. Take measurements with SPM/2 before and after making parameter changes to your 
  3025. system (that is, for each benchmark run). Doing so ensures that your system is 
  3026. in the same state at the beginning of each test. 
  3027.  
  3028.  
  3029. ΓòÉΓòÉΓòÉ <hidden> Measure a One-Requester Run ΓòÉΓòÉΓòÉ
  3030.  
  3031. When measuring distributed system performance, first measure a one-requester 
  3032. run so that you have a solid base from which to start. In this way, you will 
  3033. learn what behavior to expect from your test or benchmark.  If you do not get 
  3034. similar behavior from multiple-requester runs, another problem may be 
  3035. indicated. 
  3036.  
  3037.  
  3038. ΓòÉΓòÉΓòÉ <hidden> Simulate Many Users from One Requester ΓòÉΓòÉΓòÉ
  3039.  
  3040. If you are testing in a distributed environment, try to simulate many users 
  3041. from a single requester by starting the same program in multiple processes or 
  3042. sessions on that one requester.  This method will not always work.  For 
  3043. example, if multiple processes cause the requester to become RAM-constrained or 
  3044. CPU-bound, or introduce a bottleneck at the adapter, the arrival rate of 
  3045. requests to the server will not accurately model the real world, and the test 
  3046. results will be unreliable.  Hence, this technique must first be verified in 
  3047. either of the following ways: 
  3048.  
  3049.  o Compare the sensitivity curve for the multiprocess run against that of the 
  3050.    single process/workstation run.  If the characteristics of the curves are 
  3051.    totally different, this method is not working.  (See Sensitivity Studies for 
  3052.    more information.) 
  3053.  
  3054.  o Run one process per workstation for n number of workstations.  Follow this 
  3055.    test with a single workstation test on which n number of processes are run. 
  3056.    If the results are different, this method is not working. 
  3057.  
  3058.  
  3059. ΓòÉΓòÉΓòÉ 5.2.4.3. Sensitivity Studies ΓòÉΓòÉΓòÉ
  3060.  
  3061. Sensitivity studies provide useful information.  In a sensitivity study, you 
  3062. change the value of a particular parameter or element in the system in small 
  3063. increments and run the tests for each new incremental value.  You can then plot 
  3064. throughput and response times from each test, making it relatively easy to 
  3065. locate the break in performance. 
  3066.  
  3067.  o Example sensitivity study graph 
  3068.  o Explanation of example. 
  3069.  
  3070.  
  3071. ΓòÉΓòÉΓòÉ <hidden> Example of a Sensitivity Study Graph ΓòÉΓòÉΓòÉ
  3072.  
  3073.  
  3074. ΓòÉΓòÉΓòÉ <hidden> Explanation of Example ΓòÉΓòÉΓòÉ
  3075.  
  3076. The example graph shows throughput results for a sensitivity study on the 
  3077. number of OS/2 Database requesters supported by an OS/2 Database server under a 
  3078. specific workload.  (These specific results cannot be generalized to apply to 
  3079. all remote database scenarios.) 
  3080.  
  3081. In this figure, each line in the graph represents the effect of increasing the 
  3082. number of concurrent users of a remote database. The difference between each of 
  3083. the three lines represents the amount of "think time" between the database 
  3084. requests sent by each requester. 
  3085.  
  3086. The results of this particular test show that throughput generally increases as 
  3087. the number of users increase, until paging occurs. Also, no more than 30 
  3088. requesters can be supported with the given system configuration (RAM, processor 
  3089. speed, and so on). 
  3090.  
  3091. To test whether changing the hardware will make a difference, free some memory 
  3092. by defining a smaller VDISK and rerun the same set of tests.  Doing so will 
  3093. show whether additional RAM would support more requesters. 
  3094.  
  3095.  
  3096. ΓòÉΓòÉΓòÉ 5.2.5. Testing Solutions ΓòÉΓòÉΓòÉ
  3097.  
  3098. Setting new variable values and running tests is probably the most repetitive 
  3099. part of the overall analysis process.  In this stage, response time should be 
  3100. measured for specific, repeatable events, both before and after changing a 
  3101. variable value. 
  3102.  
  3103. When performing these tests, keep in mind the following rules: 
  3104.  
  3105.  o Change only one thing at a time. 
  3106.  o Start in the same state each time. 
  3107.  o Check for control. 
  3108.  o Work on one problem at a time. 
  3109.  
  3110.  
  3111. ΓòÉΓòÉΓòÉ <hidden> Change Only One Thing at a Time ΓòÉΓòÉΓòÉ
  3112.  
  3113. Changing more than one thing at a time will cloud results by making it 
  3114. difficult to determine the individual affects of various changes on system 
  3115. performance.  In certain cases, "changing one thing" may actually mean 
  3116. "changing the minimum number of related things." 
  3117.  
  3118. For example, if you change certain NETBIOS settings in an IBMLAN.INI file, you 
  3119. must also change the associated LAN adapter setting in the Communications 
  3120. Manager profile. 
  3121.  
  3122.  
  3123. ΓòÉΓòÉΓòÉ <hidden> Start in the Same State ΓòÉΓòÉΓòÉ
  3124.  
  3125. It is imperative that you restore the system to its original state before each 
  3126. test is run.  If not, you will get unreliable results. 
  3127.  
  3128.  
  3129. ΓòÉΓòÉΓòÉ <hidden> Check Control ΓòÉΓòÉΓòÉ
  3130.  
  3131. Carefully design and document the test procedures and results.  This will 
  3132. ensure that you're doing things the same way from run to run, and not 
  3133. introducing new variables that could cloud the results. Recording actions and 
  3134. results is essential for tracking exactly what you have and have not tested. 
  3135.  
  3136.  
  3137. ΓòÉΓòÉΓòÉ <hidden> Work on One Problem at a Time ΓòÉΓòÉΓòÉ
  3138.  
  3139. You can easily lose focus when working with a large number of parameters and 
  3140. components.  Also, anomalies or problems (such as functional problems) often 
  3141. arise during testing. 
  3142.  
  3143. Resolve those problems that obstruct your goal of identifying bottlenecks and 
  3144. improving performance.  However, defer action on problems not directly related 
  3145. to your goal or give them to another group to work on in parallel.  The point 
  3146. here is to maintain your focus. 
  3147.  
  3148.  
  3149. ΓòÉΓòÉΓòÉ 5.2.6. Analyzing the Results ΓòÉΓòÉΓòÉ
  3150.  
  3151. Analyzing the results of tests involves interpreting and explaining the data 
  3152. obtained in order to understand what's going on in the system.  Question and 
  3153. think through test results without jumping to conclusions. As you establish 
  3154. benchmarks for your system, look for patterns of response time and throughput. 
  3155. Graphing throughput and response times also provides helpful insight. 
  3156.  
  3157. If the application has definable actions and measurable responses, the 
  3158. following rule must be true.  If not, the system is unstable because work or 
  3159. data has been created or destroyed, but not accounted for. 
  3160.  
  3161. (throughput) * (avg. response time)
  3162. -----------------------------------  ╤ö 1
  3163.        (number of users)
  3164.  
  3165.  
  3166. ΓòÉΓòÉΓòÉ <hidden> Analysis Example ΓòÉΓòÉΓòÉ
  3167.  
  3168. For example, suppose tuning has resulted in a decrease in the response time of 
  3169. a LAN Server.  However, the apparent response time at the requester is 
  3170. unchanged.  This may indicate the presence of another problem, perhaps 
  3171. somewhere between the LAN Server and the requester. 
  3172.  
  3173.  
  3174. ΓòÉΓòÉΓòÉ <hidden> Graphing Throughput and Response Times ΓòÉΓòÉΓòÉ
  3175.  
  3176. Record throughput and response times as each variable in the system is changed 
  3177. (such as number of users, buffer size, or amount of RAM).  Use this data to 
  3178. plot the following graphs: 
  3179.  
  3180.  o Throughput versus variable 
  3181.  o Response time versus variable 
  3182.  o Throughput versus response time. 
  3183.  
  3184.  If the variable values have been tested over a wide enough range, you should 
  3185.  observe a point in these curves where there will be a distinct break or 
  3186.  "knee."  This knee indicates the point where adding more resources (or tasks) 
  3187.  costs more than it's worth.  See Plotting Throughput and Response Time and 
  3188.  Sensitivity Studies for more information. 
  3189.  
  3190.  
  3191. ΓòÉΓòÉΓòÉ 5.3. Interpreting Graphs: Overview ΓòÉΓòÉΓòÉ
  3192.  
  3193.  
  3194. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  3195.  
  3196. The SPM/2 Graph can display up to three resource graphs at a time: one each for 
  3197. CPU, disk, and RAM resources. 
  3198.  
  3199. The status bar of the SPM/2 Graph shows the name of the workstation being 
  3200. monitored.  The status bar displays LOCAL as the workstation name if the SPM/2 
  3201. Graph is running on the system about which it is collecting data. 
  3202.  
  3203. Each resource graph displays one or more resource data lines, each of which 
  3204. shows the percentage of activity (for CPU, disk, or memory usage) on the 
  3205. vertical axis of the resource graph, ranging from 0 at the bottom of the window 
  3206. to 100 at the top of the window. In the resource graphs, each legend color 
  3207. corresponds to the respective resource data line of the same color. 
  3208.  
  3209.  
  3210. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  3211.  
  3212. Select one: 
  3213.  
  3214.  o CPU Graph 
  3215.  o Disk Graph 
  3216.  o RAM Graph. 
  3217.  
  3218.  
  3219. ΓòÉΓòÉΓòÉ 5.3.1. The CPU Graph: Description ΓòÉΓòÉΓòÉ
  3220.  
  3221. The CPU Graph measures total CPU usage by plotting the percentage of time that 
  3222. the CPU is busy against total CPU time.  If CPU activity remains high for an 
  3223. extended period of time, the system may have too many CPU-intensive tasks 
  3224. running at once.  This can slow system response time.  If CPU activity is low, 
  3225. the system may be underused and can probably handle more tasks. 
  3226.  
  3227. Each point on the data line represents the percentage of time the CPU was 
  3228. active during the previous sampling period (that is, since the previous point 
  3229. was plotted). 
  3230.  
  3231.  
  3232. ΓòÉΓòÉΓòÉ 5.3.2. The Disk Graph: Description ΓòÉΓòÉΓòÉ
  3233.  
  3234. The Disk Graph measures the percentage of time the disk device driver is 
  3235. handling requests against the total time.  Disk driver time is the time it 
  3236. takes to satisfy an I/O request.  This period begins when the I/O request is 
  3237. handed to the device driver and ends when the request is complete (when data is 
  3238. either written or read and returned to the requester). 
  3239.  
  3240. The Disk Graph displays a data line for each physical disk in the system.  The 
  3241. legend to the right of the graph displays the name of the monitored resource in 
  3242. the same color as the corresponding line on the graph. 
  3243.  
  3244. Each point on the data line represents the percentage of time the disk was busy 
  3245. during the previous sampling period (that is, since the previous point was 
  3246. plotted). 
  3247.  
  3248. If disk activity remains high for an extended period of time, processes may 
  3249. have to wait for long periods in a queue to access the disk before continuing. 
  3250. This can slow system response time. 
  3251.  
  3252.  
  3253. ΓòÉΓòÉΓòÉ 5.3.3. RAM Graph: Description ΓòÉΓòÉΓòÉ
  3254.  
  3255.  
  3256. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  3257.  
  3258. The RAM Graph uses five resource data lines to display information about two 
  3259. types of memory activity: 
  3260.  
  3261.  o Memory allocation and use 
  3262.  
  3263.     - Resident memory 
  3264.     - Working set memory 
  3265.     - Used memory. 
  3266.  
  3267.  o Paging activity 
  3268.  
  3269.     - Page-out activity (times 10) 
  3270.     - Page-in activity (times 10). 
  3271.  
  3272.  The title bar of the RAM Graph displays the total memory in megabytes. This 
  3273.  value will be slightly less than the total physical memory installed.  This is 
  3274.  due to ROM BIOS being loaded into RAM, making that portion of RAM unavailable 
  3275.  to the OS/2 system. The legend to the right of the graph displays the name of 
  3276.  the monitored resource in the same color as the corresponding line on the 
  3277.  graph. 
  3278.  
  3279.  If page-in and page-out activity are high and the working set is near 100%, 
  3280.  you may need to install more memory. 
  3281.  
  3282.  
  3283. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  3284.  
  3285. Select one: 
  3286.  
  3287.  o RAM memory 
  3288.  o Resident memory 
  3289.  o Working set memory 
  3290.  o Used memory 
  3291.  o Free memory 
  3292.  o Page-out activity 
  3293.  o Page-in activity 
  3294.  o RAM graph scenarios. 
  3295.  
  3296.  
  3297. ΓòÉΓòÉΓòÉ <hidden> RAM Memory ΓòÉΓòÉΓòÉ
  3298.  
  3299.  
  3300. ΓòÉΓòÉΓòÉ 5.3.3.1. Resident Memory ΓòÉΓòÉΓòÉ
  3301.  
  3302. Memory that cannot be paged out or discarded is called resident.  It remains in 
  3303. physical RAM as long as the application that owns it is loaded. 
  3304.  
  3305. Examples of applications and their resident memory components are: 
  3306.  
  3307.  o Parts of the OS/2 kernel 
  3308.  o VDISK 
  3309.  o DISKCACHE. 
  3310.  
  3311.  Another application can be loaded only if there is enough swappable memory for 
  3312.  loading.  It will run efficiently only if there is enough swappable memory to 
  3313.  contain its working set. 
  3314.  
  3315.  Each point on the data line represents the percentage of RAM that contains 
  3316.  resident pages at the moment the point is plotted. 
  3317.  
  3318.  
  3319. ΓòÉΓòÉΓòÉ 5.3.3.2. Working Set Memory ΓòÉΓòÉΓòÉ
  3320.  
  3321. The reported working set is the percentage of memory accessed during the last 
  3322. working set period.  The collection frequency determines how often the working 
  3323. set is updated.  That is, when the time interval specified by the collection 
  3324. frequency has passed, the working set for the last working set period is 
  3325. calculated, converted into a percentage of total RAM, and plotted as a new 
  3326. point on the graph. 
  3327.  
  3328. The reported working set will always be bounded by resident and used memory: 
  3329. resident ╤ö working set ╤ö used. 
  3330.  
  3331. Working set measurements are only valid when there is sufficient RAM to contain 
  3332. the working set. 
  3333.  
  3334. Related information: 
  3335.  
  3336.  o Uses of RAM working set 
  3337.  o How the working set is measured. 
  3338.  
  3339.  
  3340. ΓòÉΓòÉΓòÉ 5.3.3.2.1. Uses of RAM Working Set ΓòÉΓòÉΓòÉ
  3341.  
  3342. Whether you should use THESEUS2 or the RAM Graph to compute working set depends 
  3343. on your purpose: 
  3344.  
  3345.  o To determine the optimum amount of RAM required to run a particular process, 
  3346.    application, or set of applications, use THESEUS2. 
  3347.  
  3348.  o To observe an application's or function's effect on working set, use the RAM 
  3349.    Graph. 
  3350.  
  3351.  Related information: 
  3352.  
  3353.  o Determining the amount of RAM needed to support an application scenario 
  3354.  o Observing the effect of executing specific functions within an application. 
  3355.  
  3356.  
  3357. ΓòÉΓòÉΓòÉ <hidden> Determining RAM to Support an Application ΓòÉΓòÉΓòÉ
  3358.  
  3359. To determine the amount of RAM needed for acceptable performance of a given 
  3360. application scenario in a given environment, the working set period must extend 
  3361. from the beginning of a scenario to the end.  The best way to compute this is 
  3362. to use the working set function of THESEUS2.  Also, to determine memory 
  3363. utilization by process, use THESEUS2. (For instructions, see the "How to Do 
  3364. Things" section of the "How to Use THESEUS2" chapter in the THESEUS2 
  3365. Reference.) 
  3366.  
  3367. Because the RAM Graph only shows the working set for a sliding window interval 
  3368. of time (that is, an interval that is shorter than an entire scenario that 
  3369. slides across time), the graph cannot be used to compute working set values for 
  3370. the entire scenario. 
  3371.  
  3372.  
  3373. ΓòÉΓòÉΓòÉ <hidden> Determining Effect of Specific Functions ΓòÉΓòÉΓòÉ
  3374.  
  3375. To observe the effect of executing specific functions within an application, 
  3376. use the RAM Graph.  For the RAM Graph, the working set period is typically 
  3377. shorter than the entire scenario time, and hence only shows the working set 
  3378. needed for subsets of the scenario of interest. 
  3379.  
  3380. With the RAM Graph displayed, you can try different functions of an application 
  3381. to see the effect of executing those functions on the working set.  Doing so 
  3382. will help you identify which functions require more RAM to execute. 
  3383.  
  3384.  Note:  Until a full working set period has elapsed (for example, 60 seconds, 
  3385.         which is the default), the working set numbers represent the RAM 
  3386.         accessed during a portion of a full working set interval.  As a result, 
  3387.         the value will be temporarily low. 
  3388.  
  3389.  If the actual working set exceeds physical memory (that is, more pages are 
  3390.  accessed during the working set period than will fit in swappable memory), the 
  3391.  working set will be reported at or near 100% and paging may occur.  If the 
  3392.  working set consistently remains near 100%, you may want to reduce the number 
  3393.  of active applications or install more physical RAM. 
  3394.  
  3395.  
  3396. ΓòÉΓòÉΓòÉ 5.3.3.2.2. How the Working Set Is Measured ΓòÉΓòÉΓòÉ
  3397.  
  3398. The working set is calculated as the number of RAM pages that were accessed 
  3399. during a specific interval of time.  SPM/2 keeps track of which pages were 
  3400. accessed during each sampling period. 
  3401.  
  3402. Related information: 
  3403.  
  3404.  Page Ager 
  3405.  
  3406.  
  3407. ΓòÉΓòÉΓòÉ <hidden> Page Ager ΓòÉΓòÉΓòÉ
  3408.  
  3409. OS/2 memory management has a "Page Ager" routine that determines which pages 
  3410. can be paged out to disk.  Occasionally, SPM/2 and the Page Ager get in each 
  3411. other's way.  If the Page Ager runs just before an SPM/2 sampling period is 
  3412. complete, SPM/2 will not find many pages that have been accessed. As a result, 
  3413. the working set value takes a quick drop and then returns to normal.  Ignore 
  3414. sudden, short drops in the working set value. 
  3415.  
  3416.  
  3417. ΓòÉΓòÉΓòÉ 5.3.3.3. Used Memory ΓòÉΓòÉΓòÉ
  3418.  
  3419. Used memory is RAM allocated by the OS/2 system and present in physical memory 
  3420. (that is, not paged out or discarded). 
  3421.  
  3422. Each point on the used memory line represents the percentage of RAM that 
  3423. contains used pages at the moment the point is plotted. 
  3424.  
  3425.  
  3426. ΓòÉΓòÉΓòÉ 5.3.3.4. Free Memory ΓòÉΓòÉΓòÉ
  3427.  
  3428. Free memory is physical memory that is not allocated to an application or to 
  3429. the system.  In OS/2 2.0, it is normal for there to be no free memory. 
  3430. Therefore, the RAM Graph has no line indicating free memory, and the used 
  3431. memory line may often be near 100%. Free memory is indicated by the area 
  3432. between the used memory line and the top of the graph. 
  3433.  
  3434.  
  3435. ΓòÉΓòÉΓòÉ 5.3.3.5. Page-Out Activity ΓòÉΓòÉΓòÉ
  3436.  
  3437. The RAM Graph measures the amount of memory-paging activity.  When demand for 
  3438. memory exceeds the capacity of physical memory, the OS/2 system pages memory to 
  3439. disk in order to free physical memory. 
  3440.  
  3441. The Pgs Out X 10 resource data line shows the pages per second written to the 
  3442. SWAPPER.DAT file during the last summary interval.  This value is multiplied by 
  3443. 10 for a more legible graph. 
  3444.  
  3445.  
  3446. ΓòÉΓòÉΓòÉ 5.3.3.6. Page-In Activity ΓòÉΓòÉΓòÉ
  3447.  
  3448. Previously paged out memory is paged in from disk if it is required in physical 
  3449. memory, the memory is paged in from disk. The Pgs In X 10 resource data line 
  3450. shows the number of pages brought into memory from the SWAPPER.DAT file during 
  3451. the last summary interval. This value is multiplied by 10 for a more legible 
  3452. graph. 
  3453.  
  3454. When paging activity remains high for an extended period of time, the system is 
  3455. probably spending more time paging memory than doing useful work.  If this is 
  3456. the case, the computer probably has insufficient physical memory to support the 
  3457. applications currently running. 
  3458.  
  3459.  Note:  For SWAPPER.DAT file analysis, use THESEUS2. 
  3460.  
  3461.  
  3462. ΓòÉΓòÉΓòÉ 5.3.3.7. RAM Graph Scenarios ΓòÉΓòÉΓòÉ
  3463.  
  3464. The following example scenarios illustrate how applications affect memory usage 
  3465. and how memory usage is reported as working set by the RAM graph.  The working 
  3466. set period is set to 60 seconds for all scenarios. 
  3467.  
  3468.  o Scenario 1 
  3469.  o Scenario 2 
  3470.  o Scenario 3 
  3471.  o Scenario 4 
  3472.  o Scenario 5 
  3473.  o Scenario 6 
  3474.  o Scenario 7. 
  3475.  
  3476.  
  3477. ΓòÉΓòÉΓòÉ <hidden> Scenario 1 ΓòÉΓòÉΓòÉ
  3478.  
  3479. Scenario 1 
  3480.  
  3481. A large application is loaded.  The working set shows a big increase.  The 
  3482. resident memory shows a small increase. The user decides not to use the 
  3483. application for a while, and a minute later the working set drops back down. 
  3484.  
  3485. Interpretation 
  3486.  
  3487. The loaded program is reported as part of the working set (which includes a 
  3488. small amount of resident RAM and a sizable amount of pageable or discardable 
  3489. RAM).  For 60 seconds, the memory used to load the program continues to be 
  3490. reported in the working set. 
  3491.  
  3492. Because the application is not active during those 60 seconds (and therefore 
  3493. most of the memory allocated to the application is not accessed), the working 
  3494. set drops back down after a minute even though the program is still loaded. 
  3495. However, the resident memory allocated to the application is still reported as 
  3496. part of resident memory, and therefore, also as part of the working set. 
  3497.  
  3498.  
  3499. ΓòÉΓòÉΓòÉ <hidden> Scenario 2 ΓòÉΓòÉΓòÉ
  3500.  
  3501. Scenario 2 
  3502.  
  3503. A large application is loaded.  The working set shows a bigger increase than 
  3504. expected. 
  3505.  
  3506. Interpretation 
  3507.  
  3508. This application probably uses more memory to load than it requires for normal 
  3509. operation.  The reported working set should drop later during normal operation. 
  3510.  
  3511.  
  3512. ΓòÉΓòÉΓòÉ <hidden> Scenario 3 ΓòÉΓòÉΓòÉ
  3513.  
  3514. Scenario 3 
  3515.  
  3516. A large application is loaded but is then immediately ended.  The reported 
  3517. working set rises and falls quickly. 
  3518.  
  3519. Interpretation 
  3520.  
  3521. When the application is unloaded, the OS/2 system frees the memory that was 
  3522. used by the application.  Freed memory is not reported in working set. 
  3523.  
  3524.  
  3525. ΓòÉΓòÉΓòÉ <hidden> Scenario 4 ΓòÉΓòÉΓòÉ
  3526.  
  3527. Scenario 4 
  3528.  
  3529. The page-in and page-out lines show lots of activity, even though the working 
  3530. set is not at 100% of capacity. 
  3531.  
  3532. Interpretation 
  3533.  
  3534. When new pages must be paged in or loaded, old pages that have not been 
  3535. accessed recently may need to be paged out or discarded. If the memory that is 
  3536. being paged out has not been accessed in the last 60 seconds, it is not 
  3537. included in the RAM graph's working set line.  Hence, paging may occur even if 
  3538. the working set line seems reasonable. 
  3539.  
  3540. Even with occasional paging activity, enough memory may remain for good 
  3541. performance.  More physical memory is not necessarily needed. 
  3542.  
  3543.  
  3544. ΓòÉΓòÉΓòÉ <hidden> Scenario 5 ΓòÉΓòÉΓòÉ
  3545.  
  3546. Scenario 5 
  3547.  
  3548. When the OS/2 system is started, SPM/2 indicates that resident memory is higher 
  3549. than anticipated. 
  3550.  
  3551. Interpretation 
  3552.  
  3553. The resident memory may include a large VDISK or DISKCACHE as defined in the 
  3554. CONFIG.SYS file. 
  3555.  
  3556.  
  3557. ΓòÉΓòÉΓòÉ <hidden> Scenario 6 ΓòÉΓòÉΓòÉ
  3558.  
  3559. Scenario 6 
  3560.  
  3561. For a stable scenario, the working set period is changed from 60 seconds to 10 
  3562. seconds.  The reported working set is now lower. 
  3563.  
  3564. Interpretation 
  3565.  
  3566. The working set is lower because, typically, less memory is accessed in 10 
  3567. seconds than in 60. 
  3568.  
  3569.  
  3570. ΓòÉΓòÉΓòÉ <hidden> Scenario 7 ΓòÉΓòÉΓòÉ
  3571.  
  3572. Scenario 7 
  3573.  
  3574. For a stable scenario, the working set period is changed from 60 seconds to 
  3575. 1000 seconds.  The reported working set is now higher. 
  3576.  
  3577. Interpretation 
  3578.  
  3579. The working set is higher because a larger variety of activities occurs in 1000 
  3580. seconds than in 60 seconds, and hence, more memory is accessed. 
  3581.  
  3582.  
  3583. ΓòÉΓòÉΓòÉ 5.4. Report Output: Overview ΓòÉΓòÉΓòÉ
  3584.  
  3585.  
  3586. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  3587.  
  3588. The report headings in each of the report formats (summary, tabular, and dump) 
  3589. contain the following information: 
  3590.  
  3591.  o Date and time report was created 
  3592.  o Name of the report description file 
  3593.  o Report title 
  3594.  o Report type 
  3595.  o Starting and stopping points of the analysis period (date and time stamp) 
  3596.  o Monitor sessions included in the report 
  3597.  o Summary interval. 
  3598.  
  3599.  Note:  The summary interval is the span of time over which records are 
  3600.         selected from the .LOG file and summarized.  (Each record contains all 
  3601.         the data that is read for one collection sample.)  If multiple records 
  3602.         fall within the summary interval (that is, the collection frequency is 
  3603.         less than the summary interval), the values in the multiple records are 
  3604.         averaged for the report. 
  3605.  
  3606.                   .LOG file    |<---------s<---------s<---------s<---------s<---------s|
  3607.  
  3608.  
  3609.                   .RDF file          S---------------------|---------------------ST
  3610.  
  3611.                                       <-------  I  -------> <-------  I  ------->
  3612.  
  3613.                   Legend:
  3614.                      s  == Collection sample taken; value includes all activity back to ">"
  3615.                      S  == Start time for report
  3616.                      ST == Stop time for report
  3617.                      I  == Summary Interval
  3618.  
  3619.         Each collection sample contains the value of the performance metric at 
  3620.         the time it is read, which represents activity since the last time the 
  3621.         metric was read.  If the previous collection sample started prior to 
  3622.         the beginning of this summary interval, some of the data being 
  3623.         represented in the current summary interval may in fact be activity 
  3624.         that occurred in the previous interval. 
  3625.  
  3626.  
  3627. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  3628.  
  3629. Select one: 
  3630.  
  3631.  o Tabular report format 
  3632.  o Summary report format 
  3633.  o Dump report format 
  3634.  o Report metrics. 
  3635.  
  3636.  
  3637. ΓòÉΓòÉΓòÉ 5.4.1. Tabular Report Format: Description ΓòÉΓòÉΓòÉ
  3638.  
  3639. The tabular report format provides a high-level summary of collection data 
  3640. similar to that graphed by the SPM/2 Graph.  See Interpreting Graphs for help 
  3641. interpreting the results. 
  3642.  
  3643. The data is organized into tabular form suitable for use by other applications, 
  3644. such as databases, spreadsheets, and editors, or for printing.  Each detail 
  3645. line provides the summary information for one interval.  Each line contains the 
  3646. time stamp corresponding to the last second of the analysis period or interval. 
  3647.  
  3648. Each summary time marks the end of one summary interval. 
  3649.  
  3650. The summary interval and the summary time are not used in metric calculations 
  3651. or summarizations.  Instead, the values of the timer metrics for the records 
  3652. that fall within the summary interval are used. 
  3653.  
  3654. If you selected Spreadsheet compatible report, text strings are delimited with 
  3655. quotation marks. 
  3656.  
  3657.  
  3658. ΓòÉΓòÉΓòÉ 5.4.2. Summary Report Format: Description ΓòÉΓòÉΓòÉ
  3659.  
  3660. The summary report format can provide information about the following system 
  3661. resources:  CPU, memory, files, file system (FAT and HPFS), physical disk, 
  3662. printers, and communications ports. 
  3663.  
  3664. The number of resources in a summary report is selected when you create the 
  3665. report description (.RDF) file.  The specific kind of information provided for 
  3666. these resources depends on which of the following report levels you choose: 
  3667.  
  3668.  o Workstation 
  3669.  o Application 
  3670.  o Process 
  3671.  o Thread. 
  3672.  
  3673.  Each summary time marks the end of one summary interval. 
  3674.  
  3675.  The summary interval and the summary time are not used in metric calculations 
  3676.  or summarizations.  Instead, the values of the timer metrics for the records 
  3677.  that fall within the summary interval are used. 
  3678.  
  3679.  
  3680. ΓòÉΓòÉΓòÉ <hidden> Workstation ΓòÉΓòÉΓòÉ
  3681.  
  3682. If you selected Workstation, the data is summarized as total activity for the 
  3683. entire workstation. 
  3684.  
  3685.  
  3686. ΓòÉΓòÉΓòÉ <hidden> Application ΓòÉΓòÉΓòÉ
  3687.  
  3688. If you selected Application, then in addition to workstation totals, activity 
  3689. is listed for each individual application running at that workstation. 
  3690.  
  3691.  
  3692. ΓòÉΓòÉΓòÉ <hidden> Process ΓòÉΓòÉΓòÉ
  3693.  
  3694. If you selected Process, then in addition to workstation totals and application 
  3695. breakdown, activity is also listed by individual process. 
  3696.  
  3697.  
  3698. ΓòÉΓòÉΓòÉ <hidden> Thread ΓòÉΓòÉΓòÉ
  3699.  
  3700. If you selected Thread, then activity is summarized at the thread level and at 
  3701. every higher level (that is, workstation, application, and process). 
  3702.  
  3703.  
  3704. ΓòÉΓòÉΓòÉ 5.4.3. Dump Report Format: Description ΓòÉΓòÉΓòÉ
  3705.  
  3706. SPM/2 provides a dump report type for viewing the values of the collected 
  3707. performance metrics from the OS/2 base operating system and user applications. 
  3708. (See the User Performance Hooks chapter for more information about placing 
  3709. metrics in an application.) 
  3710.  
  3711. The dump report format shows the decimal value of all data items in all 
  3712. collected groups at each recording interval.  Any counter or timer greater than 
  3713. the field width is converted to a floating point value. 
  3714.  
  3715. The dump report contains every record in the monitor session (.LOG) file that 
  3716. is within the selection criteria. 
  3717.  
  3718. The summary time is the time the record was collected. 
  3719.  
  3720. The reported metrics represent the average performance since the last summary 
  3721. time. 
  3722.  
  3723.  
  3724. ΓòÉΓòÉΓòÉ 5.4.4. Report Metrics: Overview ΓòÉΓòÉΓòÉ
  3725.  
  3726.  
  3727. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  3728.  
  3729. This section contains definitions of the performance metrics which are 
  3730. collected and on which the reports are based.  The metric names are usually the 
  3731. report column headings. 
  3732.  
  3733. Every possible metric does not necessarily appear in every report. Which heads 
  3734. appear in the report depend on several factors that you request when you run 
  3735. the report: 
  3736.  
  3737.  o Format of report (tabular, summary, or dump) 
  3738.  o Level of detail for the summary report (workstation, application, process, 
  3739.    or thread) 
  3740.  o Resources to be included. 
  3741.  
  3742.  More 
  3743.  
  3744.  
  3745. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  3746.  
  3747. Select one: 
  3748.  
  3749.  o Tabular 
  3750.  o Summary 
  3751.  o Dump. 
  3752.  
  3753.  
  3754. ΓòÉΓòÉΓòÉ <hidden> Report Metrics:  More ΓòÉΓòÉΓòÉ
  3755.  
  3756. All metrics represent values accumulated or calculated during the requested 
  3757. summary interval. 
  3758.  
  3759. Metrics collected for the OS/2 program are defined in this section. Metrics for 
  3760. user-written applications are explained in the User Metrics chapter. 
  3761.  
  3762. The summary and tabular report formats are made up of both collected and 
  3763. calculated data values.  The dump report format contains only collected data 
  3764. values. 
  3765.  
  3766. Metrics should be read in the context of their placement in the report.  For 
  3767. example, in a summary report, under the division for HPFS CACHE, there can be 
  3768. two Hit % metrics.  The first is for the overall percentage of high performance 
  3769. file system (HPFS) hits.  The second, which falls under a superior Read 
  3770. heading, is the percentage of HPFS read hits. 
  3771.  
  3772.  
  3773. ΓòÉΓòÉΓòÉ 5.4.4.1. Tabular Report Metrics ΓòÉΓòÉΓòÉ
  3774.  
  3775. Metrics belonging to the following resource groups appear in a tabular report: 
  3776.  
  3777.  o CPU 
  3778.  
  3779.     Busy Time The time that the CPU was busy (including both task and interrupt 
  3780.          time). 
  3781.  
  3782.     Busy % The percentage of time that the CPU was busy (including both task 
  3783.          and interrupt time). 
  3784.  
  3785.     Interrupt Service Time The time the CPU was busy servicing interrupts. 
  3786.  
  3787.     Interrupt Service % The percentage of CPU busy time processing interrupts. 
  3788.  
  3789.  o Memory 
  3790.  
  3791.     Used Memory The number of pages allocated and not paged out or discarded. 
  3792.  
  3793.     Used Memory % The percentage of total pages of memory allocated and not 
  3794.          paged out or discarded. 
  3795.  
  3796.     Working Set Memory The number of pages accessed during the working set 
  3797.          period. 
  3798.  
  3799.     Working Set Memory % The percentage of memory accessed during the working 
  3800.          set period. 
  3801.  
  3802.     Resident Memory The number of pages that cannot be paged out or discarded. 
  3803.  
  3804.     Resident Memory % The percentage of memory that cannot be paged out or 
  3805.          discarded. 
  3806.  
  3807.     Pages In The number of pages swapped in from disk. 
  3808.  
  3809.     Page-In % The percentage of pages swapped in from disk in relation to total 
  3810.          pages swapped. 
  3811.  
  3812.     Pages Out The number of pages swapped out to disk. 
  3813.  
  3814.     Page-Out % The percentage of pages swapped out to disk in relation to total 
  3815.          pages swapped. 
  3816.  
  3817.  o FAT Cache 
  3818.  
  3819.     Hits The total number of read and write requests serviced by the cache. 
  3820.  
  3821.     Hit % The percentage of the read or write requests serviced by the cache. 
  3822.  
  3823.  o HPFS Cache 
  3824.  
  3825.     Hits The total number of read and write requests serviced by the cache.. 
  3826.  
  3827.     Hit % The percentage of the read or write requests serviced by the cache. 
  3828.  
  3829.  o Disk 
  3830.  
  3831.     Accesses The total number of read and write operations. 
  3832.  
  3833.     Utilization % The percentage of time that the disk was busy performing read 
  3834.          and write operations. 
  3835.  
  3836.  
  3837. ΓòÉΓòÉΓòÉ 5.4.4.2. Summary Report Metrics ΓòÉΓòÉΓòÉ
  3838.  
  3839. Metrics belonging to the following resource groups appear in a summary report. 
  3840. Select a group to see its associated metrics and their definitions: 
  3841.  
  3842.  o CPU 
  3843.  o Memory 
  3844.  o Files 
  3845.  o FAT cache 
  3846.  o HPFS cache 
  3847.  o Disk 
  3848.  o Printer 
  3849.  o Communications port. 
  3850.  
  3851.  
  3852. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - CPU ΓòÉΓòÉΓòÉ
  3853.  
  3854.  Processor - % Utilization The percentage of time that the CPU was busy. 
  3855.  
  3856.  Processor - Busy Time The time that the CPU was busy, which includes both task 
  3857.       and interrupt time. 
  3858.  
  3859.  Thread - Dispatches The number of times threads were dispatched to use the 
  3860.       CPU. 
  3861.  
  3862.  Thread - Average Timeslice The average thread run time per dispatch. 
  3863.  
  3864.  Interrupt - % Utilization The percentage of CPU busy time processing 
  3865.       interrupts. 
  3866.  
  3867.  Interrupt - Rate The number of interrupt requests per second. 
  3868.  
  3869.  Interrupt - Service Time The time the CPU was busy servicing interrupts. 
  3870.  
  3871.  
  3872. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Memory ΓòÉΓòÉΓòÉ
  3873.  
  3874.  Total System RAM The total RAM memory installed in the system less that used 
  3875.       for the ROM BIOS patch. 
  3876.  
  3877.  Working Set Period The time period defined for working set memory analysis. 
  3878.  
  3879.  Used Memory The number of pages allocated and not paged out or discarded. 
  3880.  
  3881.  Working Set Memory The number of pages accessed during the working set period. 
  3882.  
  3883.  Resident Memory The number of pages that cannot be paged out or discarded. 
  3884.  
  3885.  Paging Rate The total number of pages swapped in from, swapped out to, or 
  3886.       demand loaded from disk per time interval. 
  3887.  
  3888.  Page-In The number of pages swapped in from disk. 
  3889.  
  3890.  Page-Out The number of pages swapped out to disk. 
  3891.  
  3892.  Page Demand Loads The number of pages demand loaded from disk. 
  3893.  
  3894.  Page Discards The number of pages discarded. 
  3895.  
  3896.  Page Faults The number of page faults. 
  3897.  
  3898.  Page Fault Rate The number of page faults per time interval. 
  3899.  
  3900.  
  3901. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Files ΓòÉΓòÉΓòÉ
  3902.  
  3903.  Read - Requests The number of read requests from the file. 
  3904.  
  3905.  Read - KBytes The number of bytes read from the file. 
  3906.  
  3907.  Read - Average KBytes The total number of bytes read from the file divided by 
  3908.       the number of read requests. 
  3909.  
  3910.  Read - Average Time The total time spent reading the file divided by the 
  3911.       number of read requests. 
  3912.  
  3913.  Writes - Requests The number of writes to the file. 
  3914.  
  3915.  Write - KBytes The number of bytes written to the file. 
  3916.  
  3917.  Write - Average KBytes The total number of bytes written to the file divided 
  3918.       by the number of write requests. 
  3919.  
  3920.  Write - Average Time The total time spent writing to the file divided by the 
  3921.       number of write requests. 
  3922.  
  3923.  
  3924. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - FAT Cache ΓòÉΓòÉΓòÉ
  3925.  
  3926.  Hit % The percentage of the read or write requests serviced by the cache. 
  3927.  
  3928.  Hits The total number of read and write requests serviced by the cache. 
  3929.  
  3930.  Misses The total number of read and write requests not serviced by the cache. 
  3931.  
  3932.  Bypasses The total number of read and write requests deliberately bypassing 
  3933.       cache. 
  3934.  
  3935.  Cache Read - Hits The number of read requests serviced by the cache. 
  3936.  
  3937.  Cache Read - Misses The number of read requests not serviced by the cache. 
  3938.  
  3939.  Cache Write - Hits The number of write requests serviced by the cache. 
  3940.  
  3941.  Cache Write - Misses The number of write requests not serviced by the cache. 
  3942.  
  3943.  Cache Write - Forces The number of write operations to disk due to a cache 
  3944.       full condition. 
  3945.  
  3946.  
  3947. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - HPFS Cache ΓòÉΓòÉΓòÉ
  3948.  
  3949.  Hit % The percentage of the read or write requests serviced by the cache. 
  3950.  
  3951.  Hits The total number of read and write requests serviced by the cache.. 
  3952.  
  3953.  Misses The total number of read and write requests not serviced by the cache. 
  3954.  
  3955.  Flushes The number of times that the cache was flushed due to no free buffers 
  3956.       (for "Force Lazy"). 
  3957.  
  3958.  Cache Heap - % Utilization The percentage of the total heap space that is 
  3959.       allocated. 
  3960.  
  3961.  Cache Heap - MBytes The total heap space (allocated and free) specified in 
  3962.       millions of bytes. 
  3963.  
  3964.  Cache Heap - Subdirectory % Utilization The percentage of the total heap space 
  3965.       that is allocated to subdirectories. 
  3966.  
  3967.  Cache Heap - Objects The number of objects allocated in the heap. 
  3968.  
  3969.  Cache Heap - Object Average KB Average cache heap space in kilobytes. 
  3970.  
  3971.  Read Ahead - Hit % The percentage of time that the correct data in a buffer 
  3972.       was accessed in relation to the total number of times a buffer was 
  3973.       accessed assuming the data would be valid based on the read ahead. 
  3974.  
  3975.  Read Ahead - Blocks Read The number of cache blocks read by read ahead. 
  3976.  
  3977.  Read Ahead - Total Accesses The number of times a buffer was accessed assuming 
  3978.       that the data is valid because of the read ahead. 
  3979.  
  3980.  Read Ahead - Hits The number of times a buffer with valid data was accessed by 
  3981.       read ahead. 
  3982.  
  3983.  Read Ahead - Overwrites The number of cache blocks read by read ahead that 
  3984.       were overwritten before being used. 
  3985.  
  3986.  Opened Files - Total The number of HPFS files that were opened. 
  3987.  
  3988.  Opened Files - Being Written The number of HPFS files currently being written. 
  3989.  
  3990.  Closed Files - Total The number of HPFS files that were closed. 
  3991.  
  3992.  Closed Files - % Read The percentage of HPFS files closed that were only read. 
  3993.  
  3994.  Closed Files - % Sequentially Read The percentage of HPFS files closed that 
  3995.       were read strictly sequentially. 
  3996.  
  3997.  
  3998. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Disk ΓòÉΓòÉΓòÉ
  3999.  
  4000.  Physical ID The id of the physical disk 
  4001.  
  4002.  % Utilization The percentage of time that the disk was busy performing read 
  4003.       and write operations. 
  4004.  
  4005.  Access Rate The number of read and write operations per second. 
  4006.  
  4007.  Read - Requests The number of read operations. 
  4008.  
  4009.  Read - Sectors The number of sectors read from the disk. 
  4010.  
  4011.  Read - Average Sectors The average number of sectors read from disk per read 
  4012.       request. 
  4013.  
  4014.  Read - Average Time The average time per read request. 
  4015.  
  4016.  Write - Requests The number of write operations. 
  4017.  
  4018.  Write - Sectors The number of sectors written to the disk. 
  4019.  
  4020.  Write - Avg Sectors The average number of sectors read from disk per write 
  4021.       request. 
  4022.  
  4023.  Write - Average Time The average time per write request. 
  4024.  
  4025.  
  4026. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Printer ΓòÉΓòÉΓòÉ
  4027.  
  4028.  ID   The LPT ID of the printer. 
  4029.  
  4030.  Thru-put Rate The number of bytes written to the printer divided by the time 
  4031.       interval. 
  4032.  
  4033.  Write Requests The number of write operations to the printer. 
  4034.  
  4035.  KBytes The number of bytes in thousands written to the printer. 
  4036.  
  4037.  Average KBytes The number of bytes in thousands written to the printer divided 
  4038.       by the number of write operations. 
  4039.  
  4040.  Average Time The time spent writing to the printer divided by number of write 
  4041.       operations. 
  4042.  
  4043.  
  4044. ΓòÉΓòÉΓòÉ <hidden> Summary Report Heads - Communications Port ΓòÉΓòÉΓòÉ
  4045.  
  4046.  ID   The COM ID of the communications port. 
  4047.  
  4048.  Read - Requests The number of read operations from the communications port. 
  4049.  
  4050.  Read - KBytes The number of bytes in thousands read from the communications 
  4051.       port. 
  4052.  
  4053.  Read - Average KBytes The number of bytes in thousands read from the 
  4054.       communications port divided by the number of read operations. 
  4055.  
  4056.  Read - Average Time The time spent reading from the communications port 
  4057.       divided by the number of read operations in the time interval. 
  4058.  
  4059.  Write - Requests The number of write operations to the communications port. 
  4060.  
  4061.  Write - KBytes The number of bytes in thousands written to the communications 
  4062.       port. 
  4063.  
  4064.  Write - Average KBytes The number of bytes in thousands written to the 
  4065.       communications port divided by the number of write operations. 
  4066.  
  4067.  Write - Average Time The time spent writing to the communications port divided 
  4068.       by the number of write operations in the time interval. 
  4069.  
  4070.  Software Overruns The number of times flow control was imposed on input or 
  4071.       output. 
  4072.  
  4073.  Hardware Overruns The number of data overrun errors. 
  4074.  
  4075.  
  4076. ΓòÉΓòÉΓòÉ 5.4.4.3. Dump Report Metrics ΓòÉΓòÉΓòÉ
  4077.  
  4078. Metrics belonging to the following resource groups appear in a dump report. 
  4079. Select a group to see its associated metrics and their definitions: 
  4080.  
  4081.  o CPU 
  4082.  o Memory 
  4083.  o FAT cache 
  4084.  o HPFS cache 
  4085.  o Disk 
  4086.  o Printer 
  4087.  o Communications port 
  4088.  o Working set 
  4089.  o IBM LAN Requester (NETWKST) 
  4090.  o IBM LAN Server Advanced (HPFS386). 
  4091.  
  4092.  Note:  To compute average number of elements from a queue length metric, use 
  4093.         the following equation: 
  4094.  
  4095.                 Avg number of elements     Queue Time
  4096.                  over the interval      =  ----------
  4097.                                             Interval
  4098.  
  4099.  
  4100. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - CPU ΓòÉΓòÉΓòÉ
  4101.  
  4102.  tmNotIdle The time that the CPU was busy; this includes both task and 
  4103.       interrupt time. 
  4104.  
  4105.  ctSched The number of times a thread was scheduled to use the CPU. 
  4106.  
  4107.  ctInt The number of interrupts raised. 
  4108.  
  4109.  tmInt The time spent servicing interrupts. 
  4110.  
  4111.  
  4112. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Memory ΓòÉΓòÉΓòÉ
  4113.  
  4114.  ctPgFault The number of page faults. 
  4115.  
  4116.  ctSwapIn The number of pages swapped in from disk. 
  4117.  
  4118.  ctDemandLd The number of pages demand loaded from disk. 
  4119.  
  4120.  ctSwapOut The number of pages swapped to disk. 
  4121.  
  4122.  ctDiscard The number of pages discarded. 
  4123.  
  4124.  ctRecovered The number of idle pages recovered for use by the original 
  4125.       process. 
  4126.  
  4127.  ctIdled The number of pages idled. 
  4128.  
  4129.  ctReassigned The number of idle pages reassigned for use by another process. 
  4130.  
  4131.  qctResident The number of resident or long-term locked pages. 
  4132.  
  4133.  qlQFree The number of unoccupied page frames.  qlQFree consists of a queue 
  4134.       counter and a queue timer. 
  4135.  
  4136.  qlQUsed The number of pages that are used.  qlQUsed consists of a queue 
  4137.       counter and a queue timer. 
  4138.  
  4139.  
  4140. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - FAT Cache (FBC) ΓòÉΓòÉΓòÉ
  4141.  
  4142.  ctRdHit The number of FAT cache read hits. 
  4143.  
  4144.  ctRdMiss The number of FAT cache read misses. 
  4145.  
  4146.  ctWrtHit The number of FAT cache write hits. 
  4147.  
  4148.  ctWrtMiss The number of FAT cache write misses. 
  4149.  
  4150.  ctWrtActiv The number of write operations due to a cache full condition. 
  4151.  
  4152.  ctBypass The number of FAT cache bypasses (including both read and write 
  4153.       operations). 
  4154.  
  4155.  
  4156. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - HPFS Cache ΓòÉΓòÉΓòÉ
  4157.  
  4158.  CTCaNHints A cache counter that indicates the number of times that the file 
  4159.       system used the pbufNextHint field of a BufNode. This field is an 
  4160.       advisory pointer indicating where the next buffer of a file is. 
  4161.  
  4162.  CTCaNHits The advisory field pbufNextHint was valid (that is, the buffer 
  4163.       pointed to the desired data). 
  4164.  
  4165.  CTCaNSelf The advisory pointer pbufNextHint was self-referencing (that is, the 
  4166.       pointer was not followed). 
  4167.  
  4168.  CTCaBHints The number of times that pbufHint field of a SECPTR structure was 
  4169.       used (that is, the number of times that someone referred to a buffer in 
  4170.       the cache - except in those cases where following a buffer chain, which 
  4171.       is covered by NHints). 
  4172.  
  4173.  CTCaBHits The pbufHint was valid.  CTCaBHits consists of a queue counter and a 
  4174.       queue timer. 
  4175.  
  4176.  CTCaForceL A cache counter that indicates the number of times that the cache 
  4177.       was flushed due to no free buffers (for "Force Lazy"). 
  4178.  
  4179.  CTHpSize A heap counter that contains the total heap space (allocated and 
  4180.       free). 
  4181.  
  4182.  QCHpAlloc The heap space that is allocated. 
  4183.  
  4184.  QCHpSbdirs The heap space that is allocated to subdirectories. 
  4185.  
  4186.  QCHpObjCnt The number of objects allocated in the heap. 
  4187.  
  4188.  QCFOCount The number of files that are open. 
  4189.  
  4190.  CTFCCount The number of files that have been closed. 
  4191.  
  4192.  QCFWCurCnt The number of files currently being written. 
  4193.  
  4194.  CTFRFilCnt The number of files closed that have been only read. 
  4195.  
  4196.  CTFRSeqFil The number of files closed that have been read strictly 
  4197.       sequentially. 
  4198.  
  4199.  CTFACount The number of accesses to the file allocation (that is, number of 
  4200.       times that the tree structure was followed looking for a particular 
  4201.       leaf). 
  4202.  
  4203.  CTFAOft The number of accesses to the file allocation using the open file 
  4204.       table (OFT).  The OFT contains a copy of the first-level structures of 
  4205.       the file allocation tree.  For trees only one level deep, a particular 
  4206.       leaf can, therefore, be located immediately.  This counter is essentially 
  4207.       the number of accesses to the file allocation trees only one level deep. 
  4208.  
  4209.  CTRABufCnt The number of cache blocks read by read ahead. 
  4210.  
  4211.  CTRABufAcc The number of times a buffer was accessed assuming that the data 
  4212.       should be valid because of the read ahead. 
  4213.  
  4214.  CTRABufHit The number of times the data in the buffer accessed was valid. This 
  4215.       counter is related to CTRABufAcc counter. 
  4216.  
  4217.  CTRAOvrWrt The number of blocks read by the read ahead that were overwritten 
  4218.       before being used. 
  4219.  
  4220.  
  4221. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Disk ΓòÉΓòÉΓòÉ
  4222.  
  4223.  ctRD The number of read operations. 
  4224.  
  4225.  qlRD The number of outstanding read requests.  qlRD consists of a queue 
  4226.       counter and a queue timer. 
  4227.  
  4228.  blRD The number of blocks or sectors (1 sector = 512 bytes) read from the 
  4229.       disk. 
  4230.  
  4231.  ctWR The number of write requests. 
  4232.  
  4233.  qlWR The number of outstanding write requests.  qlWR consists of a queue 
  4234.       counter and a queue timer. 
  4235.  
  4236.  blWR The number of blocks or sectors written to the disk. 
  4237.  
  4238.  tmBUSY The time the disk was busy. 
  4239.  
  4240.  
  4241. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Parallel Port Device Driver (Printer) ΓòÉΓòÉΓòÉ
  4242.  
  4243.  Write Request The number of write operations to the printer. 
  4244.  
  4245.  Write Time The time spent writing to the printer. 
  4246.  
  4247.  Write Bytes The number of bytes written to the printer. 
  4248.  
  4249.  
  4250. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Communications Port ΓòÉΓòÉΓòÉ
  4251.  
  4252.  Read Time The time spent reading from the communication port. 
  4253.  
  4254.  Write Time The time spent writing to the communication port. 
  4255.  
  4256.  Number Reads The number of read operations. 
  4257.  
  4258.  Number Writes The number of write operations. 
  4259.  
  4260.  Bytes Read The number of bytes read from the communication port. 
  4261.  
  4262.  Bytes Written The number of bytes written to the communication port. 
  4263.  
  4264.  Hardware Overruns The number of times flow control was imposed on input or 
  4265.       output. 
  4266.  
  4267.  Software Overruns The number of data overrun errors. 
  4268.  
  4269.  
  4270. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - Working Set ΓòÉΓòÉΓòÉ
  4271.  
  4272.  Resident The number of pages that cannot be swapped out or discarded. Resident 
  4273.       consists of a queue counter and a queue timer. 
  4274.  
  4275.  Working Set The number of pages accessed. Working Set consists of a queue 
  4276.       counter and a queue timer. 
  4277.  
  4278.  Used The number of pages allocated and not paged out or discarded. Used 
  4279.       consists of a queue counter and a queue timer. 
  4280.  
  4281.  Total The total amount of memory available to OS/2. 
  4282.  
  4283.  
  4284. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - IBM LAN Requester (NETWKST) ΓòÉΓòÉΓòÉ
  4285.  
  4286.  CTRqTransP A state counter that represents the current number of transactions 
  4287.       being processed. 
  4288.  
  4289.  CTRqFoCount The number of files that were opened. 
  4290.  
  4291.  CTRqFcCount The number of files that were closed. 
  4292.  
  4293.  CTRqSmRds The number of small reads handled by the redirector. A small read is 
  4294.       defined as a read that occurs within one SMB. SMBs include read, 
  4295.       readandx, lockread. 
  4296.  
  4297.  TMRqSmRds The time spent doing small reads. 
  4298.  
  4299.  BCRqSmByRd The number of bytes read via small reads. 
  4300.  
  4301.  CTRqMpxRds The number of read-multiplex SMBs processed by the redirector. 
  4302.  
  4303.  TMRqMpxRds The time spent processing multiplex reads. 
  4304.  
  4305.  BCRqMpxByR The number of bytes read via multiplex reads. 
  4306.  
  4307.  CTRqRawRds The number of read raws processed by the redirector. 
  4308.  
  4309.  TMRqRawRds The time spent processing raw reads. 
  4310.  
  4311.  BCRqRawByR The number of bytes read via raw reads. 
  4312.  
  4313.  BCRqTotRds The total number of reads processed by the redirector. 
  4314.  
  4315.  CTRqSmWrt The number of small writes handled by the redirector. A small write 
  4316.       is defined as a write which occurs within one SMB. SMBs include Write, 
  4317.       Writeandx, WriteUnlock. 
  4318.  
  4319.  TMRqSmWrt The time spent doing small writes. 
  4320.  
  4321.  BCRqSmByWr The number of bytes written via small writes. 
  4322.  
  4323.  CTRqMpxWrt The number of write-multiplex SMBs processed by the redirector. 
  4324.  
  4325.  TMRqMpxWrt The time spent processing multiplex writes. 
  4326.  
  4327.  BCRqMpxByW The number of bytes written via multiplex writes. 
  4328.  
  4329.  CTRqRawWrt The number of write raws processed by the redirector. 
  4330.  
  4331.  TMRqRawWrt The time spent processing raw writes. 
  4332.  
  4333.  BCRqRawByW The number of bytes written via raw writes. 
  4334.  
  4335.  BCRqTotWrt The total number of writes processed by the redirector. 
  4336.  
  4337.  
  4338. ΓòÉΓòÉΓòÉ <hidden> Dump Report Heads - IBM LAN Server Advanced (HPFS386) ΓòÉΓòÉΓòÉ
  4339.  
  4340.  CTFOCount The number of files that were opened, including both locally open 
  4341.       files and client-opened files. 
  4342.  
  4343.  CTFCCount The number of files that were closed. 
  4344.  
  4345.  SCFWCurCnt The number of files currently being written. 
  4346.  
  4347.  CTFRFilCnt The number of files that were closed that were only read. 
  4348.  
  4349.  CTFRSeqFil The number of files that were closed that were read strictly 
  4350.       sequentially. 
  4351.  
  4352.  CTRABufCnt This is the number of cache blocks read by read ahead. 
  4353.  
  4354.  CTRABufHit The number of times the data in the buffer accessed was valid. 
  4355.  
  4356.  CTRAOvrWrt The number of blocks read by the read ahead that were overwritten 
  4357.       before being used. 
  4358.  
  4359.  CTRAWhFile The number of files which were attempted to be read in completely. 
  4360.  
  4361.  CTR0TransP The number of SMBs (transactions) processed by the server. 
  4362.  
  4363.  CTR0FilOpn The number of file opens performed by the HPFS386 server. 
  4364.  
  4365.  CTR0FilCls The number of file closes performed by the HPFS386 server. 
  4366.  
  4367.  CTR0OpLock The number of files that were opened oplocked. 
  4368.  
  4369.  CTR0OpBrk The number of times that the server had to break an oplock on a 
  4370.       file. 
  4371.  
  4372.  CTR0SmRds The number of small reads handled by the HPFS386 server.  A small 
  4373.       read is defined as a read which occurs within one SMB.  SMBs include 
  4374.       read, readandx, lockread. 
  4375.  
  4376.  TMR0SmRds The time spent doing small reads. 
  4377.  
  4378.  BCR0SmByRd The number of bytes read via small reads. 
  4379.  
  4380.  CTR0MpxRds The number of read-multiplex SMBs processed by the HPFS386 server. 
  4381.  
  4382.  TMR0MpxRds The time spent processing multiplex reads. 
  4383.  
  4384.  BCR0MpxByR The number of bytes read via multiplex reads. 
  4385.  
  4386.  CTR0RawRds The number of read raws processed by the HPFS386 server. 
  4387.  
  4388.  TMR0RawRds The time spent processing raw reads. 
  4389.  
  4390.  BCR0RawByR The number of bytes read via Raw Reads. 
  4391.  
  4392.  CTR0RdCaBp The number of times that the server elected to bypass the cache 
  4393.       when doing reads.  The server bypasses the cache when the read request is 
  4394.       greater than 63KB, and the server has exclusive use to the file. 
  4395.  
  4396.  CTR0SmWrt The number of small writes handled by the HPFS386 server.  A small 
  4397.       write is defined as a write which occurs within one SMB.  SMBs include 
  4398.       Write, Writeandx, WriteUnlock. 
  4399.  
  4400.  TMR0SmWrt The time spent doing small writes. 
  4401.  
  4402.  BCR0SmByWr The number of bytes written via small writes. 
  4403.  
  4404.  CTR0MpxWrt The number of write-multiplex SMBs processed by the HPFS386 server. 
  4405.  
  4406.  TMR0MpxWrt The time spent processing multiplex writes. 
  4407.  
  4408.  BCR0MpxByW The number of bytes written via multiplex writes. 
  4409.  
  4410.  CTR0RawWrt The number of write raws processed by the HPFS386 server. 
  4411.  
  4412.  TMR0RawWrt The time spent processing raw writes. 
  4413.  
  4414.  BCR0RawByW The number of bytes written via raw writes. 
  4415.  
  4416.  CTR0WrCaBp The number of times that the server elected to bypass cache when 
  4417.       doing writes. The server bypasses the cache when the write report is 
  4418.       greater than 63KB, the server has exclusive use to the file, and the 
  4419.       write offset is past 64KB in the file. 
  4420.  
  4421.  SCR0CurFnd The current number of outstanding finds. 
  4422.  
  4423.  SCR0OSrch The current number of outstanding searches. 
  4424.  
  4425.  SCR0BigBuf The number of big buffers allocated by the HPFS386 server. The 
  4426.       HPFS386 server initially allocates two big buffers. After that, it 
  4427.       allocates big buffers on an as needed basis, up to 16 big buffers 
  4428.       allocated. Big buffers are split into work buffers as needed. 
  4429.  
  4430.  CTR0BBufEx The number of times that failed when allocating big buffers.  This 
  4431.       may be due to shortage of system memory, or because there are already 16 
  4432.       buffers allocated.  If CTR0BigBuf is 16, then this counter effectively 
  4433.       measures the number of times that another buffer was needed but could not 
  4434.       be located. 
  4435.  
  4436.  BCCaRdReqC The number of read requests (sectors) satisfied from cache. 
  4437.  
  4438.  BCCaRdReqD The number of read requests (sectors) satisfied from disk. 
  4439.  
  4440.  BCCaWrReqL The number of lazy write requests (sectors) to cache. 
  4441.  
  4442.  BCCaWrReqD The number of write requests (sectors) to disk. 
  4443.  
  4444.  CTCaForceL A cache counter that tells the number of times that the cache was 
  4445.       flushed due to no free buffers. 
  4446.  
  4447.  CTCaNumBlk The number of cache blocks. 
  4448.  
  4449.  CTHpSize A state counter that contains the total heap space 
  4450.       (allocated + free). 
  4451.  
  4452.  CTHpMax A state counter for the maximum heap space that is allocated. 
  4453.  
  4454.  CTHpFull The number of times that no additional heap space was available. 
  4455.  
  4456.  
  4457. ΓòÉΓòÉΓòÉ 6. Sizing Directories: Overview ΓòÉΓòÉΓòÉ
  4458.  
  4459.  
  4460. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  4461.  
  4462. Use the SPM/2 Directory Analyzer to calculate and report directory, 
  4463. subdirectory, and file sizes for one or more directories on one or more drives. 
  4464. You can select the depth of analysis, which is called sizing. 
  4465.  
  4466. Reports can be requested on: 
  4467.  
  4468.  o The highest level directory only 
  4469.  o All sized directories 
  4470.  o All sized files in all sized directories. 
  4471.  
  4472.  The reports are in tabular format.  Sizing and reporting options can be set 
  4473.  independently for each specified directory. 
  4474.  
  4475.  
  4476. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  4477.  
  4478. Select one: 
  4479.  
  4480.  o File analysis 
  4481.  o Directory analysis 
  4482.  o Collecting directory data 
  4483.  o Redirecting output to a file. 
  4484.  
  4485.  
  4486. ΓòÉΓòÉΓòÉ 6.1. File Analysis ΓòÉΓòÉΓòÉ
  4487.  
  4488. Analysis of a file contains: 
  4489.  
  4490.  o The file's data size.  This is the actual number of bytes of data contained 
  4491.    in the file. 
  4492.  o The file's allocation size (as a multiple of cluster length). This is the 
  4493.    actual amount of disk space consumed by the file on the particular file 
  4494.    system.  Because files are stored in clusters, which can vary in length by 
  4495.    system, a file can consume more bytes of storage than the file's actual data 
  4496.    size: 
  4497.  
  4498.    In the example shown, the system must allocate three 1024-byte clusters 
  4499.    (3072 bytes of storage) to store a 2275-byte file. 
  4500.  
  4501.  
  4502. ΓòÉΓòÉΓòÉ 6.2. Directory Analysis ΓòÉΓòÉΓòÉ
  4503.  
  4504. There are four types of sizings: 
  4505.  
  4506.  Directory Sizes files matching a given file specification in a single 
  4507.       directory. 
  4508.  
  4509.  Directory Subtree Sizes files matching a given file specification in a single 
  4510.       directory and its subdirectories. 
  4511.  
  4512.  Multiple Directories Sizes files matching a given file specification in 
  4513.       multiple directories. 
  4514.  
  4515.  Multiple Directory Subtrees Sizes files matching a given file specification in 
  4516.       multiple directories and their subdirectories. 
  4517.  
  4518.  Directories can be sized using a hypothetical cluster length. 
  4519.  
  4520.  
  4521. ΓòÉΓòÉΓòÉ <hidden> Directory and Multiple Directory Sizing ΓòÉΓòÉΓòÉ
  4522.  
  4523. Analysis of a directory includes the following information: 
  4524.  
  4525.  o The count of sized files.  These are the files in the directory matching the 
  4526.    given file specification. 
  4527.  o The sum of the file data sizes for all sized files in the directory. 
  4528.  o The sum of the file allocation sizes for all sized files in the directory. 
  4529.  
  4530.  
  4531. ΓòÉΓòÉΓòÉ <hidden> Directory Subtree and Multiple Directory Subtree Sizing ΓòÉΓòÉΓòÉ
  4532.  
  4533. Analysis of a directory subtree contains the following information: 
  4534.  
  4535.  o The directory's weighted file count.  This is the count of sized files in 
  4536.    the directory and any subdirectories that were also sized. 
  4537.  o The directory's weighted sum of file data sizes.  This is the sum of the 
  4538.    file data sizes for all sized files in the directory and any subdirectories 
  4539.    that were also sized. 
  4540.  o The directory's weighted sum of file allocation sizes.  This is the sum of 
  4541.    the file allocation sizes for all sized files in the directory and any 
  4542.    subdirectories that were also sized. 
  4543.  
  4544.  
  4545. ΓòÉΓòÉΓòÉ 6.3. Collecting Directory Data ΓòÉΓòÉΓòÉ
  4546.  
  4547. To start collecting directory data, at an OS/2 command prompt, type: 
  4548.  
  4549. SPMDIR
  4550.  
  4551. followed by the desired parameters, and press Enter. 
  4552.  
  4553. Select one: 
  4554.  
  4555.  o Syntax 
  4556.  o Examples. 
  4557.  
  4558.  
  4559. ΓòÉΓòÉΓòÉ <hidden> SPMDIR Command ΓòÉΓòÉΓòÉ
  4560.  
  4561.  SPMDIR [
  4562.          ([filespec|filename /L]
  4563.           [/NS|/S]
  4564.           [/A|/D]
  4565.           [/NF|/F]
  4566.           [/C=n]
  4567.           [/QP]
  4568.           [/QL]
  4569.           [; comment])
  4570.          |?
  4571.         ]
  4572.  
  4573. Related information: 
  4574.  
  4575.  Syntax interpretation. 
  4576.  
  4577.  
  4578. ΓòÉΓòÉΓòÉ <hidden> File Specification ΓòÉΓòÉΓòÉ
  4579.  
  4580. You can specify which files are to be sized.  Global file-name characters (? 
  4581. and *) are allowed.  The file specification may optionally contain a drive and 
  4582. path specification. If no file is specified, *.* is the default. 
  4583.  
  4584.  
  4585. ΓòÉΓòÉΓòÉ <hidden> Filename /L ΓòÉΓòÉΓòÉ
  4586.  
  4587. You can specify the name of a file that contains a list of file specifications 
  4588. (filespec).  This is an ASCII text file that has a file specification with 
  4589. optional parameters on each line.  The /L parameter instructs the Directory 
  4590. Analyzer to process the list. 
  4591.  
  4592. Parameters on the command line are normally applied to each of the directories 
  4593. specified in the file.  However, these command line parameters may be 
  4594. overridden for an individual file specification by specifying alternative 
  4595. parameters to the right of that file specification in the file.  Those 
  4596. parameters apply to that file specification only and do not override the 
  4597. command line parameters for other file specifications in the file. 
  4598.  
  4599.  
  4600. ΓòÉΓòÉΓòÉ <hidden> /NS - No Subdirectories ΓòÉΓòÉΓòÉ
  4601.  
  4602. Sizes only the specified directory, but does not size subdirectories. This 
  4603. option is the default. 
  4604.  
  4605.  
  4606. ΓòÉΓòÉΓòÉ <hidden> /S - Subdirectories ΓòÉΓòÉΓòÉ
  4607.  
  4608. Sizes the specified directory and all of its subdirectories.  Use the filespec 
  4609. variable to specify particular files to be sized in all sized directories. 
  4610.  
  4611.  
  4612. ΓòÉΓòÉΓòÉ <hidden> /A - All Sized Subdirectories ΓòÉΓòÉΓòÉ
  4613.  
  4614. Includes details for all subdirectories that are sized. This option is the 
  4615. default. 
  4616.  
  4617.  
  4618. ΓòÉΓòÉΓòÉ <hidden> /D - Directory ΓòÉΓòÉΓòÉ
  4619.  
  4620. Includes details for the specified directory only.  No subdirectory details are 
  4621. included in the report, even if a subdirectory is sized. 
  4622.  
  4623.  
  4624. ΓòÉΓòÉΓòÉ <hidden> /NF - No Files ΓòÉΓòÉΓòÉ
  4625.  
  4626. No file details are included in the report, even if a file is sized. This 
  4627. option is the default. 
  4628.  
  4629.  
  4630. ΓòÉΓòÉΓòÉ <hidden> /F - Files ΓòÉΓòÉΓòÉ
  4631.  
  4632. Includes details for each file that is sized. 
  4633.  
  4634.  
  4635. ΓòÉΓòÉΓòÉ <hidden> /C=n - Cluster Length ΓòÉΓòÉΓòÉ
  4636.  
  4637. Analyzes files using the n variable (an unsigned decimal number) as the 
  4638. hypothetical cluster length.  This allows sizings on file systems that have 
  4639. different cluster lengths.  The disk's cluster length is the default. 
  4640.  
  4641.  
  4642. ΓòÉΓòÉΓòÉ <hidden> /QP - Quiet Program Banner ΓòÉΓòÉΓòÉ
  4643.  
  4644. Does not output a program banner. 
  4645.  
  4646.  
  4647. ΓòÉΓòÉΓòÉ <hidden> /QL - Quiet Label ΓòÉΓòÉΓòÉ
  4648.  
  4649. Does not output a column headings label. 
  4650.  
  4651.  
  4652. ΓòÉΓòÉΓòÉ <hidden> ; - Comment ΓòÉΓòÉΓòÉ
  4653.  
  4654. Indicates that any text following the semicolon (;) is ignored. 
  4655.  
  4656.  
  4657. ΓòÉΓòÉΓòÉ <hidden> Question Mark ΓòÉΓòÉΓòÉ
  4658.  
  4659. SPMDIR ? provides a syntax diagram and brief help text for the SPMDIR command. 
  4660.  
  4661.  
  4662. ΓòÉΓòÉΓòÉ <hidden> Collecting Directory Data: Examples ΓòÉΓòÉΓòÉ
  4663.  
  4664.  Example A           SPMDIR C:\OS2\*.* /S 
  4665.  
  4666.  Example B           SPMDIR C:\OS2\ /S 
  4667.  
  4668.  Example C           SPMDIR C:\OS2\*.EXE /NS /F ; just do exe's 
  4669.  
  4670.  Example D           SPMDIR /S /D /C=1024 
  4671.  
  4672.  
  4673. ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\*.* /S ΓòÉΓòÉΓòÉ
  4674.  
  4675.  Component                Action 
  4676.  
  4677.  C:\OS2\                  Sizes the C:\OS2 directory. 
  4678.  
  4679.  *.*                      Sizes all files in the C:\OS2 directory. 
  4680.  
  4681.  /S                       Sizes all subdirectories of the C:\OS2 directory. All 
  4682.                           files in those subdirectories are sized because *.* 
  4683.                           is specified on the command line. 
  4684.  
  4685.  /A (default)             Includes details for the C:\OS2 directory and any of 
  4686.                           its subdirectories that are sized.  In this case, all 
  4687.                           subdirectories of C:\OS2 are sized and reported 
  4688.                           because /S is specified. 
  4689.  
  4690.  /NF (default)            No file details are included in the report. 
  4691.  
  4692.  
  4693. ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\ /S ΓòÉΓòÉΓòÉ
  4694.  
  4695. This has the same result as Example A.  Because the filespec variable is not 
  4696. specified, it is assumed to be *.*, the default. 
  4697.  
  4698.  
  4699. ΓòÉΓòÉΓòÉ <hidden> SPMDIR C:\OS2\*.EXE /NS /F ; just do exe's ΓòÉΓòÉΓòÉ
  4700.  
  4701.  Component                Action 
  4702.  
  4703.  C:\OS2\                  Sizes the C:\OS2 directory. 
  4704.  
  4705.  *.EXE                    Sizes only *.EXE files in the C:\OS2 directory. 
  4706.  
  4707.  /NS (default)            Does not size any subdirectories of the C:\OS2 
  4708.                           directory.  Because /NS is the default, specifying it 
  4709.                           has no effect on program behavior. 
  4710.  
  4711.  /F                       Includes details for each file that is sized in all 
  4712.                           directory reports.  Since /NS is specified, no 
  4713.                           subdirectories of C:\OS2 are sized and, therefore, 
  4714.                           only the sizings for *.EXE files in the C:\OS2 
  4715.                           directory are reported. 
  4716.  
  4717.  ; just do exe's          Text following a semicolon is comment text and is 
  4718.                           ignored by the Directory Analyzer. 
  4719.  
  4720.  /A (default)             Includes details for the C:\OS2 directory and any of 
  4721.                           its subdirectories that are sized.  Since /NS is 
  4722.                           specified, only the C:\OS2 sizing is reported because 
  4723.                           no subdirectories of C:\OS2 are sized. 
  4724.  
  4725.  
  4726. ΓòÉΓòÉΓòÉ <hidden> SPMDIR /S /D /C=1024 ΓòÉΓòÉΓòÉ
  4727.  
  4728.  Component                Action 
  4729.  
  4730.  /S                       Sizes all subdirectories of the current directory. 
  4731.                           Because the filespec variable is not specified, it is 
  4732.                           assumed to be *.*, the default. 
  4733.  
  4734.  /D                       Includes details for the current directory only. 
  4735.  
  4736.  /C=1024                  Reports file allocation sizes using a cluster size of 
  4737.                           1024 bytes (1KB). 
  4738.  
  4739.  /NF (default)            No file details are included in the report. 
  4740.  
  4741.  
  4742. ΓòÉΓòÉΓòÉ 6.4. Redirecting Output to a File ΓòÉΓòÉΓòÉ
  4743.  
  4744. Reports are normally displayed on the screen. 
  4745.  
  4746. To redirect a report to a file, add the OS/2 redirect sign > and an output file 
  4747. name at the end of the Directory Analyzer command.  For example: 
  4748.  
  4749. SPMDIR parameters > output_filename
  4750.  
  4751.  
  4752. ΓòÉΓòÉΓòÉ 7. Command Line Interface: Overview ΓòÉΓòÉΓòÉ
  4753.  
  4754. The command line interface provides an alternate method to invoke some SPM/2 
  4755. functions. 
  4756.  
  4757.  SPMINST        Installs and uninstalls SPM/2, Distributed Features, and the 
  4758.                 application programming interface (API). 
  4759.  
  4760.  SPMHELP        Provides guidance and reference information. 
  4761.  
  4762.  SPM            Starts SPM/2 and opens the SPM/2 control window. 
  4763.  
  4764.  SPMLOGF        Creates a monitor session description. 
  4765.  
  4766.  SPMLOGFX       Recovers a monitor session (.LOG) file that has been corrupted. 
  4767.  
  4768.  SPMNBL         Starts the NETBIOS Listener, which waits for requests to start 
  4769.                 the Data Collection Facility.  Normally, the NETBIOS Listener 
  4770.                 is started by the CONFIG.SYS file when you start your system. 
  4771.                 However, if you have stopped the NETBIOS Listener, you must 
  4772.                 restart it. 
  4773.  
  4774.  SPMISTRT       Starts a monitor (SPMILOG) session for a previously created 
  4775.                 monitor session (.LOG) file.  This command may or may not start 
  4776.                 recording for the monitor session, depending on the parameters 
  4777.                 you choose. 
  4778.  
  4779.  SPMMON         Starts graphing for a previously started monitor session. 
  4780.  
  4781.  SPMISTOP       Stops a monitor (SPMILOG) session and any associated recording 
  4782.                 or graphing. 
  4783.  
  4784.  SPMRDF         Generates a report from a report description previously created 
  4785.                 using the Presentation Manager interface. 
  4786.  
  4787.  SPMRDFI        Generates a report description file from an input file. 
  4788.  
  4789.  SPMSNAPP       Formats data in the SPMSNAP.ERR file for display on the screen 
  4790.                 or redirection to an output file. 
  4791.  
  4792.  SPMAPPIN       Installs application-specific metric definition files. See the 
  4793.                 User Metrics chapter for more information. 
  4794.  
  4795.  SPMDIR         Obtains size information about directories, subdirectories, and 
  4796.                 files using the Directory Analyzer. 
  4797.  
  4798.  THESEUS2       Analyzes memory in several ways.  Information about THESEUS2 
  4799.                 commands can be found in the THESEUS2 Reference. 
  4800.  
  4801.  Related information: 
  4802.  
  4803.  o Syntax interpretation 
  4804.  o Shutdown procedures. 
  4805.  
  4806.  
  4807. ΓòÉΓòÉΓòÉ 7.1. Syntax Statement Interpretation ΓòÉΓòÉΓòÉ
  4808.  
  4809. The following conventions are used for the syntax statements that appear in 
  4810. this document: 
  4811.  
  4812.  [ ]  Indicates an optional parameter. 
  4813.  
  4814.  { }  Indicates a required parameter. 
  4815.  
  4816.  |    Indicates that you can choose one parameter only. 
  4817.  
  4818.     o [a|b] indicates that you can choose either a or b, or neither a nor b. 
  4819.     o {a|b} indicates that you must choose either a or b. 
  4820.  
  4821.  ...  Indicates that the parameter can be repeated on the command line. 
  4822.  
  4823.  Italics Indicate a variable. 
  4824.  
  4825.  Capital Letters Indicate the abbreviated form of a command or parameter.  For 
  4826.       example, for the /Distftr parameter of the SPMINST command, either 
  4827.       /DISTFTR or /D is a correct entry. 
  4828.  
  4829.  
  4830. ΓòÉΓòÉΓòÉ 7.2. Shutdown Procedures ΓòÉΓòÉΓòÉ
  4831.  
  4832. When you issue an SPMISTOP /DRAIN command, SPM/2  stops the instance of the 
  4833. SPMILOG program, which controls the monitor session associated with the 
  4834. specified monitor session (.LOG) file.  This should result in the shutdown of 
  4835. the Data Collection Facility sessions at every workstation specified in the 
  4836. monitor session (.LOG) file.  The /DRAINALL parameter has the same effect, 
  4837. except it applies to all active monitor sessions that were started from the 
  4838. system where the command is issued.  The /DRAIN and /DRAINALL parameters are 
  4839. respectively equivalent to stopping one or all monitor sessions from the SPM/2 
  4840. control window. 
  4841.  
  4842. Use an SPMISTOP /HALT or /HALTALL parameter only when a /DRAIN or /DRAINALL 
  4843. parameter does not work, generally in error recovery. For example, in a large 
  4844. network, messages may take a long time to come back or time-outs may occur, 
  4845. making it seem as though the /DRAIN or /DRAINALL parameter has failed. 
  4846.  
  4847. The /HALT parameter forces the shutdown of the specified monitor session and 
  4848. its associated Data Collection Facility sessions. However, the monitor session 
  4849. (.LOG) file will be corrupted as a result.  The /HALTALL parameter has the same 
  4850. effect as the /HALT parameter but applies to all active monitor sessions 
  4851. running on the system where the command is issued. 
  4852.  
  4853. The SPMNBL /HALTALL parameter can also be used to force shutdown of the Data 
  4854. Collection Facility if none of the SPMISTOP parameters work. 
  4855.  
  4856. The NETBIOS Listener is generally allowed to run in the background. However, 
  4857. you may use the SPMNBL /STOPLISTEN parameter to stop the NETBIOS Listener 
  4858. without stopping the associated Data Collection Facility. 
  4859.  
  4860.  
  4861. ΓòÉΓòÉΓòÉ 7.3. SPMINST Command ΓòÉΓòÉΓòÉ
  4862.  
  4863. source\SPMINST [
  4864.                  [/S:sourcePath]
  4865.                  [/L1:logFileName]
  4866.                  [/T:target]
  4867.                  [/Distftr]
  4868.                  [/API]
  4869.                  [/Uninstall]
  4870.                | ?
  4871.                ]
  4872.  
  4873. Select one: 
  4874.  
  4875.  o Local installation 
  4876.  o Remote installation 
  4877.  
  4878.  
  4879. ΓòÉΓòÉΓòÉ 7.3.1. Local Installation: Overview ΓòÉΓòÉΓòÉ
  4880.  
  4881. Using the local installation procedure allows you to: 
  4882.  
  4883.  o Install to the default directory 
  4884.  o Install to a different directory 
  4885.  o Install Distributed Feature 
  4886.  o Install the application programming interface 
  4887.  o Uninstall SPM/2. 
  4888.  
  4889.  Notes: 
  4890.  
  4891.      1. If you are reinstalling SPM/2 or installing SPM/2 over a previous 
  4892.         version, you must first uninstall the existing SPM/2 code. To 
  4893.         uninstall, you must first stop all SPM/2 activity.  For SPM/2 2.0, 
  4894.         close the SPM/2 control window and the SPM/2 group, and stop the the 
  4895.         NETBIOS Listener using the SPMNBL /STOPLISTEN command. 
  4896.  
  4897.      2. During SPM/2 installation, a message log (SPMLOG.LOG) file is created 
  4898.         in the OS2\INSTALL subdirectory.  This log contains all the messages, 
  4899.         including error messages, that are generated during SPM/2 installation. 
  4900.  
  4901.      3. The SPMINST.EXE file is not installed along with the SPM/2 program 
  4902.         files. 
  4903.  
  4904.  Local installation example 
  4905.  
  4906.  
  4907. ΓòÉΓòÉΓòÉ 7.3.1.1. Installing to the Default Directory ΓòÉΓòÉΓòÉ
  4908.  
  4909. To install locally to the default target directory (root:\SPM2V2), insert 
  4910. diskette 1 into a diskette drive and at an OS/2 command prompt type: 
  4911.  
  4912. source\SPMINST
  4913.  
  4914. where source is the name of the diskette drive (for example, A:).  This command 
  4915. installs the entire SPM/2 product with the exception of the API. 
  4916.  
  4917.  
  4918. ΓòÉΓòÉΓòÉ 7.3.1.2. Installing to Another Directory ΓòÉΓòÉΓòÉ
  4919.  
  4920. To install locally to a different target directory, insert diskette 1 into a 
  4921. diskette drive and at an OS/2 command prompt type: 
  4922.  
  4923. source\SPMINST /T:target
  4924.  
  4925. where source is the name of the diskette drive, and target is the fully 
  4926. qualified path of the directory where the SPM/2 program is to be installed. 
  4927. This command installs the entire SPM/2 product with the exception of the API. 
  4928.  
  4929.  
  4930. ΓòÉΓòÉΓòÉ 7.3.1.3. Installing the Distributed Feature ΓòÉΓòÉΓòÉ
  4931.  
  4932. To install the SPM/2 2.0 Distributed Feature, which contains the files 
  4933. necessary to collect data on a monitored workstation, insert diskette 1 into a 
  4934. diskette drive and at an OS/2 command prompt type: 
  4935.  
  4936. source\SPMINST /Distftr
  4937.  
  4938. where source is the name of the diskette drive. 
  4939.  
  4940.  Note:  Use the /Distftr parameter to install only the Distributed Feature 
  4941.         files.  Do not use the /Distftr parameter if you want to install all 
  4942.         the SPM/2 program files. 
  4943.  
  4944.  
  4945. ΓòÉΓòÉΓòÉ 7.3.1.4. Installing the Application Programming Interface ΓòÉΓòÉΓòÉ
  4946.  
  4947. To install the application programming interface (API) features, insert 
  4948. diskette 1 into a diskette drive and at an OS/2 command prompt type: 
  4949.  
  4950. source\SPMINST /API
  4951.  
  4952. where source is the name of the diskette drive.  This command create an \API 
  4953. subdirectory under the main SPM/2 directory. This subdirectory contains the 
  4954. files and documentation needed to program to the SPM/2 API. 
  4955.  
  4956.  
  4957. ΓòÉΓòÉΓòÉ 7.3.1.5. Uninstalling the SPM/2 Program Interface ΓòÉΓòÉΓòÉ
  4958.  
  4959. To remove the installed SPM/2 2.0 program from the path specified during the 
  4960. original installation: 
  4961.  
  4962.   1. Terminate all foreground SPM/2 functions.  (/Uninstall stops any 
  4963.      background processes, including SPMNBL and SPMSNAP. Termination of 
  4964.      background processes takes up to a minute to complete.) 
  4965.  
  4966.   2. Insert diskette 1 into a diskette drive, and at an OS/2 command prompt 
  4967.      type: 
  4968.  
  4969.           source\SPMINST /T:target /Uninstall
  4970.  
  4971.      where source is the name of the diskette drive, and target is the fully 
  4972.      qualified path of the directory where the SPM/2 program was installed. 
  4973.  
  4974.  Note:  The SPMINST.EXE file is located on the original SPM/2 2.0 licensed 
  4975.         program product diskette 1. 
  4976.  
  4977.  
  4978. ΓòÉΓòÉΓòÉ <hidden> Example of Local Installation ΓòÉΓòÉΓòÉ
  4979.  
  4980. An example of local installation follows: 
  4981.  
  4982. A:\SPMINST /T:D:\PERFORM /API
  4983.  
  4984.  Component                Action 
  4985.  
  4986.  A:                       Specifies that the installation files are on a 
  4987.                           diskette in the A: drive. 
  4988.  
  4989.  /T:D:\PERFORM            Specifies that the SPM/2 program files be installed 
  4990.                           in the PERFORM directory on the D: drive, instead of 
  4991.                           in the SPM2V2 directory on the root drive. 
  4992.  
  4993.  /API                     Specifies that the application programming interface 
  4994.                           files be installed. 
  4995.  
  4996.  
  4997. ΓòÉΓòÉΓòÉ 7.3.2. Remote Installation: Overview ΓòÉΓòÉΓòÉ
  4998.  
  4999. You can install SPM/2 2.0 remotely; that is, install the program files from a 
  5000. code server to one or more requesters or servers.  You can perform either of 
  5001. two types of remote installation: 
  5002.  
  5003.  o Attended remote installation 
  5004.  o Unattended (automated) remote installation initiated by a software 
  5005.    distribution manager (SDM), such as the LAN Configuration Installation 
  5006.    Distribution Utility (LAN CID Utility). 
  5007.  
  5008.  Notes: 
  5009.  
  5010.      1. Load the original SPM/2 2.0 licensed program product files from the 
  5011.         diskettes onto the code server using the OS/2 XCOPY command. 
  5012.      2. IBM Network Transport Services/2 (NTS/2) is required for unattended 
  5013.         remote installation. 
  5014.  
  5015.  Remote installation example 
  5016.  
  5017.  
  5018. ΓòÉΓòÉΓòÉ 7.3.2.1. Attended Remote Installation ΓòÉΓòÉΓòÉ
  5019.  
  5020. At a command prompt on the workstation where SPM/2 2.0 is to be installed, 
  5021. type: 
  5022.  
  5023. source\SPMINST /S:sourcePath
  5024.  
  5025. where source is the fully qualified path of the SPM/2 installation program (the 
  5026. SPMINST.EXE file), and sourcePath is the fully qualified path of the SPM/2 2.0 
  5027. program files. 
  5028.  
  5029.  Notes: 
  5030.  
  5031.      1. Both source and sourcePath are redirected drives and generally the 
  5032.         same. 
  5033.  
  5034.      2. No response files are necessary for the SPM/2 attended remote 
  5035.         installation. 
  5036.  
  5037.  
  5038. ΓòÉΓòÉΓòÉ 7.3.2.2. Unattended Remote Installation ΓòÉΓòÉΓòÉ
  5039.  
  5040. Embed the SPM/2 installation command in a REXX command file that can be 
  5041. interpreted by the LAN CID Utility.  In the installation command, include the 
  5042. parameter: 
  5043.  
  5044. /L1:logFileName
  5045.  
  5046. where logFileName is the target path and file name of the copy of the 
  5047. SPMLOG.LOG file that is written to the code server.  Do not include a file name 
  5048. extension; the CID program provides an extension of .LOG. 
  5049.  
  5050. For example: 
  5051.  
  5052. W:\SPMINST /S:W:\SPM2V2 /L1:X:\INSTERR
  5053.  
  5054. For more information about the LAN CID Utility and redirected installation, see 
  5055. the IBM Network Transport Services/2 Redirected Installation and Configuration 
  5056. Guide. 
  5057.  
  5058.  
  5059. ΓòÉΓòÉΓòÉ <hidden> Example of Remote Installation ΓòÉΓòÉΓòÉ
  5060.  
  5061. An example of remote installation follows: 
  5062.  
  5063. W:\SPMINST /S:W:\SPMPGM /T:D:\PERFORM /Distftr
  5064.  
  5065.  Component                Action 
  5066.  
  5067.  W:                       Specifies that the SPM/2 installation program 
  5068.                           (SPMINST.EXE) is found in redirected drive W: on the 
  5069.                           code server. 
  5070.  
  5071.  /S:W:\SPMPGM             Specifies that the SPM/2 program files are found in 
  5072.                           the W:\SPMPGM directory on the code server. 
  5073.  
  5074.  /T:D:\PERFORM            Specifies that the SPM/2 program files be installed 
  5075.                           in the PERFORM directory on the D: drive, instead of 
  5076.                           in the SPM2V2 directory on the root drive. 
  5077.  
  5078.  /Distftr                 Specifies that only the Distributed Feature files be 
  5079.                           installed. 
  5080.  
  5081.  
  5082. ΓòÉΓòÉΓòÉ <hidden> Source - Source Path for Installation Files ΓòÉΓòÉΓòÉ
  5083.  
  5084.  Local installation 
  5085.       For source, specify the appropriate diskette drive (for example, A:). 
  5086.  
  5087.  Remote installation 
  5088.       For source, specify the fully qualified path to the SPMINST.EXE file on 
  5089.       the code server.  (The SPMINST.EXE file is the installation program.) 
  5090.  
  5091.  
  5092. ΓòÉΓòÉΓòÉ <hidden> /S: - Remote Source Path for Installation Files ΓòÉΓòÉΓòÉ
  5093.  
  5094. Use the /S: parameter during remote installation to specify the fully qualified 
  5095. path to the SPM/2 2.0 program files (that is, when those files are located on a 
  5096. workstation other than the one on which you run SPMINST). 
  5097.  
  5098.  
  5099. ΓòÉΓòÉΓòÉ <hidden> /L1: - SPM/2 Installation Error Log Target Path ΓòÉΓòÉΓòÉ
  5100.  
  5101. Use the /L1: parameter during remote installation to specify the fully 
  5102. qualified target path and file name of the SPM/2 installation error log file. 
  5103. Do not specify an extension for the file name; the CID program provides the 
  5104. extension .LOG. 
  5105.  
  5106.  Note:  If you do not use the /L1: parameter, the default installation error 
  5107.         log path and file name is OS2\INSTALL\SPMLOG.LOG. 
  5108.  
  5109.  
  5110. ΓòÉΓòÉΓòÉ <hidden> /T: - SPM/2 Files Target Path ΓòÉΓòÉΓòÉ
  5111.  
  5112. Use the /T: parameter to specify the fully qualified path of the directory 
  5113. where the SPM/2 files are to be installed or uninstalled.  If this parameter is 
  5114. not selected, the default path is root:\SPM2V2, where root is the root 
  5115. directory. 
  5116.  
  5117.  
  5118. ΓòÉΓòÉΓòÉ <hidden> /Distftr - Distributed Feature ΓòÉΓòÉΓòÉ
  5119.  
  5120. Use the /Distftr parameter to install or uninstall the SPM/2 2.0 Distributed 
  5121. Feature, which includes the Data Collection Facility and the NETBIOS Listener. 
  5122.  
  5123.  
  5124. ΓòÉΓòÉΓòÉ <hidden> /API - Application Programming Interface ΓòÉΓòÉΓòÉ
  5125.  
  5126. Use the /API parameter to install or uninstall the SPM/2 2.0 application 
  5127. programming interface (API) features in the \API subdirectory of the target 
  5128. directory for the SPM/2 program files. 
  5129.  
  5130.  
  5131. ΓòÉΓòÉΓòÉ <hidden> /Uninstall - Remove SPM/2 ΓòÉΓòÉΓòÉ
  5132.  
  5133. Use the /Uninstall parameter to remove SPM/2 2.0 from the default target 
  5134. directory or the path specified by the /T:target parameter when SPM/2 was 
  5135. installed. When you uninstall SPM/2, all SPM/2 statements are removed from the 
  5136. CONFIG.SYS file and all SPM/2 program files are deleted from the directory in 
  5137. which they were installed.  However, no user-created files are deleted. 
  5138.  
  5139.  Notes: 
  5140.  
  5141.      1. Terminate all SPM/2 functions before using the /Uninstall parameter. 
  5142.         /Uninstall stops the SPMNBL and SPMSNAP background processes for you. 
  5143.  
  5144.      2. The SPMINST.EXE file is not installed with the SPM/2 program files. 
  5145.         Therefore, to use the SPMINST /Uninstall command, you must have the 
  5146.         SPMINST.EXE file available on diskette or on another system. 
  5147.  
  5148.      3. If the SPM/2 program files were not installed in the default directory 
  5149.         (root:\SPM2V2), you must use the /T: target parameter to specify the 
  5150.         location of the SPM/2 program files when you use the /Uninstall 
  5151.         parameter. 
  5152.  
  5153.  
  5154. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5155.  
  5156. SPMINST ? provides a syntax diagram and brief help text for the SPMINST 
  5157. command. 
  5158.  
  5159.  
  5160. ΓòÉΓòÉΓòÉ 7.4. SPMHELP Command ΓòÉΓòÉΓòÉ
  5161.  
  5162. SPMHELP [
  5163.           messageNumber
  5164.         | ?
  5165.         ]
  5166.  
  5167. At an OS/2 command prompt, type SPMHELP to access the guidance and reference 
  5168. information. 
  5169.  
  5170.  
  5171. ΓòÉΓòÉΓòÉ <hidden> messageNumber ΓòÉΓòÉΓòÉ
  5172.  
  5173. To get help on a specific message, type SPMHELP followed by the message number. 
  5174.  
  5175.  
  5176. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5177.  
  5178. SPMHELP ? provides a syntax diagram and brief help text for the SPMHELP 
  5179. command. 
  5180.  
  5181.  
  5182. ΓòÉΓòÉΓòÉ 7.5. SPM Command ΓòÉΓòÉΓòÉ
  5183.  
  5184. The SPM command has no parameters.  To start an SPM/2 control window, at an 
  5185. OS/2 command prompt, type: 
  5186.  
  5187. SPM
  5188.  
  5189.  
  5190. ΓòÉΓòÉΓòÉ 7.6. SPMLOGF Command ΓòÉΓòÉΓòÉ
  5191.  
  5192. SPMLOGF {
  5193.          (FileName.LOG
  5194.           Comment
  5195.           SampleInterval
  5196.           SamplesPerRecord
  5197.           WorkingSetInterval
  5198.           GroupNumbers
  5199.           NodeNames)
  5200.          |?
  5201.         }
  5202.  
  5203. Example 
  5204.  
  5205.  
  5206. ΓòÉΓòÉΓòÉ <hidden> FileName.LOG ΓòÉΓòÉΓòÉ
  5207.  
  5208. For FileName.LOG, specify a name for the new monitor session file.  The file 
  5209. name extension must be .LOG.  You cannot specify the name of an existing file 
  5210. for this parameter. 
  5211.  
  5212.  
  5213. ΓòÉΓòÉΓòÉ <hidden> Comment ΓòÉΓòÉΓòÉ
  5214.  
  5215. For Comment, specify a character string without blanks.  For example, 
  5216. EmployeeAbsences.  The comment field is required for the SPMLOGF command. 
  5217.  
  5218.  
  5219. ΓòÉΓòÉΓòÉ <hidden> SampleInterval ΓòÉΓòÉΓòÉ
  5220.  
  5221. For SampleInterval, specify the number of seconds between samples.  This number 
  5222. must be an integer. 
  5223.  
  5224.  
  5225. ΓòÉΓòÉΓòÉ <hidden> SamplesPerRecord ΓòÉΓòÉΓòÉ
  5226.  
  5227. For SamplesPerRecord, specify the number of samples to summarize into a log 
  5228. record.  This number must be an integer. 
  5229.  
  5230.  
  5231. ΓòÉΓòÉΓòÉ <hidden> WorkingSetInterval ΓòÉΓòÉΓòÉ
  5232.  
  5233. For WorkingSetInterval, specify the time frame, in seconds, used in determining 
  5234. the amount of physical RAM in the working set. 
  5235.  
  5236.  
  5237. ΓòÉΓòÉΓòÉ <hidden> GroupNumbers ΓòÉΓòÉΓòÉ
  5238.  
  5239. For GroupNumbers, specify one or more ordinals of the resource groups on which 
  5240. to collect data.  See Resource Group Ordinals for a list of resource groups and 
  5241. their corresponding ordinals. 
  5242.  
  5243.  
  5244. ΓòÉΓòÉΓòÉ <hidden> NodeNames ΓòÉΓòÉΓòÉ
  5245.  
  5246. For NodeNames, specify the names, separated by blanks, of one or more 
  5247. workstations on which to collect data.  Names are limited to 8 characters and 
  5248. must be entered in capital letters.  The first name must be nonnumeric. 
  5249.  
  5250.  
  5251. ΓòÉΓòÉΓòÉ <hidden> Question Mark ΓòÉΓòÉΓòÉ
  5252.  
  5253. SPMLOGF ? provides a syntax diagram and brief help text for the SPMLOGF 
  5254. command. 
  5255.  
  5256.  
  5257. ΓòÉΓòÉΓòÉ <hidden> Example of SPMLOGF Command ΓòÉΓòÉΓòÉ
  5258.  
  5259. An example of the SPMLOGF command follows: 
  5260.  
  5261. SPMLOGF SAMPLE.LOG EngineeringLab 10 6 30 2 4 LABLOOPA LABLOOPB
  5262.  
  5263.  Component                Action 
  5264.  
  5265.  SAMPLE.LOG               Names the new monitor session file SAMPLE.LOG. 
  5266.  
  5267.  EngineeringLab           Comment that identifies this monitor session file as 
  5268.                           pertaining to workstations in the Engineering Lab. 
  5269.  
  5270.  10                       Specifies that the data is sampled every 10 seconds. 
  5271.  
  5272.  6                        Specifies that every 6 samples are summarized to make 
  5273.                           one record in the monitor session (.LOG) file.  Since 
  5274.                           data is sampled every 10 seconds, and every 6 samples 
  5275.                           are summarized, there would be a record written to 
  5276.                           the monitor session file once each minute. 
  5277.  
  5278.  30                       Specifies a 30-second time frame used in determining 
  5279.                           the amount of physical RAM in the working set. 
  5280.  
  5281.  2 4                      Specifies that resources 2 and 4 are collected. 
  5282.  
  5283.  LABLOOPA LABLOOPB        Specifies that data is collected from the two 
  5284.                           workstations named LABLOOPA and LABLOOPB. 
  5285.  
  5286.  
  5287. ΓòÉΓòÉΓòÉ 7.7. SPMLOGFX Command ΓòÉΓòÉΓòÉ
  5288.  
  5289. SPMLOGFX {
  5290.           filename.LOG
  5291.           [newfilename.LOG]
  5292.          | ?
  5293.          }
  5294.  
  5295.  Note:  Use the SPMLOGFX command to recover a monitor session (.LOG) file that 
  5296.         has been corrupted.  A monitor session (.LOG) file can be corrupted 
  5297.         when a machine is turned off or rebooted without requesting a normal 
  5298.         stop for the (.LOG) file.  You can use the SPMISTOP command or the 
  5299.         SPM/2 control window to request a normal stop for the monitor session 
  5300.         (.LOG) file. 
  5301.  
  5302.  
  5303. ΓòÉΓòÉΓòÉ <hidden> Filename.LOG ΓòÉΓòÉΓòÉ
  5304.  
  5305. For filename.LOG, specify the name of the monitor session file that was 
  5306. corrupted. The file name extension must be .LOG. 
  5307.  
  5308.  
  5309. ΓòÉΓòÉΓòÉ <hidden> Newfilename.LOG ΓòÉΓòÉΓòÉ
  5310.  
  5311. For newfilename.LOG, specify a name for the new monitor session file.  The file 
  5312. name extension must be .LOG. This parameter is optional. 
  5313.  
  5314.  Notes: 
  5315.  
  5316.      1. If you specify an existing monitor session (.LOG) file for 
  5317.         newfilename.LOG, it overwrites that file. 
  5318.  
  5319.      2. If you do not specify the newfilename.LOG parameter, the data in the 
  5320.         original monitor session (.LOG) file is replaced with the recovered 
  5321.         data. 
  5322.  
  5323.  
  5324. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5325.  
  5326. SPMLOGFX ? provides a syntax diagram and brief help text for the SPMLOGFX 
  5327. command. 
  5328.  
  5329.  
  5330. ΓòÉΓòÉΓòÉ 7.8. SPMNBL Command ΓòÉΓòÉΓòÉ
  5331.  
  5332. SPMNBL { /LISTEN
  5333.         | /STOPLISTEN
  5334.         | /HALTALL
  5335.         | ?
  5336.        }
  5337.  
  5338.  
  5339. ΓòÉΓòÉΓòÉ <hidden> /LISTEN - Start the NETBIOS Listener ΓòÉΓòÉΓòÉ
  5340.  
  5341. Use the /LISTEN parameter to start the NETBIOS  Listener on the local system. 
  5342. Once started, the Listener waits for requests to start the Data Collection 
  5343. Facility (for example, when you start recording or graphing). 
  5344.  
  5345. Normally, the NETBIOS Listener is started by the CONFIG.SYS file when you start 
  5346. your system.  However, if you have stopped the NETBIOS Listener, you must 
  5347. restart it using the /LISTEN parameter. 
  5348.  
  5349. You do not need to have NETBIOS installed in order to use the NETBIOS Listener. 
  5350. However, you do need the NETBIOS Listener program, the main function of which 
  5351. is to start the SPM/2 Data Collection Facility whenever requested by a new 
  5352. monitor (SPMILOG) session. 
  5353.  
  5354. In a local system, SPMNBL just waits for requests from a local instance of 
  5355. SPMILOG.  In a system that has NETBIOS installed, SPMNBL waits for requests to 
  5356. come across the NETBIOS network from remote instances of SPMILOG, in addition 
  5357. to waiting for requests from a local instance of SPMILOG. 
  5358.  
  5359.  
  5360. ΓòÉΓòÉΓòÉ <hidden> /STOPLISTEN - Stop the NETBIOS Listener ΓòÉΓòÉΓòÉ
  5361.  
  5362. Use the /STOPLISTEN parameter to stop the NETBIOS Listener.  Data collection 
  5363. continues, but no new requests to start a Data Collection Facility session can 
  5364. be received or processed by the Listener. 
  5365.  
  5366.  
  5367. ΓòÉΓòÉΓòÉ <hidden> /HALTALL - Immediate Stop of Data Collection Facility ΓòÉΓòÉΓòÉ
  5368.  
  5369. Use the /HALTALL parameter to stop the Data Collection Facility.  The main use 
  5370. of this parameter is in error recovery.  If the Data Collection Facility does 
  5371. not shut down in an orderly manner, the /HALTALL parameter can be used to force 
  5372. it to shut down. 
  5373.  
  5374. CAUTION:
  5375. Using the /HALTALL parameter causes the monitor session (.LOG) files to be 
  5376. corrupted. 
  5377.  
  5378.  
  5379. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5380.  
  5381. SPMNBL ? provides a syntax diagram and brief help text for the SPMNBL command. 
  5382.  
  5383.  
  5384. ΓòÉΓòÉΓòÉ 7.9. SPMISTRT Command ΓòÉΓòÉΓòÉ
  5385.  
  5386. SPMISTRT {
  5387.            filename.LOG [/R0]
  5388.          | ?
  5389.          }
  5390.  
  5391.  
  5392. ΓòÉΓòÉΓòÉ <hidden> filename.LOG ΓòÉΓòÉΓòÉ
  5393.  
  5394. For filename.LOG, specify the name of the monitor session file, which must have 
  5395. the extension .LOG. 
  5396.  
  5397.  
  5398. ΓòÉΓòÉΓòÉ <hidden> /R0 ΓòÉΓòÉΓòÉ
  5399.  
  5400. Use the /R0 parameter to start a monitor (SPMILOG) session that collects data 
  5401. but does not record it in the monitor session (.LOG) file.  This parameter is 
  5402. useful if you want only to graph the data (in which case you would issue an 
  5403. SPMMON command following the SPMISTRT command). 
  5404.  
  5405.  Note:  If you want to start a monitor session that records data to the .LOG 
  5406.         file, issue the SPMISTRT command without the /R0 parameter. 
  5407.  
  5408.  
  5409. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5410.  
  5411. SPMISTRT ? provides a syntax diagram and brief help text for the SPMISTRT 
  5412. command. 
  5413.  
  5414.  
  5415. ΓòÉΓòÉΓòÉ 7.10. SPMMON Command ΓòÉΓòÉΓòÉ
  5416.  
  5417. SPMMON {
  5418.            (filename.LOG
  5419.             [/P]
  5420.             [/N workstationName]
  5421.         | ?
  5422.        }
  5423.  
  5424.  Note:  The SPMISTRT command must be issued before the SPMMON command if you 
  5425.         want to graph an active monitor session. 
  5426.  
  5427.  
  5428. ΓòÉΓòÉΓòÉ <hidden> /P - Playback ΓòÉΓòÉΓòÉ
  5429.  
  5430. Use the /P parameter to graph previously recorded data.  You do not need to 
  5431. start an active monitor session when you use this parameter. 
  5432.  
  5433.  
  5434. ΓòÉΓòÉΓòÉ <hidden> /N - Specify Workstation Name ΓòÉΓòÉΓòÉ
  5435.  
  5436. Use the /N parameter to specify the name of the workstation you want to 
  5437. monitor. 
  5438.  
  5439.  
  5440. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5441.  
  5442. SPMMON ? provides a syntax diagram and brief help text for the SPMMON command. 
  5443.  
  5444.  
  5445. ΓòÉΓòÉΓòÉ 7.11. SPMISTOP Command ΓòÉΓòÉΓòÉ
  5446.  
  5447. SPMISTOP {
  5448.             /DRAIN filename.LOG
  5449.           | /HALT filename.LOG
  5450.           | /DRAINALL
  5451.           | /HALTALL
  5452.           | ?
  5453.          }
  5454.  
  5455.  
  5456. ΓòÉΓòÉΓòÉ <hidden> /DRAIN - Normal Stop for One File ΓòÉΓòÉΓòÉ
  5457.  
  5458. Use the /DRAIN parameter to request a normal stop for the named monitor session 
  5459. (.LOG) file.  This is the equivalent of stopping one active monitor session 
  5460. file using the SPM/2 control window. 
  5461.  
  5462.  
  5463. ΓòÉΓòÉΓòÉ <hidden> /HALT - Immediate Stop for One File ΓòÉΓòÉΓòÉ
  5464.  
  5465. Use the /HALT parameter to request an immediate stop for the named monitor 
  5466. session (.LOG) file.  The main use of this parameter is in error recovery.  If 
  5467. the monitor session does not shut down using the /DRAIN parameter, the /HALT 
  5468. parameter can be used to force it to shut down. 
  5469.  
  5470. CAUTION:
  5471. Using the /HALT parameter causes the monitor session (.LOG) file to be 
  5472. corrupted. 
  5473.  
  5474.  
  5475. ΓòÉΓòÉΓòÉ <hidden> /DRAINALL - Normal Stop for All Files ΓòÉΓòÉΓòÉ
  5476.  
  5477. Use the /DRAINALL parameter to request a normal stop for all active monitor 
  5478. session (.LOG) files. This is the equivalent of stopping all active monitor 
  5479. session files using the SPM/2 control window. 
  5480.  
  5481.  
  5482. ΓòÉΓòÉΓòÉ <hidden> /HALTALL - Immediate Stop for All Files ΓòÉΓòÉΓòÉ
  5483.  
  5484. Use the /HALTALL parameter to request an immediate stop for all active monitor 
  5485. session (.LOG) files.  The main use of this parameter is in error recovery.  If 
  5486. the monitor sessions do not shut down in an orderly manner, the /HALT parameter 
  5487. can be used to force them to shut down. 
  5488.  
  5489. CAUTION:
  5490. Using the /HALTALL parameter causes the monitor session (.LOG) files to be 
  5491. corrupted. 
  5492.  
  5493.  
  5494. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5495.  
  5496. SPMISTOP ? provides a syntax diagram and brief help text for the SPMISTOP 
  5497. command. 
  5498.  
  5499.  
  5500. ΓòÉΓòÉΓòÉ 7.12. SPMRDF Command ΓòÉΓòÉΓòÉ
  5501.  
  5502. SPMRDF {
  5503.           filename.RDF
  5504.         | ?
  5505.        }
  5506.  
  5507.  
  5508. ΓòÉΓòÉΓòÉ <hidden> Filename.RDF ΓòÉΓòÉΓòÉ
  5509.  
  5510. For filename.RDF, specify the name of the report description file, which must 
  5511. have the extension .RDF. 
  5512.  
  5513.  
  5514. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5515.  
  5516. SPMRDF ? provides a syntax diagram and brief help text for the SPMRDF command. 
  5517.  
  5518.  
  5519. ΓòÉΓòÉΓòÉ 7.13. SPMRDFI Command ΓòÉΓòÉΓòÉ
  5520.  
  5521. SPMRDFI {
  5522.            filename.RDI
  5523.            filename.RDF
  5524.          | ?
  5525.         }
  5526.  
  5527.  
  5528. ΓòÉΓòÉΓòÉ 7.13.1. Filename.RDI ΓòÉΓòÉΓòÉ
  5529.  
  5530. For filename.RDI, specify the name of the input file, which must have the 
  5531. extension .RDI. This file contains the specifications for the report 
  5532. description (.RDF) file. 
  5533.  
  5534. Select one: 
  5535.  
  5536.  o Input file format 
  5537.  o Hints for creating an .RDF file 
  5538.  
  5539.  
  5540. ΓòÉΓòÉΓòÉ 7.13.1.1. Input File Format ΓòÉΓòÉΓòÉ
  5541.  
  5542. An example of an input file follows: 
  5543.  
  5544. OPT 01/01/1993:02:35:00 01/02/1993:14:55:00 00:05:00 'Claires Report'
  5545. SUM wkst inact unassign
  5546. GROUPS 3 4 5 6 7 9 10 15 16 42 46 47
  5547. APPL OS2 PULSE PMSHELL
  5548. APPL SPM SPM SPMILOG SPMMON SPMDCF SPMNBL
  5549. ILOG r:\sample.log 'this is a sample log' WKST01 WKST02
  5550. ILOG local.log 'this is a local log' SRVR00 WKST03
  5551.  
  5552. While you modify the filename.RDI file, keep the following guidelines in mind: 
  5553.  
  5554.  o All input statements must begin at column 1. 
  5555.  
  5556.  o Dates must be specified in month, day, year, hour, minute, second 
  5557.    (mm/dd/yyyy:hh:mm:ss) format. 
  5558.  
  5559.  o Time periods must be specified in hour, minute, second (hh:mm:ss) 24-hour 
  5560.    format. Do not suppress leading zeros. 
  5561.  
  5562.  
  5563. ΓòÉΓòÉΓòÉ <hidden> OPT Input Statement ΓòÉΓòÉΓòÉ
  5564.  
  5565. The syntax for the OPT input statement follows: 
  5566.  
  5567. OPT start stop intvl [ 'title' ] [ DEC=value ] [ SEP=value ]
  5568.  
  5569. where: 
  5570.  
  5571.  start                    Specifies the start date and time at which to begin 
  5572.                           analyzing data. This option is required.  If the 
  5573.                           start date and time are set to all zeros, the 
  5574.                           defaults for the start date and time are the earliest 
  5575.                           start date and time at which data was collected in 
  5576.                           the .LOG file. 
  5577.  
  5578.  stop                     Specifies the stop date and time at which to stop 
  5579.                           analyzing data. This option is required. If the stop 
  5580.                           date and time are set to all zeros, the defaults for 
  5581.                           the stop date and time are the latest stop date and 
  5582.                           time at which data was collected in the .LOG file. 
  5583.  
  5584.  intvl                    Specifies the interval at which data should be 
  5585.                           summarized. This option is required.  If the interval 
  5586.                           is set to all zeros, the default is the range of time 
  5587.                           that falls between the earliest start date and time 
  5588.                           and the latest stop date and time at which data was 
  5589.                           collected in the .LOG file. 
  5590.  
  5591.  'title'                  Specifies the title for the new report that you type 
  5592.                           in the first panel after opening an .RDF file.  This 
  5593.                           title is optional. 
  5594.  
  5595.  DEC=                     Specifies a character (country option) to be used as 
  5596.                           a decimal point in the processed report.  The default 
  5597.                           character is a period (.). 
  5598.  
  5599.  SEP=                     Specifies a character (country option) to be used for 
  5600.                           separating lists in the processed report.  The 
  5601.                           default character is a comma (,). 
  5602.  
  5603.  
  5604. ΓòÉΓòÉΓòÉ <hidden> SUM, TAB, or DMP Input Statement ΓòÉΓòÉΓòÉ
  5605.  
  5606. Specify one of the following options for the report format: 
  5607.  
  5608.  SUM                      Specifies that a summary report file with the 
  5609.                           extension .SUM be generated. 
  5610.  
  5611.  TAB                      Specifies that a tabular report file with the 
  5612.                           extension .TAB be generated. 
  5613.  
  5614.  DMP                      Specifies that a dump report file with the extension 
  5615.                           .DMP be generated. 
  5616.  
  5617.  The syntax for the SUM input statement follows: 
  5618.  
  5619.   SUM [ WKST | APPL | PROCESS | THREAD ]  [ INACT ]  [ UNASSIGN ]
  5620.  
  5621.  where: 
  5622.  
  5623.  WKST                     Specifies that the data is summarized as total 
  5624.                           activity for each workstation. 
  5625.  
  5626.  APPL                     Specifies that the data for the activity is 
  5627.                           summarized both by workstation and by each individual 
  5628.                           application running at that workstation. 
  5629.  
  5630.  PROCESS                  Specifies that in addition to workstation totals and 
  5631.                           application breakdown, activity is also listed by 
  5632.                           individual process. 
  5633.  
  5634.  THREAD                   Specifies that activity is summarized at the thread 
  5635.                           level and at every higher level (that is workstation, 
  5636.                           application, and process). 
  5637.  
  5638.  INACT                    Specifies that all data, including data for nonactive 
  5639.                           applications, processes, threads, or files be 
  5640.                           included in the summary report. In other words, if 
  5641.                           the activity for any application, process, thread, or 
  5642.                           file is zero (no activity), specify INACT to include 
  5643.                           this information in the summary report. If you do not 
  5644.                           specify INACT, only data from applications, 
  5645.                           processes, threads, or files that contain activity is 
  5646.                           included in the summary report. 
  5647.  
  5648.  UNASSIGN                 Specifies that SPM/2 will report on performance data 
  5649.                           for unassigned processes.  See Report Unassigned 
  5650.                           Processes for more information. 
  5651.  
  5652.  The syntax for the TAB input statement follows: 
  5653.  
  5654.   TAB [ WKST | RESOURCE ] [ UNIT | PERCENT ]  [ DELIMITED ]
  5655.  
  5656.  where: 
  5657.  
  5658.  WKST                     Specifies that the report is formatted with the 
  5659.                           workstation name as the column heading. 
  5660.  
  5661.  RESOURCE                 Specifies that the report is formatted with the 
  5662.                           resource data as the column heading. 
  5663.  
  5664.  UNIT                     Specifies that the resource data is represented by 
  5665.                           unit value. (For example, bytes or number of 
  5666.                           occurrences.) 
  5667.  
  5668.  PERCENT                  Specifies that the resource data is represented by a 
  5669.                           percentage. 
  5670.  
  5671.  DELIMITED                Specifies that the report format is spreadsheet 
  5672.                           compatible and can be imported to various spreadsheet 
  5673.                           programs.  See Spreadsheet Compatible Reports for 
  5674.                           more information. 
  5675.  
  5676.  The syntax for the DMP input statement follows: 
  5677.  
  5678.   DMP
  5679.  
  5680.  The DMP input statement generates a dump report file with the extension .DMP. 
  5681.  This report format displays values for the lowest level performance counters 
  5682.  and timers as sampled at the recording frequency. The summary interval is 
  5683.  always the same as the recording frequency. The DMP input statement has no 
  5684.  options. 
  5685.  
  5686.  
  5687. ΓòÉΓòÉΓòÉ <hidden> GROUP Input Statement ΓòÉΓòÉΓòÉ
  5688.  
  5689. The syntax for the GROUPS input statement follows: 
  5690.  
  5691. GROUPS ggg ...
  5692.  
  5693. For ggg ..., which represents a resource group number, specify one or more 
  5694. ordinals of the resource groups on which to collect data. See Resource Group 
  5695. Ordinals for a list of resource groups and their corresponding ordinals. 
  5696.  
  5697.  Note:  Resource groups can be specified only for the summary report. 
  5698.  
  5699.  
  5700. ΓòÉΓòÉΓòÉ <hidden> APPL Input Statement ΓòÉΓòÉΓòÉ
  5701.  
  5702. The syntax for the APPL input statement follows: 
  5703.  
  5704. APPL application [ program ... ]
  5705.  
  5706. where: 
  5707.  
  5708.  application              Specifies the user-defined name for an application. 
  5709.  
  5710.  program ...              Specifies the name of every program (.EXE) file to be 
  5711.                           included in the application. 
  5712.  
  5713.  Notes: 
  5714.  
  5715.      1. You must specify the APPL input statement each time you want to create 
  5716.         a new application definition. 
  5717.  
  5718.      2. You can use the APPL input statement only for application, process, or 
  5719.         thread summary reports. 
  5720.  
  5721.  
  5722. ΓòÉΓòÉΓòÉ <hidden> ILOG Input Statement ΓòÉΓòÉΓòÉ
  5723.  
  5724. The syntax for the ILOG input statement follows: 
  5725.  
  5726. ILOG ilogname 'title' [ wkstname ... ]
  5727.  
  5728. where: 
  5729.  
  5730.  ilogname                 Specifies a monitor session (.LOG) file name. 
  5731.  
  5732.  'title'                  Specifies a descriptive name to identify the monitor 
  5733.                           session (.LOG) file. This name is optional. 
  5734.  
  5735.  wkstname ...             Specifies each workstation, or node to be included in 
  5736.                           the report.  You must specify at least one 
  5737.                           workstation. Use capital letters to specify the 
  5738.                           workstation name. 
  5739.  
  5740.  Note:  You must specify the ILOG input statement each time you want to include 
  5741.         a monitor session (.LOG) file in the report. 
  5742.  
  5743.  
  5744. ΓòÉΓòÉΓòÉ 7.13.1.2. Hints for Creating an .RDF File ΓòÉΓòÉΓòÉ
  5745.  
  5746. After you have created a new .RDF file, you can verify the contents of this 
  5747. file by performing the following tasks: 
  5748.  
  5749.   1. To create the filename.LST file, which lists the contents of the new .RDF 
  5750.      file, at an OS/2 command prompt, type: 
  5751.  
  5752.           SPMRDF filename.RDF /F
  5753.  
  5754.   2. To view the contents of the .RDF file, at an OS/2 command prompt, type: 
  5755.  
  5756.           e filename.LST
  5757.  
  5758.  
  5759. ΓòÉΓòÉΓòÉ <hidden> Filename.RDF ΓòÉΓòÉΓòÉ
  5760.  
  5761. For filename.RDF, specify the name of the output report description file, which 
  5762. must have the extension .RDF. 
  5763.  
  5764.  
  5765. ΓòÉΓòÉΓòÉ <hidden> ? - Syntax Diagram ΓòÉΓòÉΓòÉ
  5766.  
  5767. SPMRDFI ? provides a syntax diagram and brief help text for the SPMRDFI 
  5768. command. 
  5769.  
  5770.  
  5771. ΓòÉΓòÉΓòÉ 7.14. SPMSNAPP Command ΓòÉΓòÉΓòÉ
  5772.  
  5773. SPMSNAPP [?]
  5774.  
  5775. At an OS/2 command prompt, type SPMSNAPP to format data in the SPMSNAP.ERR log 
  5776. file so that it can be displayed on the screen.  You can redirect the formatted 
  5777. data to an output file by using the OS/2 > redirect command. 
  5778.  
  5779. SPMSNAPP ? provides a syntax diagram and brief help text for the SPMSNAPP 
  5780. command. 
  5781.  
  5782.  
  5783. ΓòÉΓòÉΓòÉ 8. SPM/2 Application Programming Interface: Overview ΓòÉΓòÉΓòÉ
  5784.  
  5785.  
  5786. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  5787.  
  5788. SPM/2 provides an application programming interface (API) that allows 
  5789. user-written 16-bit or 32-bit applications in the C programming language to 
  5790. communicate with the SPM/2 Data Collection Facility, active monitor (SPMILOG) 
  5791. sessions, and monitor session (.LOG) files. 
  5792.  
  5793. Using the SPM/2 API, you can perform the following tasks for a local machine or 
  5794. a network: 
  5795.  
  5796.  o Determine active SPM/2 components 
  5797.  o Initiate and terminate data collection sessions 
  5798.  o Retrieve real-time and historical data. 
  5799.  
  5800.  The same API that you access for your applications is used by the logging, 
  5801.  graphing, and reporting applications for their functions.  See the Component 
  5802.  Relationships flowchart. 
  5803.  
  5804.  The SPM/2 API accesses different components to retrieve real-time or 
  5805.  historical data.  See the Accessing Real-Time and Historical Data 
  5806.  illustration. 
  5807.  
  5808.  More 
  5809.  
  5810.  
  5811. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  5812.  
  5813. Select one: 
  5814.  
  5815.  o Compile information 
  5816.  o Notes on functionality 
  5817.  o General code definitions 
  5818.  o Log file-specific statements 
  5819.  o Functions 
  5820.  o Return codes. 
  5821.  
  5822.  
  5823. ΓòÉΓòÉΓòÉ <hidden> SPM/2 API:  More ΓòÉΓòÉΓòÉ
  5824.  
  5825. There are two principal uses for the SPM/2 API: 
  5826.  
  5827.  o Accessing historical data from a monitor session (.LOG) file 
  5828.  o Accessing real-time data from the Data Collection Facility. 
  5829.  
  5830.  Although several report options are available through the SPM/2 Presentation 
  5831.  Manager interface, at times you may want to use your own customized format to 
  5832.  create reports that analyze specific performance factors.  The SPM/2 API 
  5833.  allows you to access the historical data you need for those reports.  For 
  5834.  example, your application could use the SPM/2 API to extract CPU and file 
  5835.  activity from a monitor session (.LOG) file, correlate the two, and generate a 
  5836.  custom report. 
  5837.  
  5838.  Using the SPM/2 API to access real-time data allows you to create new 
  5839.  performance applications for uses such as threshold checking, alert 
  5840.  generation, additional graphing capability, or network monitoring. 
  5841.  
  5842.  The SPM/2 API can also be used to dynamically adjust the way your application 
  5843.  runs.  For example, if you are running your application on a system with 16MB 
  5844.  of RAM, you might use the SPM/2 API to determine the amount of RAM in the 
  5845.  working set.  If the working set is 6MB, then your application would "know" 
  5846.  that there is 10MB of RAM left for its use. 
  5847.  
  5848.  
  5849. ΓòÉΓòÉΓòÉ 8.1. Compile Information ΓòÉΓòÉΓòÉ
  5850.  
  5851. The SPM/2 API is compatible with both 16-bit and 32-bit C compilers. To use the 
  5852. SPM/2 API, you must install SPM/2 with the /API parameter.  All files necessary 
  5853. to program to the SPM/2 API are in the \API subdirectory of the main SPM/2 
  5854. subdirectory. 
  5855.  
  5856. The SPM/2 API functions reside in a dynamic link libraries (DLL) called 
  5857. SPMAPI.DLL and DATETIME.DLL, which are included on your original SPM/2 program 
  5858. diskettes. 
  5859.  
  5860. Include the following files when you compile your program: 
  5861.  
  5862.  SPMAPI.H         API definitions. 
  5863.  SPMCTRGP.H       Structure definitions for data returned. 
  5864.  
  5865.  Link the SPMAPI.LIB library with your program.  Linking with this library 
  5866.  tells your program the address of the SPM/2 functions in the .DLL libraries. 
  5867.  
  5868.  
  5869. ΓòÉΓòÉΓòÉ 8.2. Notes on Functionality ΓòÉΓòÉΓòÉ
  5870.  
  5871.   1. The monitor (SPMILOG) session directly processes the log file header and 
  5872.      configures the Data Collection Facility sessions. 
  5873.  
  5874.   2. Use the manifest constants provided. 
  5875.  
  5876.   3. SPM uses date, time, and datetime fields that are stored as floating point 
  5877.      numbers.  The numbers used are compatible with the time value numbers used 
  5878.      by most statistical packages. 
  5879.  
  5880.   4. The log files and records returned across the real-time interface are 
  5881.      described in the SPMAPI.H and SPMCTRGP.H files.  The records are returned 
  5882.      as a fixed format header and a set of additional segments which represent 
  5883.      groups being collected. 
  5884.  
  5885.   5. All resource collection groups are predefined and delivered with SPM/2. 
  5886.      Additional groups can be added by IBM, other vendors, or the end user as 
  5887.      user metrics.  Adding a user metric generates a new SPMCTRGP.H file that 
  5888.      includes all locally known definitions of resource collection groups. 
  5889.  
  5890.   6. A resource collection group appears in a record only if it is active 
  5891.      during a collection session.  There is no guarantee that any particular 
  5892.      group will be in a particular record. 
  5893.  
  5894.   7. In general, a report program accesses the header of a record to determine 
  5895.      if the record contains information about a Data Collection Facility 
  5896.      session (each record contains data from only one Data Collection Facility 
  5897.      session).  If the header indicates that the record contains information of 
  5898.      interest, the report program scans the substructures collected for that 
  5899.      Data Collection Facility to find the data. 
  5900.  
  5901.      If a Data Collection Facility session does not supply data in a reporting 
  5902.      period, no records may exist for that session and reporting period.  If a 
  5903.      Data Collection Facility session supplies a large amount of data in a 
  5904.      reporting period, two or more records may exist for that session and 
  5905.      reporting period. 
  5906.  
  5907.   8. A set of indicators in the collection record shows what problems, if any, 
  5908.      were encountered with a monitor (SPMILOG) session in the period. 
  5909.  
  5910.  
  5911. ΓòÉΓòÉΓòÉ 8.3. General Definitions ΓòÉΓòÉΓòÉ
  5912.  
  5913. The following general structures, functions, pointers, variables, constants, 
  5914. and data types have been defined for the SPM/2 API: 
  5915.  
  5916.  o OS/2 data types 
  5917.  o FPDATETIME, FPDATE, and FPTIME 
  5918.  o TIMEPERIOD and TOD 
  5919.  o EXTENDEDRC and PEXTENDEDRC 
  5920.  o FILTERSPEC, PFILTERSPEC, and PPFILTERSPEC 
  5921.  o LOGFILEHANDLE and PLOGFILEHANDLE 
  5922.  o QUOPTION and PQUOPTION 
  5923.  o QUTIMES and PQUTIMES 
  5924.  o QUERYHDR and PQUERYHDR 
  5925.  o SESSIONSPEC 
  5926.  o Definitions of constants. 
  5927.  
  5928.  
  5929. ΓòÉΓòÉΓòÉ 8.3.1. OS/2 Data Types ΓòÉΓòÉΓòÉ
  5930.  
  5931.  BOOL           Unsigned short integer (flag indicating either true or false) 
  5932.  BYTE           Unsigned character 
  5933.  HSEM           Void (handle for a semaphore) 
  5934.  PSZ            Unsigned character (pointer to a null-terminated string) 
  5935.  PUSHORT        Pointer to an unsigned short integer 
  5936.  PVOID          Pointer to a void 
  5937.  UCHAR          Unsigned character 
  5938.  ULONG          Unsigned long integer 
  5939.  USHORT         Unsigned short integer 
  5940.  
  5941.  
  5942. ΓòÉΓòÉΓòÉ 8.3.2. FPDATETIME, FPDATE, and FPTIME ΓòÉΓòÉΓòÉ
  5943.  
  5944.  
  5945.   /* FPDATETIME:
  5946.     this item is the number of seconds and fractions of a second
  5947.     since 1Jan1960.
  5948.   */
  5949.   typedef double FPDATETIME; /* dt */
  5950.  
  5951.   /* DATE:
  5952.     this item is the number of days since 1Jan1960.  To convert to
  5953.     FPDATETIME multiply by 24*60*60.
  5954.   */
  5955.   typedef float FPDATE; /* date */
  5956.  
  5957.   /* TIME:
  5958.     this item is the number of seconds and parts of seconds.
  5959.   */
  5960.   typedef float FPTIME; /* time */
  5961.  
  5962.  
  5963. ΓòÉΓòÉΓòÉ 8.3.3. TIMEPERIOD and TOD ΓòÉΓòÉΓòÉ
  5964.  
  5965.  
  5966.   /* TIMEPERIOD:
  5967.     this item is a number of seconds and parts of a second.
  5968.   */
  5969.   typedef FPTIME TIMEPERIOD; /* tp */
  5970.  
  5971.   /* TOD:
  5972.     this item is a number of seconds and fractions of a second
  5973.     since midnight.
  5974.   */
  5975.   typedef FPTIME TOD; /* tod */
  5976.  
  5977.  
  5978. ΓòÉΓòÉΓòÉ 8.3.4. EXTENDEDRC and PEXTENDEDRC ΓòÉΓòÉΓòÉ
  5979.  
  5980.  
  5981. typedef struct _EXTENDEDRC
  5982. {
  5983.   USHORT FunctionCode;  /* the function being executed when */
  5984.   USHORT FunctionRC;    /* this error resulted */
  5985. } EXTENDEDRC;
  5986.  
  5987. typedef EXTENDEDRC * SPMPTR PEXTENDEDRC;
  5988.  
  5989.  
  5990. ΓòÉΓòÉΓòÉ 8.3.5. FILTERSPEC, PFILTERSPEC, and PPFILTERSPEC ΓòÉΓòÉΓòÉ
  5991.  
  5992.  
  5993. typedef struct _FILTERSPEC
  5994. /*
  5995.   Determines the range of times for which data will be read,
  5996.   either from the .LOG file or in real time.  It is also the
  5997.   underlying structure in the vector that is returned on a
  5998.   Query request that returns the recording intervals on a
  5999.   specific .LOG file.
  6000. */
  6001. {
  6002.   FPDATETIME dtStartDateTime;
  6003.   FPDATETIME dtEndDateTime;
  6004. }FILTERSPEC;
  6005.  
  6006. typedef FILTERSPEC * SPMPTR PFILTERSPEC;
  6007.  
  6008. typedef PFILTERSPEC * SPMPTR PPFILTERSPEC;
  6009.  
  6010.  
  6011. ΓòÉΓòÉΓòÉ 8.3.6. LOGFILEHANDLE and PLOGFILEHANDLE ΓòÉΓòÉΓòÉ
  6012.  
  6013.  
  6014. typedef struct _LOGFILEHANDLE
  6015. {
  6016.   BYTE    cReserved[64];  /* handle of log file */
  6017. } LOGFILEHANDLE;
  6018.  
  6019. typedef LOGFILEHANDLE * SPMPTR PLOGFILEHANDLE;
  6020.  
  6021.  
  6022. ΓòÉΓòÉΓòÉ 8.3.7. QUOPTION and PQUOPTION ΓòÉΓòÉΓòÉ
  6023.  
  6024.  
  6025. typedef USHORT QUOPTION;
  6026.  
  6027. typedef QUOPTION * SPMPTR PQUOPTION;
  6028.  
  6029.  
  6030. ΓòÉΓòÉΓòÉ 8.3.8. QUTIMES and PQUTIMES ΓòÉΓòÉΓòÉ
  6031.  
  6032.  
  6033. typedef struct _QUTIMES
  6034. {
  6035.   FPDATETIME dtStartTime;
  6036.   FPDATETIME dtEndTime;
  6037. }QUTIMES;
  6038.  
  6039. typedef QUTIMES * SPMPTR PQUTIMES;
  6040.  
  6041.  
  6042. ΓòÉΓòÉΓòÉ 8.3.9. QUERYHDR and PQUERYHDR ΓòÉΓòÉΓòÉ
  6043.  
  6044.  
  6045. typedef struct _QUERYHDR
  6046. {
  6047.   USHORT usResultMax;      /* filled in by the caller */
  6048.   USHORT usItemsReturned;  /* which may be zero if none are found */
  6049.   PVOID SPMPTR pbResult;   /* a pointer to the returned value(s) */
  6050. }QUERYHDR;
  6051.  
  6052. typedef QUERYHDR * SPMPTR PQUERYHDR;
  6053.  
  6054.  
  6055. ΓòÉΓòÉΓòÉ 8.3.10. SESSIONSPEC ΓòÉΓòÉΓòÉ
  6056.  
  6057.  
  6058. typedef struct _SESSIONSPEC
  6059. {
  6060.   FILTERSPEC fsFilter;
  6061.   CHAR       szComponentName[1];
  6062. }SESSIONSPEC;
  6063.  
  6064. typedef SESSIONSPEC * SPMPTR PSESSIONSPEC;
  6065.  
  6066. typedef PSESSIONSPEC * SPMPTR PPSESSIONSPEC;
  6067.  
  6068.  
  6069. ΓòÉΓòÉΓòÉ 8.3.11. Definitions of Constants ΓòÉΓòÉΓòÉ
  6070.  
  6071.  
  6072. #define API_GENERAL_TIMEOUT     30000
  6073. #define ILOG_GENERAL_TIMEOUT    15000
  6074. #define ILOG_HANDSHAKE_TIMEOUT  30000
  6075. #define SPMAPI_PGM_NAME         "spmilog.exe"
  6076.  
  6077. /*
  6078.   Command Constants:
  6079. */
  6080.  
  6081. #define SPMAPI_DRAIN                  1
  6082. #define SPMAPI_DRAIN_ALL              2
  6083. #define SPMAPI_HALT                   3
  6084. #define SPMAPI_HALT_ALL               4
  6085. #define SPMAPI_ALLOC                 15
  6086.  
  6087. /*
  6088.   API Set Constants:
  6089. */
  6090.  
  6091. #define SPM_SET_RECORD_MULT          18
  6092.  
  6093. /*
  6094.   API Query Constants:
  6095. */
  6096.  
  6097. #define SPM_QU_DCF_LIST               5
  6098. #define SPM_QU_ILOG_LIST              6
  6099. #define SPM_QU_ACTIVE_DCF_NODES       7
  6100. #define SPM_QU_ILOG_STAT              8
  6101. #define SPM_QU_CFGD_GROUPS            9
  6102. #define SPM_QU_CFGD_DCF_NODES        10
  6103. #define SPM_QU_CFGD_PERIODS          11
  6104. #define SPM_QU_L_ILOG_LIST           16
  6105. #define SPM_QU_ILOG_NAME             17
  6106. #define SPM_QU_RECD_DCF_NODES        18
  6107. #define SPM_QU_HIST_GROUPS           19
  6108. #define SPM_QU_CFGD_TIMES            20
  6109. #define SPM_QU_CFGD_GROUPS_PERIOD    21
  6110. #define SPM_QU_CFGD_DCF_NODES_PERIOD 22
  6111. #define SPM_QU_CFGD_TIMES_PERIOD     23
  6112.  
  6113.  
  6114. ΓòÉΓòÉΓòÉ 8.4. Log File-Specific Statements ΓòÉΓòÉΓòÉ
  6115.  
  6116. The following conditional compile statements relating to monitor session (.LOG) 
  6117. files have been defined: 
  6118.  
  6119.  o SPM_NODENAME_SIZE 
  6120.  o PID1632 and TID1632 
  6121.  o BASICHDR 
  6122.  o RBA 
  6123.  o ROF 
  6124.  o VRM 
  6125.  o DATARECHDR and DCFGROUP 
  6126.  o INSTANCEBLOCK. 
  6127.  
  6128.  
  6129. ΓòÉΓòÉΓòÉ 8.4.1. SPM_NODENAME_SIZE ΓòÉΓòÉΓòÉ
  6130.  
  6131.  
  6132.   #define SPM_NODENAME_LEN   15
  6133.   #define SPM_NODENAME_SIZE  (SPM_NODENAME_LEN+1)
  6134.   #define SPM_PWD_LEN        9
  6135.   #define SPM_PWD_SIZE       (SPM_PWD_LEN+1)
  6136.  
  6137.  
  6138. ΓòÉΓòÉΓòÉ 8.4.2. PID1632 and TID1632 ΓòÉΓòÉΓòÉ
  6139.  
  6140.  
  6141.   /*
  6142.     Note: the following definitions and their use
  6143.     fix a problem with a PID and TID size difference between
  6144.     the 16 & 32 bit tool kits.
  6145.   */
  6146.   #define PID1632         ULONG
  6147.   #define TID1632         ULONG
  6148.  
  6149.  
  6150. ΓòÉΓòÉΓòÉ 8.4.3. BASICHDR ΓòÉΓòÉΓòÉ
  6151.  
  6152.  
  6153.   /*
  6154.     BASICHDR:
  6155.     In general the monitor session (.LOG) file is a typical
  6156.     file, but it contains a variety of record types.  The
  6157.     .LOG file is readable as a sequential file of variable length
  6158.     records, each with a BASICHDR of the following form:
  6159.   */
  6160.  
  6161.   typedef struct _BASICHDR
  6162.   {
  6163.     USHORT usLL;                /*
  6164.                                   Noninclusive length of this
  6165.                                   record.
  6166.                                   Note:  Noninclusive length is
  6167.                                   used here because records are
  6168.                                   actually read with two
  6169.                                   DosRead() functions.  The first
  6170.                                   read is always a BASICHDR and
  6171.                                   the next read is for the value
  6172.                                   contained in the usLL.  If the
  6173.                                   RecordType or SubType is not
  6174.                                   interesting, the file can be
  6175.                                   positioned using the usLL
  6176.                                   directly.
  6177.                                 */
  6178.     UCHAR  ucRecordSeries;      /*
  6179.                                   LLS:  overall .LOG file format
  6180.                                   indicator.  If the .LOG file
  6181.                                   format changes in a way that
  6182.                                   precludes processing by a
  6183.                                   program written for a prior
  6184.                                   format, this field will
  6185.                                   indicate that fact.  It is
  6186.                                   inadvisable to attempt to
  6187.                                   process a .LOG file whose series
  6188.                                   is not known to you.  The initial
  6189.                                   value is zero.  This field is
  6190.                                   reserved.
  6191.                                 */
  6192.     UCHAR  ucRecordType;        /* possible record types    */
  6193.     UCHAR  ucRecordSubType;     /* possible record subtypes */
  6194. /*
  6195.       Note:
  6196.         The record type and subtype fields must be checked to ensure
  6197.         that they are the type and subtype expected.  It is inadvisable
  6198.         to attempt to process a type or subtype that is undocumented.
  6199. */
  6200.   }BASICHDR;
  6201.  
  6202.  
  6203. ΓòÉΓòÉΓòÉ 8.4.4. RBA ΓòÉΓòÉΓòÉ
  6204.  
  6205.  
  6206.   /*
  6207.     RBA:
  6208.     an RBA is the relative byte address of a record in the
  6209.     .LOG file
  6210.   */
  6211.   typedef ULONG RBA; /* rba */
  6212.  
  6213.  
  6214. ΓòÉΓòÉΓòÉ 8.4.5. ROF ΓòÉΓòÉΓòÉ
  6215.  
  6216.  
  6217.   /*
  6218.     ROF:
  6219.     a ROF is the byte offset of a field in the same record of the
  6220.     .LOG file. It contains the number of bytes the field is from the
  6221.     first byte of the ROF field. The referenced field is always at
  6222.     a higher RBA than the ROF.
  6223.  
  6224.     Typical usage:
  6225.  
  6226.     pszTarget = (PSZ) ((PVOID)&rofSource + rofSource);
  6227.  
  6228.     Note: if rofSource = NULL then pszTarget automatically points
  6229.     to a 0x0000 field.
  6230.  
  6231.   */
  6232.   typedef USHORT ROF; /* rof, nrof */
  6233.  
  6234.  
  6235. ΓòÉΓòÉΓòÉ 8.4.6. VRM ΓòÉΓòÉΓòÉ
  6236.  
  6237.  
  6238.   /*
  6239.     VRM:
  6240.     There are times when things change.  To this end, SPM/2
  6241.     provides indications as to the processability of a .LOG
  6242.     file.  Primary to this feature is the ucRecordSeries
  6243.     field in the BASICHDR.  Version Release Modification
  6244.     status is intended to indicate less drastic changes and
  6245.     to alert a processing program to the potential impact of
  6246.     those changes.
  6247.  
  6248.     A change in Modification indicates that changes to the
  6249.     underlying formats of type 10 records were made that
  6250.     include the addition or obsolescence of fields within
  6251.     one or more groups.  Fields are always added at the end
  6252.     of a description.  Obsolescent fields are set to zero.
  6253.     Your current version will run if it provides for
  6254.     protection against errors caused by zeros where
  6255.     obsolescent fields are no longer being collected.
  6256.     Field offsets within records have not changed.  Ordinals
  6257.     have not changed.
  6258.  
  6259.     A change in Release indicates that changes to the
  6260.     underlying formats of type 10 records were made that
  6261.     include the addition or deletion of entire groups and
  6262.     the addition or obsolescence of fields within one or
  6263.     more groups.  A new version is recommended.  Changes
  6264.     within a group have the same limitations as a change in
  6265.     Modification level.  Ordinals have been added or
  6266.     deleted, but prior ordinals within the same version have
  6267.     not changed.
  6268.  
  6269.     A change in Version indicates that changes to the
  6270.     underlying formats of type 10 records were made in a way
  6271.     that will probably render programs using prior versions
  6272.     of the .LOG file descriptions invalid.  A new version is
  6273.     required.  Ordinals have probably changed.
  6274.  
  6275.     VRM information is provided to the DCF from the Service
  6276.     Functions DLL.
  6277.  
  6278.     VRM information is reserved in SPM/2 2.0.
  6279.   */
  6280.   typedef struct _VRM
  6281.   {
  6282.     UCHAR   ucVer;              /* the Version of the record */
  6283.     UCHAR   ucRel;              /* the Release of the record */
  6284.     UCHAR   ucMod;              /* the Mod of the record */
  6285.   } VRM;
  6286.  
  6287.  
  6288. ΓòÉΓòÉΓòÉ 8.4.7. DATARECHDR and DCFGROUP ΓòÉΓòÉΓòÉ
  6289.  
  6290.  
  6291.   /*
  6292.  
  6293.     Type 10: Subtype 0: Managed Session Interval Record.
  6294.  
  6295.     This is the basic collection record.  It is sometimes
  6296.     called a snapshot record.  It contains all of the data
  6297.     collected during a collection interval as a list of data
  6298.     blocks.
  6299.  
  6300.     The data records are constructed of the following
  6301.     blocks.  They are not chained, but are recorded
  6302.     (possibly with interspersed Monitored Anchor records)
  6303.     physically adjacent to the Monitoring Anchor record and
  6304.     as a group form the data for the Monitoring Session.
  6305.     Each data record contains node and timing information
  6306.     and all of the requested collection items that were
  6307.     available in the interval.
  6308.  
  6309.     The DATARECHDR is the first structure in all data
  6310.     collection records.
  6311.  
  6312.   */
  6313.   typedef struct _DCFRECHDR
  6314.   {
  6315.     BASICHDR   bhDR;           /* standard basic header */
  6316.     CHAR       szNodeName[SPM_NODENAME_SIZE]; /* Node data came from */
  6317.     FPDATETIME dtMngWrite;     /* when monitoring session wrote
  6318.                                   the record */
  6319.     FPDATETIME dtMedStart;     /* when the monitoring interval started
  6320.                                   on the monitored machine */
  6321.     FPDATETIME dtMedEnd;       /* when the monitoring interval ended
  6322.                                   on the monitored machine */
  6323.     VRM        vrmDCF;         /* the VRM for the service functions
  6324.                                   at the DCF */
  6325.     BOOL       fCollErrors;    /* flags indicating collection errors */
  6326.       #define  SPM_COLLERR_PERFOVFL    0x0001  /* the internal message
  6327.                                                   queue overflowed */
  6328.       #define  SPM_COLLERR_GRPSOVFL    0x0002  /* groups could not be
  6329.                                                   added to record */
  6330.       #define  SPM_COLLERR_THESEUS     0x0004  /* THESEUS2 returned
  6331.                                                   an error */
  6332.       #define  SPM_COLLERR_GROUPSMISS  0x0008  /* Not all groups
  6333.                                                   were resolved */
  6334.       #define  SPM_COLLERR_ITEMSMISS   0x0010  /* Not all items
  6335.                                                   were resolved */
  6336.       #define  SPM_COLLERR_TIMERMISS   0x0020  /* DCF cannot keep up -
  6337.                                                   interval lost */
  6338.       #define  SPM_COLLERR_SMPPTMISS   0x0040  /* a recognized sample
  6339.                                                   could not be collected */
  6340.     USHORT     usGrpCnt;       /* the number of groups in the record */
  6341.   }DATARECHDR;
  6342.   #define INTERVAL_TYPE         10
  6343.   #define INTERVAL_BASIC_STYPE  0
  6344.  
  6345.   /*
  6346.     the data collection record continues with structures of collected
  6347.     groups.
  6348.  
  6349.   */
  6350.   typedef struct _DCFGROUP
  6351.   {
  6352.     USHORT    usLL;            /* the length of the collected group */
  6353.     USHORT    usSPMGrp;        /* the group's ordinal */
  6354.     PID1632   pidDR;           /* process id (PID) of process if instance
  6355.                                   data */
  6356.     TID1632   tidDR;           /* thread id (TID) of process if instance
  6357.                                   data */
  6358.     ROF       rofszInstance;   /* offset to text associated with
  6359.                                   the instance */
  6360.     BYTE      byDataStart;     /* start of data for this group */
  6361.     /* The actual structure for the group follows this block */
  6362.     /* It is followed by the Instance Block (if any) */
  6363.   }DCFGROUP;
  6364.  
  6365.   /*
  6366.     The structures for all defined SPM Groups are found in
  6367.     SPMCTRGP.H.
  6368.  
  6369.     A basic interval record for a node collecting CPU, Memory, and
  6370.     Disk data might look like this:
  6371.  
  6372.     | DCFRECHDR | DCFGROUP | cpu_data | DCFGROUP | memory_data | DCFGROUP | dasd_data |
  6373.     -----------------------------------------------------------------------------------
  6374.  
  6375.     where the data types are identified by the usSPMGrp
  6376.     field in the DCFGROUP that precedes them.
  6377.  
  6378.   */
  6379.   /* for ease of use, the size of a type 10 record is limited */
  6380.   #define SPM_TYPE10_MAX_SIZE (4096*4)
  6381.   #define SPM_TYPE10_DEFINED
  6382.  
  6383.  
  6384. ΓòÉΓòÉΓòÉ 8.4.8. INSTANCEBLOCK ΓòÉΓòÉΓòÉ
  6385.  
  6386.  
  6387.   /*
  6388.     INSTANCEBLOCK:
  6389.  
  6390.     Each data block in a type 10 record can be either persistent
  6391.     or transient.  A transient block is called an instance.  It
  6392.     tracks event data such as an open file or an active thread.
  6393.     A ROF in the static section of the block points at the
  6394.     instance block if the group represents an instance.
  6395.  
  6396.   */
  6397.   typedef struct _INSTANCEBLOCK
  6398.   {
  6399.     FPDATETIME      dtBirth;    /*
  6400.                                   The time that the instance was
  6401.                                   born.  This field is included
  6402.                                   in the summary criteria (sample
  6403.                                   interval < recording interval).
  6404.                                 */
  6405.     FPDATETIME      dtDeath;    /*
  6406.                                   The time that the instance
  6407.                                   died.  This field is 0e0 for
  6408.                                   all intervals where the
  6409.                                   instance is still alive.
  6410.                                 */
  6411.     CHAR            szzInstanceText[1];
  6412.                                 /*
  6413.                                   One or more null-terminated
  6414.                                   strings that describe the
  6415.                                   instance.  The first string is
  6416.                                   always the path to the program
  6417.                                   that is involved.  Additional
  6418.                                   strings indicate which resource
  6419.                                   is involved and are dependent
  6420.                                   upon the group type.  The
  6421.                                   string of strings is terminated
  6422.                                   by a null string.
  6423.                                 */
  6424.   }INSTANCEBLOCK;
  6425.  
  6426.  
  6427. ΓòÉΓòÉΓòÉ 8.5. Functions ΓòÉΓòÉΓòÉ
  6428.  
  6429. The following functions are available: 
  6430.  
  6431.  SPMAPIQuery Allows the user to query a local or remote machine about Data 
  6432.       Collection Facility sessions and monitor (SPMILOG) sessions. 
  6433.  SPMAPIQualifyFileName Returns a standardized file name from any valid file 
  6434.       name. 
  6435.  SPMAPISet Changes configured options in a monitor session (.LOG) file. 
  6436.  SPMAPIInit Enables the user to start a monitor (SPMILOG) session. 
  6437.  SPMAPIOpen Opens the connection to a monitor session (.LOG) file. 
  6438.  SPMAPIGetData Returns the next instance of the sample data from a monitor 
  6439.       session (.LOG) file. 
  6440.  SPMAPIClose Closes the connection to a monitor session (.LOG) file. 
  6441.  SPMAPITerm Terminates one or more monitor (SPMILOG) sessions. 
  6442.  Date-Time functions. Process date and time strings and values. 
  6443.  
  6444.  
  6445. ΓòÉΓòÉΓòÉ 8.5.1. SPMAPIQuery ΓòÉΓòÉΓòÉ
  6446.  
  6447.  
  6448. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  6449.  
  6450. Use the SPMAPIQuery function to obtain information about the Data Collection 
  6451. Facility sessions and monitor (SPMILOG) sessions currently active on a local 
  6452. machine or on a network, or about the options configured in a monitor session 
  6453. (.LOG) file. 
  6454.  
  6455. It is not necessary to issue an SPMAPIInit or SPMAPIOpen function before the 
  6456. SPMAPIQuery function. 
  6457.  
  6458. SPMAPIQuery does not provide a search for inactive monitor session (.LOG) 
  6459. files.  That information is available through normal file directory search 
  6460. functions.  A query about an inactive monitor session (.LOG) file verifies 
  6461. whether the file is valid. 
  6462.  
  6463. SPMAPIQuery actually reads the monitor session (.LOG) file for both active and 
  6464. inactive requests that specify a file name.  The current user must have at 
  6465. least read-only permission granted to a monitor session (.LOG) file that is to 
  6466. be queried. 
  6467.  
  6468.  
  6469. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  6470.  
  6471. Select one: 
  6472.  
  6473.  o Syntax 
  6474.  o Cautions 
  6475.  o Return considerations 
  6476.  o Coding example. 
  6477.  
  6478.  
  6479. ΓòÉΓòÉΓòÉ 8.5.1.1. SPMAPIQuery Syntax ΓòÉΓòÉΓòÉ
  6480.  
  6481. Select the highlighted parameters for more information: 
  6482.  
  6483. BOOL SPMAPI_ENTRY SPMAPIQuery
  6484.                   (QUOPTION     quOption,          /* input  */
  6485.                    PSZ SPMPTR   szComponentName,   /* input  */
  6486.                    PVOID SPMPTR pbResults,         /* output */
  6487.                    PEXTENDEDRC  pxrcRC);           /* output */
  6488.  
  6489.  
  6490. ΓòÉΓòÉΓòÉ <hidden> SPMAPIQuery Cautions ΓòÉΓòÉΓòÉ
  6491.  
  6492.   1. When you query a monitor (SPMILOG) session, the monitor session (.LOG) 
  6493.      file name returned includes the disk, path, and file name by which the 
  6494.      monitor session knows the file.  This does not cause a problem if the 
  6495.      monitor session is running on the local machine and the PATH statement 
  6496.      specified in the CONFIG.SYS file at startup is complete. 
  6497.  
  6498.      However, if only a partial PATH statement is specified, the startup 
  6499.      process attempts to completely define the name.  If the monitor session 
  6500.      file is on a remote machine, the startup process attempts to resolve a 
  6501.      universal naming convention (UNC) name for the file.  The probability that 
  6502.      the name resolved is correct is extremely high. However, to ensure correct 
  6503.      name resolution, you can specify complete path and file names on 
  6504.      nonnetwork machines and UNC names on network machines. 
  6505.  
  6506.   2. A query to determine the active monitor (SPMILOG) sessions or Data 
  6507.      Collection Facility components returns all the known names, regardless of 
  6508.      whether those names are located in the current domain. Also, no check is 
  6509.      done to ensure that the requester is running on the local machine. 
  6510.  
  6511.      In most cases, no problem arises from these factors.  However, if the 
  6512.      requester is not running on the local machine, the monitor (SPMILOG) 
  6513.      session is not in the current domain, or the monitor (SPMILOG) session is 
  6514.      terminated prior to a query about it, your application needs to be capable 
  6515.      of handling the error. 
  6516.  
  6517.   3. The name returned for a monitor (SPMILOG) session or Data Collection 
  6518.      Facility session contains the computer name, which is up to 16 bytes long, 
  6519.      and an instance ID, which is always the last character.  If the computer 
  6520.      name is longer than 16 characters, the last 16 are used by the API. 
  6521.  
  6522.      Because most installations limit the computer name to 8 characters, the 
  6523.      16-character limitation is rarely a problem.  However, using a computer 
  6524.      name longer than 16 characters causes unreliable results unless the last 
  6525.      16 characters are unique. 
  6526.  
  6527.  
  6528. ΓòÉΓòÉΓòÉ <hidden> Return Considerations ΓòÉΓòÉΓòÉ
  6529.  
  6530. Your application must provide a return area large enough to accommodate the 
  6531. result.  The return area must begin with a QUERYHDR structure, which contains 
  6532. the following parameters: 
  6533.  
  6534.  o usResultMax 
  6535.  o usItemsReturned 
  6536.  o pbResult. 
  6537.  
  6538.  Most queries result in a list of items that are returned as a vector of the 
  6539.  return type.  If the fields are null-terminated strings (SZ), they are 
  6540.  terminated by an additional null field (making them SZZ).  In other cases, a 
  6541.  single value or structure might be returned (see the quOption parameter for 
  6542.  more information). 
  6543.  
  6544.  
  6545. ΓòÉΓòÉΓòÉ <hidden> usResultMax parameter ΓòÉΓòÉΓòÉ
  6546.  
  6547. In your application, specify the maximum size of the return area in the 
  6548. usResultMax parameter of the QUERYHDR structure. 
  6549.  
  6550. Specifying Zero 
  6551.  
  6552. If your application specifies zero for the usResultMax parameter, the API 
  6553. returns the required result size in the usResultMax parameter field (replacing 
  6554. the zero) along with the SPMAPI_ERR_NO_SPACE extended error.  No other field in 
  6555. the QUERYHDR structure is referenced.  Allocate the correct size, and issue the 
  6556. query again. 
  6557.  
  6558. CAUTION:
  6559. This method of getting feedback about the required result size may not always 
  6560. meet the needs of your application.  The system is dynamic. The length returned 
  6561. by the first call (to get the length), while correct for that call, may not be 
  6562. correct for the next call to the function.  The longer the interval between the 
  6563. calls, the greater the chance is that the values will be different. 
  6564.  
  6565. Specifying a Nonzero Amount 
  6566.  
  6567. If you specify an amount other than zero for the usResultMax parameter, the 
  6568. parameter field is not changed by the return, even if the amount specified does 
  6569. not accommodate the entire amount of data returned.  If the amount specified is 
  6570. too small, the correct amount will be returned along with the 
  6571. SPMAPI_ERR_NOSPACE return code. 
  6572.  
  6573.  
  6574. ΓòÉΓòÉΓòÉ <hidden> usItemsReturned parameter ΓòÉΓòÉΓòÉ
  6575.  
  6576. The number returned in the usItemsReturned parameter field is the number of 
  6577. items in the return area.  The actual number of items available is equal to the 
  6578. number returned only if the length of the return area is large enough to hold 
  6579. them all. 
  6580.  
  6581. If the usItemsReturned parameter value is 0, the pbResult parameter value will 
  6582. be null. 
  6583.  
  6584.  
  6585. ΓòÉΓòÉΓòÉ <hidden> pbResult parameter ΓòÉΓòÉΓòÉ
  6586.  
  6587. The pbResult parameter points to the result of a query. The actual format of 
  6588. the result to which the pbResult parameter points is dependent upon the request 
  6589. (see the quOption parameter for specific information). 
  6590.  
  6591. The result is built into the return area provided by the calling application, 
  6592. though not necessarily right after the header.  The amount of resulting data 
  6593. returned is limited by the size of the return area.  The SPMAPIQuery function 
  6594. attempts to terminate a truncated block, but termination is not guaranteed. 
  6595.  
  6596. The pbResult parameter can be cast to the type of return expected. 
  6597.  
  6598. If the usItemsReturned parameter value is 0, the pbResult parameter value will 
  6599. be undefined. 
  6600.  
  6601.  
  6602. ΓòÉΓòÉΓòÉ <hidden> QUOPTION quOption ΓòÉΓòÉΓòÉ
  6603.  
  6604. The following quOption parameters provide lists of component names: 
  6605.  
  6606.  o SPM_QU_DCF_LIST - Component names of all Data Collection Facility sessions 
  6607.    currently active on the network. 
  6608.  
  6609.  o SPM_QU_ILOG_LIST - Component names of all monitor (SPMILOG) sessions 
  6610.    currently active on the network. 
  6611.  
  6612.  o SPM_QU_L_ILOG_LIST - Component names of all monitor (SPMILOG) sessions 
  6613.    currently active on the local machine. 
  6614.  
  6615.  Once you know one component name, you can use the following quOption 
  6616.  parameters to ascertain the names of other components associated with it: 
  6617.  
  6618.  o SPM_QU_ILOG_NAME - Component name of the monitor (SPMILOG) session 
  6619.    associated with a particular monitor session (.LOG) file name.  (Your 
  6620.    application must provide the full path and file name of the monitor session 
  6621.    (.LOG) file in the szComponentName parameter field.) 
  6622.  
  6623.  o SPM_QU_ACTIVE_DCF_NODES - Component names of all Data Collection Facility 
  6624.    sessions currently being collected by a particular monitor (SPMILOG) 
  6625.    session.  (Your application must provide the name, including the suffix, of 
  6626.    the monitor (SPMILOG) session in the szComponentName parameter field.) 
  6627.  
  6628.  o SPM_QU_CFGD_DCF_NODES - Component names of all Data Collection Facility 
  6629.    sessions for which a monitor session (.LOG) file is configured.  (Your 
  6630.    application must provide the full path and file name of the monitor session 
  6631.    (.LOG) file in the szComponentName parameter field.) 
  6632.  
  6633.    Note: For those queries which require a SESSIONSPEC instead of a component 
  6634.    name, the SESSIONSPEC pointer may be cast to a PSZ to avoid compiler errors 
  6635.    or warnings.  The affected queries are: 
  6636.  
  6637.     - SPM_QU_CFGD_TIMES_PERIOD 
  6638.     - SPM_QU_CFGD_DCF_NODES_PERIOD 
  6639.     - SPM_QU_CFGD_GROUPS_PERIOD 
  6640.  
  6641.  Component names can be used with the following quOption parameters to obtain 
  6642.  additional information: 
  6643.  
  6644.  o SPM_QU_ILOG_STAT - The status of a particular monitor (SPMILOG) session. 
  6645.    (Your application must provide the name, including suffix, of the monitor 
  6646.    (SPMILOG) session in the szComponentName parameter field.) 
  6647.  
  6648.  o SPM_QU_CFGD_GROUPS - The collection groups (resources) for which a monitor 
  6649.    session (.LOG) file is configured.  (Your application must provide the full 
  6650.    path and file name of the monitor session (.LOG) file in the szComponentName 
  6651.    parameter field.) 
  6652.  
  6653.  o SPM_QU_CFGD_TIMES - The times, collection frequency, logging frequency, and 
  6654.    working set interval for which a monitor session (.LOG) file is configured. 
  6655.    (Your application must provide the full path and file name of the monitor 
  6656.    session (.LOG) file in the szComponentName parameter field.) 
  6657.  
  6658.  o SPM_QU_RECD_DCF_NODES - The Data Collection Facility machine names for which 
  6659.    contact was established in any session in the log.  (Your application must 
  6660.    provide the full path and file name of the monitor session (.LOG) file in 
  6661.    the szComponentName parameter field.) 
  6662.  
  6663.  o SPM_QU_HIST_GROUPS - All the collection groups (resources) for which a 
  6664.    monitor (.LOG) file has ever been configured.  (Your application must 
  6665.    provide the full path and file name of the monitor session (.LOG) file in 
  6666.    the szComponentName parameter field.) 
  6667.  
  6668.  o SPM_QU_CFGD_PERIODS - The start and stop times specified for a monitor 
  6669.    session (.LOG) file. (Your application must provide the full path and file 
  6670.    name of the monitor session (.LOG) file in the szComponentName parameter 
  6671.    field.) 
  6672.  
  6673.  o SPM_QU_CFGD_TIMES_PERIOD - The times (collection frequency, logging 
  6674.    frequency, and working set interval) for which a given monitor session 
  6675.    (.LOG) file is configured.  (Your application must provide the full path and 
  6676.    file name of the monitor session (.LOG) file in the szComponentName 
  6677.    parameter field.) 
  6678.  
  6679.  o SPM_QU_CFGD_DCF_NODES_PERIOD - Component names of Data Collection Facility 
  6680.    sessions for which a given monitor session (.LOG) file is configured. (Your 
  6681.    application must provide the full path and file name of the monitor session 
  6682.    (.LOG) file in the szComponentName parameter field.) 
  6683.  
  6684.  o SPM_QU_CFGD_GROUPS_PERIOD - The collection groups (resources) for which a 
  6685.    given monitor session (.LOG) file is configured.  (Your application must 
  6686.    provide the full path and file name of the monitor session (.LOG) file in 
  6687.    the szComponentName parameter field.) 
  6688.  
  6689.  
  6690. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_DCF_LIST ΓòÉΓòÉΓòÉ
  6691.  
  6692. When you specify the SPM_QU_DCF_LIST option in your application, the pbResult 
  6693. parameter of the QUERYHDR structure points to a vector of null-terminated names 
  6694. of the Data Collection Facility sessions currently active on the network. The 
  6695. names returned include suffixes. 
  6696.  
  6697. See the cautions listed in Return Considerations. 
  6698.  
  6699.  
  6700. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_LIST ΓòÉΓòÉΓòÉ
  6701.  
  6702. When you specify the SPM_QU_ILOG_LIST option in your application, the pbResult 
  6703. parameter of the QUERYHDR structure points to a vector of null-terminated names 
  6704. of the monitor (SPMILOG) sessions currently active on the network. 
  6705.  
  6706. See the cautions listed in Return Considerations. 
  6707.  
  6708.  
  6709. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_L_ILOG_LIST ΓòÉΓòÉΓòÉ
  6710.  
  6711. When you specify the SPM_QU_L_ILOG_LIST option in your application, the 
  6712. pbResult parameter of the QUERYHDR structure points to a vector of 
  6713. null-terminated names of the monitor (SPMILOG) sessions currently active on the 
  6714. local machine. The names returned include suffixes. 
  6715.  
  6716. See the cautions listed in Return Considerations. 
  6717.  
  6718.  
  6719. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_STAT ΓòÉΓòÉΓòÉ
  6720.  
  6721. When you specify the SPM_QU_ILOG_STAT option in your application, the pbResult 
  6722. parameter of the QUERYHDR structure points to a structure containing the status 
  6723. of the active monitor (SPMILOG) session specified in the szComponentName 
  6724. parameter field of your application. The names returned include suffixes. 
  6725.  
  6726. See the cautions listed in Return Considerations. 
  6727.  
  6728. The structure of the SPM_QU_ILOG_STAT option follows: 
  6729.  
  6730.   typedef struct _QUILOGSTAT
  6731.   {
  6732.     FPDATETIME dtStarted;   /* the date & time the monitor
  6733.                                (SPMILOG) session started          */
  6734.     FPTIME tvSample;        /* the collection frequency        */
  6735.     FPTIME tvRecording;     /* the recording frequency         */
  6736.     CHAR   szLogFileName[]; /* the full path and file name of
  6737.                                the monitor session (.LOG) file */
  6738.                             /* NOTE: The name returned is the
  6739.                                name by which the monitor (SPMILOG)
  6740.                                session knows the file. If the file
  6741.                                was opened with the UNC name, it may
  6742.                                be used directly; otherwise, map
  6743.                                the drive letter to the UNC
  6744.                                prefix or a drive letter with
  6745.                                a local alias.                  */
  6746.   }QUILOGSTAT;
  6747.  
  6748.   typedef QUILOGSTAT * SPMPTR PQUILOGSTAT;
  6749.  
  6750.  
  6751. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ILOG_NAME ΓòÉΓòÉΓòÉ
  6752.  
  6753. When you specify the SPM_QU_ILOG_NAME option in your application, the pbResult 
  6754. parameter of the QUERYHDR structure points to a null-terminated string 
  6755. containing the name of the monitor (SPMILOG) session that is associated with 
  6756. the active monitor session (.LOG) file name specified in the szComponentName 
  6757. parameter field of your application. The names returned include suffixes. 
  6758.  
  6759. See the cautions listed in Return Considerations. 
  6760.  
  6761.  
  6762. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_ACTIVE_DCF_NODES ΓòÉΓòÉΓòÉ
  6763.  
  6764. When you specify the SPM_QU_ACTIVE_DCF_NODES option in your application, the 
  6765. pbResult parameter of the QUERYHDR structure points to a vector of 
  6766. null-terminated names of the Data Collection Facility sessions currently being 
  6767. collected by the active monitor (SPMILOG) session specified in the 
  6768. szComponentName parameter field of your application. The names returned do not 
  6769. include suffixes. 
  6770.  
  6771. See the cautions listed in Return Considerations. 
  6772.  
  6773.  
  6774. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_DCF_NODES ΓòÉΓòÉΓòÉ
  6775.  
  6776. When you specify the SPM_QU_CFGD_DCF_NODES option in your application, the 
  6777. pbResult parameter of the QUERYHDR structure points to a vector of 
  6778. null-terminated names of the Data Collection Facility sessions configured in 
  6779. the valid monitor session (.LOG) file specified in the szComponentName 
  6780. parameter field of your application. The names returned do not include 
  6781. suffixes. 
  6782.  
  6783. See the cautions listed in Return Considerations. 
  6784.  
  6785.  
  6786. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_GROUPS ΓòÉΓòÉΓòÉ
  6787.  
  6788. When you specify the SPM_QU_CFGD_GROUPS option in your application, the 
  6789. pbResult parameter of the QUERYHDR structure points to a vector of unsigned 
  6790. short (USHORT) integer values.  These values contain the ordinals of the 
  6791. collection groups configured in the valid monitor session (.LOG) file specified 
  6792. in the szComponentName parameter field of your application. 
  6793.  
  6794. See the cautions listed in Return Considerations. 
  6795.  
  6796.  
  6797. ΓòÉΓòÉΓòÉ <hidden> Resource Group Ordinals ΓòÉΓòÉΓòÉ
  6798.  
  6799. Structures of the resource groups are found in the SPMCTRGP.H file. A list of 
  6800. resource groups and their corresponding ordinals follows: 
  6801.  
  6802.  3    CPU 
  6803.  4    Thread 
  6804.  5    Memory 
  6805.  6    Files 
  6806.  7    FAT cache 
  6807.  9    HPFS cache 
  6808.  10   Working set 
  6809.  15   Disk 01 
  6810.  16   Disk 02 
  6811.  17   Disk 03 
  6812.  18   Disk 04 
  6813.  19   Disk 05 
  6814.  20   Disk 06 
  6815.  21   Disk 07 
  6816.  22   Disk 08 
  6817.  23   Disk 09 
  6818.  24   Disk 10 
  6819.  25   Disk 11 
  6820.  26   Disk 12 
  6821.  27   Disk 13 
  6822.  28   Disk 14 
  6823.  29   Disk 15 
  6824.  30   Disk 16 
  6825.  31   Disk 17 
  6826.  32   Disk 18 
  6827.  33   Disk 19 
  6828.  34   Disk 20 
  6829.  35   Disk 21 
  6830.  36   Disk 22 
  6831.  37   Disk 23 
  6832.  38   Disk 24 
  6833.  42   Printer 1 
  6834.  43   Printer 2 
  6835.  44   Printer 3 
  6836.  45   Printer 4 
  6837.  46   Communications port 1 
  6838.  47   Communications port 2 
  6839.  48   Communications port 3 
  6840.  49   Communications port 4 
  6841.  200  IBM LAN Server Advanced 
  6842.  201  IBM LAN Requester 
  6843.  
  6844.  
  6845. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_TIMES ΓòÉΓòÉΓòÉ
  6846.  
  6847. When you specify the SPM_QU_CFGD_TIMES option in your application, the pbResult 
  6848. parameter of the QUERYHDR structure points to a structure that contains the 
  6849. sampling interval, recording interval, and working set interval configured in 
  6850. the valid monitor session (.LOG) file specified in the szComponentName 
  6851. parameter field of your application. 
  6852.  
  6853. See the cautions listed in Return Considerations. 
  6854.  
  6855. The structure of the SPM_QU_CFGD_TIMES option follows: 
  6856.  
  6857. typedef struct _QUCFGDTIMES
  6858. {
  6859.   FPTIME tvSample;    /* the sample interval */
  6860.   FPTIME tvRecording; /* the recording interval */
  6861.   FPTIME tvWSIntrvl;  /* the working set interval */
  6862. }QUCFGDTIMES;
  6863.  
  6864. typedef QUCFGDTIMES * SPMPTR PQUCFGDTIMES;
  6865.  
  6866.  
  6867. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_RECD_DCF_NODES ΓòÉΓòÉΓòÉ
  6868.  
  6869. When you specify the SPM_RECD_DCF_NODES option in your application, the 
  6870. pbResult parameter of the QUERYHDR structure points to a vector of 
  6871. null-terminated names of the Data Collection Facility machine names configured 
  6872. in the valid monitor session (.LOG) file specified in the szComponentName 
  6873. parameter field of your application.  The names returned do not include a 
  6874. suffix. 
  6875.  
  6876. See the cautions listed in Return Considerations. 
  6877.  
  6878.  
  6879. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_HIST_GROUPS ΓòÉΓòÉΓòÉ
  6880.  
  6881. When you specify the SPM_QU_HIST_GROUPS option in your application, the 
  6882. pbResult parameter of the QUERYHDR structure points to a vector of unsigned 
  6883. short (USHORT) integer values.  These values contain the ordinals of all the 
  6884. collection groups ever configured in the valid monitor session (.LOG) file 
  6885. specified in the szComponentName parameter field of your application. 
  6886.  
  6887. See the cautions listed in Return Considerations. 
  6888.  
  6889.  
  6890. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_PERIODS ΓòÉΓòÉΓòÉ
  6891.  
  6892. When you specify the SPM_QU_CFGD_PERIODS option in your application, the 
  6893. pbResult parameter of the QUERYHDR structure points to a vector of type 
  6894. FILTERSPEC that contains the start and stop times of monitor (SPMILOG) sessions 
  6895. for the valid monitor session (.LOG) file specified in the szComponentName 
  6896. parameter field of your application.  If the monitor (SPMILOG) session is 
  6897. active, the end time of the last member of the vector is 0E0. 
  6898.  
  6899. See the cautions listed in Return Considerations. 
  6900.  
  6901.  
  6902. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_TIMES_PERIODS ΓòÉΓòÉΓòÉ
  6903.  
  6904. Retrieves the times (collection frequency, logging frequency, and working set 
  6905. interval) for a given start/stop session of the log file. Use 
  6906. SPM_QU_CFG_PERIODS to retrieve the start/stop times of all sessions in the log 
  6907. file. 
  6908.  
  6909. pszComponentName points to a SESSIONSPEC structure, which defines the 
  6910. start/stop session. pbResult returns the times in the same format as 
  6911. SPM_QU_CFGD_TIMES. 
  6912.  
  6913.  
  6914. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_DCF_NODES_PERIOD ΓòÉΓòÉΓòÉ
  6915.  
  6916. Retrieves the collected nodes for a given start/stop session of the log file. 
  6917. Use SPM_QU_CFG_PERIODS to retrieve the start/stop times of all sessions in the 
  6918. log file. 
  6919.  
  6920. pszComponentName points to a SESSIONSPEC structure, which defines the 
  6921. start/stop session. pbResult returns the nodes in the same format as 
  6922. SPM_QU_CFGD_DCF_NODES. 
  6923.  
  6924.  
  6925. ΓòÉΓòÉΓòÉ <hidden> SPM_QU_CFGD_GROUPS_PERIOD ΓòÉΓòÉΓòÉ
  6926.  
  6927. Retrieves the collected groups (resources) for a given start/stop session of 
  6928. the log file. Use SPM_QU_CFG_PERIODS to retrieve the start/stop times of all 
  6929. sessions in the log file. 
  6930.  
  6931. pszComponentName points to a SESSIONSPEC structure, which defines the 
  6932. start/stop session. pbResult returns the nodes in the same format as 
  6933. SPM_QU_CFGD_GROUPS. 
  6934.  
  6935.  
  6936. ΓòÉΓòÉΓòÉ <hidden> PSZ szComponentName ΓòÉΓòÉΓòÉ
  6937.  
  6938. Use the szComponentName parameter to specify the component name of a Data 
  6939. Collection Facility session or monitor (SPMILOG) session to receive more 
  6940. information about that component.  See the quOption parameter for more 
  6941. information about how the component name is used in various queries. 
  6942.  
  6943. SPM/2 uses the computer name set by LAN Server or the constant LOCAL to 
  6944. identify a machine that is part of the collection process.  LOCAL is used when 
  6945. the computer name is not available from LAN Server.  In cases where there can 
  6946. be more than one SPM/2 component associated with a particular machine, SPM/2 
  6947. appends a suffix to the computer name.  The component name including its suffix 
  6948. can be up to 16 bytes long.  These suffixes identify the component: 
  6949.  
  6950.  0 through 9              Data Collection Facility sessions. 
  6951.  All other suffixes       Monitor (SPMILOG) sessions. 
  6952.  
  6953.  SPM/2 uses a fully qualified path and file name to identify a monitor session 
  6954.  (.LOG) file. 
  6955.  
  6956.  
  6957. ΓòÉΓòÉΓòÉ <hidden> PVOID pbResults ΓòÉΓòÉΓòÉ
  6958.  
  6959. The pbResults parameter is a pointer to the pbResult parameter of the QUERYHDR 
  6960. structure. For more information about the QUERYHDR structure and the pbResult 
  6961. parameter, see Return Considerations. 
  6962.  
  6963.  
  6964. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  6965.  
  6966. The pxrcRC parameter contains the return code for the SPMAPIQuery function. 
  6967.  
  6968. Possible return codes for the SPMAPIQuery function include: 
  6969.  
  6970. FunctionCode = SPMAPI_PERR_QURESULTS;
  6971. FunctionRC   = SPMAPI_ERR_NULL_PARM;
  6972.  
  6973. FunctionCode = SPMAPI_PERR_QURESULTS;
  6974. FunctionRC   = SPMAPI_ERR_NO_SPACE;
  6975.  
  6976. FunctionCode = SPMAPI_PERR_QUOPTION;
  6977. FunctionRC   = SPMAPI_ERR_INTERFACE_BUSY;
  6978.  
  6979. FunctionCode = SPMAPI_PERR_DOSCALL;
  6980. FunctionRC   = from DosAllocSeg
  6981.                     DosCallNmPipe
  6982.                     DosChgFilePtr
  6983.                     DosOpen
  6984.                     DosRead
  6985.                     DosSemClear
  6986.                     DosSetNmPipeHandState
  6987.  
  6988. FunctionCode = SPMAPI_PERR_NBQCALL;
  6989. FunctionRC   = NBQ_NBERR_RESET   100 /* Error during NETBIOS Reset   */
  6990.                NBQ_NBERR_ADDNAME 101 /* Error during NETBIOS AddName */
  6991.                NBQ_NBERR_SENDDG  103 /* Error during SendDataGram    */
  6992.                NBQ_NBERR_RECVDG  105 /* Error during RecvDataGram    */
  6993.                NBQ_ERR_NCBALLOC    2 /* returned as a NETBIOS RC     */
  6994.  
  6995. FunctionCode = SPMAPI_PERR_QUCOMPNAME;
  6996. FunctionRC   = SPMAPI_ERR_NULL_PARM;
  6997.  
  6998. FunctionCode = SPMAPI_PERR_ILGPIPE;
  6999. FunctionRC   = Nonzero
  7000.  
  7001. FunctionCode = SPMAPI_PERR_LOGFILE;
  7002. FunctionRC   = SPMAPI_ERR_FILEBADFORMAT;
  7003.  
  7004. FunctionCode = SPMAPI_PERR_LOGFILE;
  7005. FunctionRC   = SPMAPI_ERR_FILENOTINUSE;
  7006.  
  7007. FunctionCode = SPMAPI_PERR_QUOPTION;
  7008. FunctionRC   = SPMAPI_ERR_QUOPTIONNOTVALID;
  7009.  
  7010.  
  7011. ΓòÉΓòÉΓòÉ <hidden> SPMAPIQuery Coding Example ΓòÉΓòÉΓòÉ
  7012.  
  7013.  
  7014. #define INCL_NOPM
  7015. #define INCL_DOS
  7016. #define INCL_DOSERRORS
  7017. #include <os2.h>
  7018. #include <string.h>
  7019. #include <stdlib.h>
  7020. #include <stdio.h>
  7021. #include "spmapi.h"
  7022.  
  7023. typedef struct _RETURN_AREA
  7024. {
  7025.    QUERYHDR    quHdr;
  7026.    CHAR        returnstr[10000];
  7027. } RETURN_AREA;
  7028.  
  7029.  
  7030.  
  7031.  
  7032. VOID main (argc, argv)
  7033. INT  argc;
  7034. CHAR *argv[];
  7035. {
  7036.  
  7037.  
  7038. QUOPTION          quOption;
  7039. CHAR              szComponentName[256];
  7040. USHORT            *us_ptr;
  7041. CHAR              *c_ptr;
  7042. PQUILOGSTAT       qu_ptr;
  7043. PQUCFGDTIMES      t_ptr;
  7044. PFILTERSPEC       fs_ptr;
  7045.  
  7046.  
  7047. USHORT            rc;
  7048. CHAR              szLogFileName[256], szIlogName[256];
  7049.  
  7050.  
  7051. QUILOGSTAT        *pquilogstat;
  7052. LOGFILEHANDLE     LogHandle;
  7053. EXTENDEDRC        xrcRC;
  7054.  
  7055.  
  7056.          .
  7057.          .
  7058.          .
  7059.  
  7060.   quOption = SPM_QU_DCF_LIST;
  7061.  
  7062.   return_area.quHdr.usResultMax = sizeof(return_area);
  7063.   return_area.quHdr.pbResult = return_area.returnstr;
  7064.  
  7065.   switch (quOption) // to set component name
  7066.   {
  7067.      case SPM_QU_ACTIVE_DCF_NODES:
  7068.      case SPM_QU_ILOG_STAT:
  7069.         if (szIlogName[0]) strcpy(szComponentName, szIlogName);
  7070.         else strcpy(szComponentName, szLogFileName);
  7071.         break;
  7072.      case SPM_QU_DCF_LIST:
  7073.      case SPM_QU_CFGD_TIMES:
  7074.      case SPM_QU_ILOG_NAME:
  7075.      case SPM_QU_CFGD_DCF_NODES:
  7076.      case SPM_QU_RECD_DCF_NODES:
  7077.      case SPM_QU_CFGD_GROUPS:
  7078.      case SPM_QU_HIST_GROUPS:
  7079.      case SPM_QU_CFGD_PERIODS:
  7080.      case SPM_QU_ILOG_LIST:
  7081.      case SPM_QU_L_ILOG_LIST:
  7082.      default:
  7083.         strcpy(szComponentName, szLogFileName);
  7084.         break;
  7085.  
  7086.    }
  7087.    rc = SPMAPIQuery((QUOPTION) quOption,
  7088.       (PSZ SPMPTR) &szComponentName,(PVOID SPMPTR) &return_area,
  7089.       (PEXTENDEDRC) &xrcRC)))
  7090.  
  7091.    switch (quOption)
  7092.    {
  7093.  
  7094.       case SPM_QU_DCF_LIST:
  7095.       case SPM_QU_ILOG_LIST:
  7096.       case SPM_QU_L_ILOG_LIST:
  7097.       case SPM_QU_ILOG_NAME:
  7098.       case SPM_QU_ACTIVE_DCF_NODES:
  7099.       case SPM_QU_CFGD_DCF_NODES:
  7100.       case SPM_QU_RECD_DCF_NODES:
  7101.          c_ptr = (CHAR *) return_area.returnstr;
  7102.          break;
  7103.       case SPM_QU_CFGD_GROUPS:
  7104.       case SPM_QU_HIST_GROUPS:
  7105.          us_ptr = (USHORT *) return_area.returnstr;
  7106.          break;
  7107.       case SPM_QU_CFGD_PERIODS:
  7108.          fs_ptr = (PFILTERSPEC) return_area.returnstr;
  7109.          break;
  7110.       case SPM_QU_ILOG_STAT:
  7111.          qu_ptr = (PQUILOGSTAT) return_area.returnstr;
  7112.          break;
  7113.       case SPM_QU_CFGD_TIMES:
  7114.          t_ptr = (PQUCFGDTIMES) return_area.returnstr;
  7115.          break;
  7116.    }
  7117.  
  7118.          .
  7119.          .
  7120.          .
  7121.  
  7122.    exit (0);
  7123.  
  7124. }
  7125.  
  7126.  
  7127. ΓòÉΓòÉΓòÉ 8.5.2. SPMAPIQualifyFileName ΓòÉΓòÉΓòÉ
  7128.  
  7129.  
  7130. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7131.  
  7132. Use the SPMAPIQualifyFileName function to return a standard file name (the 
  7133. fully qualified path and file name) from any valid file name (a file name in 
  7134. the current directory or in the DPATH statement in the CONFIG.SYS file).  This 
  7135. function is used to generate the standard file name for all SPM/2 functions 
  7136. accessed through the Presentation Manager and command line interfaces. 
  7137.  
  7138. It is not necessary to issue an SPMAPIInit or SPMAPIOpen function before the 
  7139. SPMAPIQualifyFileName function. 
  7140.  
  7141.  
  7142. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7143.  
  7144. Select one: 
  7145.  
  7146.  o Syntax 
  7147.  o Coding example. 
  7148.  
  7149.  
  7150. ΓòÉΓòÉΓòÉ 8.5.2.1. SPMAPIQualifyFileName Syntax ΓòÉΓòÉΓòÉ
  7151.  
  7152. Select the highlighted parameters for more information: 
  7153.  
  7154. BOOL SPMAPI_ENTRY SPMAPIQualifyFileName
  7155.                   (PSZ SPMPTR   pszFileName,    /* input  */
  7156.                    PSZ SPMPTR   pszQName,       /* output */
  7157.                    USHORT       usQNameLen,     /* input  */
  7158.                    PEXTENDEDRC  pxrcRC);        /* output */
  7159.  
  7160.  
  7161. ΓòÉΓòÉΓòÉ <hidden> PSZ pszFileName ΓòÉΓòÉΓòÉ
  7162.  
  7163. In the pszFileName parameter field, specify the valid file name for which you 
  7164. want to know the standard file name. 
  7165.  
  7166.  
  7167. ΓòÉΓòÉΓòÉ <hidden> PSZ pszQName ΓòÉΓòÉΓòÉ
  7168.  
  7169. The pszQName parameter is the area into which the standard file name is read. 
  7170.  
  7171. If the drive specified in the pszFileName parameter is a network drive, the 
  7172. SPMQualifyFileName function returns the universal naming convention (UNC) name 
  7173. of the file (if it can be found). 
  7174.  
  7175.  Note:  UNC names are returned only for network drive letters currently in use 
  7176.         on the machine where the call is issued. 
  7177.  
  7178.  If a local drive letter is specified in the pszFileName parameter but the 
  7179.  drive is known on the network by a different drive letter, the 
  7180.  SPMQualifyFileName function returns the local file name. 
  7181.  
  7182.  
  7183. ΓòÉΓòÉΓòÉ <hidden> USHORT usQNameLen ΓòÉΓòÉΓòÉ
  7184.  
  7185. The usQNameLen parameter specifies the maximum length of the pszQName parameter 
  7186. field. 
  7187.  
  7188.  
  7189. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7190.  
  7191. The pxrcRC parameter contains the return code for the SPMAPIQualifyFileName 
  7192. function. 
  7193.  
  7194. Possible return codes for the SPMAPIQualifyFileName function include: 
  7195.  
  7196. FunctionCode = SPMAPI_PERR_USERPARM;
  7197. FunctionRC   = SPMAPI_ERR_NULL_PARM;
  7198.  
  7199. FunctionCode = SPMAPI_PERR_DOSCALL;
  7200. FunctionRC   = from DosQPathInfo and DosSearchPath
  7201.  
  7202.  
  7203. ΓòÉΓòÉΓòÉ <hidden> SPMAPIQualifyFileName Coding Example ΓòÉΓòÉΓòÉ
  7204.  
  7205.  
  7206. #define INCL_NOPM
  7207. #define INCL_DOS
  7208. #define INCL_DOSERRORS
  7209. #include <os2.h>
  7210. #include <string.h>
  7211. #include <stdlib.h>
  7212. #include <stdio.h>
  7213. #include "spmapi.h"
  7214.  
  7215.  
  7216. VOID main (argc, argv)
  7217. INT  argc;
  7218. CHAR *argv[];
  7219. {
  7220.  
  7221. USHORT            rc;
  7222. CHAR              szLogFileName[256], szQFileName[256];
  7223. EXTENDEDRC        xrcRC;
  7224.  
  7225.  
  7226.          .
  7227.          .
  7228.          .
  7229.  
  7230.       rc = SPMAPIQualifyFileName ((PSZ SPMPTR) &szLogFileName, (USHORT) 256,
  7231.          (PSZ SPMPTR) &szQFileName, (PEXTENDEDRC) &xrcRC);
  7232.  
  7233.          .
  7234.          .
  7235.          .
  7236.  
  7237.    exit(0)
  7238.  
  7239.  
  7240. ΓòÉΓòÉΓòÉ 8.5.3. SPMAPISet ΓòÉΓòÉΓòÉ
  7241.  
  7242.  
  7243. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7244.  
  7245. Use the SPMAPISet function to change the parameters for a monitor (ILOG) 
  7246. session currently running on the local machine or on the network.  It does not 
  7247. require the caller to have issued an SPMAPIInit or SPMAPIOpen command. 
  7248.  
  7249. In general, the prior setting is returned in the pbSetting parameter field, so 
  7250. the use of constants is of great danger. 
  7251.  
  7252. Your application must provide a return area large enough to accommodate the 
  7253. result. There is no standard header on this area. 
  7254.  
  7255.  
  7256. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7257.  
  7258. Select one: 
  7259.  
  7260.  o Syntax 
  7261.  o Coding example. 
  7262.  
  7263.  
  7264. ΓòÉΓòÉΓòÉ 8.5.3.1. SPMAPISet Syntax ΓòÉΓòÉΓòÉ
  7265.  
  7266. Select the highlighted parameters for more information: 
  7267.  
  7268. BOOL SPMAPI_ENTRY SPMAPISet
  7269.                       (QUOPTION     quOption,         /* input  */
  7270.                        PSZ SPMPTR   pszComponentName,    /* input  */
  7271.                        PVOID SPMPTR pbSetting,        /* in/out */
  7272.                        PEXTENDEDRC  pxrcRC);          /* output */
  7273.  
  7274.  
  7275. ΓòÉΓòÉΓòÉ <hidden> QUOPTION quOption ΓòÉΓòÉΓòÉ
  7276.  
  7277. In the quOption parameter, specify SPM_SET_RECORD_MULT to change the monitor 
  7278. (SPMILOG) session recording frequency.  See the pbSetting parameter for more 
  7279. information. 
  7280.  
  7281.  
  7282. ΓòÉΓòÉΓòÉ <hidden> PSZ szComponentName ΓòÉΓòÉΓòÉ
  7283.  
  7284. Use the szComponentName parameter to specify the component name of an active 
  7285. monitor (SPMILOG) session for which you want to change the options.  See the 
  7286. quOption parameter for more information about changing the options for the 
  7287. specified monitor session. 
  7288.  
  7289.  
  7290. ΓòÉΓòÉΓòÉ <hidden> PVOID pbSetting ΓòÉΓòÉΓòÉ
  7291.  
  7292. The pbSetting parameter is a pointer to a long integer that contains the 
  7293. recording frequency multiplier, which specifies how many samples will be 
  7294. averaged together to become one record in the monitor session (.LOG) file. The 
  7295. prior setting of the recording frequency multiplier is returned in the same 
  7296. field. 
  7297.  
  7298. To disable recording, specify a value of 0 (zero) in the pbSetting parameter. 
  7299. Unlike SPMAPIInit, a negative value does not specify the default. No negative 
  7300. values are allowed. 
  7301.  
  7302. To change the recording frequency multiplier, specify an integer in the 
  7303. pbSetting parameter. 
  7304.  
  7305.  Note:  To ascertain the recording value configured in the monitor session 
  7306.         (.LOG) file, use the SPMAPIQuery function (specify SPM_QU_CFGD_TIMES in 
  7307.         the quOption parameter). 
  7308.  
  7309.  
  7310. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7311.  
  7312. The pxrcRC parameter contains the return code for the SPMAPISet function. 
  7313.  
  7314.  
  7315. ΓòÉΓòÉΓòÉ <hidden> SPMAPISet Coding Example ΓòÉΓòÉΓòÉ
  7316.  
  7317.  
  7318. #define INCL_NOPM
  7319. #define INCL_DOS
  7320. #define INCL_DOSERRORS
  7321. #include <os2.h>
  7322. #include <string.h>
  7323. #include <stdlib.h>
  7324. #include <stdio.h>
  7325. #include "spmapi.h"
  7326.  
  7327.  
  7328.  
  7329. VOID main (argc, argv)
  7330. INT  argc;
  7331. CHAR *argv[];
  7332. {
  7333.  
  7334. USHORT            rc;
  7335. CHAR              szLogFileName[256], szIlogName[256];
  7336. PVOID             pbSetting;
  7337. LOGFILEHANDLE     LogHandle;
  7338. EXTENDEDRC        xrcRC;
  7339.  
  7340.          .
  7341.          .
  7342.          .
  7343.  
  7344.    rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
  7345.       (PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
  7346.       (PEXTENDEDRC) &xrcRC);
  7347.  
  7348.          .
  7349.          .
  7350.          .
  7351.  
  7352.    pbSetting = (PVOID) malloc (sizeof(LONG));
  7353.    *pbSetting = (LONG) 0;
  7354.    rc = SPMAPISet((QUOPTION) SPM_SET_RECORD_MULT, (PSZ SPMPTR) szIlogName,
  7355.       (PVOID SPMPTR) pbSetting, (PEXTENDEDRC) &xrcRC);
  7356.  
  7357.          .
  7358.          .
  7359.          .
  7360.  
  7361.    rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
  7362.  
  7363.          .
  7364.          .
  7365.          .
  7366.  
  7367.    exit (0);
  7368. }
  7369.  
  7370.  
  7371. ΓòÉΓòÉΓòÉ 8.5.4. SPMAPIInit ΓòÉΓòÉΓòÉ
  7372.  
  7373.  
  7374. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7375.  
  7376. Use the SPMAPIInit function to start a monitor (SPMILOG) session on a local 
  7377. machine.  A preconfigured monitor session (.LOG) file is required for an 
  7378. SPMAPIInit call. 
  7379.  
  7380.  
  7381. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7382.  
  7383. Select one: 
  7384.  
  7385.  o Syntax 
  7386.  o Coding example. 
  7387.  
  7388.  
  7389. ΓòÉΓòÉΓòÉ 8.5.4.1. SPMAPIInit Syntax ΓòÉΓòÉΓòÉ
  7390.  
  7391. Select the highlighted parameters for more information: 
  7392.  
  7393. BOOL SPMAPI_ENTRY SPMAPIInit
  7394.                   (PSZ SPMPTR  pszLogFileName,    /* input  */
  7395.                    LONG        lRMultOverride,    /* input  */
  7396.                    PEXTENDEDRC pxrcRC);           /* output */
  7397.  
  7398.  
  7399. ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
  7400.  
  7401. In the pszLogFileName parameter, specify the fully qualified path and file name 
  7402. of the monitor session (.LOG) file for which you want to start a monitor 
  7403. (SPMILOG) session. 
  7404.  
  7405. The monitor session (.LOG) file cannot be processed by more than one monitor 
  7406. (SPMILOG) session at a time.  Therefore, be certain that your application 
  7407. specifies an inactive monitor session (.LOG) file. 
  7408.  
  7409. When a high performance file system (HPFS) is used, the SPM/2 API treats file 
  7410. names in the same manner as the OS/2 system does.  That is, upper and lower 
  7411. cases are remembered, but file names are not case-sensitive. 
  7412.  
  7413.  
  7414. ΓòÉΓòÉΓòÉ <hidden> LONG lRMultOverride ΓòÉΓòÉΓòÉ
  7415.  
  7416. In the lRMultOverride parameter, specify one of the following values: 
  7417.  
  7418.  -1   Specifies the default recording multiplier (that is, every collection 
  7419.       sample is recorded). No other negative value is allowed. 
  7420.  
  7421.  0    Specifies that no collection samples be recorded. 
  7422.  
  7423.  Any other positive value Specifies a new value for the recording multiplier. 
  7424.       For example, specify 3 to record every third collection sample. 
  7425.  
  7426.  The value specified in this parameter overrides the value specified for the 
  7427.  recording multiplier in the monitor session (.LOG) file. 
  7428.  
  7429.  
  7430. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7431.  
  7432. The pxrcRC parameter contains the return code for the SPMAPIInit function. 
  7433.  
  7434. Possible return codes for the SPMAPIInit function include: 
  7435.  
  7436. FunctionCode = SPMAPI_PERR_LOGOBJNAME;
  7437. FunctionRC   = not used
  7438.  
  7439. FunctionCode = SPMAPI_PERR_DOSCALL;
  7440. FunctionRC   = from DosOpen
  7441.  
  7442. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  7443. FunctionRC   = 0
  7444.  
  7445. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  7446. FunctionRC   = SPMAPI_ERR_GETGDA;
  7447.  
  7448. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  7449. FunctionRC   = SPMAPI_ERR_GETIDA;
  7450.  
  7451. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  7452. FunctionRC   = SPMAPI_ERR_OBJECTINUSE;
  7453.  
  7454. FunctionCode = SPMAPI_PERR_DOSEXECPGM;
  7455. FunctionRC   = from DosExecPgm
  7456.  
  7457. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  7458. FunctionRC   = SPMAPI_ERR_TIMEOUT;
  7459.  
  7460.  
  7461. ΓòÉΓòÉΓòÉ <hidden> SPMAPIInit Coding Example ΓòÉΓòÉΓòÉ
  7462.  
  7463.  
  7464. #define INCL_NOPM
  7465. #define INCL_DOS
  7466. #define INCL_DOSERRORS
  7467. #include <os2.h>
  7468. #include <string.h>
  7469. #include <stdlib.h>
  7470. #include "spmapi.h"
  7471.  
  7472. VOID main (argc, argv)
  7473. INT  argc;
  7474. CHAR *argv[];
  7475. {
  7476.  
  7477. USHORT            rc;
  7478. CHAR              szLogFileName[256];
  7479. USHORT            n;
  7480. EXTENDEDRC        xrcRC;
  7481.  
  7482.    for (n = 0; n < strlen (argv[2]); n++)
  7483.       szLogFileName[n] = toupper (argv[2][n]);
  7484.  
  7485.    rc = SPMAPIInit((PSZ SPMPTR) &szLogFileName, -1,(PEXTENDEDRC) &xrcRC);
  7486.  
  7487.    exit (0);
  7488.  
  7489. }
  7490.  
  7491.  
  7492. ΓòÉΓòÉΓòÉ 8.5.5. SPMAPIOpen ΓòÉΓòÉΓòÉ
  7493.  
  7494.  
  7495. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7496.  
  7497. Use the SPMAPIOpen function to open the connection to an active or inactive 
  7498. monitor session (.LOG) file so your application can begin the input processing 
  7499. of data from that file. 
  7500.  
  7501.  
  7502. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7503.  
  7504. Select one: 
  7505.  
  7506.  o Syntax 
  7507.  o Coding example. 
  7508.  
  7509.  
  7510. ΓòÉΓòÉΓòÉ 8.5.5.1. SPMAPIOpen Syntax ΓòÉΓòÉΓòÉ
  7511.  
  7512. Select the highlighted parameters for more information: 
  7513.  
  7514. BOOL SPMAPI_ENTRY SPMAPIOpen
  7515.                   (PSZ SPMPTR     pszLogFileName,    /* input  */
  7516.                    PFILTERSPEC    pfsFilters,        /* input  */
  7517.                    PLOGFILEHANDLE pLogHandle,        /* output */
  7518.                    PEXTENDEDRC    pxrcRC);           /* output */
  7519.  
  7520.  
  7521. ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
  7522.  
  7523. In the pszLogFileName parameter, specify the fully qualified path and file name 
  7524. of the monitor session (.LOG) file you want to open. 
  7525.  
  7526. The name must indicate a valid, configured monitor session (.LOG) file. 
  7527. However, it does not matter whether that file is active - that is, being used 
  7528. by a monitor (SPMILOG) session - or inactive. 
  7529.  
  7530. When a high performance file system (HPFS) is used, the SPM/2 API treats file 
  7531. names in the same manner as the OS/2 system does.  That is, upper and lower 
  7532. cases are remembered, but file names are not case-sensitive. 
  7533.  
  7534.  
  7535. ΓòÉΓòÉΓòÉ <hidden> PFILTERSPEC pfsFilters ΓòÉΓòÉΓòÉ
  7536.  
  7537. The pfsFilters parameter must point to a valid FILTERSPEC structure, which 
  7538. contains the start and stop times of the interval to be read. 
  7539.  
  7540. To read all of the data in a monitor session (.LOG), use the datetime function 
  7541. to set the start date-time value to 0e0 and the stop date-time value to the 
  7542. current date and time. 
  7543.  
  7544.  Note:  Your application will cause an error if the stop date-time value is 
  7545.         0e0, but the start date-time value is not 0e0 also. 
  7546.  
  7547.  If the monitor (SPMILOG) session associated with the monitor session (.LOG) 
  7548.  file is active and you set both the start and stop times to 0e0, real-time 
  7549.  data in the same format as historical data is returned. 
  7550.  
  7551.  If no data is available in the time frame specified, an end-of-file (EOF) 
  7552.  condition is encountered the first time you use the SPMAPIGetData function 
  7553.  after using the SPMAPIOpen function. 
  7554.  
  7555.  Dates and times should be converted from country code-specific format to SPM/2 
  7556.  format before being passed in the pfsFilters parameter. 
  7557.  
  7558.  The datetime function returns the correct format.  The str2dt function 
  7559.  converts strings to the correct format. 
  7560.  
  7561.  
  7562. ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
  7563.  
  7564. The pLogHandle parameter is a pointer to a log handle structure provided by the 
  7565. calling application.  Upon return, the SPMAPIOpen function supplies the values 
  7566. for the log handle structure. 
  7567.  
  7568. The pLogHandle parameter, which is the equivalent of a file handle, is required 
  7569. in subsequent calls to the SPMAPIGetData and SPMAPIClose functions.  When the 
  7570. handle is returned, it uniquely identifies this instance of the open monitor 
  7571. session (.LOG) file. 
  7572.  
  7573. The fields in this structure should not be modified. 
  7574.  
  7575.  
  7576. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7577.  
  7578. The pxrcRC parameter contains the return code for the SPMAPIOpen function. 
  7579.  
  7580. Possible return codes for the SPMAPIOpen function include: 
  7581.  
  7582. FunctionCode = SPMAPI_PERR_FILTERSPEC;
  7583. FunctionRC   = SPMAPI_ERR_RANGE;
  7584.  
  7585. FunctionCode = SPMAPI_PERR_DOSCALL;
  7586. FunctionRC   = from DosAllocSeg
  7587.                     DosChgFilePtr
  7588.                     DosOpen
  7589.                     DosRead
  7590.                     DosSemClear
  7591.                     DosSetNmPipeHandState
  7592.  
  7593. FunctionCode = SPMAPI_PERR_LOGFILE;
  7594. FunctionRC   = SPMAPI_ERR_FILEBADFORMAT;
  7595.  
  7596. FunctionCode = SPMAPI_PERR_LOGFILE;
  7597. FunctionRC   = SPMAPI_ERR_FILENOTINUSE;
  7598.  
  7599.  
  7600. ΓòÉΓòÉΓòÉ <hidden> SPMAPIOpen Coding Example ΓòÉΓòÉΓòÉ
  7601.  
  7602.  
  7603. #define INCL_NOPM
  7604. #define INCL_DOS
  7605. #define INCL_DOSERRORS
  7606. #include <os2.h>
  7607. #include <string.h>
  7608. #include <stdlib.h>
  7609. #include <stdio.h>
  7610. #include "spmapi.h"
  7611.  
  7612. typedef struct _RETURN_AREA
  7613. {
  7614.    QUERYHDR    quHdr;
  7615.    CHAR        returnstr[10000];
  7616. } RETURN_AREA;
  7617.  
  7618. VOID main (argc, argv)
  7619. INT  argc;
  7620. CHAR *argv[];
  7621. {
  7622.  
  7623. USHORT            rc;
  7624. CHAR              tmpstr[256];
  7625. CHAR              szLogFileName[256];
  7626. USHORT            n;
  7627. FILTERSPEC        fsFilters;
  7628. LOGFILEHANDLE     LogHandle;
  7629. EXTENDEDRC        xrcRC;
  7630. RETURN_AREA       return_area;
  7631.  
  7632.    if (argc > 2)
  7633.    {
  7634.       n = 0;
  7635.       while (argv[2][n] != '\0')
  7636.          tmpstr[n] = (CHAR)toupper(argv[2][n++]);
  7637.       tmpstr[n] = '\0';
  7638.       if ((fsFilters.dtStartDateTime = str2dt(tmpstr)) == DTERROR)
  7639.       {
  7640.          /* process error */
  7641.          exit(1);
  7642.       }
  7643.       if (argc > 3)
  7644.       {
  7645.          n = 0;
  7646.          while (argv[2][n] != '\0')
  7647.             tmpstr[n] = (CHAR)toupper(argv[2][n++]);
  7648.          tmpstr[n] = '\0';
  7649.          if ((fsFilters.dtEndDateTime = str2dt(tmpstr)) == DTERROR)
  7650.          {
  7651.             /* process error */
  7652.             exit(1);
  7653.          }
  7654.       }
  7655.       else fsFilters.dtEndDateTime = 0e0;
  7656.    }
  7657.    else
  7658.    {
  7659.       fsFilters.dtStartDateTime = 0e0;
  7660.       fsFilters.dtEndDateTime = 0e0;
  7661.       return_area.quHdr.usResultMax = sizeof(return_area);
  7662.       return_area.quHdr.pbResult = return_area.returnstr;
  7663.       if (SPMAPIQuery((QUOPTION)SPM_QU_ILOG_NAME,(PSZ SPMPTR)&szLogFileName,
  7664.          (PVOID SPMPTR) &return, (PEXTENDEDRC) &xrcRC))
  7665.          SPMAPIInit((PSZ SPMPTR) &szLogFileName, -1,(PEXTENDEDRC) &xrcRC);
  7666.    }
  7667.  
  7668.    rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
  7669.       (PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
  7670.       (PEXTENDEDRC) &xrcRC);
  7671.  
  7672.          .
  7673.          .
  7674.          .
  7675.  
  7676.    rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
  7677.  
  7678.          .
  7679.          .
  7680.          .
  7681.  
  7682.    exit (0);
  7683. }
  7684.  
  7685.  
  7686. ΓòÉΓòÉΓòÉ 8.5.6. SPMAPIGetData ΓòÉΓòÉΓòÉ
  7687.  
  7688.  
  7689. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7690.  
  7691. Use the SPMAPIGetData function to retrieve the next instance of the sample data 
  7692. from a monitor session (.LOG) file.  The original SPMAPIOpen function specifies 
  7693. the time interval for the data returned in the FILTERSPEC structure. 
  7694.  
  7695. If no data is available in the time frame specified using the SPMAPIOpen 
  7696. function, an end-of-file (EOF) condition is encountered the first time you use 
  7697. the SPMAPIGetData function. 
  7698.  
  7699. You must issue an SPMAPIOpen function before issuing the SPMAPIGetData 
  7700. function. 
  7701.  
  7702.  
  7703. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7704.  
  7705. Select one: 
  7706.  
  7707.  o Syntax 
  7708.  o Considerations 
  7709.  o Coding example. 
  7710.  
  7711.  
  7712. ΓòÉΓòÉΓòÉ 8.5.6.1. SPMAPIGetData Syntax ΓòÉΓòÉΓòÉ
  7713.  
  7714. Select the highlighted parameters for more information: 
  7715.  
  7716. BOOL SPMAPI_ENTRY SPMAPIGetData
  7717.                   (PLOGFILEHANDLE   pLogHandle,     /* input  */
  7718.                    PVOID SPMPTR     pbLogRec,       /* output */
  7719.                    USHORT           usLogRecMaxLen, /* input  */
  7720.                    PUSHORT SPMPTR   pusLogRecLen,   /* output */
  7721.                    PVOID            pReserved1,     /* reserved */
  7722.                    PVOID            pReserved2,     /* reserved */
  7723.                    PEXTENDEDRC      pxrcRC);        /* output */
  7724.  
  7725.  
  7726. ΓòÉΓòÉΓòÉ 8.5.6.2. SPMAPIGetData Considerations ΓòÉΓòÉΓòÉ
  7727.  
  7728. If the SPMAPIOpen function indicated that real-time data would be returned, the 
  7729. call to SPMAPIGetData waits until that data is available or until an error is 
  7730. returned by the monitor (SPMILOG) session.  Because the call could be waiting a 
  7731. long time, you may want to issue the SPMAPIGetData function call in in a thread 
  7732. that is separate from the one that processes Presentation Manager messages. 
  7733.  
  7734. To cleanly terminate an outstanding read, use the SPMAPIClose function to force 
  7735. completion of the read and ensure that the thread issuing the read is 
  7736. terminated when it receives an end-of-file (EOF) indication. EOF is defined as 
  7737. zero bytes returned from an SPMAPIGetData.  Failure to detect an EOF condition 
  7738. (which is not an error) may result in a loop through this interface. 
  7739.  
  7740. In real-time mode, all data received by the monitor (SPMILOG) session is 
  7741. returned in the order which it was received.  Network delays may make the 
  7742. return order inconsistent between monitored machines.  Data may be lost if the 
  7743. monitor (SPMILOG) session connection is not serviced in a timely manner. 
  7744.  
  7745. If insufficient space is available in the return area provided by the 
  7746. SPMAPIGetData function, slightly different actions are taken by the API.  In 
  7747. the case of real-time data, the data is lost.  In the case of historical data, 
  7748. the API will attempt to deliver the data that caused the error on the next 
  7749. SPMAPIGetData function call.  In both cases, the data (if any) returned by the 
  7750. call that gets the error is undefined. There is a manifest constant, 
  7751. SPM_TYPE10_MAX_SIZE, that contains the maximum size of any record that will be 
  7752. returned by this interface. 
  7753.  
  7754. Underlying errors from the file system are returned if encountered while 
  7755. processing historical data.  These errors are the same as those returned from 
  7756. DosRead.  The method used to return real-time data is not defined and therefore 
  7757. any underlying errors are reflected as an EOF. 
  7758.  
  7759. Once an error or EOF is returned by the interface, EOF is returned on all 
  7760. subsequent calls.  To recover or reposition, the monitor (SPMILOG) session 
  7761. handle should be closed (by using the SPMAPIClose function) and reopened (by 
  7762. using the SPMAPIOpen function). 
  7763.  
  7764.  
  7765. ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
  7766.  
  7767. The pLogHandle parameter is a pointer to a log handle structure provided by the 
  7768. calling application.  The SPMAPIOpen function supplies the values for the log 
  7769. handle structure. 
  7770.  
  7771. The pLogHandle parameter, which is the equivalent of a file handle, is required 
  7772. in SPMAPIGetData function calls to identify the open monitor session (.LOG) 
  7773. file. 
  7774.  
  7775. The fields in this structure should not be modified. 
  7776.  
  7777.  
  7778. ΓòÉΓòÉΓòÉ <hidden> PVOID pbLogRec ΓòÉΓòÉΓòÉ
  7779.  
  7780. The pbLogRec parameter is a byte-aligned area into which the next record is 
  7781. read. 
  7782.  
  7783.  
  7784. ΓòÉΓòÉΓòÉ <hidden> USHORT usLogRecMaxLen ΓòÉΓòÉΓòÉ
  7785.  
  7786. The usLogRecMaxLen parameter specifies the maximum length of the pbLogRec 
  7787. parameter field. 
  7788.  
  7789.  
  7790. ΓòÉΓòÉΓòÉ <hidden> PUSHORT pusLogRecLen ΓòÉΓòÉΓòÉ
  7791.  
  7792. The pusLogRecLen parameter is set to the actual number of bytes read. 
  7793.  
  7794. An end-of-file (EOF) condition is indicated by a 0 (zero) in this field.  When 
  7795. retrieving historical data, EOF is indicated when the next record exceeds the 
  7796. stop date-time value specified in the FILTERSPEC structure on the SPMAPIOpen 
  7797. function call.  When in real-time mode, EOF is indicated when the monitor 
  7798. (SPMILOG) session is terminated. 
  7799.  
  7800.  
  7801. ΓòÉΓòÉΓòÉ <hidden> PVOID pReserved1 ΓòÉΓòÉΓòÉ
  7802.  
  7803. The pReserved1 parameter is reserved for future use. 
  7804.  
  7805.  
  7806. ΓòÉΓòÉΓòÉ <hidden> PVOID pReserved2 ΓòÉΓòÉΓòÉ
  7807.  
  7808. The pReserved2 parameter is reserved for future use. 
  7809.  
  7810.  
  7811. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7812.  
  7813. The pxrcRC parameter contains the return code for the SPMAPIGetData function. 
  7814. This parameter is not used if the value of an immediate return from an 
  7815. asynchronous SPMAPIGetData function call is FALSE. 
  7816.  
  7817. Possible return codes for the SPMAPIGetData function include: 
  7818.  
  7819. FunctionCode = SPMAPI_PERR_BUFFERLENGTH;
  7820. FunctionRC   = SPMAPI_ERR_NO_SPACE;
  7821.  
  7822. FunctionCode = SPMAPI_PERR_DOSCALL;
  7823. FunctionRC   = from DosAllocSeg
  7824.                     DosChgFilePtr
  7825.                     DosRead
  7826.                     DosSemClear
  7827.  
  7828. FunctionCode = SPMAPI_PERR_LOGFILE;
  7829. FunctionRC   = SPMAPI_ERR_FILEBADFORMAT;
  7830.  
  7831. FunctionCode = SPMAPI_PERR_LOGHANDLE;
  7832. FunctionRC   = SPMAPI_ERR_NOT_OPEN;
  7833.  
  7834.  
  7835. ΓòÉΓòÉΓòÉ <hidden> SPMAPIGetData Coding Example ΓòÉΓòÉΓòÉ
  7836.  
  7837.  
  7838. #define INCL_NOPM
  7839. #define INCL_DOS
  7840. #define INCL_DOSERRORS
  7841. #include <os2.h>
  7842. #include <string.h>
  7843. #include <stdlib.h>
  7844. #include <stdio.h>
  7845. #include "spmapi.h"
  7846.  
  7847. VOID main (argc, argv)
  7848. INT  argc;
  7849. CHAR *argv[];
  7850. {
  7851.  
  7852. USHORT            rc;
  7853. CHAR              szLogFileName[256];
  7854. USHORT            usLogRecLen;
  7855. PVOID             pbLogRec;
  7856. LOGFILEHANDLE     LogHandle;
  7857. EXTENDEDRC        xrcRC;
  7858.  
  7859.          .
  7860.          .
  7861.          .
  7862.  
  7863.    rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
  7864.       (PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
  7865.       (PEXTENDEDRC) &xrcRC);
  7866.  
  7867.          .
  7868.          .
  7869.          .
  7870.  
  7871.    usLogRecLen = SPM_TYPE10_MAX_SIZE;
  7872.    pbLogRec = (PVOID) malloc (usLogRecLen);
  7873.    rc = SPMAPIGetData((PLOGFILEHANDLE) pLogHandle,
  7874.       (PVOID SPMPTR) pbLogRec, (USHORT) usLogRecMaxLen,
  7875.       (PUSHORT SPMPTR) &usLogRecLen, (PVOID) NULL, (PVOID) NULL,
  7876.       (PEXTENDEDRC) &xrcRC);
  7877.  
  7878.          .
  7879.          .
  7880.          .
  7881.  
  7882.    rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
  7883.  
  7884.          .
  7885.          .
  7886.          .
  7887.  
  7888.    exit (0);
  7889.  
  7890. }
  7891.  
  7892.  
  7893. ΓòÉΓòÉΓòÉ 8.5.7. SPMAPIClose ΓòÉΓòÉΓòÉ
  7894.  
  7895.  
  7896. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7897.  
  7898. Use the SPMAPIClose function to close the connection to a monitor session 
  7899. (.LOG) file, whether the data being read is historical or real-time. 
  7900.  
  7901. If an SPMAPIGetData function is reading a record when the SPMAPIClose function 
  7902. is issued, the SPMAPIGetData function is terminated with an end-of-file (EOF) 
  7903. condition. 
  7904.  
  7905. You must issue an SPMAPIOpen function before issuing the SPMAPIClose function. 
  7906.  
  7907.  
  7908. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  7909.  
  7910. Select one: 
  7911.  
  7912.  o Syntax 
  7913.  o Coding example. 
  7914.  
  7915.  
  7916. ΓòÉΓòÉΓòÉ 8.5.7.1. SPMAPIClose Syntax ΓòÉΓòÉΓòÉ
  7917.  
  7918. Select the highlighted parameters for more information: 
  7919.  
  7920. BOOL SPMAPI_ENTRY SPMAPIClose
  7921.                   (PLOGFILEHANDLE pLogHandle,   /* input  */
  7922.                    PEXTENDEDRC    pxrcRC);      /* output */
  7923.  
  7924.  
  7925. ΓòÉΓòÉΓòÉ <hidden> PLOGFILEHANDLE pLogHandle ΓòÉΓòÉΓòÉ
  7926.  
  7927. The pLogHandle parameter is a pointer to a log handle structure provided by the 
  7928. calling application.  The SPMAPIOpen function supplies the values for the log 
  7929. handle structure. 
  7930.  
  7931. The pLogHandle parameter, which is the equivalent of a file handle, is required 
  7932. in SPMAPIPutData function calls to identify the open monitor session (.LOG) 
  7933. file that you want to close. 
  7934.  
  7935. The fields in this structure should not be modified. 
  7936.  
  7937.  
  7938. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  7939.  
  7940. The pxrcRC parameter contains the return code for the SPMAPIClose function. 
  7941.  
  7942. Possible return codes for the SPMAPIClose function include: 
  7943.  
  7944. FunctionCode = SPMAPI_PERR_LOGHANDLE;
  7945. FunctionRC   = SPMAPI_ERR_NOT_OPEN;
  7946.  
  7947.  
  7948. ΓòÉΓòÉΓòÉ <hidden> SPMAPIClose Coding Example ΓòÉΓòÉΓòÉ
  7949.  
  7950.  
  7951. #define INCL_NOPM
  7952. #define INCL_DOS
  7953. #define INCL_DOSERRORS
  7954. #include <os2.h>
  7955. #include <string.h>
  7956. #include <stdlib.h>
  7957. #include <stdio.h>
  7958. #include "spmapi.h"
  7959.  
  7960.  
  7961. VOID main (argc, argv)
  7962. INT  argc;
  7963. CHAR *argv[];
  7964. {
  7965.  
  7966. USHORT            rc;
  7967. CHAR              szLogFileName[256];
  7968. FILTERSPEC        fsFilters;
  7969. LOGFILEHANDLE     LogHandle;
  7970. EXTENDEDRC        xrcRC;
  7971.  
  7972.          .
  7973.          .
  7974.          .
  7975.  
  7976.    rc = SPMAPIOpen((PSZ SPMPTR) &szLogFileName,
  7977.       (PFILTERSPEC) &fsFilters, (PLOGFILEHANDLE) &LogHandle,
  7978.       (PEXTENDEDRC) &xrcRC);
  7979.  
  7980.          .
  7981.          .
  7982.          .
  7983.  
  7984.    rc = SPMAPIClose((PLOGFILEHANDLE) &LogHandle, (PEXTENDEDRC) &xrcRC);
  7985.  
  7986.          .
  7987.          .
  7988.          .
  7989.  
  7990.    exit (0);
  7991. }
  7992.  
  7993.  
  7994. ΓòÉΓòÉΓòÉ 8.5.8. SPMAPITerm ΓòÉΓòÉΓòÉ
  7995.  
  7996.  
  7997. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  7998.  
  7999. Use the SPMAPITerm function to terminate one or more monitor (SPMILOG) 
  8000. sessions. 
  8001.  
  8002. You must issue an SPMAPIInit function before issuing the SPMAPITerm function. 
  8003.  
  8004.  
  8005. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  8006.  
  8007. Select one: 
  8008.  
  8009.  o Syntax 
  8010.  o Coding example. 
  8011.  
  8012.  
  8013. ΓòÉΓòÉΓòÉ 8.5.8.1. SPMAPITerm Syntax ΓòÉΓòÉΓòÉ
  8014.  
  8015. Select the highlighted parameters for more information: 
  8016.  
  8017. BOOL SPMAPI_ENTRY SPMAPITerm
  8018.                   (PSZ SPMPTR  pszLogFileName,  /* input  */
  8019.                    USHORT      usOptions,       /* input  */
  8020.                    PEXTENDEDRC pxrcRC);         /* output */
  8021.  
  8022.  
  8023. ΓòÉΓòÉΓòÉ <hidden> PSZ pszLogFileName ΓòÉΓòÉΓòÉ
  8024.  
  8025. In the pszLogFileName parameter, specify the fully qualified path and file name 
  8026. of the monitor session (.LOG) file for which you want to stop a monitor 
  8027. (SPMILOG) session. 
  8028.  
  8029. When a high performance file system (HPFS) is used, the SPM/2 API treats file 
  8030. names in the same manner as the OS/2 system does.  That is, upper and lower 
  8031. cases are remembered, but file names are not case-sensitive. 
  8032.  
  8033. The pszLogFileName parameter is required for the usOptions DRAIN or HALT 
  8034. operations, which affect only specified monitor session (.LOG) files.  The 
  8035. pszLogFileName parameter is not required for the DRAINALL and HALTALL 
  8036. operations, which affect all active monitor session (.LOG) files. 
  8037.  
  8038.  
  8039. ΓòÉΓòÉΓòÉ <hidden> USHORT usOptions ΓòÉΓòÉΓòÉ
  8040.  
  8041. The usOptions parameter has the following options: 
  8042.  
  8043.  DRAIN     Allows the current operations to continue to completion and then 
  8044.            terminates the monitor (SPMILOG) session.  This option affects only 
  8045.            the monitor (SPMILOG) session associated with the monitor session 
  8046.            (.LOG) file specified in the pszLogFileName parameter. 
  8047.  
  8048.  HALT      Terminates all operations of the monitor (SPMILOG) session 
  8049.            immediately.  This option affects only the monitor (SPMILOG) session 
  8050.            associated with the monitor session (.LOG) file specified in the 
  8051.            pszLogFileName parameter. 
  8052.  
  8053.  DRAINALL  Allows the current operations to continue to completion and then 
  8054.            terminates the monitor (SPMILOG) sessions.  This option does not 
  8055.            require the use of the pszLogFileName parameter. 
  8056.  
  8057.  HALT      Terminates all operations of all active monitor (SPMILOG) sessions 
  8058.            immediately.  This option does not require the use of the 
  8059.            pszLogFileName parameter. 
  8060.  
  8061.  
  8062. ΓòÉΓòÉΓòÉ <hidden> PEXTENDEDRC pxrcRC ΓòÉΓòÉΓòÉ
  8063.  
  8064. The pxrcRC parameter contains the return code for the SPMAPITerm function. 
  8065.  
  8066. Possible return codes for the SPMAPITerm function include: 
  8067.  
  8068. FunctionCode = SPMAPI_PERR_SHUTDOWN;
  8069. FunctionRC   = usShutDownOption;
  8070.  
  8071. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  8072. FunctionRC   = SPMAPI_ERR_OBJECTNOTINUSE;
  8073.  
  8074. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  8075. FunctionRC   = 0;
  8076.  
  8077. FunctionCode = SPMAPI_PERR_LOGOBJECT;
  8078. FunctionRC   = SPMAPI_ERR_OBJECTNOTINUSE;
  8079.  
  8080. FunctionCode = SPMAPI_ERR_NAKTIMEOUT;
  8081. FunctionRC   = 0;
  8082.  
  8083. FunctionCode = SPMAPI_ERR_DOSSEMREQUEST;
  8084. FunctionRC   = from DosSemRequest
  8085.  
  8086.  
  8087. ΓòÉΓòÉΓòÉ <hidden> SPMAPITerm Coding Example ΓòÉΓòÉΓòÉ
  8088.  
  8089.  
  8090. #define INCL_NOPM
  8091. #define INCL_DOS
  8092. #define INCL_DOSERRORS
  8093. #include <os2.h>
  8094. #include <string.h>
  8095. #include <stdlib.h>
  8096. #include <stdio.h>
  8097. #include "spmapi.h"
  8098.  
  8099. VOID main (argc, argv)
  8100. INT  argc;
  8101. CHAR *argv[];
  8102. {
  8103.  
  8104. USHORT            rc;
  8105. CHAR              szLogFileName[256];
  8106. USHORT            n;
  8107. EXTENDEDRC        xrcRC;
  8108.  
  8109.    for (n = 0; n < strlen (argv[2]); n++)
  8110.       szLogFileName[n] = toupper (argv[2][n]);
  8111.  
  8112.    rc = SPMAPITerm((PSZ SPMPTR) &szLogFileName, (USHORT) SPMAPI_HALT,
  8113.       (PEXTENDEDRC) &xrcRC);
  8114.  
  8115.    exit (0);
  8116.  
  8117. }
  8118.  
  8119.  
  8120. ΓòÉΓòÉΓòÉ 8.5.9. Date-Time Functions ΓòÉΓòÉΓòÉ
  8121.  
  8122. The following date-time functions are external routines contained in the 
  8123. DATETIME.LIB library. 
  8124.  
  8125.  datetime Returns the current date-time value. 
  8126.  datepart Returns the date value from a datetime variable. 
  8127.  timepart Returns the time value from a datetime variable. 
  8128.  str2dt Converts a string to a datetime variable.  Returns DTERROR if invalid. 
  8129.  dt2str Converts the datetime variable to a printable string. 
  8130.  dv2str Converts a date value to a printable string. 
  8131.  tv2str Converts a time value to a printable string. 
  8132.  
  8133.  
  8134. ΓòÉΓòÉΓòÉ 8.5.9.1. datetime ΓòÉΓòÉΓòÉ
  8135.  
  8136. The datetime function returns a value containing the current date and time. 
  8137.  
  8138. double SPMAPI_ENTRY datetime (void);
  8139.  
  8140. The datetime function has no parameters.  The return from the function is the 
  8141. current date and time. 
  8142.  
  8143. The datetime function is limited to the length of American English names. 
  8144. Problems may result if abbreviations of months are not 3 characters or if a 
  8145. month or day name is longer than 9 characters. 
  8146.  
  8147.  
  8148. ΓòÉΓòÉΓòÉ 8.5.9.2. datepart ΓòÉΓòÉΓòÉ
  8149.  
  8150. The datepart function returns the date value from a datetime value. 
  8151.  
  8152. double SPMAPI_ENTRY datepart (double);  /* input */
  8153.  
  8154. In the double parameter field, specify the datetime value. 
  8155.  
  8156.  
  8157. ΓòÉΓòÉΓòÉ 8.5.9.3. timepart ΓòÉΓòÉΓòÉ
  8158.  
  8159. The timepart function returns the time value from a datetime value. 
  8160.  
  8161. double SPMAPI_ENTRY timepart (double); /* input */
  8162.  
  8163. In the double parameter field, specify the datetime value. 
  8164.  
  8165.  
  8166. ΓòÉΓòÉΓòÉ 8.5.9.4. str2dt ΓòÉΓòÉΓòÉ
  8167.  
  8168. The str2dt function converts an input string to a datetime variable. It returns 
  8169. a DTERROR message if the input is invalid. 
  8170.  
  8171. double SPMAPI_ENTRY str2dt (char * SPMPTR); /* output */
  8172.  
  8173. The char parameter is a pointer to a character string containing a date and 
  8174. time. The format of a date string is National Language dependent (/ and : are 
  8175. country dependent): 
  8176.  
  8177.  American English         MM/DD/YYYY:HH:MM:SS 
  8178.  European                 YYYY/MM/DD:HH:MM:SS 
  8179.  Other                    DD/MM/YYYY:HH:MM:SS 
  8180.  
  8181.  
  8182. ΓòÉΓòÉΓòÉ 8.5.9.5. dt2str ΓòÉΓòÉΓòÉ
  8183.  
  8184. The dt2str function converts the datetime value to a printable string. 
  8185.  
  8186. PSZ SPMPTR SPMAPI_ENTRY dt2str
  8187.                         (char * SPMPTR,   /* output */
  8188.                          double,          /* input  */
  8189.                          SPMINT);         /* input  */
  8190.  
  8191. The char parameter is a pointer to a printable string. 
  8192.  
  8193. In the double parameter field, specify the datetime value. 
  8194.  
  8195. In the SPMINT parameter field, specify the length for the string returned in 
  8196. the char parameter.  Length is the key to the format. The order of the date 
  8197. components and the separators is determined by the existing National Language 
  8198. Support (NLS) setup. American English is shown here.  Others are similar. 
  8199.  
  8200.   less than 6 - *'s to show error
  8201.   6           - mmddyy
  8202.   7           - ddmmmyy
  8203.   8 or 9      - mm/dd/yy
  8204.   10          - ddmmmyy:hh
  8205.   11          - mm/dd/yyyy
  8206.   12          - mm/dd/yy:hh
  8207.   13          - ddmmmyy:hh:mm
  8208.   14 or 15    - mm/dd/yy:hh:mm
  8209.   16          - ddmmmyy:hh:mm:ss
  8210.   17 to 18    - mm/dd/yy:hh:mm:ss
  8211.   19 to 22    - mm/dd/yyyy:hh:mm:ss
  8212. The following are only guaranteed to work for American English.
  8213.   23          - September dd, yyyy
  8214.   24 to 26    - September dd, yyyy hh:mm
  8215.   27 or more  - September dd, yyyy hh:mm:ss
  8216.  
  8217.  
  8218. ΓòÉΓòÉΓòÉ 8.5.9.6. dv2str ΓòÉΓòÉΓòÉ
  8219.  
  8220. The dv2str function converts the date value to a printable string. 
  8221.  
  8222. PSZ SPMPTR SPMAPI_ENTRY dv2str
  8223.                         (char * SPMPTR,  /* output */
  8224.                          double,         /* input  */
  8225.                          SPMINT);        /* input  */
  8226.  
  8227. The char parameter is a pointer to a printable string. 
  8228.  
  8229. In the double parameter field, specify the datetime value. 
  8230.  
  8231. In the SPMINT parameter field, specify the length for the string returned in 
  8232. the char parameter.  Length is the key to the format. The order of the date 
  8233. components and the separators is determined by the existing National Language 
  8234. Support (NLS) setup. American English is shown here.  Others are similar. 
  8235.  
  8236.   less than 6 - *'s to show error
  8237.   6           - mmddyy
  8238.   7           - ddmmmyy
  8239.   8           - mm/dd/yy
  8240.   9           - ddmmmyyyy
  8241.   10          - mm/dd/yyyy
  8242.   11          - yyyy/mm/dd
  8243. The following are only guaranteed to work for American English.
  8244.   12          - mmm dd, yyyy
  8245.   13          - Mon mm/dd/yy
  8246.   14          - Mon yy/mm/dd
  8247.   15          - Mon mm/dd/yyyy
  8248.   16          - Mon yyyy/mm/dd
  8249.   17          - Mon mmm dd, yyyy
  8250.   18          - Mon, mmm dd, yyyy
  8251.   19          - Mon: mmm dd, yyyy
  8252.   20          - September dd, yyyy
  8253.   21          - September dd, yyyy
  8254.   22          - Mon September dd, yyyy
  8255.   23          - Mon, September dd, yyyy
  8256.   24          - Mon: September dd, yyyy
  8257.   25          - Mon: September dd, yyyy
  8258.   26          - Mon: September dd, yyyy
  8259.   27          - Mon: September dd, yyyy
  8260.   28          - Wednesday September dd, yyyy
  8261.   29          - Wednesday, September dd, yyyy
  8262.   30          - Wednesday: September dd, yyyy
  8263.  
  8264.  
  8265. ΓòÉΓòÉΓòÉ 8.5.9.7. tv2str ΓòÉΓòÉΓòÉ
  8266.  
  8267. The tv2str function converts the time value to a printable string. 
  8268.  
  8269. PSZ SPMPTR SPMAPI_ENTRY tv2str
  8270.                         (char * SPMPTR,  /* output */
  8271.                          double,         /* input  */
  8272.                          SPMINT);        /* input  */
  8273.  
  8274. The char parameter is a pointer to a printable string. 
  8275.  
  8276. In the double parameter field, specify the datetime value. 
  8277.  
  8278. In the SPMINT parameter field, specify the length for the string returned in 
  8279. the char parameter.  Length is the key to the format. The order of the date 
  8280. components and the separators is determined by the existing National Language 
  8281. Support (NLS) setup. American English is shown here.  Others are similar. 
  8282.  
  8283.   less than 2 - *'s to show error
  8284.   2           - hh
  8285.   3           - hhh
  8286.   4           - hhmi
  8287.   5           - hh:mi
  8288.   6           - hhh:mi
  8289.   7           - hhhh:mi
  8290.   8           - hh:mi:ss
  8291.   9           - hhh:mi:ss
  8292.   10          - hh:mi:ss.t
  8293.   11          - hh:mi:ss.tt
  8294.   12          - hh:mi:ss.ttt
  8295.   13          - hh:mm:ss.tttt
  8296.   14          - hhh:mm:ss.tttt
  8297.   15          - hhhh:mm:ss.tttt
  8298.  
  8299.  
  8300. ΓòÉΓòÉΓòÉ 8.6. API Return Codes ΓòÉΓòÉΓòÉ
  8301.  
  8302.  
  8303. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  8304.  
  8305. The actual return of any SPM/2 API function is BOOL with a value of: 
  8306.  
  8307.  TRUE      Indicates the function failed. 
  8308.  FALSE     Indicates the function succeeded. 
  8309.  
  8310.  Each of the SPM/2 API functions contains a pxrcRC parameter that is a pointer 
  8311.  to an EXTENDEDRC structure.  This structure contains two parameters: 
  8312.  FunctionCode and FunctionRC.  When the BOOL value is TRUE, these two 
  8313.  parameters contain information about the error that occurred. When the BOOL 
  8314.  value is FALSE, these two parameters are reserved. 
  8315.  
  8316.  The FunctionCode parameter indicates the function being executed when the 
  8317.  error indicated by the FunctionRC parameter occurs. 
  8318.  
  8319.  SPM/2 API functions often call other functions.  In general, any function may 
  8320.  return a code from one of the following functions: 
  8321.  
  8322.  o SPMAPIQualifyFileName 
  8323.  o SPMAPIQuery. 
  8324.  
  8325.  
  8326. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  8327.  
  8328. Select one: 
  8329.  
  8330.  o FunctionCode List 
  8331.  o FunctionRC List. 
  8332.  
  8333.  
  8334. ΓòÉΓòÉΓòÉ 8.6.1. Function Codes ΓòÉΓòÉΓòÉ
  8335.  
  8336.    Function Code          Number    Description
  8337.  
  8338. SPMAPI_PERR_BUFFERAREA       1     The address of a buffer area
  8339.                                    passed to the SPM/2 API is invalid.
  8340.  
  8341. SPMAPI_PERR_BUFFERLENGTH     2     The length of a buffer passed to
  8342.                                    the SPM/2 API is invalid.
  8343.  
  8344. SPMAPI_PERR_BYTESREAD        3     The address of the byte count
  8345.                                    return area is invalid.
  8346.  
  8347. SPMAPI_PERR_CONFIGDATA       4     The value of configuration data
  8348.                                    passed to the SPM/2 API is invalid.
  8349.  
  8350. SPMAPI_PERR_CONFIGOPT        5     The configuration option is
  8351.                                    invalid.
  8352.  
  8353. SPMAPI_PERR_DOSEXECPGM       6     An unexpected error occurred when
  8354.                                    attempting to start a program.
  8355.                                    This error usually indicates an
  8356.                                    installation error or configuration
  8357.                                    change that causes SPM/2 API to
  8358.                                    fail to find a required .EXE or
  8359.                                    .DLL file.
  8360.  
  8361. SPMAPI_PERR_FILTER           7     A filter parameter passed was
  8362.                                    invalid.
  8363.  
  8364. SPMAPI_PERR_FILTERSPEC       8     A problem with a parameter in the
  8365.                                    FILTERSPEC structure occurred.
  8366.  
  8367. SPMAPI_PERR_LOGFILE          9     A problem with the .LOG file
  8368.                                    occurred.
  8369.  
  8370. SPMAPI_PERR_LOGHANDLE       10     A problem occurred with the log
  8371.                                    handle specified in a request.
  8372.  
  8373. SPMAPI_PERR_LOGOBJHANDLEI   11     An error occurred while attempting
  8374.                                    to add a log object to the global
  8375.                                    list.
  8376.  
  8377. SPMAPI_PERR_LOGOBJHANDLEO   12     An error occurred while trying to
  8378.                                    find a log object in the global
  8379.                                    list.
  8380.  
  8381. SPMAPI_PERR_LOGOBJNAME      13     The log object name specified is
  8382.                                    not valid.
  8383.  
  8384. SPMAPI_PERR_QUCOMPNAME      14     A problem occurred with a
  8385.                                    component value derived
  8386.                                    internally in the SPM/2 API.
  8387.  
  8388. SPMAPI_PERR_QUCOMPONENT     15     A problem occurred with a
  8389.                                    component value passed to the
  8390.                                    SPM/2 API.
  8391.  
  8392. SPMAPI_PERR_QUOPTION        16     A problem occurred with the
  8393.                                    quOption parameter.
  8394.  
  8395. SPMAPI_PERR_QURESULTS       17     A problem occurred with the
  8396.                                    pbResults parameter
  8397.                                    of the SPMAPIQuery function.
  8398.  
  8399. SPMAPI_PERR_RETURNCODE      18     The address of a return code
  8400.                                    field is invalid.  (Internal error.)
  8401.  
  8402. SPMAPI_PERR_SHUTDOWN        19     The shutdown option is not
  8403.                                    defined.  (Internal error.)
  8404.  
  8405. SPMAPI_PERR_SHUTDOWNOPT     19     The shutdown option passed to the
  8406.                                    SPM/2 API is not valid.
  8407.  
  8408. SPMAPI_PERR_LOGOBJECT       20     A problem with the LogObject
  8409.                                    parameter occurred.  If returned
  8410.                                    with a FunctionRC of zero, the
  8411.                                    parameter was null or invalid.
  8412.  
  8413. SPMAPI_PERR_USERPARM        21     A required parameter passed to
  8414.                                    the SPM/2 API is null or unusable.
  8415.  
  8416. SPMAPI_PERR_FILENAME        22     The filename passed to the SPM/2
  8417.                                    API is not in the correct state for
  8418.                                    the request.
  8419.  
  8420. SPMAPI_PERR_ILGPIPE        253     An internal error occurred in the
  8421.                                    monitor (SPMILOG) session
  8422.                                    query/command system.
  8423.  
  8424.  Note:  If the FunctionCode value returned is ILGPIPE, the FunctionRCvalue 
  8425.         returned is the failure code from the SPMILOG pipe header.  These 
  8426.         failures normally reflect a temporary network error.  A retry of the 
  8427.         call will probably succeed, but should be limited in case the network 
  8428.         error is permanent. 
  8429.  
  8430.   SPMAPI_PERR_NBQCALL        254     A network related error occurred.
  8431.                                      A stream of return codes is
  8432.                                      contained in theFunctionRC
  8433.                                      parameter.  The left-most,
  8434.                                      nonzero byte is usually the
  8435.                                      NETBIOS return code. The NETBIOS
  8436.                                      return codes are documented in
  8437.                                      the IBM LAN Technical
  8438.                                      Reference.  Return codes
  8439.                                      above 0x40 normally indicate
  8440.                                      hardware errors.
  8441.  
  8442.  Note:  If the FunctionCode value returned is NBQCALL, the FunctionRC value 
  8443.         returned may contain the failure code from the underlying NETBIOS call. 
  8444.         However, the NETBIOS Query package used by SPM/2 returns a concatenated 
  8445.         error string that may be longer than the FunctionRC variable.  In such 
  8446.         a case, if the lowest level NETBIOS code does not fit into the return 
  8447.         area, it may be recorded in the SPMSNAP.ERR file in a separate message. 
  8448.         Because SPM/2 is a network application, network errors and problems may 
  8449.         be reflected in SPM/2, but may also be reported by the underlying 
  8450.         network software. 
  8451.  
  8452.   SPMAPI_PERR_DOSCALL        255     An unexpected error occurred in
  8453.                                      an underlying system call.
  8454.  
  8455.  Note:  If the FunctionCode value returned is DOSCALL, the FunctionRC value 
  8456.         returned is the failure code from the underlying OS/2 call. 
  8457.  
  8458.  
  8459. ΓòÉΓòÉΓòÉ 8.6.2. Function Return Codes ΓòÉΓòÉΓòÉ
  8460.  
  8461. Function Return Code     Number   Description
  8462.  
  8463. SPMAPI_ERR                   1     For testing the BOOL return code
  8464.                                    from an SPM/2 API function.
  8465.  
  8466. SPMAPI_ERROR                 1     The exact error could not be
  8467.                                    determined; for example, in a trap
  8468.                                    recovery.
  8469.  
  8470. SPMAPI_ERR_DOSALLOCSHRSEG    2     An error occurred in a
  8471.                                    DosAllocShrSeg function.
  8472.  
  8473. SPMAPI_ERR_DOSCLOSE          3     An error occurred in a DosClose
  8474.                                    function.
  8475.  
  8476. SPMAPI_ERR_DOSCLOSESEM       4     An error occurred in a
  8477.                                    DosCloseSem function.
  8478.  
  8479. SPMAPI_ERR_DOSCREATESEM      5     An error occurred in a
  8480.                                    DosCreateSem function.
  8481.  
  8482. SPMAPI_ERR_DOSEXECPGM        6     An error occurred in a DosExecPgm
  8483.                                    function.
  8484.  
  8485. SPMAPI_ERR_DOSGETSHRSEG      7     An error occurred in a
  8486.                                    DosGetShrSeg function.
  8487.  
  8488. SPMAPI_ERR_DOSOPENSEM        8     An error occurred in a DosOpenSem
  8489.                                    function.
  8490.  
  8491. SPMAPI_ERR_DOSSEMREQUEST     9     A required semaphore operation
  8492.                                    failed.
  8493.  
  8494. SPMAPI_ERR_FILEBADFORMAT    10     The specified .LOG file is not a
  8495.                                    valid file or is corrupted.
  8496.  
  8497. SPMAPI_ERR_FILEINUSE        11     A request was made to use a file
  8498.                                    that is currently in use.  The use
  8499.                                    requested implied exclusive
  8500.                                    access.
  8501.  
  8502. SPMAPI_ERR_FILENOTINUSE     12     Either the file does not exist,
  8503.                                    has never been used for collection,
  8504.                                    or is not currently active for
  8505.                                    collection.  The request for the
  8506.                                    file required that it be currently
  8507.                                    in use.
  8508.  
  8509. SPMAPI_ERR_GDBUFFERAREA     13     An error occurred that indicates
  8510.                                    the global data buffer area
  8511.                                    is invalid or not available. The
  8512.                                    error is permanent.  You cannot
  8513.                                    retry this operation.
  8514.  
  8515. SPMAPI_ERR_GDBUFFERLENGTH   14     The length of the global data
  8516.                                    buffer does not match that which
  8517.                                    was expected at this time.
  8518.                                    (Internal error.)
  8519.  
  8520. SPMAPI_ERR_GETGDA           18     The global data area is not
  8521.                                    accessible.  You may retry the
  8522.                                    operation, but the retry should be
  8523.                                    limited.
  8524.  
  8525. SPMAPI_ERR_GETIDA           19     The log object was found,
  8526.                                    but its data was not found.
  8527.                                    (Internal error.)
  8528.  
  8529. SPMAPI_ERR_INTERFACE_BUSY   20     A required resource was not
  8530.                                    available, and waiting was not
  8531.                                    allowed.  This error is
  8532.                                    transient.  You may retry the
  8533.                                    operation, but the retries should
  8534.                                    be spaced with DosSleep(n) calls
  8535.                                    and limited if the calling
  8536.                                    process is interactive.
  8537.  
  8538. SPMAPI_ERR_NAKTIMEOUT       21     A monitor (SPMILOG) session
  8539.                                    failed to respond to a shutdown
  8540.                                    request.
  8541.  
  8542. SPMAPI_ERR_NOSPACE          22     Not enough space was provided in
  8543.                                    a return area for an SPMAPIQuery or
  8544.                                    SPMAPIGetData function. SPMAPIQuery
  8545.                                    has a mechanism to return the
  8546.                                    (probable) length of the required
  8547.                                    area.  For SPMAPIGetData calls, a
  8548.                                    constant that always provides
  8549.                                    enough space is supplied in the
  8550.                                    SPMAPI.H file. (Internal error.)
  8551.  
  8552. SPMAPI_ERR_NOT_FOUND        23     A request was made to find an
  8553.                                    SPM/2 element or component. The
  8554.                                    element or component was not
  8555.                                    found.
  8556.  
  8557. SPMAPI_ERR_NOT_OPEN         24     The specified log handle has not
  8558.                                    been opened.
  8559.  
  8560. SPMAPI_ERR_NOT_SUPPORTED    25     The request is not supported for
  8561.                                    the query or operation being
  8562.                                    processed.
  8563.  
  8564. SPMAPI_ERR_NO_SPACE         26     Not enough space was provided in
  8565.                                    a return area for an SPMAPIQuery or
  8566.                                    SPMAPIGetData function. SPMAPIQuery
  8567.                                    has a mechanism to return the
  8568.                                    (probable) length of the required
  8569.                                    area.  For SPMAPIGetData calls, a
  8570.                                    constant that always provides
  8571.                                    enough space is supplied in the
  8572.                                    SPMAPI.H file.
  8573.  
  8574. SPMAPI_ERR_QUOPTIONNOTVALID 27     The specified query option is not
  8575.                                    defined.
  8576.  
  8577. SPMAPI_ERR_RANGE            28     The range of a parameter is
  8578.                                    incorrect or illogical.
  8579.  
  8580. SPMAPI_ERR_TIMEOUT          29     An action against a log object
  8581.                                    could not be performed in the
  8582.                                    allotted time.
  8583.  
  8584. SPMAPI_ERR_TOOMANY          30     An internal limit has been reached.
  8585.  
  8586. SPMAPI_NDE_FOUND            33     An attempt to add a node failed
  8587.                                    because it already exists.
  8588.                                    (Internal error.)
  8589.  
  8590. SPMAPI_NDE_NOTFOUND         34     An attempt to find a node failed
  8591.                                    because it does not exist.
  8592.                                    (Internal error.)
  8593.  
  8594. SPMAPI_ERR_OBJECTINUSE      36     An action against a log object
  8595.                                    could not be performed because
  8596.                                    the action required that the
  8597.                                    object not be active.
  8598.  
  8599. SPMAPI_ERR_OBJECTNOTINUSE   37     An action against a log object
  8600.                                    could not be performed because
  8601.                                    the action required that the
  8602.                                    object be active.
  8603.  
  8604. SPMAPI_ERR_NULL_PARM        38     An error occurred because a null
  8605.                                    parameter was passed.
  8606.  
  8607. SPMAPI_ERR_NOT_TERMINATED   39     A .LOG file was not closed
  8608.                                    properly last time it was used.
  8609.                                    No SPM/2 API function can
  8610.                                    process this file.
  8611.  
  8612.  Note:  The following two codes may be returned by a query when an operation is 
  8613.         otherwise successful.  They are internal return codes which may be 
  8614.         otherwise reflected. 
  8615.  
  8616.   SPMAPI_INFO_FILEREPAIRED    40     A file against which a query was
  8617.                                      issued has been repaired by the
  8618.                                      SPM/2 API.
  8619.  
  8620.   SPMAPI_INFO_FILEINUSE       41     A file against which a query was
  8621.                                      issued was in use at the time of
  8622.                                      the query.
  8623.  
  8624.  
  8625. ΓòÉΓòÉΓòÉ 9. User Metrics: Overview ΓòÉΓòÉΓòÉ
  8626.  
  8627.  
  8628. ΓòÉΓòÉΓòÉ <hidden> Text ΓòÉΓòÉΓòÉ
  8629.  
  8630. SPM/2 provides you with the capability to embed user metrics (various counters 
  8631. and timers) in your application to collect application-specific data in 
  8632. addition to the standard metrics collected by SPM/2. 
  8633.  
  8634. Metrics, also known as hooks, can be used for fine-tuning during the 
  8635. development phase of an application and removed afterward, or they can be left 
  8636. in the application as an integral part of it, so that the end user can access 
  8637. performance data about the application itself. 
  8638.  
  8639. Metrics can be embedded in applications at two different ring levels:  Ring 3 
  8640. and Ring 0. 
  8641.  
  8642. For applications that are written for Ring 3, SPM/2 provides metric definitions 
  8643. in the C programming language. 
  8644.  
  8645. Metric definitions are provided in Assembly language for applications written 
  8646. for Ring 0 device drivers, file system drivers, and virtual device drivers. 
  8647.  
  8648. More 
  8649.  
  8650.  
  8651. ΓòÉΓòÉΓòÉ <hidden> Selections ΓòÉΓòÉΓòÉ
  8652.  
  8653. Select one: 
  8654.  
  8655.  o Using metrics 
  8656.  o Types of metrics 
  8657.  o Metric definition file format 
  8658.  o Ring 3 applications 
  8659.  o Ring 0 applications 
  8660.  o Installing the metric definition file 
  8661.  o Viewing collected metric data. 
  8662.  
  8663.  
  8664. ΓòÉΓòÉΓòÉ <hidden> User Metrics: More ΓòÉΓòÉΓòÉ
  8665.  
  8666. There are two principal uses for user metric data: 
  8667.  
  8668.  o Help in fine-tuning an application. 
  8669.  o Ability to manage an application. 
  8670.  
  8671.  You can obtain much performance data by using just the provided OS/2 
  8672.  performance metrics. However, with user metrics, you can gather additional 
  8673.  data specific to your application.  For example, you could employ a user 
  8674.  metric to count the number of times a subroutine is called.  In a database 
  8675.  application, you could count the number of times that records are updated. 
  8676.  
  8677.  If you are managing a system, you might want to track tunable parameters.  For 
  8678.  example, you could employ user metrics to track the number of buffers 
  8679.  allocated compared to the number of buffers actually used and then adjust the 
  8680.  allocations accordingly.  Or, you could determine the maximum number of files 
  8681.  an application opens concurrently and adjust other factors to allow the 
  8682.  application enough RAM during times of peak usage. You can also use metrics to 
  8683.  measure a network's average end-to-end response time, which is the amount of 
  8684.  time elapsed between issuing a request and receiving a response. 
  8685.  
  8686.  
  8687. ΓòÉΓòÉΓòÉ 9.1. Using Metrics ΓòÉΓòÉΓòÉ
  8688.  
  8689. User metrics work in the following way: 
  8690.  
  8691.   1. Your application must: 
  8692.  
  8693.     o Define the metrics 
  8694.     o Register the metrics with SPM/2 
  8695.     o Update the data values in the metrics. 
  8696.  
  8697.   2. Along with your application, you create a metric definition file.  The 
  8698.      metric definition file contains the declaration of the metrics. 
  8699.  
  8700.   3. The metric definition file must be installed along with your application 
  8701.      by using the SPMAPPIN command.  Your application can either install the 
  8702.      metric definition file for the user or instruct the user on the 
  8703.      installation process. 
  8704.  
  8705.   4. SPM/2 accesses the application's memory and retrieves the values in the 
  8706.      metrics at the specified sampling interval. 
  8707.  
  8708.   5. The user views the results through one of the following: 
  8709.  
  8710.     o Dump report provided by SPM/2 
  8711.     o Specialized report provided by a separate program through use of the 
  8712.       SPM/2 API. 
  8713.  
  8714.  
  8715. ΓòÉΓòÉΓòÉ 9.2. Types of Metrics ΓòÉΓòÉΓòÉ
  8716.  
  8717. There are different types of metrics to measure different types of program 
  8718. activity: 
  8719.  
  8720.  Counter             4-byte value.  Increments by 1 for each occurrence of an 
  8721.                      event (for example, number of disk read operations). 
  8722.  
  8723.  Timer               8-byte value.  Counts ticks of the system clock (one tick 
  8724.                      is equivalent to 838 nanoseconds on a Personal System/2 
  8725.                      (PS/2) computer). When combined with other counters, 
  8726.                      timers are used to measure how long an event takes. 
  8727.  
  8728.  Bulk Counter        8-byte value.  Increments by quantities (for example, 
  8729.                      number of bytes read since data collection began). 
  8730.  
  8731.  State Counter       4-byte value.  Indicates the current state of a resource. 
  8732.                      Its value increases or decreases one at a time (for 
  8733.                      example, the number of pages in memory). 
  8734.  
  8735.  State Timer         8-byte value. The value and units are defined by the 
  8736.                      application. 
  8737.  
  8738.  Bulk State Counter  8-byte value.  A combination of the bulk counter and state 
  8739.                      counter concepts.  Indicates the current state of a 
  8740.                      resource.  Its value increases or decreases by quantities. 
  8741.  
  8742.  Queue length        Consists of two parts: 
  8743.  
  8744.     o Queue count.  This is 4-byte state counter that contains the current 
  8745.       number of elements in the queue at the time the snapshot of the hook 
  8746.       values was taken.  This is just an instantaneous value, and is not used 
  8747.       in computing queue length over the entire interval. 
  8748.  
  8749.     o Queue time.  This is an 8-byte timer that contains a value that is not 
  8750.       purely time, but rather a composite of the amount of time each element 
  8751.       has been in the queue. 
  8752.  
  8753.                      To compute average number of elements in the queue over 
  8754.                      the interval represented by this queue sample, use the 
  8755.                      following equation: 
  8756.  
  8757.                                           Avg number of elements     Queue Time
  8758.                                            over the interval      =  ----------
  8759.                                                                       Interval
  8760.  
  8761.   CAUTION:
  8762.  The timer, state timer, and queue length user metrics are more intrusive on 
  8763.  the system in terms of CPU cycles than are the counter, state counter, bulk 
  8764.  counter, and bulk state counter. 
  8765.  
  8766.  
  8767. ΓòÉΓòÉΓòÉ 9.3. Metric Definition File Format ΓòÉΓòÉΓòÉ
  8768.  
  8769. The metric definition file is an ASCII text file with .SPM as the file name 
  8770. extension.  The format of the file should have the following characteristics: 
  8771.  
  8772.  o Comments begin with an asterisk and cannot be listed on the same line as the 
  8773.    statement. 
  8774.  o Column placement is not important, but it is useful for legibility. 
  8775.  o Blank lines are not allowed. 
  8776.  
  8777.  This structure may be repeated as many times as necessary in the metric 
  8778.  definition (.SPM) file. 
  8779.  
  8780.  A sample beginning of a metric definition file follows: 
  8781.  
  8782.   sftwnme=SPM/2
  8783.                                    * name of software group
  8784.   prgmnme=SPMINST
  8785.                                    * name of program
  8786.     groupnme="CPU"
  8787.                                    * name of metric group -
  8788.                                    *  displayed to user on SPM/2 setup
  8789.                                    *  panels; must be in double quotes
  8790.     groupord=3
  8791.                                    * resource group ordinal
  8792.     grouptag=CPU
  8793.                                    * name of group as registered
  8794.                                    *  with SPM/2
  8795.        fieldnme="counter"
  8796.                                    * name of data item - column
  8797.                                    *  heading in dump report;
  8798.                                    *  must be in double quotes
  8799.           fieldtag=counter
  8800.                                    * name of data item as registered
  8801.                                    *  with SPM/2
  8802.           fieldtyp=counter
  8803.                                    * possible values
  8804.                                    *  - counter
  8805.                                    *  - timer
  8806.                                    *  - bulkcounter
  8807.                                    *  - statecounter
  8808.                                    *  - statetimer
  8809.                                    *  - bulkstatecounter
  8810.                                    *  - queue
  8811.           fielddsc="Counter ticks"
  8812.                                    * description of field
  8813.           fieldhlp=
  8814.                                    * reserved
  8815.        fieldnme="timer"
  8816.           fieldtag=timer
  8817.           fieldtyp=timer
  8818.           fielddsc=
  8819.           fieldhlp=
  8820.        fieldnme="bulkCounter"
  8821.           fieldtag=bulkCounter
  8822.           fieldtyp=bulkCounter
  8823.           fielddsc=
  8824.           fieldhlp=
  8825.  
  8826.  
  8827. ΓòÉΓòÉΓòÉ 9.4. Ring 3 Applications ΓòÉΓòÉΓòÉ
  8828.  
  8829. Example coding 
  8830.  
  8831. The SPMUH.H file (included on your SPM/2 application installation diskettes) 
  8832. defines the Ring 3 functions and must be included when you compile your 
  8833. application if you want to use these functions. 
  8834.  
  8835. The data block cannot have any variables that are not declared in the name 
  8836. block, and they must be declared in the same order. 
  8837.  
  8838. You must install SPM/2 using the /API option.  Files are installed in the 
  8839. drive:\spmPath\API subdirectory. 
  8840.  
  8841. Use the following functions to define and register your application's 
  8842. performance metrics: 
  8843.  
  8844.  SPMDataItem Defines one data item in a metric group. 
  8845.  SPMEnd    Ends the definition of data items in a metric group. 
  8846.  SPMRegister Registers a metric group with SPM/2 for collection. 
  8847.  SPMDeregister Releases a metric group from collection. 
  8848.  
  8849.  Use the following functions to update your application's performance metrics: 
  8850.  
  8851.  SPMSetSem Allows the application to acquire the SPM/2 semaphore while updating 
  8852.            a group. 
  8853.  SPMClearSem Releases the SPM/2 semaphore.  This function should be called 
  8854.            after the values in the Data block are finished being updated. 
  8855.  SPMUpdateCtr Increments the specified counter or state counter by the 
  8856.            specified positive or negative amount. 
  8857.  SPMUpdateBulkCtr Increments the specified bulk counter by the specified 
  8858.            positive or negative amount. 
  8859.  SPMAddQword Adds 2 quadwords, which are 8-byte signed integers. 
  8860.  SPMSubQword Subtracts 2 quadwords. 
  8861.  SPMStartTimer Starts a timer or state timer. 
  8862.  SPMStopTimer Stops a timer or state timer. 
  8863.  SPMEnterQ Adds the specified number of elements to the specified queue, 
  8864.            updating both the counter and timer parts of the queue. 
  8865.  SPMExitQ  Removes the specified number of elements from the specified queue, 
  8866.            updating both the counter and timer parts of the queue. 
  8867.  SPMSetQueue Resets the value of the queue to the specified amount, updating 
  8868.            both the counter and timer parts of the queue. 
  8869.  SPMQueryTime Gets the current time. 
  8870.  SPMQueryFreq Gets the time frequency in hertz (Hz). 
  8871.  SPMAddQueueElement Adds one element to a queue. 
  8872.  SPMRemoveQueueElement Removes one element from a queue. 
  8873.  
  8874.  
  8875. ΓòÉΓòÉΓòÉ 9.4.1. SPMDataItem ΓòÉΓòÉΓòÉ
  8876.  
  8877. Use the SPMDataItem function to define items in a metric group. 
  8878.  
  8879. SPMDataItem
  8880.        (var,     /* input */
  8881.         typ,     /* input */
  8882.         nam);    /* input */
  8883.  
  8884. In the var parameter field, specify the variable name of the metric. 
  8885.  
  8886. In the typ parameter field, specify the type of metric. Possible values are: 
  8887.  
  8888.  o SPM_T_CTR 
  8889.  o SPM_T_TMR 
  8890.  o SPM_T_QL 
  8891.  o SPM_T_BULKCTR 
  8892.  o SPM_T_CTR_STATE 
  8893.  o SPM_T_TMR_STATE 
  8894.  o SPM_T_BULKCTR_STATE 
  8895.  
  8896.  In the nam parameter field, specify the descriptive name of the parameter. 
  8897.  This name should be the same as the fielddsc parameter in the metric 
  8898.  definition file. 
  8899.  
  8900.  
  8901. ΓòÉΓòÉΓòÉ 9.4.2. SPMEnd ΓòÉΓòÉΓòÉ
  8902.  
  8903. Use the SPMEnd function to end the definition of items in a metric group. 
  8904.  
  8905. SPMEnd
  8906.  
  8907. This function has no parameters. 
  8908.  
  8909.  
  8910. ΓòÉΓòÉΓòÉ 9.4.3. SPMRegister ΓòÉΓòÉΓòÉ
  8911.  
  8912. Use the SPMRegister function to register a metric group with SPM/2 for 
  8913. collection.  This function must be called before any of the update functions. 
  8914.  
  8915. Select the highlighted parameters for more information about them: 
  8916.  
  8917. ULONG APIENTRY SPMRegister
  8918.                (PSZ       SpmSWName,         /* input  */
  8919.                 PSZ       SpmProgramName,    /* input  */
  8920.                 PSZ       SpmProgramType,    /* input  */
  8921.                 PSZ       SpmComment,        /* input  */
  8922.                 PSZ       SpmDataGroupName,  /* input  */
  8923.                 PDBH      SpmDataGroup,      /* input  */
  8924.                 PNAMES    SpmNames,          /* input  */
  8925.                 PULONG    SpmGroupHandle);   /* output */
  8926.  
  8927. Return values 
  8928.  
  8929.  
  8930. ΓòÉΓòÉΓòÉ <hidden> PSZ SpmSWName ΓòÉΓòÉΓòÉ
  8931.  
  8932. In the SpmSWName parameter, specify the name of your software package.  For 
  8933. example, "IBM SPM/2" is the name of this software package.  This is the same 
  8934. value as that in the softwnme parameter in the metric definition file. 
  8935.  
  8936.  
  8937. ΓòÉΓòÉΓòÉ <hidden> PSZ SpmProgramName ΓòÉΓòÉΓòÉ
  8938.  
  8939. In the SpmProgramName parameter, specify the name of your program (.EXE) file. 
  8940. For example, SPMINST is the name of the SPM/2 installation program file.  This 
  8941. is the same value as that in the prgmnme parameter in the metric definition 
  8942. file. 
  8943.  
  8944.  
  8945. ΓòÉΓòÉΓòÉ <hidden> PSZ SpmProgramType ΓòÉΓòÉΓòÉ
  8946.  
  8947. In the SpmProgramType parameter, specify one of the following program types: 
  8948.  
  8949.  PM                       Presentation Manager API program. 
  8950.  DD                       Device driver. 
  8951.  VDD                      Virtual device driver. 
  8952.  IFS                      Installable file system. 
  8953.  FULLSCREEN               Full screen program. 
  8954.  WINDOWCOMPAT             Window compatible program. 
  8955.  
  8956.  
  8957. ΓòÉΓòÉΓòÉ <hidden> PSZ SpmComment ΓòÉΓòÉΓòÉ
  8958.  
  8959. In the SpmComment parameter, specify any identifying information. 
  8960.  
  8961.  
  8962. ΓòÉΓòÉΓòÉ <hidden> PSZ SpmDataGroupName ΓòÉΓòÉΓòÉ
  8963.  
  8964. In the SpmDataGroupName parameter, specify a name for the SPMDataGroup.  This 
  8965. name must be unique and can be up to 20 characters long.  This is the same 
  8966. value as that in the grouptag parameter in the metric definition file. 
  8967.  
  8968. Do not register the same group name more than once.  If you do, SPM/2 picks up 
  8969. only the last instance of a repeated group name. 
  8970.  
  8971.  
  8972. ΓòÉΓòÉΓòÉ <hidden> PDBH SpmDataGroup ΓòÉΓòÉΓòÉ
  8973.  
  8974. In the SPMDataGroup parameter field, specify the address of the SPMDataGroup 
  8975. block. 
  8976.  
  8977.  
  8978. ΓòÉΓòÉΓòÉ <hidden> PNAMES SpmNames ΓòÉΓòÉΓòÉ
  8979.  
  8980. In the SPMNames parameter field, specify the address of the SPM names. 
  8981.  
  8982.  
  8983. ΓòÉΓòÉΓòÉ <hidden> PULONG SpmGroupHandle ΓòÉΓòÉΓòÉ
  8984.  
  8985. The SPMGroupHandle parameter is a pointer to a ULONG parameter provided by the 
  8986. calling application.  Upon return, the SPMRegister function supplies the values 
  8987. for the group handle structure. 
  8988.  
  8989. The SPMGroupHandle parameter is required in subsequent calls to the 
  8990. SPMDeregister, SPMSetSem, and SPMClearSem functions. 
  8991.  
  8992.  
  8993. ΓòÉΓòÉΓòÉ <hidden> SPMRegister Return Values ΓòÉΓòÉΓòÉ
  8994.  
  8995. Possible return values for the SPMRegister function follow: 
  8996.  
  8997.  0    Successful. 
  8998.  
  8999.  1    Low word. The high word is the variable number that is in error. 
  9000.  
  9001.  2    The value specified in the SpmProgramType parameter field is not a valid 
  9002.       program type. 
  9003.  
  9004.  Any other value Return code from an OS/2 function used by the SPMRegister 
  9005.       function. 
  9006.  
  9007.  
  9008. ΓòÉΓòÉΓòÉ 9.4.4. SPMDeregister ΓòÉΓòÉΓòÉ
  9009.  
  9010. Use the SPMDeregister function to release a metric group from collection. 
  9011.  
  9012. ULONG APIENTRY SPMDeregister
  9013.                (ULONG    SpmGroupHandle);   /* input/output */
  9014.  
  9015. The SPMGroupHandle parameter was returned by the SPMRegister. 
  9016.  
  9017. Return values 
  9018.  
  9019.  
  9020. ΓòÉΓòÉΓòÉ <hidden> SPMDeregister Return Values ΓòÉΓòÉΓòÉ
  9021.  
  9022. Possible return values for the SPMDeregister function follow: 
  9023.  
  9024.  0    Successful. 
  9025.  
  9026.  1    Group is not currently registered. 
  9027.  
  9028.  Any other value Return code from an OS/2 function used by the SPMDeregister 
  9029.       function. 
  9030.  
  9031.  
  9032. ΓòÉΓòÉΓòÉ 9.4.5. SPMSetSem ΓòÉΓòÉΓòÉ
  9033.  
  9034. Use the SPMSetSem function to allow the application to acquire the SPM/2 
  9035. semaphore while updating a group.  While the application owns this semaphore, 
  9036. SPM/2 will not collect data from that group, eliminating the possibility of 
  9037. collecting data that is only partially updated.  This function should be called 
  9038. before the values in the data block are updated. 
  9039.  
  9040.  Note:  The semaphore is set in the SPMRegister function. 
  9041.  
  9042.   ULONG APIENTRY SPMSetSem
  9043.                  (ULONG    SpmGroupHandle);   /* input */
  9044.  
  9045.  The SPMGroupHandle parameter was returned by the SPMRegister. 
  9046.  
  9047.  
  9048. ΓòÉΓòÉΓòÉ 9.4.6. SPMClearSem ΓòÉΓòÉΓòÉ
  9049.  
  9050. Use the SPMClearSem function to release the SPM/2 semaphore. This function 
  9051. should be called after the values in the data block are finished being updated. 
  9052.  
  9053. ULONG APIENTRY SPMClearSem
  9054.                (ULONG    SpmGroupHandle);   /* input */
  9055.  
  9056. The SPMGroupHandle parameter was returned by the SPMRegister. 
  9057.  
  9058.  
  9059. ΓòÉΓòÉΓòÉ 9.4.7. SPMUpdateCtr ΓòÉΓòÉΓòÉ
  9060.  
  9061. Use the SPMUpdateCtr function to increment a counter or state counter by a 
  9062. positive or negative amount. 
  9063.  
  9064. VOID APIENTRY SPMUpdateCtr
  9065.                (PCTR     SpmCtr,  /* input */
  9066.                 LONG     delta);  /* input */
  9067.  
  9068. In the SpmCtr parameter field, specify the address of the counter you want 
  9069. updated. 
  9070.  
  9071. In the delta parameter field, specify the delta value of the counter. 
  9072.  
  9073.  
  9074. ΓòÉΓòÉΓòÉ 9.4.8. SPMUpdateBulkCtr ΓòÉΓòÉΓòÉ
  9075.  
  9076. Use the SPMUpdateBulkCtr function to increment a bulk counter or bulk state 
  9077. counter by a positive or negative amount. 
  9078.  
  9079. VOID APIENTRY SPMUpdateBulkCtr
  9080.                (PBULKCTR     SpmBulkCtr,  /* input */
  9081.                 LONG         delta);      /* input */
  9082.  
  9083. In the SpmCtr parameter field, specify the address of the bulk counter you want 
  9084. updated. 
  9085.  
  9086. In the delta parameter field, specify the delta value of the counter. 
  9087.  
  9088.  
  9089. ΓòÉΓòÉΓòÉ 9.4.9. SPMAddQword ΓòÉΓòÉΓòÉ
  9090.  
  9091. Use the SPMAddQword function to add two quadwords (8-byte signed integers) 
  9092. together. 
  9093.  
  9094. BOOL APIENTRY SPMAddQword
  9095.                (PQWORD  a,    /* input/output  */
  9096.                 PQWORD  b);   /* input         */
  9097.  
  9098. In the a parameter field, specify the address of the first quadword. 
  9099.  
  9100. In the b parameter field, specify the address of the second quadword. 
  9101.  
  9102. The function performed is: 
  9103.  
  9104. *a = *a + *b
  9105.  
  9106. The answer is returned in the a parameter field. The return code is the 
  9107. processor carry flag. 
  9108.  
  9109.  
  9110. ΓòÉΓòÉΓòÉ 9.4.10. SPMSubQword ΓòÉΓòÉΓòÉ
  9111.  
  9112. Use the SPMSubQword function to subtract one quadword (8-byte signed integer) 
  9113. from another quadword. 
  9114.  
  9115. BOOL APIENTRY SPMSubQword
  9116.                (PQWORD  a,    /* input/output  */
  9117.                 PQWORD  b);   /* input         */
  9118.  
  9119. In the a parameter field, specify the address of the first quadword. 
  9120.  
  9121. In the b parameter field, specify the address of the second quadword. 
  9122.  
  9123. The function performed is: 
  9124.  
  9125. *a = *a - *b
  9126.  
  9127. The answer is returned in the a parameter field. The return code is the 
  9128. processor carry flag. 
  9129.  
  9130.  
  9131. ΓòÉΓòÉΓòÉ 9.4.11. SPMStartTimer ΓòÉΓòÉΓòÉ
  9132.  
  9133. Use the SPMStartTimer function to start a timer or state timer.  When the timer 
  9134. is started, the current time is subtracted from the current value of the timer. 
  9135. When the timer is stopped, the current time is added to the value of the timer, 
  9136. showing the amount of time that the timer ran. 
  9137.  
  9138. VOID APIENTRY SPMStartTimer
  9139.                (PTMR    pTimer);  /* input  */
  9140.  
  9141. In the pTimer parameter field, specify the address of the timer you want 
  9142. started. 
  9143.  
  9144.  
  9145. ΓòÉΓòÉΓòÉ 9.4.12. SPMStopTimer ΓòÉΓòÉΓòÉ
  9146.  
  9147. Use the SPMStopTimer function to stop a timer or state timer, which is done by 
  9148. adding the current time to the current value of the timer. 
  9149.  
  9150. VOID APIENTRY SPMStopTimer
  9151.                (PTMR    pTimer);  /* input  */
  9152.  
  9153. In the pTimer parameter field, specify the address of the timer you want 
  9154. stopped. 
  9155.  
  9156.  
  9157. ΓòÉΓòÉΓòÉ 9.4.13. SPMEnterQ ΓòÉΓòÉΓòÉ
  9158.  
  9159. Use the SPMEnterQ function to add one or more elements to a queue. Both the 
  9160. counter and timer parts of the queue are updated. 
  9161.  
  9162. VOID APIENTRY SPMEnterQ
  9163.                (PQL     pqlQueue,    /* input */
  9164.                 ULONG   ulDelta);    /* input */
  9165.  
  9166. In the pqlQueue parameter field, specify the address of the queue length. 
  9167.  
  9168. In the ulDelta parameter field, specify the number of elements (normally 1) 
  9169. added to the queue. 
  9170.  
  9171.  
  9172. ΓòÉΓòÉΓòÉ 9.4.14. SPMExitQ ΓòÉΓòÉΓòÉ
  9173.  
  9174. Use the SPMExitQ function to remove one or more elements from a queue. Both the 
  9175. counter and timer parts of the queue are updated. 
  9176.  
  9177. VOID APIENTRY SPMExitQ
  9178.                (PQL     pqlQueue,    /* input */
  9179.                 ULONG   ulDelta);    /* input */
  9180.  
  9181. In the pqlQueue parameter field, specify the address of the queue length. 
  9182.  
  9183. In the ulDelta parameter field, specify the number of elements (normally 1) 
  9184. removed from the queue. 
  9185.  
  9186.  
  9187. ΓòÉΓòÉΓòÉ 9.4.15. SPMSetQueue ΓòÉΓòÉΓòÉ
  9188.  
  9189. Use the SPMSetQueue function to reset the value of the queue length to a 
  9190. specified amount.  Both the counter and timer parts of the queue are updated. 
  9191.  
  9192. VOID APIENTRY SPMSetQueue
  9193.                (PQL     pqlQueue,      /* input */
  9194.                 PQWORD  pqwTime,       /* input */
  9195.                 LONG    ulNewCount);   /* input */
  9196.  
  9197. In the pqlQueue parameter field, specify the address of the queue length. 
  9198.  
  9199. In the pqwTime parameter field, specify the address of the current time.  If 
  9200. NULL is specified, current time will be used. 
  9201.  
  9202. In the ulNewCount parameter field, specify the number of elements to be placed 
  9203. in the queue length. 
  9204.  
  9205.  
  9206. ΓòÉΓòÉΓòÉ 9.4.16. SPMQueryTime ΓòÉΓòÉΓòÉ
  9207.  
  9208. Use the SPMQueryTime function to get the current time. 
  9209.  
  9210. VOID APIENTRY SPMQueryTime
  9211.                (PQWORD  pqwTime);      /* input */
  9212.  
  9213. In the pqwTime parameter field, specify the address in which to put the current 
  9214. time. 
  9215.  
  9216.  
  9217. ΓòÉΓòÉΓòÉ 9.4.17. SPMQueryFreq ΓòÉΓòÉΓòÉ
  9218.  
  9219. Use the SPMQueryFreq function to get the current timer frequency, expressed in 
  9220. hertz (Hz). 
  9221.  
  9222. VOID APIENTRY SPMQueryFreq
  9223.                (PULONG  pulFreq);      /* input */
  9224.  
  9225. In the pulFreq parameter field, specify the address in which to put the current 
  9226. timer frequency. 
  9227.  
  9228.  
  9229. ΓòÉΓòÉΓòÉ 9.4.18. SPMAddQueueElement ΓòÉΓòÉΓòÉ
  9230.  
  9231. Use the SPMAddQueueElement to add one element to a queue length. 
  9232.  
  9233. SPMAddQueueElement
  9234.        (Qcnt,    /* input */
  9235.         Qlen);   /* input */
  9236.  
  9237. In the Qcnt parameter field, specify a name for the Qcnt variable.  This will 
  9238. have the total number of elements added to the queue.  The Qcnt parameter is of 
  9239. type "counter." 
  9240.  
  9241. In the Qlen parameter field, specify a name for the Qlen variable. 
  9242.  
  9243.  
  9244. ΓòÉΓòÉΓòÉ 9.4.19. SPMRemoveQueueElement ΓòÉΓòÉΓòÉ
  9245.  
  9246. Use the SPMRemoveQueueElement to remove one element from a queue length. 
  9247.  
  9248. SPMRemoveQueueElement
  9249.        (Qcnt,    /* input */
  9250.         Qlen);   /* input */
  9251.  
  9252. In the Qcnt parameter field, specify a name for the Qcnt variable.  This will 
  9253. have the total number of elements added to the queue.  The Qcnt parameter is of 
  9254. type "counter." 
  9255.  
  9256. In the Qlen parameter field, specify a name for the Qlen variable. 
  9257.  
  9258.  
  9259. ΓòÉΓòÉΓòÉ 9.4.20. Ring 3 Example Coding ΓòÉΓòÉΓòÉ
  9260.  
  9261. #include <os2.h>
  9262. #include "SPMUH.h"
  9263.  
  9264. struct _test_db {
  9265.         DBH           dbh;
  9266.         CTR           counter;
  9267.         TMR           timer;
  9268.         QL            queueLength;
  9269.         BULKCTR       bulkCounter;
  9270.         CTR_STATE     counter_state;
  9271.         TMR_STATE     timer_state;
  9272.         BULKCTR_STATE bulkcnt_state;
  9273.                 } test_db;
  9274.  
  9275. NAMES names[]={
  9276.    SPMDataItem( test_db.counter,       SPM_T_CTR,            "counter"),
  9277.    SPMDataItem( test_db.timer,         SPM_T_TMR,            "timer"),
  9278.    SPMDataItem( test_db.queueLength,   SPM_T_QL,             "queueLength"),
  9279.    SPMDataItem( test_db.bulkCounter,   SPM_T_BULKCTR,        "bulkCounter"),
  9280.    SPMDataItem( test_db.counter_state, SPM_T_CTR_STATE,      "counter_state"),
  9281.    SPMDataItem( test_db.timer_state,   SPM_T_TMR_STATE,      "timer_state"),
  9282.    SPMDataItem( test_db.bulkcnt_state, SPM_T_BULKCTR_STATE,  "bulkcnt_state"),
  9283.       SPMEnd
  9284.       };
  9285.  
  9286. VOID main( int argc, char *argv[])
  9287. {
  9288.   ULONG  rc;
  9289.   ULONG  SPMhandle;
  9290.   QWORD  qwCurrentTime;
  9291.  
  9292.   rc = SPMRegister( "SPM test",
  9293.                     "SPMT32",
  9294.                     "WindowCompat",
  9295.                     "commEnt, and more, and still more",
  9296.                     "testing_32",
  9297.                     (PDBH) &test_db,
  9298.                     (PNAMES) &names,
  9299.                     &SPMhandle);
  9300.   if (rc == 0)
  9301.   {
  9302.     // Let's update them.
  9303.  
  9304.     // The sempahore must be set before we start updating the values.
  9305.     SPMSetSem( SPMhandle);
  9306.  
  9307.     // The counter can be updated.
  9308.     SPMUpdateCtr( &test_db.counter, +1);
  9309.     SPMUpdateCtr( &test_db.counter, -2);
  9310.  
  9311.     // The timer is started and then stopped.
  9312.     SPMStartTimer( &test_db.timer);
  9313.     SPMStopTimer( &test_db.timer);
  9314.  
  9315.     // Set the Queue_Length to zeroes before starting.
  9316.     test_db.queueLength.ql_ct =
  9317.     test_db.queueLength.ql_tm.ulHi =
  9318.     test_db.queueLength.ql_tm.ulLo = 0;
  9319.  
  9320.     // Enter and exit with various amounts.
  9321.     SPMEnterQ( &test_db.queueLength, 1);
  9322.     SPMEnterQ( &test_db.queueLength, 2);
  9323.     SPMExitQ( &test_db.queueLength, 2);
  9324.     SPMExitQ( &test_db.queueLength, 1);
  9325.  
  9326.     // Set the Queue_Length fields back to zeroes.
  9327.     test_db.queueLength.ql_ct =
  9328.     test_db.queueLength.ql_tm.ulHi =
  9329.     test_db.queueLength.ql_tm.ulLo = 0;
  9330.  
  9331.     // Set specific values into the Queue_Length, using 'current' time.
  9332.     SPMSetQueue( &test_db.queueLength, NULL, 4);
  9333.     SPMSetQueue( &test_db.queueLength, NULL, 3);
  9334.     SPMSetQueue( &test_db.queueLength, NULL, 0);
  9335.  
  9336.     // Query current time value.
  9337.     SPMQueryTime( &qwCurrentTime);
  9338.  
  9339.     // Set the Queue_Length fields back to zeroes.
  9340.     test_db.queueLength.ql_ct =
  9341.     test_db.queueLength.ql_tm.ulHi =
  9342.     test_db.queueLength.ql_tm.ulLo = 0;
  9343.  
  9344.     // Set specific values into the Queue_Length, using a specified time.
  9345.     SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 4);
  9346.     SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 3);
  9347.     SPMSetQueue( &test_db.queueLength, &qwCurrentTime, 0);
  9348.  
  9349.     // Now that we are done, clear the semaphore.
  9350.     SPMClearSem( SPMhandle);
  9351.  
  9352.     // Can now deregister the group.
  9353.     rc = SPMDeregister( SPMhandle);
  9354.   }
  9355. }
  9356.  
  9357.  
  9358. ΓòÉΓòÉΓòÉ 9.5. Ring 0 Applications ΓòÉΓòÉΓòÉ
  9359.  
  9360. Example coding 
  9361.  
  9362. The Ring 0 programmer must be more knowledgeable about the SPM/2 data 
  9363. structures.  The definition macros provided for Ring 3 applications are not 
  9364. possible for Ring 0, so you must allocate all of the data structures yourself. 
  9365.  
  9366. The SPMUH.INC file (included on your SPM/2 application installation diskettes) 
  9367. defines the Ring 0 functions and must be included when you compile your 
  9368. application if you want to use these functions. 
  9369.  
  9370. You must install SPM/2 using the /API option.  Files are installed in the 
  9371. drive:\SPM2V2\API subdirectory. 
  9372.  
  9373. Ring 0 registration must be done at device driver initialization. Do not 
  9374. register the same group name more than once.  If you do, SPM/2 picks up only 
  9375. the last instance of a repeated group name. 
  9376.  
  9377. To place metrics into a device driver, do the following: 
  9378.  
  9379.   1. Include the SPMUH.INC file. 
  9380.  
  9381.   2. Allocate all of the following three data structures: 
  9382.  
  9383.     Data block          The data block is where the actual data items reside. 
  9384.                         The data block cannot have any variables that are not 
  9385.                         declared in the name block, and the variables must be 
  9386.                         declared in the same order. 
  9387.  
  9388.     Text block          The text block is associated with the data block at 
  9389.                         registration time.  The text block contains a pointer 
  9390.                         to the name block which contains the text descriptions 
  9391.                         for each data item.  The order of the data items in the 
  9392.                         name block must correspond exactly to the order of the 
  9393.                         data items in the data block. 
  9394.  
  9395.     Name block          The name block contains the text descriptions for each 
  9396.                         data item. This text description will show up in the 
  9397.                         report.  The name can be a maximum of 13 characters. 
  9398.  
  9399.   3. At device driver initialization time, register the data and text blocks 
  9400.      with the OS/2 system through one of the following functions: 
  9401.  
  9402.     dh_RegisterPerfCtrs      Allows a device driver to register a metric data 
  9403.                              block for collection or to release a metric data 
  9404.                              block from collection. 
  9405.  
  9406.     fsh_RegisterPerfCtrs     Allows a file-system device driver to register a 
  9407.                              metric data block for collection or to release a 
  9408.                              metric data block from collection. 
  9409.  
  9410.     vdh_RegisterPerfCtrs     Allows a virtual device driver to register a 
  9411.                              metric data block for collection or to release a 
  9412.                              metric data block from collection. 
  9413.  
  9414.     SPMDataItem              Defines data items in a name block. 
  9415.  
  9416.   4. Use the following functions to update your application's performance 
  9417.      metrics: 
  9418.  
  9419.     SPMSetSem           Allows the application to acquire the SPM semaphore 
  9420.                         while updating a group.  While the application owns 
  9421.                         this semaphore, SPM will not collect data from that 
  9422.                         group, eliminating the possibility of collecting data 
  9423.                         that is only partially updated. 
  9424.  
  9425.     SPMClearSem         Releases the SPM semaphore. 
  9426.  
  9427.      In addition, the OS/2 program provides two Ring 0 timer functions. The 
  9428.      address of these functions is returned in the data block after a register 
  9429.      call. 
  9430.  
  9431.     pfnTmrSub           Starts a timer by subtracting the current time from the 
  9432.                         current value of the timer. 
  9433.  
  9434.     pfnTmrAdd           Stops a timer by adding the current time to the current 
  9435.                         value of the timer.  The combined time values indicate 
  9436.                         how long the timer ran. Negative numbers indicate that 
  9437.                         the timer is running. 
  9438.  
  9439.  Note:  It is the responsibility of the Ring 0 application programmer to write 
  9440.         the code to update metrics. 
  9441.  
  9442.  
  9443. ΓòÉΓòÉΓòÉ 9.5.1. Ring 0 Example Coding ΓòÉΓòÉΓòÉ
  9444.  
  9445. Select one of the following code fragments for the various functions: 
  9446.  
  9447.  o Declare a metric group 
  9448.  o Register a metric group 
  9449.  o Update a single counter 
  9450.  o Update a single timer 
  9451.  o Add a queue element to a queue length 
  9452.  o Remove a queue element from a queue length. 
  9453.  
  9454.  
  9455. ΓòÉΓòÉΓòÉ 9.5.1.1. Declare a Metric Group (SPMDataItem) ΓòÉΓòÉΓòÉ
  9456.  
  9457. TimerStart      DD      0       ; Address of Timer Start routine
  9458. TimerStop       DD      0       ; Address of Timer Stop  routine
  9459.  
  9460. ; PervView "group"
  9461. DataBlock       DB      SIZE pvdbh_s dup (0)
  9462. Counter         CTR     <>
  9463. Timer           TMR     <>
  9464. DataBlockEnd    EQU     $
  9465.  
  9466. ; PerfView "name block"
  9467. str1       db   "Counter", 0
  9468. str2       db   "Timer", 0
  9469.  
  9470. ; Group name
  9471. GroupName  db   "SPMDD_Group", 0
  9472. ; Instance name
  9473. InstanceName db "SPM,SPMDD,DD,0,0,This is a sample Device Driver", 0
  9474. ; Null string
  9475. Null       db   0
  9476.  
  9477.         even
  9478. NameBlock  EQU  $
  9479.            SPMDataItem SPM_T_CTR,CTR,str1
  9480.            SPMDataItem SPM_T_TMR,TMR,str2
  9481.  
  9482. TextBlock  dd   TBH_VER_2_0_0_0
  9483.            dw   0               ; Block instance ID
  9484.            dw   0               ; Block group    ID
  9485.         ; Group name
  9486.            dd   0               ; flags
  9487.            dw   0               ; size
  9488.            dw   0               ; message ID
  9489.            dw   offset GroupName
  9490.            dw   seg    GroupName
  9491.         ; Instance name
  9492.            dd   0               ; flags
  9493.            dw   0               ; size
  9494.            dw   0               ; message ID
  9495.            dw   offset InstanceName
  9496.            dw   seg    InstanceName
  9497.         ; trailer info
  9498.            dd   0               ; Message File
  9499.            dd   0               ; Help File
  9500.            dd   2               ; number of DataItems
  9501.            dw   offset NameBlock
  9502.            dw   seg    NameBlock
  9503.  
  9504.  
  9505. ΓòÉΓòÉΓòÉ 9.5.1.2. Register a Metric Group (SPMRegister) ΓòÉΓòÉΓòÉ
  9506.  
  9507. MOV     EAX,OFFSET DataBlockEnd - OFFSET DataBlock
  9508. MOV     DataBlock.dbh_ulTotLen,EAX
  9509. MOV     ECX,SPM_REGISTER_DD
  9510. MOV     DataBlock.dbh_flFlags,ECX
  9511. MOV     WORD PTR DataBlock.dbh_ulSem,1   ; Set the semaphore -PTR 1680
  9512. MOV     WORD PTR DataBlock.dbh_ulSem+2,0 ; Clear update count-PTR 1680
  9513. MOV     SI,SEG    DataBlock
  9514. MOV     AX,OFFSET DataBlock
  9515. MOV     DI,SEG    TextBlock
  9516. MOV     BX,OFFSET TextBlock
  9517. MOV     DL,DevHlp_RegisterPerfCtrs
  9518. CALL    [DEVHLP]
  9519. MOV     EAX,DataBlock.dbh_pfnTmrSub
  9520. MOV     TimerStart,EAX
  9521. MOV     EAX,DataBlock.dbh_pfnTmrAdd
  9522. MOV     TimerStop,EAX
  9523.  
  9524.  
  9525. ΓòÉΓòÉΓòÉ 9.5.1.3. Update a Single Counter (SPMUpdateCtr) ΓòÉΓòÉΓòÉ
  9526.  
  9527. SPMSetSem DataBlock
  9528. INC     Counter
  9529. SPMClearSem DataBlock
  9530.  
  9531.  
  9532. ΓòÉΓòÉΓòÉ 9.5.1.4. Update a Single Timer (SPMStartTimer and SPMStopTimer) ΓòÉΓòÉΓòÉ
  9533.  
  9534. SPMStartTimer 
  9535.  
  9536.   SPMSetSem DataBlock
  9537.   PUSH    DS
  9538.   PUSH    OFFSET Timer
  9539.   CALL    [TimerStart]
  9540.   SPMClearSem DataBlock
  9541.  
  9542. SPMStopTimer 
  9543.  
  9544.   SPMSetSem DataBlock
  9545.   PUSH    DS
  9546.   PUSH    OFFSET Timer
  9547.   CALL    [TimerStop]
  9548.   SPMClearSem DataBlock
  9549.  
  9550.  
  9551. ΓòÉΓòÉΓòÉ 9.5.1.5. Add a Queue Element to a Queue Length (SPMEnterQ) ΓòÉΓòÉΓòÉ
  9552.  
  9553. SPMSetSem DataBlock
  9554. INC     ql_ct
  9555. PUSH    DS
  9556. PUSH    OFFSET ql_tm
  9557. CALL    [TimerStart]
  9558. SPMClearSem DataBlock
  9559.  
  9560.  
  9561. ΓòÉΓòÉΓòÉ 9.5.1.6. Remove a Queue Element from a Queue Length (SPMExitQ) ΓòÉΓòÉΓòÉ
  9562.  
  9563. SPMSetSem DataBlock
  9564. DEC     ql_ct
  9565. PUSH    DS
  9566. PUSH    OFFSET ql_tm
  9567. CALL    [TimerStop]
  9568. SPMClearSem DataBlock
  9569.  
  9570.  
  9571. ΓòÉΓòÉΓòÉ 9.6. Installing the Metric Definition File ΓòÉΓòÉΓòÉ
  9572.  
  9573. Your application's metric definition file must be installed using SPM/2 in 
  9574. order for the file to be recognized by the SPM/2 application.  Your application 
  9575. can either: 
  9576.  
  9577.  o Programmatically install its metric definition file 
  9578.  
  9579.    or 
  9580.  
  9581.  o Instruct the user in how to install the file by using SPM/2. 
  9582.  
  9583.  To install the metric definition file, enter the following command at an OS/2 
  9584.  command prompt: 
  9585.  
  9586.   SPMAPPIN drive:\path\filename.SPM
  9587.  
  9588.  where drive:\path\filename.SPM is the fully qualified name of the metric 
  9589.  definition file you are installing. 
  9590.  
  9591.  SPM/2 adds the information in the metric definition file to the SPMAPP.INI 
  9592.  file.  SPM/2 then uses the SPMAPP.INI file to determine which metrics are 
  9593.  available to be collected. 
  9594.  
  9595.  When you install your metric definition file, SPM/2 rebuilds the SPMCTRGP.H 
  9596.  file, which contains a description of the OS/2 data structures, and adds a 
  9597.  description of the structures in your application. 
  9598.  
  9599.  Note:  SPMAPPIN ? provides a syntax diagram and brief help text for the 
  9600.         SPMAPPIN command. 
  9601.  
  9602.  
  9603. ΓòÉΓòÉΓòÉ 9.7. Viewing the Collected Metric Data ΓòÉΓòÉΓòÉ
  9604.  
  9605. SPM/2 provides a dump report type for viewing the values of the collected 
  9606. counters and timers.  This report shows the decimal values for all data items 
  9607. in all collected groups at each collection interval. 
  9608.  
  9609. If an application has special analysis requirements that the dump report does 
  9610. not satisfy, the application developer can write an application that uses the 
  9611. SPM/2 API to retrieve the performance data either in real time or from the log 
  9612. file, analyze the data, and write a customized report. 
  9613.  
  9614.  
  9615. ΓòÉΓòÉΓòÉ 10. SPM/2 Messages ΓòÉΓòÉΓòÉ
  9616.  
  9617. Access a message number through the Contents window for more information. 
  9618.  
  9619. Return codes appear in some messages.  Descriptions of those codes can be found 
  9620. in the following references: 
  9621.  
  9622.  o IBM OS/2 LAN Server Version 3.0 Application Programmer's Reference 
  9623.  
  9624.  o IBM OS/2 Technical Library, Programming Guides. 
  9625.  
  9626.  
  9627. ΓòÉΓòÉΓòÉ 10.1. SPM0001 ΓòÉΓòÉΓòÉ
  9628.  
  9629. Not enough memory to initialize National Language Support. 
  9630.  
  9631. There is insufficient swap space. Increase the amount of space available to the 
  9632. SWAPPER.DAT file. 
  9633.  
  9634.  
  9635. ΓòÉΓòÉΓòÉ 10.2. SPM0002 ΓòÉΓòÉΓòÉ
  9636.  
  9637. Message file error - name - return code. 
  9638.  
  9639. Message file is missing or locked by another process. Make sure the SPM.MSG 
  9640. file is in the message path. 
  9641.  
  9642.  
  9643. ΓòÉΓòÉΓòÉ 10.3. SPM0005 ΓòÉΓòÉΓòÉ
  9644.  
  9645. Not enough memory to complete initialization. 
  9646.  
  9647. There is insufficient swap space. Increase the amount of space available to the 
  9648. SWAPPER.DAT file. 
  9649.  
  9650.  
  9651. ΓòÉΓòÉΓòÉ 10.4. SPM0006 ΓòÉΓòÉΓòÉ
  9652.  
  9653. Out of heap space. 
  9654.  
  9655. There is insufficient swap space. Increase the amount of space available to the 
  9656. SWAPPER.DAT file. 
  9657.  
  9658.  
  9659. ΓòÉΓòÉΓòÉ 10.5. SPM0007 ΓòÉΓòÉΓòÉ
  9660.  
  9661. SPMDCF should not be started from the command line. 
  9662.  
  9663. The program should not be executed from the command line. Do not execute 
  9664. SPMDCF.EXE from the command line. 
  9665.  
  9666.  
  9667. ΓòÉΓòÉΓòÉ 10.6. SPM0008 ΓòÉΓòÉΓòÉ
  9668.  
  9669. DosExecPgm failed.  Return code = %1.  Load error = %2. 
  9670.  
  9671. Program is missing or damaged, or the path is wrong. Verify that setup and 
  9672. installation are correct. 
  9673.  
  9674.  
  9675. ΓòÉΓòÉΓòÉ 10.7. SPM0010 ΓòÉΓòÉΓòÉ
  9676.  
  9677. /LISTEN or /STOPLISTEN or /HALTALL parameter missing. 
  9678.  
  9679. Command line syntax is incorrect.  A required parameter was missing. Enter the 
  9680. command followed by a ? to display the correct syntax. 
  9681.  
  9682. Retype the command correctly. 
  9683.  
  9684.  
  9685. ΓòÉΓòÉΓòÉ 10.8. SPM0012 ΓòÉΓòÉΓòÉ
  9686.  
  9687. Command line parameters must begin with the / character. 
  9688.  
  9689. Command line syntax is incorrect. A parameter did not begin with a / character. 
  9690. Enter the command followed by a ? to display the correct syntax. 
  9691.  
  9692. Retype the command correctly. 
  9693.  
  9694.  
  9695. ΓòÉΓòÉΓòÉ 10.9. SPM0013 ΓòÉΓòÉΓòÉ
  9696.  
  9697. Too many command line parameters. 
  9698.  
  9699. Command line syntax is incorrect. There were too many parameters specified in 
  9700. the command. Enter the command followed by a ? to display the correct syntax. 
  9701.  
  9702. Retype the command correctly. 
  9703.  
  9704.  
  9705. ΓòÉΓòÉΓòÉ 10.10. SPM0014 ΓòÉΓòÉΓòÉ
  9706.  
  9707. Command line parameter must be /LISTEN or /STOPLISTEN or /HALTALL. 
  9708.  
  9709. Command line syntax is incorrect. One of the indicated parameters must be 
  9710. specified with the SPMNBL command.  Enter the command followed by a ? to 
  9711. display the correct syntax. 
  9712.  
  9713. Retype the command correctly. 
  9714.  
  9715.  
  9716. ΓòÉΓòÉΓòÉ 10.11. SPM0016 ΓòÉΓòÉΓòÉ
  9717.  
  9718. Command line parameters must include /LISTEN or /STOPLISTEN or /HALTALL. 
  9719.  
  9720. Command line syntax is incorrect. One of the indicated parameters must be 
  9721. specified with the SPMNBL command.  Enter the command followed by a ? to 
  9722. display the correct syntax. 
  9723.  
  9724. Retype the command correctly. 
  9725.  
  9726.  
  9727. ΓòÉΓòÉΓòÉ 10.12. SPM0020 ΓòÉΓòÉΓòÉ
  9728.  
  9729. Unable to locate or create shared storage area. 
  9730.  
  9731. A shared storage area is locked and therefore unavailable.  A system CPU 
  9732. overload or software failure has occurred. 
  9733.  
  9734. Reduce the CPU load on the system.  Stop all SPM/2 components on the system. 
  9735. Retry the operation. 
  9736.  
  9737.  
  9738. ΓòÉΓòÉΓòÉ 10.13. SPM0021 ΓòÉΓòÉΓòÉ
  9739.  
  9740. Unable to create an instance of the DCF. 
  9741.  
  9742. A shared storage area is locked and therefore unavailable.  A system CPU 
  9743. overload or software failure has occurred. 
  9744.  
  9745. Reduce the CPU load on the system.  Stop all SPM/2 components on the system. 
  9746. Retry the operation. 
  9747.  
  9748.  
  9749. ΓòÉΓòÉΓòÉ 10.14. SPM0023 ΓòÉΓòÉΓòÉ
  9750.  
  9751. DCF started but no response.  DCF failure likely. 
  9752.  
  9753. The NETBIOS listener has not received a startup acknowledgment from a Data 
  9754. Collection Facility. 
  9755.  
  9756. Check the SPMSNAP.ERR file and use PSTAT to determine if the Data Collection 
  9757. Facility session has started.  If the Data Collection Facility has started, no 
  9758. action is necessary.  If the condition persists, shut down and restart your 
  9759. system. 
  9760.  
  9761.  
  9762. ΓòÉΓòÉΓòÉ 10.15. SPM0024 ΓòÉΓòÉΓòÉ
  9763.  
  9764. Unable to locate DCF instance area %1. 
  9765.  
  9766. An internal error has occurred. System should recover after 5 minutes. 
  9767.  
  9768.  
  9769. ΓòÉΓòÉΓòÉ 10.16. SPM0025 ΓòÉΓòÉΓòÉ
  9770.  
  9771. Open named pipe failed.  Return code = %1. 
  9772.  
  9773. A pipe name is not currently available to the Data Collection Facility.  This 
  9774. is typically a temporary condition. 
  9775.  
  9776. Verify that the associated SPMILOG is still running.  Verify that network 
  9777. security permits access to the pipe.  Check the return code in the SPMSNAP.ERR 
  9778. file. 
  9779.  
  9780.  
  9781. ΓòÉΓòÉΓòÉ 10.17. SPM0026 ΓòÉΓòÉΓòÉ
  9782.  
  9783. Not enough memory for the pipe buffer. 
  9784.  
  9785. The pipe buffer size exceeds the size of the buffer pool. This is an internal 
  9786. error. 
  9787.  
  9788.  
  9789. ΓòÉΓòÉΓòÉ 10.18. SPM0027 ΓòÉΓòÉΓòÉ
  9790.  
  9791. Pipe read failure.  Read return code = %1. 
  9792.  
  9793. This message indicates one of the following: 
  9794.  
  9795.  o The SPMILOG was stopped using the /HALT parameter rather than the usual 
  9796.    /DRAIN parameter. 
  9797.  o A forced disconnect from the network of the workstation on which the SPMILOG 
  9798.    was running. 
  9799.  o An SPMILOG error or failure. 
  9800.  
  9801.  Check the return code in the SPMSNAP.ERR file. 
  9802.  
  9803.  
  9804. ΓòÉΓòÉΓòÉ 10.19. SPM0028 ΓòÉΓòÉΓòÉ
  9805.  
  9806. Pipe idle. 
  9807.  
  9808. The DCF has not received messages from the SPMILOG for an extended period. 
  9809.  
  9810.  
  9811. ΓòÉΓòÉΓòÉ 10.20. SPM0029 ΓòÉΓòÉΓòÉ
  9812.  
  9813. Pipe multiplexer wait error.  Return code = %1. 
  9814.  
  9815. An internal error has occurred.  Retry the operation. 
  9816.  
  9817.  
  9818. ΓòÉΓòÉΓòÉ 10.21. SPM0031 ΓòÉΓòÉΓòÉ
  9819.  
  9820. Out of memory for pipe buffers. 
  9821.  
  9822. The amount of buffer space requested exceeds the buffer pool size. This is an 
  9823. internal error. 
  9824.  
  9825.  
  9826. ΓòÉΓòÉΓòÉ 10.22. SPM0035 ΓòÉΓòÉΓòÉ
  9827.  
  9828. Pipe write error.  Return code = 
  9829.  
  9830. DosWrite failed with the return code listed.  The cause is probably the 
  9831. shutdown of associated SPMILOG, or possibly a network failure. 
  9832.  
  9833. Examine the return code to determine cause of failure. 
  9834.  
  9835.  
  9836. ΓòÉΓòÉΓòÉ 10.23. SPM0038 ΓòÉΓòÉΓòÉ
  9837.  
  9838. NETBIOS listener already active. 
  9839.  
  9840. The SPMNBL command was used with the /LISTEN parameter while a listener was 
  9841. already active.  Only one listener is permitted per workstation. 
  9842.  
  9843.  
  9844. ΓòÉΓòÉΓòÉ 10.24. SPM0040 ΓòÉΓòÉΓòÉ
  9845.  
  9846. NETBIOS listener idle. 
  9847.  
  9848. The NETBIOS listener has not received a message for an extended period. 
  9849.  
  9850.  
  9851. ΓòÉΓòÉΓòÉ 10.25. SPM0041 ΓòÉΓòÉΓòÉ
  9852.  
  9853. Queue multiplexer wait error.  Return code = %1. 
  9854.  
  9855. An internal error has occurred. 
  9856.  
  9857.  
  9858. ΓòÉΓòÉΓòÉ 10.26. SPM0047 ΓòÉΓòÉΓòÉ
  9859.  
  9860. Listener not active. 
  9861.  
  9862. A STOPLISTEN command was entered while no listener was active. 
  9863.  
  9864.  
  9865. ΓòÉΓòÉΓòÉ 10.27. SPM0049 ΓòÉΓòÉΓòÉ
  9866.  
  9867. NETBIOS listener unable to register with NETBIOS. 
  9868.  
  9869. The NETBIOS listener was unable to activate the NETBIOS query and NETBIOS 
  9870. interfaces.  Probable cause is the absence of a network. 
  9871.  
  9872. Make sure the network is active and properly configured. 
  9873.  
  9874.  
  9875. ΓòÉΓòÉΓòÉ 10.28. SPM0051 ΓòÉΓòÉΓòÉ
  9876.  
  9877. Datagram rejected for password or workstation name. 
  9878.  
  9879. The NETBIOS listener has received a datagram which contains an invalid password 
  9880. or workstation name.  This is probably a network error. 
  9881.  
  9882. No action is necessary.  SPM/2 should recover. 
  9883.  
  9884.  
  9885. ΓòÉΓòÉΓòÉ 10.29. SPM0052 ΓòÉΓòÉΓòÉ
  9886.  
  9887. No memory for datagram buffers. 
  9888.  
  9889. Datagram buffer size is larger than the memory pool. This is an internal error. 
  9890.  
  9891.  
  9892. ΓòÉΓòÉΓòÉ 10.30. SPM0053 ΓòÉΓòÉΓòÉ
  9893.  
  9894. SPMNET: Unable to locate global descriptor area. 
  9895.  
  9896. An internal error has occurred. 
  9897.  
  9898. Stop and then restart the NETBIOS listener. 
  9899.  
  9900.  
  9901. ΓòÉΓòÉΓòÉ 10.31. SPM0054 ΓòÉΓòÉΓòÉ
  9902.  
  9903. SPMNET:  No memory for workstation name buffer. 
  9904.  
  9905. Datagram buffer size larger than memory pool. This is an internal error. 
  9906.  
  9907.  
  9908. ΓòÉΓòÉΓòÉ 10.32. SPM0055 ΓòÉΓòÉΓòÉ
  9909.  
  9910. SPMNET:  Cannot open DCF start queue.  DosOpenQueue return code = %1. 
  9911.  
  9912. A file system error has occurred. 
  9913.  
  9914.  
  9915. ΓòÉΓòÉΓòÉ 10.33. SPM0056 ΓòÉΓòÉΓòÉ
  9916.  
  9917. SPMNBL: Cannot create DCF start queue. 
  9918.  
  9919. The queue name is not permitted by the file system. Check restrictions on queue 
  9920. names. 
  9921.  
  9922.  
  9923. ΓòÉΓòÉΓòÉ 10.34. SPM0057 ΓòÉΓòÉΓòÉ
  9924.  
  9925. SPMNET:  NETBIOS not available.  Network code shutdown. 
  9926.  
  9927. An SPMNBL /LISTEN was requested but NETBIOS was not available. Start the 
  9928. network. 
  9929.  
  9930.  
  9931. ΓòÉΓòÉΓòÉ 10.35. SPM0058 ΓòÉΓòÉΓòÉ
  9932.  
  9933. Unable to start SPMNBL.  DosExecPgm return code = %1. 
  9934.  
  9935. A DosExecProgram failed with the indicated return code. Probable cause is an 
  9936. inability to find SPMNET.EXE in path.  The SWAPPER.DAT file may be full. 
  9937.  
  9938. Make sure program path includes SPMNET.EXE. 
  9939.  
  9940.  
  9941. ΓòÉΓòÉΓòÉ 10.36. SPM0060 ΓòÉΓòÉΓòÉ
  9942.  
  9943. Command line error.  The .LOG file name is missing. 
  9944.  
  9945. Command line syntax is incorrect. The .LOG file name was not specified. Enter 
  9946. the command followed by a ? to display the correct syntax. 
  9947.  
  9948. Retype the command correctly. 
  9949.  
  9950.  
  9951. ΓòÉΓòÉΓòÉ 10.37. SPM0061 ΓòÉΓòÉΓòÉ
  9952.  
  9953. Command line error too many parameters. 
  9954.  
  9955. Command line syntax is incorrect. Too many parameters were specified for the 
  9956. command. Enter the command followed by a ? to display the correct syntax. 
  9957.  
  9958. Retype the command correctly. 
  9959.  
  9960.  
  9961. ΓòÉΓòÉΓòÉ 10.38. SPM0063 ΓòÉΓòÉΓòÉ
  9962.  
  9963. .LOG file name is not permitted for HALTALL or DRAINALL. 
  9964.  
  9965. Command line syntax is incorrect. A file name was specified with the SPMISTOP 
  9966. /HALTALL or /DRAINALL parameters. Enter the command followed by a ? to display 
  9967. the correct syntax. 
  9968.  
  9969. Retype the command correctly. 
  9970.  
  9971.  Note:  To stop a single SPMILOG, use the /HALT or /DRAIN parameter with the 
  9972.         file name. 
  9973.  
  9974.  
  9975. ΓòÉΓòÉΓòÉ 10.39. SPM0065 ΓòÉΓòÉΓòÉ
  9976.  
  9977. Not enough memory to construct a sample point.  Return code = %1. 
  9978.  
  9979. There was not enough memory during the sampling process. The probable cause is 
  9980. an inability to expand the SWAPPER.DAT file. 
  9981.  
  9982. Expand the space available to the SWAPPER.DAT file. 
  9983.  
  9984.  
  9985. ΓòÉΓòÉΓòÉ 10.40. SPM0066 ΓòÉΓòÉΓòÉ
  9986.  
  9987. Unable to resolve OS/2 kernel symbolics.  Return code = %1. 
  9988.  
  9989. A group name specified for collection is not available. This can be a temporary 
  9990. situation for groups that register with OS/2 kernel after collection has 
  9991. started.  Or it could be that device driver or other OS/2 kernel user is not 
  9992. installed. 
  9993.  
  9994. Check the spelling of the group name. 
  9995.  
  9996.  
  9997. ΓòÉΓòÉΓòÉ 10.41. SPM0067 ΓòÉΓòÉΓòÉ
  9998.  
  9999. Unable to locate OS/2 kernel data block.  Return code = %1. 
  10000.  
  10001. A group data block is unavailable for a registered group. Probably, a group was 
  10002. deregistered during the configuration process. 
  10003.  
  10004.  
  10005. ΓòÉΓòÉΓòÉ 10.42. SPM0068 ΓòÉΓòÉΓòÉ
  10006.  
  10007. Unable to build memory pools.  Return code = %1. 
  10008.  
  10009. There is probably a shortage of swap space. 
  10010.  
  10011. Expand the space available to the SWAPPER.DAT file. 
  10012.  
  10013.  
  10014. ΓòÉΓòÉΓòÉ 10.43. SPM0069 ΓòÉΓòÉΓòÉ
  10015.  
  10016. Unable to configure a OS/2 kernel element.  Return code = %1. 
  10017.  
  10018. The configuration call for a data group requiring configuration failed. An 
  10019. application error probably occurred. 
  10020.  
  10021.  
  10022. ΓòÉΓòÉΓòÉ 10.44. SPM0070 ΓòÉΓòÉΓòÉ
  10023.  
  10024. Too many command line parameters. 
  10025.  
  10026. Command line syntax is incorrect. There are more command line parameters than 
  10027. the command allows. Enter the command followed by a ? to display the correct 
  10028. syntax. 
  10029.  
  10030. Retype the command correctly. 
  10031.  
  10032.  
  10033. ΓòÉΓòÉΓòÉ 10.45. SPM0071 ΓòÉΓòÉΓòÉ
  10034.  
  10035. Too few command line parameters. 
  10036.  
  10037. Command line syntax is incorrect. The minimum number of command line parameters 
  10038. have not been supplied. Enter the command followed by a ? to display the 
  10039. correct syntax. 
  10040.  
  10041. Retype the command correctly. 
  10042.  
  10043.  
  10044. ΓòÉΓòÉΓòÉ 10.46. SPM0072 ΓòÉΓòÉΓòÉ
  10045.  
  10046. .LOG file %1 is not active. 
  10047.  
  10048. The command entered requires an active .LOG file, and none were active. 
  10049.  
  10050. Retype the command and specify the name of an active .LOG file. 
  10051.  
  10052.  
  10053. ΓòÉΓòÉΓòÉ 10.47. SPM0073 ΓòÉΓòÉΓòÉ
  10054.  
  10055. Cannot access message log file SPM.MSG. 
  10056.  
  10057. The message file cannot be accessed, or its contents are wrong. Possible 
  10058. installation error. 
  10059.  
  10060. Make sure that SPM.MSG has not been corrupted and is in the DPATH. 
  10061.  
  10062.  
  10063. ΓòÉΓòÉΓòÉ 10.48. SPM0075 ΓòÉΓòÉΓòÉ
  10064.  
  10065. Unable to access global descriptor area. 
  10066.  
  10067. A shared resource was unavailable for an extended period. 
  10068.  
  10069. Wait a while and retry the operation. 
  10070.  
  10071.  
  10072. ΓòÉΓòÉΓòÉ 10.49. SPM0076 ΓòÉΓòÉΓòÉ
  10073.  
  10074. Command line parameter %1 not recognized. 
  10075.  
  10076. Command line syntax is incorrect. A parameter on the command line is not 
  10077. spelled correctly. Enter the command followed by a ? to display the correct 
  10078. syntax. 
  10079.  
  10080. Retype the command correctly. 
  10081.  
  10082.  
  10083. ΓòÉΓòÉΓòÉ 10.50. SPM0077 ΓòÉΓòÉΓòÉ
  10084.  
  10085. SPMISTOP parameter (/DRAIN /HALT /DRAINALL /HALTALL) is missing. 
  10086.  
  10087. Command line syntax is incorrect. A required parameter was not supplied. Enter 
  10088. the command followed by a ? to display the correct syntax. 
  10089.  
  10090. Retype the command correctly. 
  10091.  
  10092.  
  10093. ΓòÉΓòÉΓòÉ 10.51. SPM0079 ΓòÉΓòÉΓòÉ
  10094.  
  10095. No response from SPMILOG. 
  10096.  
  10097. The SPMILOG did not acknowledge a SPMISTOP /DRAIN or /HALT command. 
  10098.  
  10099. The problem may be temporary.  Retry the operation. 
  10100.  
  10101.  
  10102. ΓòÉΓòÉΓòÉ 10.52. SPM0081 ΓòÉΓòÉΓòÉ
  10103.  
  10104. Internal error shutdown option. 
  10105.  
  10106. An internal error occurred. 
  10107.  
  10108.  
  10109. ΓòÉΓòÉΓòÉ 10.53. SPM0082 ΓòÉΓòÉΓòÉ
  10110.  
  10111. Unable to allocate remote pipe buffer. 
  10112.  
  10113. The system is probably out of swap space. 
  10114.  
  10115. Make more swap space available. 
  10116.  
  10117.  
  10118. ΓòÉΓòÉΓòÉ 10.54. SPM0083 ΓòÉΓòÉΓòÉ
  10119.  
  10120. Unable to allocate a sample point buffer.  Return code = %1. 
  10121.  
  10122. The system is probably out of swap space. 
  10123.  
  10124. Make more swap space available.  Reduce the number of items being collected. 
  10125.  
  10126.  
  10127. ΓòÉΓòÉΓòÉ 10.55. SPM0084 ΓòÉΓòÉΓòÉ
  10128.  
  10129. Unable to allocate timer semaphore. 
  10130.  
  10131. The maximum number of semaphores supported by OS/2 has been reached. 
  10132.  
  10133. Reduce the number of active processes. 
  10134.  
  10135.  
  10136. ΓòÉΓòÉΓòÉ 10.56. SPM0085 ΓòÉΓòÉΓòÉ
  10137.  
  10138. Unable to start timer. 
  10139.  
  10140. The maximum number of timers supported by OS/2 has been reached. 
  10141.  
  10142. Reduce the number of active processes. 
  10143.  
  10144.  
  10145. ΓòÉΓòÉΓòÉ 10.57. SPM0086 ΓòÉΓòÉΓòÉ
  10146.  
  10147. Timer wait error - DCF stopping.  Return code = %1. 
  10148.  
  10149. An internal error has occurred. 
  10150.  
  10151.  
  10152. ΓòÉΓòÉΓòÉ 10.58. SPM0087 ΓòÉΓòÉΓòÉ
  10153.  
  10154. Unable to allocate multiplexer wait semaphore %1. 
  10155.  
  10156. The maximum number of multiplexer wait semaphores supported by OS/2 has been 
  10157. reached. 
  10158.  
  10159. Reduce the number of active processes. 
  10160.  
  10161.  
  10162. ΓòÉΓòÉΓòÉ 10.59. SPM0088 ΓòÉΓòÉΓòÉ
  10163.  
  10164. No memory for instance names - instance collection disabled.  Return code = %1. 
  10165.  
  10166. The system is probably out of swap space. 
  10167.  
  10168. Make more swap space available.  Reduce the number of items being collected. 
  10169.  
  10170.  
  10171. ΓòÉΓòÉΓòÉ 10.60. SPM0089 ΓòÉΓòÉΓòÉ
  10172.  
  10173. DCF stopping because of pipe error.  Return code = %1. 
  10174.  
  10175. A pipe I/O error has been recognized. An unexpected termination of an SPMILOG 
  10176. session probably occurred. 
  10177.  
  10178. Restart the SPMILOG. 
  10179.  
  10180.  
  10181. ΓòÉΓòÉΓòÉ 10.61. SPM0091 ΓòÉΓòÉΓòÉ
  10182.  
  10183. Group list element ordinal %1 not recognized. 
  10184.  
  10185. No information is available for the ordinal number noted. An internal error 
  10186. probably occurred. 
  10187.  
  10188.  
  10189. ΓòÉΓòÉΓòÉ 10.62. SPM0092 ΓòÉΓòÉΓòÉ
  10190.  
  10191. Group list element ordinal type not supported.  Ordinal type %1. 
  10192.  
  10193. The ordinal number specified is of an unknown type. 
  10194.  
  10195.  
  10196. ΓòÉΓòÉΓòÉ 10.63. SPM0093 ΓòÉΓòÉΓòÉ
  10197.  
  10198. Group list element service function undefined.  Return code = %1. 
  10199.  
  10200. A service function required by an ordinal is not available in the SPMSRVFS.DLL 
  10201. file on the monitored workstation. 
  10202.  
  10203.  
  10204. ΓòÉΓòÉΓòÉ 10.64. SPM0094 ΓòÉΓòÉΓòÉ
  10205.  
  10206. Error while loading SPMSRVFS.DLL.  Return code = %1. 
  10207.  
  10208. Probable cause - damaged .DLL file. 
  10209.  
  10210. Ensure the integrity of the SPMSRVFS.DLL file. 
  10211.  
  10212.  
  10213. ΓòÉΓòÉΓòÉ 10.65. SPM0095 ΓòÉΓòÉΓòÉ
  10214.  
  10215. SPMGetOrdInfo missing from SPMSRVFS.  Return code = %1. 
  10216.  
  10217. An internal error has occurred. 
  10218.  
  10219.  
  10220. ΓòÉΓòÉΓòÉ 10.66. SPM0099 ΓòÉΓòÉΓòÉ
  10221.  
  10222. DCF stopped, cause unknown - code %1. 
  10223.  
  10224. An internal error occurred. 
  10225.  
  10226.  
  10227. ΓòÉΓòÉΓòÉ 10.67. SPM0109 ΓòÉΓòÉΓòÉ
  10228.  
  10229. Command line parameter %1 not recognized. 
  10230.  
  10231. The command line parameter indicated was not recognized. 
  10232.  
  10233. Check the syntax for the command and retype it. 
  10234.  
  10235.  
  10236. ΓòÉΓòÉΓòÉ 10.68. SPM0115 ΓòÉΓòÉΓòÉ
  10237.  
  10238. Mutually exclusive command line parameters found. 
  10239.  
  10240. Command line syntax is incorrect. Conflicting parameters were entered. Enter 
  10241. the command followed by a ? to display the correct syntax. 
  10242.  
  10243. Retype the command correctly. 
  10244.  
  10245.  
  10246. ΓòÉΓòÉΓòÉ 10.69. SPM0117 ΓòÉΓòÉΓòÉ
  10247.  
  10248. Cannot listen.  NETBIOS not available. 
  10249.  
  10250. A request has been made to listen for Data Collection Facility start commands 
  10251. on the network, but no network is installed. 
  10252.  
  10253.  
  10254. ΓòÉΓòÉΓòÉ 10.70. SPM0125 ΓòÉΓòÉΓòÉ
  10255.  
  10256. Semaphore timeout waiting for shared storage area. 
  10257.  
  10258. The NETBIOS listener was unable to start or stop a Data Collection Facility 
  10259. because the global descriptor area was locked for an extended period. 
  10260.  
  10261. The condition may be temporary.  The SPMILOG session will retry start commands 
  10262. within 5 minutes.  You can retry stop commands. 
  10263.  
  10264.  
  10265. ΓòÉΓòÉΓòÉ 10.71. SPM0126 ΓòÉΓòÉΓòÉ
  10266.  
  10267. No memory left in global descriptor area (shared storage). 
  10268.  
  10269. There is insufficient memory remaining in the global descriptor area to start 
  10270. another Data Collection Facility.  This can happen after repeated failures of a 
  10271. Data Collection Facility. 
  10272.  
  10273. Stop the NETBIOS listener, all Data Collection Facilities, and SPMILOG sessions 
  10274. active on the workstation experiencing the problem.  When all have terminated, 
  10275. they may be restarted. 
  10276.  
  10277.  
  10278. ΓòÉΓòÉΓòÉ 10.72. SPM0127 ΓòÉΓòÉΓòÉ
  10279.  
  10280. Maximum number of DCFs already active. 
  10281.  
  10282. An attempt was made to activate a second Data Collection Facility.  No more 
  10283. than one Data Collection Facility sessions can be active on a single 
  10284. workstation. 
  10285.  
  10286.  
  10287. ΓòÉΓòÉΓòÉ 10.73. SPM0132 ΓòÉΓòÉΓòÉ
  10288.  
  10289. Command line parameter %1 not recognized. 
  10290.  
  10291. Command line syntax is incorrect. The parameter indicated is not a valid 
  10292. parameter for the command. Enter the command followed by a ? to display the 
  10293. correct syntax. 
  10294.  
  10295. Retype the command correctly. 
  10296.  
  10297.  
  10298. ΓòÉΓòÉΓòÉ 10.74. SPM0140 ΓòÉΓòÉΓòÉ
  10299.  
  10300. Unable to access %1.  Open return code = %2. 
  10301.  
  10302. The program was unable to access the file and obtained the return code 
  10303. indicated. 
  10304.  
  10305.  
  10306. ΓòÉΓòÉΓòÉ 10.75. SPM0142 ΓòÉΓòÉΓòÉ
  10307.  
  10308. %1 is not a .LOG file or is badly corrupted. 
  10309.  
  10310. The file indicated is either: 
  10311.  
  10312.  o Not a .LOG file that was created by SPM/2 software 
  10313.  o Has been altered by non-SPM/2 software 
  10314.  o Was being recorded when a system crash occurred. 
  10315.  
  10316.  The .LOG file cannot be reused. 
  10317.  
  10318.  
  10319. ΓòÉΓòÉΓòÉ 10.76. SPM0143 ΓòÉΓòÉΓòÉ
  10320.  
  10321. %1 was not properly closed when last used.  Execution continues. 
  10322.  
  10323. The .LOG file was not closed as part of the orderly shut down of an SPMILOG. 
  10324. Content errors may exist in log and session status records. 
  10325.  
  10326. No action is necessary.  The error flag is reset.  The content records are not 
  10327. corrected, and the file is used normally. 
  10328.  
  10329.  
  10330. ΓòÉΓòÉΓòÉ 10.77. SPM0144 ΓòÉΓòÉΓòÉ
  10331.  
  10332. File %1 not found or DPATH not set.  DosSearchPath return code = %2. 
  10333.  
  10334. The file indicated was not located. 
  10335.  
  10336. Check the file name and DPATH for errors. 
  10337.  
  10338.  
  10339. ΓòÉΓòÉΓòÉ 10.78. SPM0145 ΓòÉΓòÉΓòÉ
  10340.  
  10341. National Language Support message file missing or in error. 
  10342.  
  10343. The National Language Support file could not be accessed, or a specific message 
  10344. number is missing from the file.  A preceding message gives the specific 
  10345. message number.  Probable cause - installation error. 
  10346.  
  10347. Put the message file in a path that can be accessed from the program. 
  10348.  
  10349.  
  10350. ΓòÉΓòÉΓòÉ 10.79. SPM0147 ΓòÉΓòÉΓòÉ
  10351.  
  10352. File %1 verified but collection may not have started - check SPMSNAP.ERR for 
  10353. more information. 
  10354.  
  10355. The .LOG file specified in the start command meets basic structure and content 
  10356. requirements.  An SPMILOG was started but has not signaled that it initialized 
  10357. successfully.  The SPMILOG may or may not have started successfully. 
  10358.  
  10359. If the SPMILOG has failed there will be additional diagnostic messages in the 
  10360. SPMSNAP.ERR file.  The PSTAT command may be used to determine if SPMILOG.EXE is 
  10361. running.  The user interface will indicate the status of SPMILOG. 
  10362.  
  10363.  
  10364. ΓòÉΓòÉΓòÉ 10.80. SPM0149 ΓòÉΓòÉΓòÉ
  10365.  
  10366. Drain of %1 initiated but failed.  Return code = %2. 
  10367.  
  10368. A drain of the indicated .LOG file was scheduled but the SPMILOG has not 
  10369. signaled acceptance of the command. 
  10370.  
  10371. If the SPMILOG fails to drain, enter an SPMISTOP /HALT command. 
  10372.  
  10373.  
  10374. ΓòÉΓòÉΓòÉ 10.81. SPM0151 ΓòÉΓòÉΓòÉ
  10375.  
  10376. Drain of all active .LOG files initiated but failed.  Return code = %1. 
  10377.  
  10378. A drain of all active .LOG files was scheduled, but one or more SPMILOGs failed 
  10379. to signal acceptance of the command. 
  10380.  
  10381. If any SPMILOG fails to drain, retype the command.  Use an SPMISTOP /HALT or 
  10382. /HALTALL command. 
  10383.  
  10384.  
  10385. ΓòÉΓòÉΓòÉ 10.82. SPM0153 ΓòÉΓòÉΓòÉ
  10386.  
  10387. Halt of %1 initiated but failed.  Return code = %2. 
  10388.  
  10389. A halt of the indicated .LOG file was scheduled, but the SPMILOG has not 
  10390. signaled acceptance of the command. 
  10391.  
  10392. If the SPMILOG fails to halt use the SPMNBL /HALTALL command.  If the SPMNBL 
  10393. /HALTALL command fails, shut down and restart your system. 
  10394.  
  10395.  
  10396. ΓòÉΓòÉΓòÉ 10.83. SPM0155 ΓòÉΓòÉΓòÉ
  10397.  
  10398. Halt of all active .LOG files initiated but failed.  Return code = %1. 
  10399.  
  10400. A halt of all active .LOG files was scheduled but one or more SPMILOG sessions 
  10401. failed to signal acceptance of the command. 
  10402.  
  10403. If any SPMILOG fails to halt, retype the command. Use the SPMNBL /HALTALL 
  10404. command to stop any processes that fail to halt.  If the SPMNBL /HALTALL 
  10405. command fails, shut down and restart your system. 
  10406.  
  10407.  
  10408. ΓòÉΓòÉΓòÉ 10.84. SPM0157 ΓòÉΓòÉΓòÉ
  10409.  
  10410. Command line parameter (%1) not recognized or is a duplicate. 
  10411.  
  10412. Check the command syntax and retype the command. 
  10413.  
  10414.  
  10415. ΓòÉΓòÉΓòÉ 10.85. SPM0158 ΓòÉΓòÉΓòÉ
  10416.  
  10417. Command line parameter (%1) erroneously begins with a /Q. 
  10418.  
  10419. Command line syntax is incorrect. An invalid parameter beginning with /Q was 
  10420. entered. Enter the command followed by a ? to display the correct syntax. 
  10421.  
  10422. Retype the command correctly. 
  10423.  
  10424.  
  10425. ΓòÉΓòÉΓòÉ 10.86. SPM0159 ΓòÉΓòÉΓòÉ
  10426.  
  10427. Command line parameter (%1) not followed by numeric field. 
  10428.  
  10429. Command line syntax is incorrect. The command line parameter specified requires 
  10430. a numeric field for a suffix. Enter the command followed by a ? to display the 
  10431. correct syntax. 
  10432.  
  10433. Retype the command correctly. 
  10434.  
  10435.  
  10436. ΓòÉΓòÉΓòÉ 10.87. SPM0161 ΓòÉΓòÉΓòÉ
  10437.  
  10438. Command line /R value is not a valid integer. 
  10439.  
  10440. The suffix of the /Rnnn parameter is not completely numeric or is not in the 
  10441. appropriate range. 
  10442.  
  10443. Retype the command and supply the proper numeric suffix on the /R parameter. 
  10444.  
  10445.  
  10446. ΓòÉΓòÉΓòÉ 10.88. SPM0162 ΓòÉΓòÉΓòÉ
  10447.  
  10448. API return code %1 function code %2 function return code %3. 
  10449.  
  10450. The return code and function code from the SPM/2 API for a previously indicated 
  10451. error is being supplied for diagnostic purposes. 
  10452.  
  10453. Evaluate the error in light of the function and return codes. 
  10454.  
  10455.  
  10456. ΓòÉΓòÉΓòÉ 10.89. SPM0204 ΓòÉΓòÉΓòÉ
  10457.  
  10458. Session record creation error - not enough memory. 
  10459.  
  10460. There is insufficient swap space. 
  10461.  
  10462. Increase the amount of space available to the SWAPPER.DAT file. 
  10463.  
  10464.  
  10465. ΓòÉΓòÉΓòÉ 10.90. SPM0205 ΓòÉΓòÉΓòÉ
  10466.  
  10467. Not enough memory to complete initialization. 
  10468.  
  10469. There is insufficient swap space. 
  10470.  
  10471. Increase the amount of space available to the SWAPPER.DAT file. 
  10472.  
  10473.  
  10474. ΓòÉΓòÉΓòÉ 10.91. SPM0207 ΓòÉΓòÉΓòÉ
  10475.  
  10476. Wrong number of command line parameters. Too many command line parameters were 
  10477. entered for the command. 
  10478.  
  10479. Command line syntax is incorrect. Too many command line parameters were entered 
  10480. for the command. Enter the command followed by a ? to display the correct 
  10481. syntax. 
  10482.  
  10483. Retype the command correctly. 
  10484.  
  10485.  
  10486. ΓòÉΓòÉΓòÉ 10.92. SPM0208 ΓòÉΓòÉΓòÉ
  10487.  
  10488. Unable to build thread control blocks.  Return code = %1. 
  10489.  
  10490. The information contained in the .LOG file header is in error.  The .LOG file 
  10491. may be corrupted. 
  10492.  
  10493. If the .LOG file has been damaged, recreate it. 
  10494.  
  10495.  
  10496. ΓòÉΓòÉΓòÉ 10.93. SPM0209 ΓòÉΓòÉΓòÉ
  10497.  
  10498. Unable to add monitoring session information to .LOG.  Return code = %1. 
  10499.  
  10500. Probable cause - the .LOG file is full.  A preceding message is been more 
  10501. specific. 
  10502.  
  10503. Evaluate preceding error messages. 
  10504.  
  10505.  
  10506. ΓòÉΓòÉΓòÉ 10.94. SPM0210 ΓòÉΓòÉΓòÉ
  10507.  
  10508. File name and the /DRAIN or /HALT parameter are missing. 
  10509.  
  10510. Command line syntax is incorrect. No parameters were supplied on the command 
  10511. line. Enter the command followed by a ? to display the correct syntax. 
  10512.  
  10513. Retype the command correctly. 
  10514.  
  10515.  
  10516. ΓòÉΓòÉΓòÉ 10.95. SPM0211 ΓòÉΓòÉΓòÉ
  10517.  
  10518. File name missing. 
  10519.  
  10520. Command line syntax is incorrect. The file name is missing on the command line. 
  10521. Enter the command followed by a ? to display the correct syntax. 
  10522.  
  10523. Retype the command correctly. 
  10524.  
  10525.  
  10526. ΓòÉΓòÉΓòÉ 10.96. SPM0212 ΓòÉΓòÉΓòÉ
  10527.  
  10528. /DRAIN or /HALT parameter is missing. 
  10529.  
  10530. Command line syntax is incorrect. A required parameter is missing from the 
  10531. command line. Enter the command followed by a ? to display the correct syntax. 
  10532.  
  10533. Retype the command correctly. 
  10534.  
  10535.  
  10536. ΓòÉΓòÉΓòÉ 10.97. SPM0213 ΓòÉΓòÉΓòÉ
  10537.  
  10538. Too many command line parameters. 
  10539.  
  10540. Command line syntax is incorrect. Too many command line parameters have been 
  10541. entered. Enter the command followed by a ? to display the correct syntax. 
  10542.  
  10543. Retype the command correctly. 
  10544.  
  10545.  
  10546. ΓòÉΓòÉΓòÉ 10.98. SPM0214 ΓòÉΓòÉΓòÉ
  10547.  
  10548. Command line parameter must be /DRAIN or /HALT. 
  10549.  
  10550. Command line syntax is incorrect. An incorrect parameter was entered. Enter the 
  10551. command followed by a ? to display the correct syntax. 
  10552.  
  10553. Retype the command correctly. 
  10554.  
  10555.  
  10556. ΓòÉΓòÉΓòÉ 10.99. SPM0220 ΓòÉΓòÉΓòÉ
  10557.  
  10558. Do not start SPMILOG from the command line. SPMILOG unable to locate or create 
  10559. shared storage area. 
  10560.  
  10561. The SPMILOG has not been able to locate the shared communication area. Probable 
  10562. cause - SPMILOG was started by a process other than SPMISTRT - Probably the 
  10563. command line. 
  10564.  
  10565. Do not use any process other than SPMISTRT to invoke SPMILOG. 
  10566.  
  10567.  
  10568. ΓòÉΓòÉΓòÉ 10.100. SPM0224 ΓòÉΓòÉΓòÉ
  10569.  
  10570. Unable to locate SPMILOG instance area for %1. 
  10571.  
  10572. Extremely busy system has prevented the SPMILOG from accessing its shared 
  10573. storage. 
  10574.  
  10575. Try restarting the SPMILOG. 
  10576.  
  10577.  
  10578. ΓòÉΓòÉΓòÉ 10.101. SPM0250 ΓòÉΓòÉΓòÉ
  10579.  
  10580. Unable to configure DCF. 
  10581.  
  10582. An error occurred while the SPMILOG was initializing a Data Collection 
  10583. Facility. There may be related error messages in the SPMSNAP.ERR file. 
  10584.  
  10585. Probable causes: 
  10586.  
  10587.  o Workstation running Data Collection Facility failed 
  10588.  o Network error 
  10589.  o Mismatched versions of the SPMILOG and Data Collection Facility. 
  10590.  
  10591.  Retry the operation. 
  10592.  
  10593.  
  10594. ΓòÉΓòÉΓòÉ 10.102. SPM0251 ΓòÉΓòÉΓòÉ
  10595.  
  10596. Pipe transmission error. 
  10597.  
  10598. A pipe read or write operation returned a nonzero return code. 
  10599.  
  10600. Workstation running Data Collection Facility failed or network error. 
  10601.  
  10602.  
  10603. ΓòÉΓòÉΓòÉ 10.103. SPM0255 ΓòÉΓòÉΓòÉ
  10604.  
  10605. .LOG write error.  .LOG inactive. 
  10606.  
  10607. A disk error has occurred while logging data to the disk. 
  10608.  
  10609. Probable cause - full disk. 
  10610.  
  10611. Make sure that the disk is not full. 
  10612.  
  10613.  
  10614. ΓòÉΓòÉΓòÉ 10.104. SPM0256 ΓòÉΓòÉΓòÉ
  10615.  
  10616. Out of memory for service list entry. 
  10617.  
  10618. There was not sufficient memory available to start another output thread. 
  10619.  
  10620. Probable cause - shortage of swap space or too many applications requesting 
  10621. data from the real-time interface. 
  10622.  
  10623. Increase the amount of space available to the SWAPPER.DAT file. 
  10624.  
  10625.  
  10626. ΓòÉΓòÉΓòÉ 10.105. SPM0257 ΓòÉΓòÉΓòÉ
  10627.  
  10628. Insufficient memory, SPMAPIGetData start failed. 
  10629.  
  10630. There was not sufficient memory available to start another output thread. 
  10631.  
  10632. Probable cause - shortage of swap space or too many applications requesting 
  10633. data from the real-time interface. 
  10634.  
  10635. Increase the amount of space available to the SWAPPER.DAT file. 
  10636.  
  10637.  
  10638. ΓòÉΓòÉΓòÉ 10.106. SPM0258 ΓòÉΓòÉΓòÉ
  10639.  
  10640. Unable to create SPMAPIGetData pipe. 
  10641.  
  10642. After repeated tries, the SPMILOG was unable to create an instance of a named 
  10643. pipe. 
  10644.  
  10645. Probable cause - Network resources exhausted. 
  10646.  
  10647. Retry the operation when the network is less busy. 
  10648.  
  10649.  
  10650. ΓòÉΓòÉΓòÉ 10.107. SPM0260 ΓòÉΓòÉΓòÉ
  10651.  
  10652. SPMAPIGetData pipe write error.  Write return code = %1. 
  10653.  
  10654. A thread putting data on a real-time pipe received a nonzero return code. 
  10655.  
  10656. Probable cause - the application on the other end of the pipe exited without 
  10657. notifying the SPM/2 API. 
  10658.  
  10659.  
  10660. ΓòÉΓòÉΓòÉ 10.108. SPM0262 ΓòÉΓòÉΓòÉ
  10661.  
  10662. Unable to create SPMAPIQuery pipe. 
  10663.  
  10664. After repeated tries, the SPMILOG was unable to create an an instance of a 
  10665. named pipe. 
  10666.  
  10667. Probable cause - Network resources exhausted. 
  10668.  
  10669. Retry the operation when the network is less busy. 
  10670.  
  10671.  
  10672. ΓòÉΓòÉΓòÉ 10.109. SPM0263 ΓòÉΓòÉΓòÉ
  10673.  
  10674. Insufficient memory.  SPMAPIQuery pipe start failed. 
  10675.  
  10676. There was not sufficient memory available to start another query service 
  10677. thread. 
  10678.  
  10679. Probable cause - shortage of swap space or too many applications making 
  10680. simultaneous queries. 
  10681.  
  10682. Increase the amount of space available to the SWAPPER.DAT file. 
  10683.  
  10684.  
  10685. ΓòÉΓòÉΓòÉ 10.110. SPM0264 ΓòÉΓòÉΓòÉ
  10686.  
  10687. .LOG file %1 open.  Return code = %2. 
  10688.  
  10689. While opening a .LOG file, the SPMILOG received the return code indicated. 
  10690.  
  10691. Correct the problem indicated by the return code and retry the operation. 
  10692.  
  10693.  
  10694. ΓòÉΓòÉΓòÉ 10.111. SPM0267 ΓòÉΓòÉΓòÉ
  10695.  
  10696. .LOG file session record write error. 
  10697.  
  10698. The SPMILOG received a nonzero return code while adding a session record to the 
  10699. .LOG file. 
  10700.  
  10701. Probable cause - disk is full. 
  10702.  
  10703. Make additional disk space available. 
  10704.  
  10705.  
  10706. ΓòÉΓòÉΓòÉ 10.112. SPM0268 ΓòÉΓòÉΓòÉ
  10707.  
  10708. .LOG file session record update error. 
  10709.  
  10710. While updating an SPMILOG session or Data Collection Facility session record in 
  10711. the .LOG file, the SPMILOG received a nonzero return code. Probable cause - 
  10712. Disk has been rendered unavailable. 
  10713.  
  10714. Make the disk available. 
  10715.  
  10716.  
  10717. ΓòÉΓòÉΓòÉ 10.113. SPM0269 ΓòÉΓòÉΓòÉ
  10718.  
  10719. .LOG file header record update error. 
  10720.  
  10721. While updating the .LOG file header records the SPMILOG received a nonzero 
  10722. return code. 
  10723.  
  10724. Probable cause - Disk has been rendered unavailable. Hardware failure is 
  10725. possible but not likely. 
  10726.  
  10727. Make the disk available. 
  10728.  
  10729.  
  10730. ΓòÉΓòÉΓòÉ 10.114. SPM0270 ΓòÉΓòÉΓòÉ
  10731.  
  10732. DCF pipe error during logon. 
  10733.  
  10734. During the process of initializing a Data Collection Facility the SPMILOG 
  10735. received a nonzero return code from a pipe read or write operation. 
  10736.  
  10737. Probable cause - the workstation running the Data Collection Facility failed or 
  10738. the network failed. 
  10739.  
  10740.  
  10741. ΓòÉΓòÉΓòÉ 10.115. SPM0271 ΓòÉΓòÉΓòÉ
  10742.  
  10743. DCF record creation error - not enough memory. 
  10744.  
  10745. There was insufficient memory to create a Data Collection Facility session 
  10746. record. 
  10747.  
  10748. Probable cause - insufficient swap space. 
  10749.  
  10750. Increase the amount of space available to the SWAPPER.DAT file. 
  10751.  
  10752.  
  10753. ΓòÉΓòÉΓòÉ 10.116. SPM0272 ΓòÉΓòÉΓòÉ
  10754.  
  10755. .LOG file DCF session record write error. 
  10756.  
  10757. The SPMILOG received a nonzero return code while adding a session record to the 
  10758. .LOG file. 
  10759.  
  10760. Probable cause - disk is full. 
  10761.  
  10762. Make additional disk space available. 
  10763.  
  10764.  
  10765. ΓòÉΓòÉΓòÉ 10.117. SPM0273 ΓòÉΓòÉΓòÉ
  10766.  
  10767. .LOG file DCF session record update error. 
  10768.  
  10769. While updating a Data Collection Facility session record, the SPMILOG received 
  10770. a nonzero return code. 
  10771.  
  10772. Probable cause - Disk has been rendered unavailable. Hardware failure is 
  10773. possible but not likely. 
  10774.  
  10775. Make the disk available. 
  10776.  
  10777.  
  10778. ΓòÉΓòÉΓòÉ 10.118. SPM0274 ΓòÉΓòÉΓòÉ
  10779.  
  10780. .LOG file session record update error. 
  10781.  
  10782. While updating a Data Collection Facility session record, the SPMILOG received 
  10783. a nonzero return code. 
  10784.  
  10785. Probable cause - Disk has been rendered unavailable. Hardware failure is 
  10786. possible but not likely. 
  10787.  
  10788. Make the disk available. 
  10789.  
  10790.  
  10791. ΓòÉΓòÉΓòÉ 10.119. SPM0275 ΓòÉΓòÉΓòÉ
  10792.  
  10793. No additional function available; recording multiplier set to 1. 
  10794.  
  10795. The additional function used by the SPMILOG during summarization is not in the 
  10796. SPMSRV16.DLL file. 
  10797.  
  10798. Probable cause - installation error. 
  10799.  
  10800. Make sure the SPMSRV16.DLL file is the correct version number and is available 
  10801. to the SPMILOG. 
  10802.  
  10803.  
  10804. ΓòÉΓòÉΓòÉ 10.120. SPM0276 ΓòÉΓòÉΓòÉ
  10805.  
  10806. Connection monitor out of memory. 
  10807.  
  10808. The connection monitor thread was unable to obtain a segment for a work area. 
  10809.  
  10810. Probable cause - swap file is out of space. 
  10811.  
  10812. Increase the amount of space available to the SWAPPER.DAT file. 
  10813.  
  10814.  
  10815. ΓòÉΓòÉΓòÉ 10.121. SPM0277 ΓòÉΓòÉΓòÉ
  10816.  
  10817. Unable to start pipe service thread. 
  10818.  
  10819. The SPMILOG was unable to start a thread to service Data Collection Facility 
  10820. sessions. 
  10821.  
  10822. No action is necessary.  The SPMILOG should recover within 5 minutes. 
  10823.  
  10824.  
  10825. ΓòÉΓòÉΓòÉ 10.122. SPM0278 ΓòÉΓòÉΓòÉ
  10826.  
  10827. Move of sample data to .LOG buffer failed. 
  10828.  
  10829. No memory available for a .LOG file record buffer. 
  10830.  
  10831. Probable cause - shortage of swap space. 
  10832.  
  10833. Increase the amount of space available to the SWAPPER.DAT file. 
  10834.  
  10835.  
  10836. ΓòÉΓòÉΓòÉ 10.123. SPM0279 ΓòÉΓòÉΓòÉ
  10837.  
  10838. Duplicate node name (%1) specified. 
  10839.  
  10840. A node (workstation) name was specified more than once in a .LOG file. 
  10841.  
  10842. Probable error - the workstation name was specified twice in an SPMLOGF 
  10843. command. 
  10844.  
  10845. Create a new .LOG file with the correct workstation names. 
  10846.  
  10847.  
  10848. ΓòÉΓòÉΓòÉ 10.124. SPM0280 ΓòÉΓòÉΓòÉ
  10849.  
  10850. SPMAPIQuery pipe read error. 
  10851.  
  10852. The thread servicing an SPMAPIQuery pipe received a nonzero return code for a 
  10853. read. 
  10854.  
  10855. Probable cause - program at other end of pipe exited without notifying SPM/2 
  10856. API. 
  10857.  
  10858.  
  10859. ΓòÉΓòÉΓòÉ 10.125. SPM0281 ΓòÉΓòÉΓòÉ
  10860.  
  10861. SPMAPIQuery pipe multiplexer wait error. 
  10862.  
  10863. Internal Error. 
  10864.  
  10865.  
  10866. ΓòÉΓòÉΓòÉ 10.126. SPM0282 ΓòÉΓòÉΓòÉ
  10867.  
  10868. Unable to process a workstation name. 
  10869.  
  10870. The SPMILOG was unable to place a workstation name in a shared memory area. 
  10871.  
  10872. Probable cause - Too many workstations already being monitored. (There is not a 
  10873. specific upper limit.) 
  10874.  
  10875. Reduce the number of workstation names specified. 
  10876.  
  10877.  
  10878. ΓòÉΓòÉΓòÉ 10.127. SPM0283 ΓòÉΓòÉΓòÉ
  10879.  
  10880. Unable to allocate storage for thread monitor.  Return code = 
  10881.  
  10882. Insufficient available memory (64 kilobytes) for a thread stack. 
  10883.  
  10884. Probable cause - shortage of swap file space. 
  10885.  
  10886. Increase the amount of space available to the SWAPPER.DAT file. 
  10887.  
  10888.  
  10889. ΓòÉΓòÉΓòÉ 10.128. SPM0284 ΓòÉΓòÉΓòÉ
  10890.  
  10891. Thread start for %1 failed.  Return code = %2. 
  10892.  
  10893. The start thread process failed for the indicated thread with the indicated 
  10894. return code. 
  10895.  
  10896. Probable cause - shortage of memory. 
  10897.  
  10898. Check availability of swap space. 
  10899.  
  10900.  
  10901. ΓòÉΓòÉΓòÉ 10.129. SPM0289 ΓòÉΓòÉΓòÉ
  10902.  
  10903. Command not recognized - value is %1. 
  10904.  
  10905. Internal Error. 
  10906.  
  10907.  
  10908. ΓòÉΓòÉΓòÉ 10.130. SPM0290 ΓòÉΓòÉΓòÉ
  10909.  
  10910. NETBIOS query initialization failed.  Return code = %1. 
  10911.  
  10912. The SPMILOG was unable to initialize the NETBIOS interface. 
  10913.  
  10914. Probable cause - network related. 
  10915.  
  10916. Restart the network and retry the operation. 
  10917.  
  10918.  
  10919. ΓòÉΓòÉΓòÉ 10.131. SPM0291 ΓòÉΓòÉΓòÉ
  10920.  
  10921. .LOG file node information table record missing. 
  10922.  
  10923. The .LOG file is corrupted. 
  10924.  
  10925. Do not use it to start an SPMILOG session. 
  10926.  
  10927.  
  10928. ΓòÉΓòÉΓòÉ 10.132. SPM0292 ΓòÉΓòÉΓòÉ
  10929.  
  10930. .LOG file group list element record missing. 
  10931.  
  10932. The .LOG file is corrupted. 
  10933.  
  10934. Do not use it to start an SPMILOG session. 
  10935.  
  10936.  
  10937. ΓòÉΓòÉΓòÉ 10.133. SPM0293 ΓòÉΓòÉΓòÉ
  10938.  
  10939. .LOG file sample interval record missing. 
  10940.  
  10941. The .LOG file is corrupted. 
  10942.  
  10943. Do not use it to start an SPMILOG session. 
  10944.  
  10945.  
  10946. ΓòÉΓòÉΓòÉ 10.134. SPM0294 ΓòÉΓòÉΓòÉ
  10947.  
  10948. .LOG file contents directory record missing. 
  10949.  
  10950. The .LOG file is corrupted. 
  10951.  
  10952. Do not use it to start an SPMILOG session. 
  10953.  
  10954.  
  10955. ΓòÉΓòÉΓòÉ 10.135. SPM0295 ΓòÉΓòÉΓòÉ
  10956.  
  10957. Out of memory for DCF thread control blocks. 
  10958.  
  10959. There was insufficient memory for control blocks for the number of workstations 
  10960. specified in the .LOG file. 
  10961.  
  10962. Reduce the number of workstations specified. Increase the amount of space 
  10963. available to the SWAPPER.DAT file. 
  10964.  
  10965.  
  10966. ΓòÉΓòÉΓòÉ 10.136. SPM0296 ΓòÉΓòÉΓòÉ
  10967.  
  10968. Network workstation names present and network not installed. 
  10969.  
  10970. The .LOG file contains network workstation names but network software is not 
  10971. installed on the system. 
  10972.  
  10973.  
  10974. ΓòÉΓòÉΓòÉ 10.137. SPM0297 ΓòÉΓòÉΓòÉ
  10975.  
  10976. Network workstation names present and network not active. 
  10977.  
  10978. The .LOG file contains network workstation names, but the network is not 
  10979. active. 
  10980.  
  10981.  
  10982. ΓòÉΓòÉΓòÉ 10.138. SPM0298 ΓòÉΓòÉΓòÉ
  10983.  
  10984. Network workstation names present and network status (%1) unknown. 
  10985.  
  10986. The .LOG file contains network workstation names, but the network is not 
  10987. available. 
  10988.  
  10989.  
  10990. ΓòÉΓòÉΓòÉ 10.139. SPM0299 ΓòÉΓòÉΓòÉ
  10991.  
  10992. Query pipe DosRead return code. 
  10993.  
  10994. A nonzero return code was received from a read pipe operation. 
  10995.  
  10996. Probable cause - application using pipe exited without notifying SPM/2 API. 
  10997.  
  10998.  
  10999. ΓòÉΓòÉΓòÉ 10.140. SPM0300 ΓòÉΓòÉΓòÉ
  11000.  
  11001. Multiplexer wait unknown.  Return code = %1. 
  11002.  
  11003. Internal Error. 
  11004.  
  11005.  
  11006. ΓòÉΓòÉΓòÉ 10.141. SPM0301 ΓòÉΓòÉΓòÉ
  11007.  
  11008. RunDCF pipe read error.  Return code = %1. 
  11009.  
  11010. A thread servicing a Data Collection Facility received a nonzero return code on 
  11011. a pipe read. 
  11012.  
  11013. Probable cause - workstation running Data Collection Facility was turned off. 
  11014.  
  11015.  
  11016. ΓòÉΓòÉΓòÉ 10.142. SPM0302 ΓòÉΓòÉΓòÉ
  11017.  
  11018. RunDCF unexpected EOF on DCF pipe to %1. 
  11019.  
  11020. A thread servicing a Data Collection Facility received a end-of-file (EOF) 
  11021. condition on a pipe read. 
  11022.  
  11023. Probable cause - the Data Collection Facility was stopped by an SPMNBL /HALTALL 
  11024. command. 
  11025.  
  11026.  
  11027. ΓòÉΓòÉΓòÉ 10.143. SPM0303 ΓòÉΓòÉΓòÉ
  11028.  
  11029. Post of service list failed.  Return code = %1. 
  11030.  
  11031. Internal error. 
  11032.  
  11033.  
  11034. ΓòÉΓòÉΓòÉ 10.144. SPM0304 ΓòÉΓòÉΓòÉ
  11035.  
  11036. Unknown semaphore index - %1. 
  11037.  
  11038. Internal error. 
  11039.  
  11040.  
  11041. ΓòÉΓòÉΓòÉ 10.145. SPM0305 ΓòÉΓòÉΓòÉ
  11042.  
  11043. RunDCF pipe read error.  Return code = %1. 
  11044.  
  11045. A thread servicing a Data Collection Facility received a nonzero return code on 
  11046. a pipe read. 
  11047.  
  11048. Probable cause - workstation running Data Collection Facility was turned off. 
  11049.  
  11050.  
  11051. ΓòÉΓòÉΓòÉ 10.146. SPM0306 ΓòÉΓòÉΓòÉ
  11052.  
  11053. RunDCF pipe disconnect error.  Return code = %1. 
  11054.  
  11055. A nonzero return code was returned in response to a disconnect pipe call. 
  11056.  
  11057. Probable cause - network error. 
  11058.  
  11059.  
  11060. ΓòÉΓòÉΓòÉ 10.147. SPM0310 ΓòÉΓòÉΓòÉ
  11061.  
  11062. Allocation of global descriptor area space failed.  Return code = %1. 
  11063.  
  11064. There was not sufficient shared memory to build control blocks. 
  11065.  
  11066. Probable cause - too many Data Collection Facility or SPMILOG sessions already 
  11067. active. 
  11068.  
  11069. Reduce the number of active SPMILOG sessions and Data Collection Facility 
  11070. sessions. 
  11071.  
  11072.  
  11073. ΓòÉΓòÉΓòÉ 10.148. SPM0311 ΓòÉΓòÉΓòÉ
  11074.  
  11075. %1 ended abnormally.  Return code = %2. 
  11076.  
  11077. The SPMILOG using the indicated .LOG file has ended abnormally with the return 
  11078. code shown. 
  11079.  
  11080. Previous error messages indicate the cause of the abnormal end. 
  11081.  
  11082.  
  11083. ΓòÉΓòÉΓòÉ 10.149. SPM0312 ΓòÉΓòÉΓòÉ
  11084.  
  11085. Out of disk .LOG space. 
  11086.  
  11087. Make more disk space available for the .LOG. 
  11088.  
  11089.  
  11090. ΓòÉΓòÉΓòÉ 10.150. SPM0313 ΓòÉΓòÉΓòÉ
  11091.  
  11092. Disk full adding monitoring record. 
  11093.  
  11094. The disk filled when the SPMILOG session record was being written. 
  11095.  
  11096. Make more space available for the .LOG file. 
  11097.  
  11098.  
  11099. ΓòÉΓòÉΓòÉ 10.151. SPM0314 ΓòÉΓòÉΓòÉ
  11100.  
  11101. Disk error adding monitoring record. 
  11102.  
  11103. The SPMILOG obtained a nonzero return code while attempting to write the 
  11104. SPMILOG session record. 
  11105.  
  11106. Probable cause - Disk drive has become unavailable.  Hardware failure less 
  11107. likely but possible. 
  11108.  
  11109. Make sure disk drive is available and properly functioning. 
  11110.  
  11111.  
  11112. ΓòÉΓòÉΓòÉ 10.152. SPM0315 ΓòÉΓòÉΓòÉ
  11113.  
  11114. Disk full adding monitored record. 
  11115.  
  11116. The disk filled when a Data Collection Facility session record was being 
  11117. written. 
  11118.  
  11119. Make more space available for the .LOG file. 
  11120.  
  11121.  
  11122. ΓòÉΓòÉΓòÉ 10.153. SPM0316 ΓòÉΓòÉΓòÉ
  11123.  
  11124. Disk error adding monitored record. 
  11125.  
  11126. The SPMILOG obtained a nonzero return code while attempting to write a Data 
  11127. Collection Facility session record. 
  11128.  
  11129. Probable cause - Disk drive has become unavailable.  Hardware failure less 
  11130. likely but possible. 
  11131.  
  11132. Make sure that the disk drive is available and properly functioning. 
  11133.  
  11134.  
  11135. ΓòÉΓòÉΓòÉ 10.154. SPM0317 ΓòÉΓòÉΓòÉ
  11136.  
  11137. No segment available for pipe buffers. 
  11138.  
  11139. A request for a segment for pipe buffers failed. 
  11140.  
  11141. Probable cause - insufficient swap space. 
  11142.  
  11143. Increase the amount of space available to the SWAPPER.DAT file. 
  11144.  
  11145.  
  11146. ΓòÉΓòÉΓòÉ 10.155. SPM0318 ΓòÉΓòÉΓòÉ
  11147.  
  11148. No memory available for SPM/2 ordinal name tables. 
  11149.  
  11150. Probable cause - insufficient swap space. 
  11151.  
  11152. Increase the amount of space available to the SWAPPER.DAT file. 
  11153.  
  11154.  
  11155. ΓòÉΓòÉΓòÉ 10.156. SPM0319 ΓòÉΓòÉΓòÉ
  11156.  
  11157. SPMGetOrdNames unexpected return code = %1. 
  11158.  
  11159. Internal error, or the SPMSRV16.DLL file is missing or corrupted. 
  11160.  
  11161. Make sure the SPMSRV16.DLL file is available. 
  11162.  
  11163.  
  11164. ΓòÉΓòÉΓòÉ 10.157. SPM0320 ΓòÉΓòÉΓòÉ
  11165.  
  11166. No memory available for ordinal translation tables. 
  11167.  
  11168. Probable cause - insufficient swap space. 
  11169.  
  11170. Increase the amount of space available to the SWAPPER.DAT file. 
  11171.  
  11172.  
  11173. ΓòÉΓòÉΓòÉ 10.158. SPM0321 ΓòÉΓòÉΓòÉ
  11174.  
  11175. SPMGetOrdInfo unexpected return code = %1. 
  11176.  
  11177. Internal error, or the SPMSRV16.DLL file is missing or corrupted. 
  11178.  
  11179. Make sure the SPMSRV16.DLL file is available. 
  11180.  
  11181.  
  11182. ΓòÉΓòÉΓòÉ 10.159. SPM0322 ΓòÉΓòÉΓòÉ
  11183.  
  11184. Ordinal %1 not found - not sent to DCF.  SPMGetOrdInfo return code = %2. 
  11185.  
  11186. The ordinal number specified is not supported. 
  11187.  
  11188. For a .LOG file built with the command line interface, check the ordinal 
  11189. numbers.  For a .LOG file built with the panel interface, check the list of 
  11190. available resources in the panel interface. 
  11191.  
  11192.  
  11193. ΓòÉΓòÉΓòÉ 10.160. SPM0323 ΓòÉΓòÉΓòÉ
  11194.  
  11195. Error writing translation table to pipe.  Return code = %1. 
  11196.  
  11197. The SPMILOG received a nonzero return code for a pipe write while initializing 
  11198. a Data Collection Facility. 
  11199.  
  11200. Probable causes: 
  11201.  
  11202.  o Workstation running Data Collection Facility was turned off during 
  11203.    initialization 
  11204.  o Network failure. 
  11205.  
  11206.  Investigate status of Data Collection Facility. 
  11207.  
  11208.  
  11209. ΓòÉΓòÉΓòÉ 10.161. SPM0324 ΓòÉΓòÉΓòÉ
  11210.  
  11211. Error reading response to translation table.  Return code = %1. 
  11212.  
  11213. The SPMILOG received a nonzero return code for a pipe read while initializing a 
  11214. Data Collection Facility. 
  11215.  
  11216. Probable causes: 
  11217.  
  11218.  o Workstation running Data Collection Facility was turned off during 
  11219.    initialization 
  11220.  o Network failure. 
  11221.  
  11222.  Investigate status of Data Collection Facility. 
  11223.  
  11224.  
  11225. ΓòÉΓòÉΓòÉ 10.162. SPM0325 ΓòÉΓòÉΓòÉ
  11226.  
  11227. Pipe write error configuring DCF.  Return code = %1. 
  11228.  
  11229. The SPMILOG received a nonzero return code for a pipe write while initializing 
  11230. a Data Collection Facility. 
  11231.  
  11232. Probable causes: 
  11233.  
  11234.  o Workstation running Data Collection Facility was turned off during 
  11235.    initialization 
  11236.  o Network failure. 
  11237.  
  11238.  Investigate status of Data Collection Facility. 
  11239.  
  11240.  
  11241. ΓòÉΓòÉΓòÉ 10.163. SPM0326 ΓòÉΓòÉΓòÉ
  11242.  
  11243. Pipe read error configuring DCF.  Return code = %1. 
  11244.  
  11245. The SPMILOG received a nonzero return code for a pipe read while initializing a 
  11246. Data Collection Facility. 
  11247.  
  11248. Probable causes: 
  11249.  
  11250.  o Workstation running Data Collection Facility was turned off during 
  11251.    initialization 
  11252.  o Network failure. 
  11253.  
  11254.  Investigate status of Data Collection Facility. 
  11255.  
  11256.  
  11257. ΓòÉΓòÉΓòÉ 10.164. SPM0327 ΓòÉΓòÉΓòÉ
  11258.  
  11259. SPMAPIQuery pipe out of memory. 
  11260.  
  11261. There was insufficient memory to start a thread to service a query request. 
  11262.  
  11263. Probable cause - insufficient swap space. 
  11264.  
  11265. Increase the amount of space available to the SWAPPER.DAT file. 
  11266.  
  11267.  
  11268. ΓòÉΓòÉΓòÉ 10.165. SPM0328 ΓòÉΓòÉΓòÉ
  11269.  
  11270. SPMAPIQuery pipe unable to buffer user record. 
  11271.  
  11272. The response to a query exceeded the memory available for buffering it. 
  11273.  
  11274. Probable cause - insufficient swap file space. 
  11275.  
  11276. Increase the amount of space available to the SWAPPER.DAT file. 
  11277.  
  11278.  
  11279. ΓòÉΓòÉΓòÉ 10.166. SPM0351 ΓòÉΓòÉΓòÉ
  11280.  
  11281. Unexpected EOF on pipe. 
  11282.  
  11283. While performing a pipe read the Data Collection Facility received an EOF 
  11284. return code. 
  11285.  
  11286. Probable cause - the SPMILOG terminated prematurely as the result of a HALTALL 
  11287. command or a software or hardware failure. 
  11288.  
  11289. Determine the cause of the SPMILOG termination and correct it. 
  11290.  
  11291.  
  11292. ΓòÉΓòÉΓòÉ 10.167. SPM0353 ΓòÉΓòÉΓòÉ
  11293.  
  11294. Shutdown command generated locally. 
  11295.  
  11296. The Data Collection Facility detected an error condition and has signaled its 
  11297. threads to shut down. 
  11298.  
  11299. Probable cause - the pipe to the SPMILOG has broken. 
  11300.  
  11301. Previous messages will have occurred indicating the specific error. Correct it 
  11302. and resume. 
  11303.  
  11304.  
  11305. ΓòÉΓòÉΓòÉ 10.168. SPM0354 ΓòÉΓòÉΓòÉ
  11306.  
  11307. Command received via pipe not recognized %1. 
  11308.  
  11309. Internal error. 
  11310.  
  11311.  
  11312. ΓòÉΓòÉΓòÉ 10.169. SPM0356 ΓòÉΓòÉΓòÉ
  11313.  
  11314. Unable to construct semaphore.  AllocateSemaphore return code =  %1. 
  11315.  
  11316. OS/2 system was unable to create a semaphore requested by the Data Collection 
  11317. Facility. Probable cause - overload of OS/2 resources. 
  11318.  
  11319. Reduce load on the system. 
  11320.  
  11321.  
  11322. ΓòÉΓòÉΓòÉ 10.170. SPM0357 ΓòÉΓòÉΓòÉ
  11323.  
  11324. Out of memory constructing group list. 
  11325.  
  11326. There was insufficient memory to construct group list.  Probable cause - 
  11327. insufficient swap space. 
  11328.  
  11329. Increase the amount of space available to the SWAPPER.DAT file. 
  11330.  
  11331.  
  11332. ΓòÉΓòÉΓòÉ 10.171. SPM0358 ΓòÉΓòÉΓòÉ
  11333.  
  11334. Out of memory building thread stop acknowledgement. 
  11335.  
  11336. There was insufficient memory to allocate a stop acknowledgement buffer. 
  11337. Probable cause - insufficient swap space. 
  11338.  
  11339. Increase the amount of space available to the SWAPPER.DAT file. 
  11340.  
  11341.  
  11342. ΓòÉΓòÉΓòÉ 10.172. SPM0359 ΓòÉΓòÉΓòÉ
  11343.  
  11344. DLL %1 not available. 
  11345.  
  11346. The SPMSRVFS.DLL file was not found.  Probable cause - installation or 
  11347. configuration error. 
  11348.  
  11349. Review the LIBPATH statement in the CONFIG.SYS file and ensure that the 
  11350. SPMSRVFS.DLL file is in the path. 
  11351.  
  11352.  
  11353. ΓòÉΓòÉΓòÉ 10.173. SPM0361 ΓòÉΓòÉΓòÉ
  11354.  
  11355. Ordinal number %1 specified in group list element number %2 not found. 
  11356.  
  11357. Samples cannot be collected for the ordinal number indicated because the tables 
  11358. for the ordinal were not supplied by the SPMILOG.  Probable cause - using a 
  11359. .LOG file with a different SPMAPP.INI file than the one against which the .LOG 
  11360. file was created. 
  11361.  
  11362. Install the correct metric definition file on the workstation on which you want 
  11363. to use the .LOG file. 
  11364.  
  11365.  
  11366. ΓòÉΓòÉΓòÉ 10.174. SPM0363 ΓòÉΓòÉΓòÉ
  11367.  
  11368. Ordinal type %1 not recognized. 
  11369.  
  11370. The ordinal type was not recognized.  Probable cause - a mismatch between the 
  11371. versions of the Data Collection Facility and SPMILOG. 
  11372.  
  11373. Make sure all the SPM/2 components are from compatible versions. 
  11374.  
  11375.  
  11376. ΓòÉΓòÉΓòÉ 10.175. SPM0364 ΓòÉΓòÉΓòÉ
  11377.  
  11378. Pipe buffer size (%1) is smaller than sum of fixed sample lengths (%2). 
  11379.  
  11380. An internal error has occurred. 
  11381.  
  11382.  
  11383. ΓòÉΓòÉΓòÉ 10.176. SPM0365 ΓòÉΓòÉΓòÉ
  11384.  
  11385. Unable to activate OS/2 kernel message queue.  Return code = %1. 
  11386.  
  11387. OS/2 kernel returned an error code to an attempt to activate the message queue. 
  11388.  
  11389.  
  11390. ΓòÉΓòÉΓòÉ 10.177. SPM0366 ΓòÉΓòÉΓòÉ
  11391.  
  11392. OS/2 kernel message queue size error.  Return code = %1. 
  11393.  
  11394. OS/2 kernel returned an error code to a request for the message queue size. 
  11395.  
  11396.  
  11397. ΓòÉΓòÉΓòÉ 10.178. SPM0367 ΓòÉΓòÉΓòÉ
  11398.  
  11399. No memory for OS/2 kernel message queue - instance collection disabled. 
  11400.  
  11401. There was insufficient memory to buffer the OS/2 kernel message queue. Probable 
  11402. cause - insufficient swap space. 
  11403.  
  11404. Increase the amount of space available to the SWAPPER.DAT file. 
  11405.  
  11406.  
  11407. ΓòÉΓòÉΓòÉ 10.179. SPM0368 ΓòÉΓòÉΓòÉ
  11408.  
  11409. Collection time exceeded sample interval by %1 milliseconds. 
  11410.  
  11411. The sample interval is too short to collect all the samples. Increase the 
  11412. sample interval or reduce the number of items being collected. 
  11413.  
  11414.  
  11415. ΓòÉΓòÉΓòÉ 10.180. SPM0369 ΓòÉΓòÉΓòÉ
  11416.  
  11417. Higher priority processing has prevented the collection of %1 sample(s). 
  11418.  
  11419. A very high priority process has prevented the dispatch of the Data Collection 
  11420. Facility for a period longer than a sample interval. 
  11421.  
  11422. Use SPM/2 to isolate the offending process and remove it from the system. 
  11423.  
  11424.  
  11425. ΓòÉΓòÉΓòÉ 10.181. SPM0370 ΓòÉΓòÉΓòÉ
  11426.  
  11427. The collection timer mechanism has malfunctioned. 
  11428.  
  11429. An internal error has occurred. 
  11430.  
  11431.  
  11432. ΓòÉΓòÉΓòÉ 10.182. SPM0371 ΓòÉΓòÉΓòÉ
  11433.  
  11434. Unable to notify SPMILOG of shutdown. 
  11435.  
  11436. The pipe to the SPMILOG has become unavailable during the shutdown process. 
  11437. Probable cause - SPMISTOP /HALT command was issued to SPMILOG. 
  11438.  
  11439.  
  11440. ΓòÉΓòÉΓòÉ 10.183. SPM0372 ΓòÉΓòÉΓòÉ
  11441.  
  11442. A maximum of %1 messages were required to transport a single sample. 
  11443.  
  11444. The data in a single sample interval has exceeded the size of a pipe buffer. 
  11445.  
  11446. No action is necessary.  The data is transported by successive messages. 
  11447.  
  11448.  
  11449. ΓòÉΓòÉΓòÉ 10.184. SPM0374 ΓòÉΓòÉΓòÉ
  11450.  
  11451. Group name %1 not found. 
  11452.  
  11453. An ordinal specified a group name that OS/2 kernel did not have registered. 
  11454.  
  11455. Probable causes: 
  11456.  
  11457.  o Group is not registered because it will be registered at a later time by an 
  11458.    application 
  11459.  o Name is for an uninstalled device driver 
  11460.  o .LOG file was configured for all possible groups but not all groups are 
  11461.    installed on the workstation being monitored. 
  11462.  
  11463.  
  11464. ΓòÉΓòÉΓòÉ 10.185. SPM0375 ΓòÉΓòÉΓòÉ
  11465.  
  11466. Text block name %1 in group %2 not found. 
  11467.  
  11468. Collection was specified for the text and block indicated.  It cannot be 
  11469. collected because the text block is not contained in the group. This would be 
  11470. normal for a superset definition but may be an error. 
  11471.  
  11472. Determine if the definition is a superset.  If not, correct the definition with 
  11473. the user metrics. 
  11474.  
  11475.  
  11476. ΓòÉΓòÉΓòÉ 10.186. SPM0377 ΓòÉΓòÉΓòÉ
  11477.  
  11478. Allocation of sample point type %1 not supported. 
  11479.  
  11480. An internal error has occurred. 
  11481.  
  11482.  
  11483. ΓòÉΓòÉΓòÉ 10.187. SPM0381 ΓòÉΓòÉΓòÉ
  11484.  
  11485. No memory for text list - 1. 
  11486.  
  11487. Insufficient memory to build a list of OS/2 kernel text blocks.  Probable cause 
  11488. - insufficient swap space. 
  11489.  
  11490. Increase the amount of space available to the SWAPPER.DAT file. 
  11491.  
  11492.  
  11493. ΓòÉΓòÉΓòÉ 10.188. SPM0382 ΓòÉΓòÉΓòÉ
  11494.  
  11495. No memory for text list - 2. 
  11496.  
  11497. Insufficient memory to build a list of OS/2 kernel text blocks.  Probable cause 
  11498. - insufficient swap space. 
  11499.  
  11500. Increase the amount of space available to the SWAPPER.DAT file. 
  11501.  
  11502.  
  11503. ΓòÉΓòÉΓòÉ 10.189. SPM0383 ΓòÉΓòÉΓòÉ
  11504.  
  11505. Sample point not allocated. 
  11506.  
  11507. Insufficient memory to build a sample point.  Probable cause - insufficient 
  11508. swap space. 
  11509.  
  11510. Increase the amount of space available to the SWAPPER.DAT file. 
  11511.  
  11512.  
  11513. ΓòÉΓòÉΓòÉ 10.190. SPM0384 ΓòÉΓòÉΓòÉ
  11514.  
  11515. OS/2 kernel data error.  Instance name not in sample. 
  11516.  
  11517. An internal error has occurred. 
  11518.  
  11519.  
  11520. ΓòÉΓòÉΓòÉ 10.191. SPM0385 ΓòÉΓòÉΓòÉ
  11521.  
  11522. The OS/2 kernel message queue has overflowed - data lost. 
  11523.  
  11524. More data was generated in a sample interval than fit in the OS/2 kernel 
  11525. message queue. 
  11526.  
  11527. Reduce the sample interval. 
  11528.  
  11529.  
  11530. ΓòÉΓòÉΓòÉ 10.192. SPM0386 ΓòÉΓòÉΓòÉ
  11531.  
  11532. Unknown type %1 in OS/2 kernel message queue. 
  11533.  
  11534. An internal error has occurred. 
  11535.  
  11536.  
  11537. ΓòÉΓòÉΓòÉ 10.193. SPM0387 ΓòÉΓòÉΓòÉ
  11538.  
  11539. Warning:  OS/2 kernel message queue not active. 
  11540.  
  11541. The messages were expected but not found in the message queue. 
  11542.  
  11543.  
  11544. ΓòÉΓòÉΓòÉ 10.194. SPM0389 ΓòÉΓòÉΓòÉ
  11545.  
  11546. Unknown sample point type %1 encountered. 
  11547.  
  11548. A sample point of unknown type was specified for collection.  Probable cause - 
  11549. mismatch of versions of SPM/2 components. 
  11550.  
  11551. Review the installation and configuration.  Ensure that all components are from 
  11552. compatible releases. 
  11553.  
  11554.  
  11555. ΓòÉΓòÉΓòÉ 10.195. SPM0390 ΓòÉΓòÉΓòÉ
  11556.  
  11557. Unknown sample point type %1 encountered. 
  11558.  
  11559. A sample point of unknown type was specified for collection.  Probable cause - 
  11560. mismatch of versions of SPM/2 components. 
  11561.  
  11562. Review the installation and configuration.  Ensure that all components are from 
  11563. compatible releases. 
  11564.  
  11565.  
  11566. ΓòÉΓòÉΓòÉ 10.196. SPM0391 ΓòÉΓòÉΓòÉ
  11567.  
  11568. DosWaitThread return code = %1. 
  11569.  
  11570. An internal error has occurred. 
  11571.  
  11572.  
  11573. ΓòÉΓòÉΓòÉ 10.197. SPM0392 ΓòÉΓòÉΓòÉ
  11574.  
  11575. Service function %1 is specified but is not in the SPMSRVFS.DLL.  Return code = 
  11576. %2. 
  11577.  
  11578. The function name is specified by the ordinal number but is not available in 
  11579. the SPMSRVFS.DLL.  Probable cause - mismatch among versions of SPM/2 
  11580. components. 
  11581.  
  11582. Review the installation and configuration.  Ensure that all components are from 
  11583. compatible releases. 
  11584.  
  11585.  
  11586. ΓòÉΓòÉΓòÉ 10.198. SPM0394 ΓòÉΓòÉΓòÉ
  11587.  
  11588. Pipe availability wait period not available or in error - default to indefinite 
  11589. wait. 
  11590.  
  11591. The message file is unavailable or in error.  An internal error has occurred. 
  11592.  
  11593. Review the installation, configuration, and DPATH to ensure message file is 
  11594. available. 
  11595.  
  11596.  
  11597. ΓòÉΓòÉΓòÉ 10.199. SPM0396 ΓòÉΓòÉΓòÉ
  11598.  
  11599. Insufficient memory to build ordinal translation table - ordinal discarded. 
  11600.  
  11601. Probable cause - insufficient swap space. 
  11602.  
  11603. Increase the amount of space available to the SWAPPER.DAT file. 
  11604.  
  11605.  
  11606. ΓòÉΓòÉΓòÉ 10.200. SPM0397 ΓòÉΓòÉΓòÉ
  11607.  
  11608. Insufficient memory to add to inactive item list. 
  11609.  
  11610. Probable cause - insufficient swap space. 
  11611.  
  11612. Increase the amount of space available to the SWAPPER.DAT file. 
  11613.  
  11614.  
  11615. ΓòÉΓòÉΓòÉ 10.201. SPM0398 ΓòÉΓòÉΓòÉ
  11616.  
  11617. Insufficient memory to register user group dynamically. 
  11618.  
  11619. Probable cause - insufficient swap space. 
  11620.  
  11621. Increase the amount of space available to the SWAPPER.DAT file. 
  11622.  
  11623.  
  11624. ΓòÉΓòÉΓòÉ 10.202. SPM0400 ΓòÉΓòÉΓòÉ
  11625.  
  11626. THESEUS2 cannot be started because the message queue is not available. 
  11627.  
  11628. An internal error has occurred. 
  11629.  
  11630.  
  11631. ΓòÉΓòÉΓòÉ 10.203. SPM0403 ΓòÉΓòÉΓòÉ
  11632.  
  11633. Error loading THESEUS2 start string. 
  11634.  
  11635. The message file is unavailable or in error. 
  11636.  
  11637. Review the installation, configuration, and DPATH to ensure message file is 
  11638. available. 
  11639.  
  11640.  
  11641. ΓòÉΓòÉΓòÉ 10.204. SPM0404 ΓòÉΓòÉΓòÉ
  11642.  
  11643. DosExecPgm of THESEUS2 failed.  Return code = %1. 
  11644.  
  11645. Probable cause - SPMWS.EXE not in path. 
  11646.  
  11647. Ensure that the SPMWS.EXE file is in the path. 
  11648.  
  11649.  
  11650. ΓòÉΓòÉΓòÉ 10.205. SPM0405 ΓòÉΓòÉΓòÉ
  11651.  
  11652. Error loading THESEUS2 stop string. 
  11653.  
  11654. The message file is unavailable or in error. 
  11655.  
  11656. Review the installation, configuration and DPATH to ensure message file is 
  11657. available. 
  11658.  
  11659.  
  11660. ΓòÉΓòÉΓòÉ 10.206. SPM0407 ΓòÉΓòÉΓòÉ
  11661.  
  11662. InsertSamplePoint error - point already exists. 
  11663.  
  11664. An internal error has occurred. 
  11665.  
  11666.  
  11667. ΓòÉΓòÉΓòÉ 10.207. SPM0408 ΓòÉΓòÉΓòÉ
  11668.  
  11669. Sample point list size exceeded. 
  11670.  
  11671. More than 4096 active sample points have accumulated.  Probable cause - 
  11672. extremely large number of open files or extremely long sample interval. 
  11673.  
  11674. Reduce sample interval and number of open files. 
  11675.  
  11676.  
  11677. ΓòÉΓòÉΓòÉ 10.208. SPM0450 ΓòÉΓòÉΓòÉ
  11678.  
  11679. Have initiated stop of DCF %1, and broken the pipe to it. 
  11680.  
  11681. A collection thread has encountered a problem and has broken its connection to 
  11682. a Data Collection Facility. 
  11683.  
  11684. Examine preceding error messages and take appropriate action. 
  11685.  
  11686.  
  11687. ΓòÉΓòÉΓòÉ 10.209. SPM0501 ΓòÉΓòÉΓòÉ
  11688.  
  11689. DosFileLocks received a nonzero return code. 
  11690.  
  11691. An internal error has occurred. 
  11692.  
  11693.  
  11694. ΓòÉΓòÉΓòÉ 10.210. SPM0502 ΓòÉΓòÉΓòÉ
  11695.  
  11696. CreateThread cannot add an entry to the thread table. 
  11697.  
  11698. More than 200 threads are active.  Probable cause - internal error. 
  11699.  
  11700.  
  11701. ΓòÉΓòÉΓòÉ 10.211. SPM0503 ΓòÉΓòÉΓòÉ
  11702.  
  11703. DosAllocSeg for thread stack failed. 
  11704.  
  11705. Probable cause - insufficient swap space. 
  11706.  
  11707. Increase the amount of space available to the SWAPPER.DAT file. 
  11708.  
  11709.  
  11710. ΓòÉΓòÉΓòÉ 10.212. SPM0504 ΓòÉΓòÉΓòÉ
  11711.  
  11712. DosCreateThread failed. 
  11713.  
  11714. The SPMILOG was unable to start a thread due to a previously noted error or an 
  11715. OS/2 problem. 
  11716.  
  11717. Examine the return code shown and the preceding error messages and take 
  11718. appropriate action. 
  11719.  
  11720.  
  11721. ΓòÉΓòÉΓòÉ 10.213. SPM0505 ΓòÉΓòÉΓòÉ
  11722.  
  11723. Connection monitor write to NETBIOS listener queue failed. 
  11724.  
  11725. A write to the queue connecting to the local NETBIOS listener has failed. 
  11726. Probable cause - termination and restart of NETBIOS listener. 
  11727.  
  11728. No action is necessary.  Recovery logic will correct problem. 
  11729.  
  11730.  
  11731. ΓòÉΓòÉΓòÉ 10.214. SPM0506 ΓòÉΓòÉΓòÉ
  11732.  
  11733. QueryPipe connection attempt failed. 
  11734.  
  11735. The SPMILOG was unable to establish a wait for a query connection after 
  11736. multiple tries.  The return code shows the reason.  Probable cause - lack of 
  11737. network resources. 
  11738.  
  11739. Check network configuration. 
  11740.  
  11741.  
  11742. ΓòÉΓòÉΓòÉ 10.215. SPM0507 ΓòÉΓòÉΓòÉ
  11743.  
  11744. QueryPipe write error. 
  11745.  
  11746. An SPMILOG pipe write in response to a query received a nonzero return code. 
  11747. Probable cause - application making query terminated without notifying SPM/2 
  11748. API. 
  11749.  
  11750.  
  11751. ΓòÉΓòÉΓòÉ 10.216. SPM0508 ΓòÉΓòÉΓòÉ
  11752.  
  11753. QueryPipe Multiplexer wait index error. 
  11754.  
  11755. An internal error has occurred. 
  11756.  
  11757.  
  11758. ΓòÉΓòÉΓòÉ 10.217. SPM0509 ΓòÉΓòÉΓòÉ
  11759.  
  11760. RunDCF - Unable to connect named pipe. Return code = %1.  This thread will 
  11761. terminate and relaunch. 
  11762.  
  11763. The SPMILOG was unable to establish a wait for a Data Collection Facility 
  11764. connection after multiple tries.  The return code shows the reason.  Probable 
  11765. cause - lack of network resources. 
  11766.  
  11767. Check network configuration. 
  11768.  
  11769.  
  11770. ΓòÉΓòÉΓòÉ 10.218. SPM0510 ΓòÉΓòÉΓòÉ
  11771.  
  11772. Multiple wait unknown return code. 
  11773.  
  11774. An internal error has occurred. 
  11775.  
  11776.  
  11777. ΓòÉΓòÉΓòÉ 10.219. SPM0511 ΓòÉΓòÉΓòÉ
  11778.  
  11779. StopDCFThread pipe write error. 
  11780.  
  11781. A nonzero return code was returned to a write pipe operation. Probable causes: 
  11782.  
  11783.  o Premature termination of Data Collection Facility 
  11784.  o Workstation running Data Collection Facility was turned off 
  11785.  o Data Collection Facility was stopped with an SPMNBL /HALTALL command 
  11786.  o Network error. 
  11787.  
  11788.  Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11789.  and take appropriate corrections. 
  11790.  
  11791.  
  11792. ΓòÉΓòÉΓòÉ 10.220. SPM0512 ΓòÉΓòÉΓòÉ
  11793.  
  11794. StopDCFThread pipe read error. 
  11795.  
  11796. A nonzero return code was returned to a read pipe operation. Probable causes: 
  11797.  
  11798.  o Premature termination of Data Collection Facility 
  11799.  o Workstation running Data Collection Facility was turned off 
  11800.  o Data Collection Facility was stopped with an SPMNBL /HALTALL command 
  11801.  o Network error. 
  11802.  
  11803.  Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11804.  and take appropriate corrections. 
  11805.  
  11806.  
  11807. ΓòÉΓòÉΓòÉ 10.221. SPM0513 ΓòÉΓòÉΓòÉ
  11808.  
  11809. DeconfigureDCF pipe write error. 
  11810.  
  11811. A nonzero return code was returned to a write pipe operation. Probable causes: 
  11812.  
  11813.  o Premature termination of Data Collection Facility 
  11814.  o Workstation running Data Collection Facility was turned off 
  11815.  o Data Collection Facility was stopped with an SPMNBL /HALTALL command 
  11816.  o Network error. 
  11817.  Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11818.  and take appropriate corrections. 
  11819.  
  11820.  
  11821. ΓòÉΓòÉΓòÉ 10.222. SPM0514 ΓòÉΓòÉΓòÉ
  11822.  
  11823. StopDCF pipe write error 
  11824.  
  11825. A nonzero return code was returned to a write pipe operation. Probable causes: 
  11826.  
  11827.  o Premature termination of Data Collection Facility 
  11828.  o Workstation running Data Collection Facility was turned off 
  11829.  o Data Collection Facility was stopped with an SPMNBL /HALTALL command 
  11830.  o Network error. 
  11831.  
  11832.  Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11833.  and take appropriate corrections. 
  11834.  
  11835.  
  11836. ΓòÉΓòÉΓòÉ 10.223. SPM0515 ΓòÉΓòÉΓòÉ
  11837.  
  11838. StopDCF pipe read error 
  11839.  
  11840. A nonzero return code was returned to a read pipe operation. Probable causes: 
  11841.  
  11842.  o Premature termination of Data Collection Facility 
  11843.  o Workstation running Data Collection Facility was turned off 
  11844.  o Data Collection Facility was stopped with an SPMNBL /HALTALL command 
  11845.  o Network error. 
  11846.  
  11847.  Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11848.  and take appropriate corrections. 
  11849.  
  11850.  
  11851. ΓòÉΓòÉΓòÉ 10.224. SPM0517 ΓòÉΓòÉΓòÉ
  11852.  
  11853. Disklog multiple wait unknown return code. 
  11854.  
  11855. An internal error has occurred. 
  11856.  
  11857.  
  11858. ΓòÉΓòÉΓòÉ 10.225. SPM0518 ΓòÉΓòÉΓòÉ
  11859.  
  11860. SPMAPIGetData:  Unable to connect named pipe. 
  11861.  
  11862. The SPMILOG was unable to establish a wait for a real-time pipe connection 
  11863. after multiple tries.  The return code shows the reason. Probable cause - lack 
  11864. of network resources. 
  11865.  
  11866. Check network configuration. 
  11867.  
  11868.  
  11869. ΓòÉΓòÉΓòÉ 10.226. SPM0519 ΓòÉΓòÉΓòÉ
  11870.  
  11871. ExtendWrite: Doswrite to disk failed. 
  11872.  
  11873. An attempt to add data to the end of the log file failed for a previously noted 
  11874. reason. 
  11875.  
  11876. Examine previous error messages in the SPMSNAP.ERR file and take appropriate 
  11877. action. 
  11878.  
  11879.  
  11880. ΓòÉΓòÉΓòÉ 10.227. SPM0520 ΓòÉΓòÉΓòÉ
  11881.  
  11882. ExtendWrite: A DosWrite has failed because the disk is full. 
  11883.  
  11884. There is not sufficient space on the disk to add more data to the log file. 
  11885.  
  11886. Make more space available on the disk. 
  11887.  
  11888.  
  11889. ΓòÉΓòÉΓòÉ 10.228. SPM0521 ΓòÉΓòÉΓòÉ
  11890.  
  11891. Monitored session record write error. 
  11892.  
  11893. A disk error occurred while writing a DCF session record to the .LOG file. 
  11894.  
  11895. Examine the SPMSNAP.ERR file for additional related errors. 
  11896.  
  11897.  
  11898. ΓòÉΓòÉΓòÉ 10.229. SPM0522 ΓòÉΓòÉΓòÉ
  11899.  
  11900. PostDiskLog: Unable to allocate memory for a buffer. 
  11901.  
  11902. Probable cause - insufficient swap space. 
  11903.  
  11904. Increase the amount of space available to the SWAPPER.DAT file. 
  11905.  
  11906.  
  11907. ΓòÉΓòÉΓòÉ 10.230. SPM0523 ΓòÉΓòÉΓòÉ
  11908.  
  11909. Unable to allocate memory for a group summary element. 
  11910.  
  11911. Probable cause - insufficient swap space. 
  11912.  
  11913. Increase the amount of space available to the SWAPPER.DAT file. 
  11914.  
  11915.  
  11916. ΓòÉΓòÉΓòÉ 10.231. SPM0524 ΓòÉΓòÉΓòÉ
  11917.  
  11918. SrchPollList returned an error code 
  11919.  
  11920. An internal error has occurred. 
  11921.  
  11922.  
  11923. ΓòÉΓòÉΓòÉ 10.232. SPM0525 ΓòÉΓòÉΓòÉ
  11924.  
  11925. ConvertToOffsetForm called with a null pointer. 
  11926.  
  11927. An internal error has occurred. 
  11928.  
  11929.  
  11930. ΓòÉΓòÉΓòÉ 10.233. SPM0526 ΓòÉΓòÉΓòÉ
  11931.  
  11932. DeconfigureDCF pipe read error. 
  11933.  
  11934. A nonzero return code was returned to a read pipe operation. Probable cause - 
  11935. premature termination of Data Collection Facility, workstation running Data 
  11936. Collection Facility was turned off, the Data Collection Facility was stopped 
  11937. with an SPMNBL /HALTALL command or a network error occurred. 
  11938.  
  11939. Examine the SPMSNAP.ERR file from workstation running Data Collection Facility 
  11940. and take appropriate corrections. 
  11941.  
  11942.  
  11943. ΓòÉΓòÉΓòÉ 10.234. SPM0528 ΓòÉΓòÉΓòÉ
  11944.  
  11945. RunDCF:  Argument Count = 0.  No strings in logon message. 
  11946.  
  11947. An internal error has occurred. 
  11948.  
  11949.  
  11950. ΓòÉΓòÉΓòÉ 10.235. SPM0529 ΓòÉΓòÉΓòÉ
  11951.  
  11952. RunDCF: Logon rejected.  DCF attempted to connect to incorrect SPMILOG. 
  11953.  
  11954. A Data Collection Facility attempted to connect to an SPMILOG that did not 
  11955. start it.  Probable cause - A Data Collection Facility was in error recovery 
  11956. when its owning SPMILOG terminated.  Subsequently another SPMILOG with the same 
  11957. network name started. 
  11958.  
  11959. No action is necessary.  The offending Data Collection Facility will timeout. 
  11960.  
  11961.  
  11962. ΓòÉΓòÉΓòÉ 10.236. SPM0530 ΓòÉΓòÉΓòÉ
  11963.  
  11964. Pipe read, bytes read. 
  11965.  
  11966. An internal error has occurred. 
  11967.  
  11968.  
  11969. ΓòÉΓòÉΓòÉ 10.237. SPM0531 ΓòÉΓòÉΓòÉ
  11970.  
  11971. RunDCF:  Unable to read logon pipe.  Disconnecting before logon.  Return code = 
  11972.  
  11973. A network or Data Collection Facility error has occurred. 
  11974.  
  11975.  
  11976. ΓòÉΓòÉΓòÉ 10.238. SPM0532 ΓòÉΓòÉΓòÉ
  11977.  
  11978. RunDCF:  Unable to make named pipe after 10 tries.  This thread will terminate 
  11979. and relaunch. 
  11980.  
  11981. The network is temporarily out of resources. 
  11982.  
  11983. No action is necessary.  The SPMILOG will keep trying to connect. 
  11984.  
  11985.  
  11986. ΓòÉΓòÉΓòÉ 10.239. SPM0533 ΓòÉΓòÉΓòÉ
  11987.  
  11988. RunDCF:  Unable to connect named pipe.  This thread will terminate and 
  11989. relaunch. 
  11990.  
  11991. The network is temporarily out of resources. 
  11992.  
  11993. No action is necessary.  The SPMILOG will keep trying to connect. 
  11994.  
  11995.  
  11996. ΓòÉΓòÉΓòÉ 10.240. SPM0600 ΓòÉΓòÉΓòÉ
  11997.  
  11998. RunDCF:  Summarization out of memory. 
  11999.  
  12000. Probable cause - insufficient swap space. 
  12001.  
  12002. Increase the amount of space available to the SWAPPER.DAT file. 
  12003.  
  12004.  
  12005. ΓòÉΓòÉΓòÉ 10.241. SPM0602 ΓòÉΓòÉΓòÉ
  12006.  
  12007. [DtctSem] contents of %1. 
  12008.  
  12009. An internal error has occurred. 
  12010.  
  12011.  
  12012. ΓòÉΓòÉΓòÉ 10.242. SPM0603 ΓòÉΓòÉΓòÉ
  12013.  
  12014. [DtctSem] %1 is %2 
  12015.  
  12016. An internal error has occurred. 
  12017.  
  12018.  
  12019. ΓòÉΓòÉΓòÉ 10.243. SPM1501 ΓòÉΓòÉΓòÉ
  12020.  
  12021. SPMAPI:  FixLog - damaged .LOG repaired. 
  12022.  
  12023. The API was able to recover a .LOG file that was incorrectly closed by a prior 
  12024. collection. 
  12025.  
  12026. Run a report on the session that was incorrectly closed to determine how much, 
  12027. if any, collection data was lost. 
  12028.  
  12029.  
  12030. ΓòÉΓòÉΓòÉ 10.244. SPM1601 ΓòÉΓòÉΓòÉ
  12031.  
  12032. NBQRQMgr:  Failed on preread. 
  12033.  
  12034. An invalid internal message was detected. Stop all SPM/2 components and restart 
  12035. SPM/2. 
  12036.  
  12037.  
  12038. ΓòÉΓòÉΓòÉ 10.245. SPM1602 ΓòÉΓòÉΓòÉ
  12039.  
  12040. NBQRQMgr:  LL field incorrect value. 
  12041.  
  12042. An invalid length of an internal message was detected. Stop all SPM/2 
  12043. components and restart SPM/2. 
  12044.  
  12045.  
  12046. ΓòÉΓòÉΓòÉ 10.246. SPM1603 ΓòÉΓòÉΓòÉ
  12047.  
  12048. NBQRspnd:  Incorrect number of parameters. 
  12049.  
  12050. This program cannot be invoked by the user. Do not attempt to run the program 
  12051. from the command line. 
  12052.  
  12053.  
  12054. ΓòÉΓòÉΓòÉ 10.247. SPM1604 ΓòÉΓòÉΓòÉ
  12055.  
  12056. NBQRspnd:  Parameter is invalid. 
  12057.  
  12058. This program cannot be invoked by the user. Do not attempt to run the program 
  12059. from the command line. 
  12060.  
  12061.  
  12062. ΓòÉΓòÉΓòÉ 10.248. SPM1605 ΓòÉΓòÉΓòÉ
  12063.  
  12064. NBQRspnd:  Named shared storage does not exist or is already in use. 
  12065.  
  12066. This program cannot be invoked by the user. Do not attempt to run the program 
  12067. from the command line. 
  12068.  
  12069.  
  12070. ΓòÉΓòÉΓòÉ 10.249. SPM1606 ΓòÉΓòÉΓòÉ
  12071.  
  12072. NBQRspnd:  NETBIOS Error: %0. 
  12073.  
  12074. An unexpected NETBIOS error occurred from which the responder cannot recover. 
  12075. This may be a hardware problem. 
  12076.  
  12077. Stop all SPM/2 components and restart SPM/2. 
  12078.  
  12079.  
  12080. ΓòÉΓòÉΓòÉ 10.250. SPM1607 ΓòÉΓòÉΓòÉ
  12081.  
  12082. NBQRspnd:  AddGroup Error: %0. 
  12083.  
  12084. An unexpected NETBIOS error occurred while attempting to add the name of the 
  12085. responder to the network list.  There may not be enough names available. 
  12086.  
  12087. Ensure that sufficient NETBIOS resources are allocated at IPL.  Refer to the 
  12088. installation instructions.  Stop all SPM/2 components and restart SPM/2. 
  12089.  
  12090.  
  12091. ΓòÉΓòÉΓòÉ 10.251. SPM1608 ΓòÉΓòÉΓòÉ
  12092.  
  12093. NBQRspnd:  Cannot make pipe. 
  12094.  
  12095. An unexpected OS/2 error occurred while attempting to make an internal pipe. 
  12096. The responder cannot continue.  There may not be enough resources available. 
  12097.  
  12098. Stop all SPM/2 components and restart SPM/2. 
  12099.  
  12100.  
  12101. ΓòÉΓòÉΓòÉ 10.252. SPM1609 ΓòÉΓòÉΓòÉ
  12102.  
  12103. NBQRspnd:  Cannot allocate memory. 
  12104.  
  12105. An unexpected OS/2 error occurred while attempting to allocate memory. The 
  12106. responder cannot continue.  There may not be enough resources available. 
  12107.  
  12108. Stop all SPM/2 components and restart SPM/2. 
  12109.  
  12110.  
  12111. ΓòÉΓòÉΓòÉ 10.253. SPM1610 ΓòÉΓòÉΓòÉ
  12112.  
  12113. NBQRspnd:  Cannot start thread. 
  12114.  
  12115. An unexpected OS/2 error occurred while attempting to start a thread. The 
  12116. responder cannot continue.  There may not be enough resources available. 
  12117.  
  12118. Stop all SPM/2 components and restart SPM/2. 
  12119.  
  12120.  
  12121. ΓòÉΓòÉΓòÉ 10.254. SPM1611 ΓòÉΓòÉΓòÉ
  12122.  
  12123. NBQRspnd:  ReceiveDatagram error. 
  12124.  
  12125. An unexpected NETBIOS error occurred from which the responder cannot recover. 
  12126. This may be a hardware problem.  The responder stops. 
  12127.  
  12128. Stop all SPM/2 components and restart SPM/2. 
  12129.  
  12130.  
  12131. ΓòÉΓòÉΓòÉ 10.255. SPM1612 ΓòÉΓòÉΓòÉ
  12132.  
  12133. NBQRspnd:  Unexpected NETBIOS error. 
  12134.  
  12135. An unexpected NETBIOS error occurred from which the responder cannot recover. 
  12136. This is probably a hardware problem.  The responder stops. 
  12137.  
  12138. Stop all SPM/2 components and restart SPM/2. 
  12139.  
  12140.  
  12141. ΓòÉΓòÉΓòÉ 10.256. SPM1613 ΓòÉΓòÉΓòÉ
  12142.  
  12143. NBQOQMgr:  Could not find anchor block. 
  12144.  
  12145. An NETBIOS query thread could not find its anchor block and cannot continue. 
  12146. The process may be terminating abnormally or a system problem may have 
  12147. occurred. 
  12148.  
  12149. Stop all SPM/2 components and restart SPM/2. 
  12150.  
  12151.  
  12152. ΓòÉΓòÉΓòÉ 10.257. SPM1614 ΓòÉΓòÉΓòÉ
  12153.  
  12154. NBQOQMgr:  LL field incorrect value. 
  12155.  
  12156. An invalid length of an internal message was detected. Stop all SPM/2 
  12157. components and restart SPM/2. 
  12158.  
  12159.  
  12160. ΓòÉΓòÉΓòÉ 10.258. SPM1615 ΓòÉΓòÉΓòÉ
  12161.  
  12162. NBQOQMgr:  Invalid message type: %0. 
  12163.  
  12164. An invalid internal message was detected. Stop all SPM/2 components and restart 
  12165. SPM/2. 
  12166.  
  12167.  
  12168. ΓòÉΓòÉΓòÉ 10.259. SPM1616 ΓòÉΓòÉΓòÉ
  12169.  
  12170. NBQIQMgr:  Could not find anchor block. 
  12171.  
  12172. An NETBIOS query thread could not find its anchor block and cannot continue. 
  12173. The process may be terminating abnormally or a system problem may have 
  12174. occurred. 
  12175.  
  12176. Stop all SPM/2 components and restart SPM/2. 
  12177.  
  12178.  
  12179. ΓòÉΓòÉΓòÉ 10.260. SPM1617 ΓòÉΓòÉΓòÉ
  12180.  
  12181. NBQIQMgr:  Could not allocate memory. 
  12182.  
  12183. An unexpected OS/2 error occurred while attempting to allocate memory. The 
  12184. Queue Manager cannot continue.  There may not be enough resources available. 
  12185.  
  12186. Stop all SPM/2 components and restart SPM/2. 
  12187.  
  12188.  
  12189. ΓòÉΓòÉΓòÉ 10.261. SPM1618 ΓòÉΓòÉΓòÉ
  12190.  
  12191. NBQIQMgr:  NETBIOS error: %0. 
  12192.  
  12193. An unexpected NETBIOS error occurred from which the Queue Manager cannot 
  12194. recover.  This may be a hardware problem.  The Queue Manager stops. 
  12195.  
  12196. Stop all SPM/2 components and restart SPM/2. 
  12197.  
  12198.  
  12199. ΓòÉΓòÉΓòÉ 10.262. SPM1619 ΓòÉΓòÉΓòÉ
  12200.  
  12201. NBQIQMgr:  Could not issue MSW. 
  12202.  
  12203. An unexpected OS/2 error occurred while attempting to wait for a series of 
  12204. appends.  The Queue Manager cannot continue.  There may not be enough resources 
  12205. available. 
  12206.  
  12207. Stop all SPM/2 components and restart SPM/2. 
  12208.  
  12209.  
  12210. ΓòÉΓòÉΓòÉ 10.263. SPM1620 ΓòÉΓòÉΓòÉ
  12211.  
  12212. NBQIQMgr:  An append failed. 
  12213.  
  12214. An unexpected NETBIOS error occurred from which the append cannot recover. 
  12215. This may be a hardware problem.  The Queue Manager continues in degraded mode. 
  12216.  
  12217. Stop all SPM/2 components and restart SPM/2. 
  12218.  
  12219.  
  12220. ΓòÉΓòÉΓòÉ 10.264. SPM1621 ΓòÉΓòÉΓòÉ
  12221.  
  12222. NBQIQMgr:  Append work area: %0. 
  12223.  
  12224. This message follows an appendage failure and contains the network control 
  12225. block for the failing appendage.  The operation being performed is in the first 
  12226. byte of the snap data and the NETBIOS return code in the second byte. Refer to 
  12227. the IBM LAN Technical Reference for the meaning of these fields. 
  12228.  
  12229. Stop all SPM/2 components and restart SPM/2. 
  12230.  
  12231.  
  12232. ΓòÉΓòÉΓòÉ 10.265. SPM1623 ΓòÉΓòÉΓòÉ
  12233.  
  12234. NBQIQMgr:  NETBIOS error: %0 
  12235.  
  12236. An unexpected NETBIOS error occurred from which the Queue Manager cannot 
  12237. recover.  This may be a hardware problem. 
  12238.  
  12239. Stop all SPM/2 components and restart SPM/2. 
  12240.  
  12241.  
  12242. ΓòÉΓòÉΓòÉ 10.266. SPM1624 ΓòÉΓòÉΓòÉ
  12243.  
  12244. NBQIQMgr:  DosWrite error: %0. 
  12245.  
  12246. An unexpected OS/2 error occurred from which the Queue Manager cannot recover. 
  12247. The Queue Manager stops. 
  12248.  
  12249. Stop all SPM/2 components and restart SPM/2. 
  12250.  
  12251.  
  12252. ΓòÉΓòÉΓòÉ 10.267. SPM1625 ΓòÉΓòÉΓòÉ
  12253.  
  12254. NBQIQMgr:  Unknown message type. 
  12255.  
  12256. An invalid internal message was detected. Stop all SPM/2 components and restart 
  12257. SPM/2. 
  12258.  
  12259.  
  12260. ΓòÉΓòÉΓòÉ 10.268. SPM1626 ΓòÉΓòÉΓòÉ
  12261.  
  12262. NBQIQMgrApdg:  Poll response received but poll list inactive. 
  12263.  
  12264. A message from another workstation was received, but the workstation issuing 
  12265. the message is no longer in poll mode.  This is not a fatal error. The message 
  12266. may have been delayed beyond the poll window. 
  12267.  
  12268. If this message appears often, it is possible that the path from the remote 
  12269. workstation to the issuing workstation is badly routed.  See your network 
  12270. administrator to determine why a round trip message is taking more than 5 
  12271. seconds. 
  12272.  
  12273.  
  12274. ΓòÉΓòÉΓòÉ 10.269. SPM2000 through SPM2002 ΓòÉΓòÉΓòÉ
  12275.  
  12276. Messages: 
  12277.  
  12278. SPM2000: %1.
  12279. SPM2001: Error in %1 call for %2.  Return code = %3.
  12280. SPM2002: For more information type: HELP %3.
  12281.  
  12282. These are generic error messages for DOS and SPM/2 API errors; %1 is the API 
  12283. name, %2 qualifies the API call, %3 is the API return code.  In some cases 
  12284. further qualification is supplied by the SPM2000 message.  If the error is for 
  12285. a DOS API SPM2002 is displayed to suggest how to use the OS/2 HELP command to 
  12286. get explanation of the error. 
  12287.  
  12288. Use the OS/2 HELP command for DOS API errors, or consult the SPM/2 API 
  12289. documentation for SPM/2 API errors.  SPMRDF may or may not continue. 
  12290.  
  12291.  
  12292. ΓòÉΓòÉΓòÉ 10.270. SPM2003 through SPM2005 ΓòÉΓòÉΓòÉ
  12293.  
  12294. Messages: 
  12295.  
  12296. SPM2003: Unable to obtain counter group map for '%1' ordinal %2.  Return code = %3.
  12297. SPM2004: Unable to obtain counter group list.  Return code = %3.
  12298. SPM2005: Unable to retrieve RDF parameter string %1.
  12299.  
  12300. SPMRDF was not able to obtain SPM/2 system information; the counter group list 
  12301. and counter group maps are contained in SPMAPP.INI and the parameter string is 
  12302. in the SPM.MSG. 
  12303.  
  12304. This may be an installation error; make sure that the SPMAPP.INI and SPM.MSG 
  12305. files are correct and available to the SPM/2 system.  SPMRDF will stop. 
  12306.  
  12307.  
  12308. ΓòÉΓòÉΓòÉ 10.271. SPM2006 ΓòÉΓòÉΓòÉ
  12309.  
  12310. Report description file name not specified. 
  12311.  
  12312. The first parameter in the CLI command string was not recognized as a valid 
  12313. filename (for example, the extension was not .RDF).  The specified .RDF file 
  12314. did not have any .LOG selection records. 
  12315.  
  12316. Specify another .RDF file.  SPMRDF stops. 
  12317.  
  12318.  
  12319. ΓòÉΓòÉΓòÉ 10.272. SPM2007 through SPM2009 ΓòÉΓòÉΓòÉ
  12320.  
  12321. Messages: 
  12322.  
  12323. SPM2007: Report description file '%1' is not usable.
  12324. SPM2008: Print file '%1' is not usable.
  12325. SPM2009: Log file '%1' is not usable.
  12326.  
  12327. These messages indicate that a file is not in a correct format; this may be 
  12328. because the file was not created using SPM/2. 
  12329.  
  12330. Use another file or recreate the file.  SPMRDF stops. 
  12331.  
  12332.  
  12333. ΓòÉΓòÉΓòÉ 10.273. SPM2010 through SPM2012 ΓòÉΓòÉΓòÉ
  12334.  
  12335. Messages: 
  12336.  
  12337. SPM2010: Error while reading from input file, run cancelled.
  12338. SPM2011: Error while writing to output file, run cancelled.
  12339. SPM2012: Error while collecting data from the .LOG file.
  12340.  
  12341. These messages indicate an error occurred while processing a file. 
  12342.  
  12343. Correct the error described by the accompanying SPM2000 message and rerun the 
  12344. report.  SPMRDF stops. 
  12345.  
  12346.  
  12347. ΓòÉΓòÉΓòÉ 10.274. SPM2013 and SPM2014 ΓòÉΓòÉΓòÉ
  12348.  
  12349. Messages: 
  12350.  
  12351. SPM2013: One or more errors detected; report may be incorrect.
  12352. SPM2014: No report generated.
  12353.  
  12354. While processing a report request SPMRDF encountered problems which may have 
  12355. affected the data in the report. 
  12356.  
  12357. Correct any error(s) described by preceding SPM20..  messages and rerun the 
  12358. report. 
  12359.  
  12360.  
  12361. ΓòÉΓòÉΓòÉ 10.275. SPM2015 ΓòÉΓòÉΓòÉ
  12362.  
  12363. Local floating point error handler not enabled. 
  12364.  
  12365. SPMRDF was not able to install its own floating point error handler. 
  12366.  
  12367. SPMRDF will continue, but floating point errors may cause it to stop. 
  12368.  
  12369.  
  12370. ΓòÉΓòÉΓòÉ 10.276. SPM2016 ΓòÉΓòÉΓòÉ
  12371.  
  12372. Floating point error detected, type=%3. 
  12373.  
  12374. The SPMRDF local floating point error handler has been notified of a floating 
  12375. point error and is allowing SPMRDF to continue. 
  12376.  
  12377. Floating point errors are typically due to invalid data in the .LOG file; 
  12378. SPMRDF will continue, but some report items may be in error. 
  12379.  
  12380.  
  12381. ΓòÉΓòÉΓòÉ 10.277. SPM2017 through SPM2019 ΓòÉΓòÉΓòÉ
  12382.  
  12383. Messages: 
  12384.  
  12385. SPM2017: No data collected from .LOG file %1.
  12386. SPM2018: No data selected from .LOG file %1.
  12387. SPM2019: No data selected for report %1.
  12388.  
  12389. These messages indicate that various data selection rules are causing ALL data 
  12390. to be discarded; 
  12391.  
  12392.  o SPM2017 indicates rules applied during data collection for each .LOG file. 
  12393.  o SPM2018 indicates rules applied after data collection for each .LOG file. 
  12394.  o SPM2019 indicates rules applied prior to the final report. 
  12395.  For example, specifying only FILE data for selection, then requesting a 
  12396.  Tabular report will result in SPM2100 since the Tabular report does not use 
  12397.  FILE data. 
  12398.  
  12399.  If the results are unexpected, change the data selection parameters and rerun 
  12400.  the report. 
  12401.  
  12402.  
  12403. ΓòÉΓòÉΓòÉ 10.278. SPM2501 ΓòÉΓòÉΓòÉ
  12404.  
  12405. SPM/2 V2.00 - Unrecovered error %0. 
  12406.  
  12407. SPM/2 attempted to log an error, but could not. 
  12408.  
  12409. Determine the reason that the message could not be logged.  If it is not due to 
  12410. a problem in the local system, terminate all SPM/2 components and restart 
  12411. SPM/2. 
  12412.  
  12413.  
  12414. ΓòÉΓòÉΓòÉ 10.279. SPM2503 ΓòÉΓòÉΓòÉ
  12415.  
  12416. SPMSNAP: Could not start logging process.  Return code = %0. 
  12417.  
  12418. SPM/2 could not start its process.  The return code is an OS/2 system code 
  12419. which indicates the error. 
  12420.  
  12421. Determine the reason error logging could not be started.  If it is not due to a 
  12422. problem in the local system, terminate all SPM/2 components and restart SPM/2. 
  12423.  
  12424.  
  12425. ΓòÉΓòÉΓòÉ 10.280. SPM2504 ΓòÉΓòÉΓòÉ
  12426.  
  12427. SPMSNAP: Logging process did not initialize.  Return code = %0. 
  12428.  
  12429. SPM/2 could not initialize its error log.  The return code is an OS/2 system 
  12430. code which indicates the error. 
  12431.  
  12432. Determine the reason that error logging could not be started.  If it is not due 
  12433. to a problem in the local system, terminate all SPM/2 components and restart 
  12434. SPM/2. 
  12435.  
  12436.  
  12437. ΓòÉΓòÉΓòÉ 10.281. SPM2505 ΓòÉΓòÉΓòÉ
  12438.  
  12439. SPMSNAP: Could not acquire named shared storage.  Return code = %0. 
  12440.  
  12441. SPM/2 could not acquire control of the logging environment to log a message. 
  12442. The return code is an OS/2 system code which indicates the error that was 
  12443. encountered. 
  12444.  
  12445. Determine the reason that the logging environment could not be acquired.  If it 
  12446. is not due to a problem in the local system, terminate all SPM/2 components and 
  12447. restart SPM/2. 
  12448.  
  12449.  
  12450. ΓòÉΓòÉΓòÉ 10.282. SPM2506 ΓòÉΓòÉΓòÉ
  12451.  
  12452. SPMSNAP: Named shared storage semaphore timeout occurred. 
  12453.  
  12454. SPM/2 could not acquire control of the logging environment in a reasonable 
  12455. amount of time.  The system may be too heavily over-committed and SPM/2 is not 
  12456. being dispatched. 
  12457.  
  12458. If the system was very busy at the time that the message was received, reduce 
  12459. the workload and continue monitoring.  Otherwise, terminate all SPM/2 
  12460. components and restart SPM/2. 
  12461.  
  12462.  
  12463. ΓòÉΓòÉΓòÉ 10.283. SPM2507 ΓòÉΓòÉΓòÉ
  12464.  
  12465. SPMSNAP: Named shared storage semaphore error occurred.  Return code = %0. 
  12466.  
  12467. SPM/2 could not acquire control of the logging environment for a reason other 
  12468. than timeout.  A resource shortage may have occurred. 
  12469.  
  12470. The return code is the OS/2 return code at the point of error.  Determine if 
  12471. the error is due to the configuration of the issuing workstation. Increase the 
  12472. resource limit of the unavailable resource.  Otherwise, terminate all SPM/2 
  12473. components and restart SPM/2. 
  12474.  
  12475.  
  12476. ΓòÉΓòÉΓòÉ 10.284. SPM2508 ΓòÉΓòÉΓòÉ
  12477.  
  12478. SPMSNAP: Logging semaphore error occurred.  Return code = %0. 
  12479.  
  12480. SPM/2 could not acquire control of the logging environment to log a message. 
  12481. The return code is an OS/2 system code which indicates the error that was 
  12482. encountered. 
  12483.  
  12484. Determine the reason that the logging environment could not be acquired.  If it 
  12485. is not due to a problem in the local system, terminate all SPM/2 components and 
  12486. restart SPM/2. 
  12487.  
  12488.  
  12489. ΓòÉΓòÉΓòÉ 10.285. SPM2519 ΓòÉΓòÉΓòÉ
  12490.  
  12491. SPMSNAPC: Incorrect number of parameters. 
  12492.  
  12493. The program was started from the command line with an incorrect number of 
  12494. parameters. 
  12495.  
  12496. Refer to the usage message that precedes this message. 
  12497.  
  12498.  
  12499. ΓòÉΓòÉΓòÉ 10.286. SPM2520 ΓòÉΓòÉΓòÉ
  12500.  
  12501. SPMSNAPC: Class code not valid. 
  12502.  
  12503. The program was started from the command line with an incorrect class code. 
  12504.  
  12505. Refer to the usage message that precedes this message. 
  12506.  
  12507.  
  12508. ΓòÉΓòÉΓòÉ 10.287. SPM2521 ΓòÉΓòÉΓòÉ
  12509.  
  12510. SPMSNAPC: Could not change file name - logger running. 
  12511.  
  12512. The program was started from the command line with an attempt to change the 
  12513. SPMSNAP.ERR file name.  The logger was already running and the new file name 
  12514. was ignored. 
  12515.  
  12516. Terminate all SPM/2 components and wait for 60 seconds for the logger to 
  12517. timeout.  Then reissue the command. 
  12518.  
  12519.  
  12520. ΓòÉΓòÉΓòÉ 10.288. SPM2522 ΓòÉΓòÉΓòÉ
  12521.  
  12522. SPMSNAPC: Could not start logger.  Return code = %d. 
  12523.  
  12524. SPM/2 could not start its logging process.  The return code is an OS/2 system 
  12525. code which indicates the error that was encountered. 
  12526.  
  12527. Determine the reason that the logging environment could not be started.  If it 
  12528. is not due to a problem in the local system, terminate all SPM/2 components and 
  12529. restart SPM/2. 
  12530.  
  12531.  
  12532. ΓòÉΓòÉΓòÉ 10.289. SPM2523 ΓòÉΓòÉΓòÉ
  12533.  
  12534. SPMSNAPC: Logger did not initialize.  Return code = %d. 
  12535.  
  12536. SPM/2 could not initialize its logging environment.  The return code is an OS/2 
  12537. system code which indicates the error that was encountered. 
  12538.  
  12539. Determine the reason that the logging environment could not be started.  If it 
  12540. is not due to a problem in the local system, terminate all SPM/2 components and 
  12541. restart SPM/2. 
  12542.  
  12543.  
  12544. ΓòÉΓòÉΓòÉ 10.290. SPM2524 ΓòÉΓòÉΓòÉ
  12545.  
  12546. SPMSNAPC: Filename changed to %s. 
  12547.  
  12548. SPM/2 was requested to change the default error log file (SPMSNAP.ERR) and that 
  12549. change was accomplished without error. 
  12550.  
  12551.  
  12552. ΓòÉΓòÉΓòÉ 10.291. SPM2525 ΓòÉΓòÉΓòÉ
  12553.  
  12554. SPMSNAPC: Could not acquire named shared storage.  Return code = %ld. 
  12555.  
  12556. SPM/2 could not acquire control of the logging environment to log a message. 
  12557. The return code is an OS/2 system code which indicates the error that was 
  12558. encountered. 
  12559.  
  12560. Determine the reason that the logging environment could not be acquired.  If it 
  12561. is not due to a problem in the local system, terminate all SPM/2 components and 
  12562. restart SPM/2. 
  12563.  
  12564.  
  12565. ΓòÉΓòÉΓòÉ 10.292. SPM2526 ΓòÉΓòÉΓòÉ
  12566.  
  12567. SPMSNAPC: Logging level has been reset. 
  12568.  
  12569. SPM/2 was requested to change the default logging level and that change was 
  12570. accomplished without error. 
  12571.  
  12572.  
  12573. ΓòÉΓòÉΓòÉ 10.293. SPM2530 ΓòÉΓòÉΓòÉ
  12574.  
  12575. SPMSNAPL may not be executed from the command line. 
  12576.  
  12577. An attempt was made to start this program from the command line.  This program 
  12578. cannot be invoked by the user. 
  12579.  
  12580.  
  12581. ΓòÉΓòÉΓòÉ 10.294. SPM2531 ΓòÉΓòÉΓòÉ
  12582.  
  12583. SPMSNAPL: Message logging ended.  Close of SPMSNAP.ERR file on timeout failed. 
  12584. Return code = %0. 
  12585.  
  12586. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12587. code and indicates the type of error.  Message logging is set to quiet mode. 
  12588.  
  12589. Determine the reason for the error. 
  12590.  
  12591.  
  12592. ΓòÉΓòÉΓòÉ 10.295. SPM2532 ΓòÉΓòÉΓòÉ
  12593.  
  12594. SPMSNAPL: Message logging ended. An unexpected error was returned by 
  12595. DosSemWait.  Return code = %0 
  12596.  
  12597. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12598. code and indicates the type of error.  Message logging is set to quiet mode. 
  12599.  
  12600. Determine the reason for the error. 
  12601.  
  12602.  
  12603. ΓòÉΓòÉΓòÉ 10.296. SPM2533 ΓòÉΓòÉΓòÉ
  12604.  
  12605. SPMSNAPL: Message logging ended. Open for the SPMSNAP failed.  Return code = 
  12606. %0. 
  12607.  
  12608. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12609. code and indicates the type of error.  Message logging is set to quiet mode. 
  12610.  
  12611. Determine the reason for the error. 
  12612.  
  12613.  
  12614. ΓòÉΓòÉΓòÉ 10.297. SPM2534 ΓòÉΓòÉΓòÉ
  12615.  
  12616. SPMSNAPL: Message logging ended. Positioning the log file failed.  Return code 
  12617. = %0. 
  12618.  
  12619. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12620. code and indicates the type of error.  Message logging is set to quiet mode. 
  12621.  
  12622. Determine the reason for the error. 
  12623.  
  12624.  
  12625. ΓòÉΓòÉΓòÉ 10.298. SPM2535 ΓòÉΓòÉΓòÉ
  12626.  
  12627. SPMSNAPL: Message logging ended.  DosWrite failed.  Return code = %0. 
  12628.  
  12629. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12630. code and indicates the type of error.  Message logging is set to quiet mode. 
  12631.  
  12632. Determine the reason for the error. 
  12633.  
  12634.  
  12635. ΓòÉΓòÉΓòÉ 10.299. SPM2536 ΓòÉΓòÉΓòÉ
  12636.  
  12637. SPMSNAPL: Message logging ended.  Disk is full. 
  12638.  
  12639. The disk to which the SPM/2 snap logger is writing has been filled. Message 
  12640. logging is set to quiet mode. 
  12641.  
  12642. Clear space on the disk for the snap log.  Stop and restart all SPM/2 
  12643. components when that option is available.  Data logging will continue if the 
  12644. data log is on another disk. 
  12645.  
  12646.  
  12647. ΓòÉΓòÉΓòÉ 10.300. SPM2537 ΓòÉΓòÉΓòÉ
  12648.  
  12649. SPMSNAPL: Message logging ended. DosClose failed in CLOSE command.  Return code 
  12650. = %0. 
  12651.  
  12652. An error occurred in the SPM/2 snap logger.  The return code is an OS/2 error 
  12653. code and indicates the type of error.  Message logging is set to quiet mode. 
  12654.  
  12655. Determine the reason for the error. 
  12656.  
  12657.  
  12658. ΓòÉΓòÉΓòÉ 10.301. SPM2540 ΓòÉΓòÉΓòÉ
  12659.  
  12660. SPMSNAPP: Incorrect number of parameters. 
  12661.  
  12662. The program was started from the command line with an incorrect number of 
  12663. parameters. 
  12664.  
  12665. Refer to the usage message that precedes this message. 
  12666.  
  12667.  
  12668. ΓòÉΓòÉΓòÉ 10.302. SPM2541 ΓòÉΓòÉΓòÉ
  12669.  
  12670. SPMSNAPP: The log file is currently active. 
  12671.  
  12672. The program was started from the command line while the logger was running.  If 
  12673. the program is delayed for any reason, timeouts may occur. 
  12674.  
  12675. Do not delay the completion of the program. 
  12676.  
  12677.  
  12678. ΓòÉΓòÉΓòÉ 10.303. SPM2543 ΓòÉΓòÉΓòÉ
  12679.  
  12680. SPMSNAPP: Could not acquire control of the log. 
  12681.  
  12682. SPM/2 could not acquire control of the logging environment to print the log. 
  12683.  
  12684. Try again later.  While it is not necessary to stop SPM/2 to process the snap 
  12685. log, it is often not possible at a time of high activity. 
  12686.  
  12687.  
  12688. ΓòÉΓòÉΓòÉ 10.304. SPM2545 ΓòÉΓòÉΓòÉ
  12689.  
  12690. SPMSNAPP: File could not be opened.  Return code = %d. 
  12691.  
  12692. An error occurred in the SPM/2 snap formatter.  The return code is an OS/2 
  12693. error code and indicates the type of error.  The formatter terminates. 
  12694.  
  12695. Determine the reason for the error. 
  12696.  
  12697.  
  12698. ΓòÉΓòÉΓòÉ 10.305. SPM2546 ΓòÉΓòÉΓòÉ
  12699.  
  12700. SPMSNAPP: File read error.  Return code = %d. 
  12701.  
  12702. An error occurred in the SPM/2 snap formatter.  The return code is an OS/2 
  12703. error code and indicates the type of error.  The formatter terminates. 
  12704.  
  12705. Determine the reason for the error. 
  12706.  
  12707.  
  12708. ΓòÉΓòÉΓòÉ 10.306. SPM2547 ΓòÉΓòÉΓòÉ
  12709.  
  12710. SPMSNAPP: Invalid file format - header length. 
  12711.  
  12712. An error occurred checking the format of the input file.  The formatter 
  12713. terminates. 
  12714.  
  12715. Ensure that the input file is a valid snap file. 
  12716.  
  12717.  
  12718. ΓòÉΓòÉΓòÉ 10.307. SPM2548 ΓòÉΓòÉΓòÉ
  12719.  
  12720. SPMSNAPP: Out of memory. 
  12721.  
  12722. An error attempting to acquire memory.  The formatter terminates. 
  12723.  
  12724. Determine the reason for the error. 
  12725.  
  12726.  
  12727. ΓòÉΓòÉΓòÉ 10.308. SPM2549 ΓòÉΓòÉΓòÉ
  12728.  
  12729. SPMSNAPP: File read error.  Return code = %d. 
  12730.  
  12731. An error occurred in the SPM/2 snap formatter.  The return code is an OS/2 
  12732. error code and indicates the type of error.  The formatter terminates. 
  12733.  
  12734. Determine the reason for the error. 
  12735.  
  12736.  
  12737. ΓòÉΓòÉΓòÉ 10.309. SPM2550 ΓòÉΓòÉΓòÉ
  12738.  
  12739. SPMSNAPP: Invalid file format - bad marker. 
  12740.  
  12741. An error occurred checking the format of the input file.  The formatter 
  12742. terminates. 
  12743.  
  12744. Ensure that the input file is a valid snap file. 
  12745.  
  12746.  
  12747. ΓòÉΓòÉΓòÉ 10.310. SPM2551 ΓòÉΓòÉΓòÉ
  12748.  
  12749. SPMSNAPP: File read error.  Return code = %d. 
  12750.  
  12751. An error occurred in the SPM/2 snap formatter.  The return code is an OS/2 
  12752. error code and indicates the type of error.  The formatter terminates. 
  12753.  
  12754. Determine the reason for the error. 
  12755.  
  12756.  
  12757. ΓòÉΓòÉΓòÉ 10.311. SPM2552 ΓòÉΓòÉΓòÉ
  12758.  
  12759. SPMSNAPP: Out of memory. 
  12760.  
  12761. An error attempting to acquire memory.  The formatter terminates. 
  12762.  
  12763. Determine the reason for the error. 
  12764.  
  12765.  
  12766. ΓòÉΓòÉΓòÉ 10.312. SPM2553 ΓòÉΓòÉΓòÉ
  12767.  
  12768. SPMSNAPP: File read error.  Return code = %d. 
  12769.  
  12770. An error occurred in the SPM/2 snap formatter.  The return code is an OS/2 
  12771. error code and indicates the type of error.  The formatter terminates. 
  12772.  
  12773. Determine the reason for the error. 
  12774.  
  12775.  
  12776. ΓòÉΓòÉΓòÉ 10.313. SPM3001 and SPM3002 ΓòÉΓòÉΓòÉ
  12777.  
  12778. Messages: 
  12779.  
  12780. SPM3001: Unable to load phase '%1.CMD'.
  12781. SPM3002: Unable to load function '%1' from '%2.DLL'.
  12782.  
  12783. These messages generally indicate an installation error; a SYS... message may 
  12784. accompany this error. 
  12785.  
  12786. Make sure the requested .CMD and .DLL files are available to SPMAPPIN; use the 
  12787. OS/2 HELP command to explain any SYS....  message.  SPMAPPIN will stop. 
  12788.  
  12789.  
  12790. ΓòÉΓòÉΓòÉ 10.314. SPM3003 ΓòÉΓòÉΓòÉ
  12791.  
  12792. Unable to locate text file '%1'. 
  12793.  
  12794. The .SPM file specified in %1 could not be found in the current directory or 
  12795. through the path supplied in the CLI command string. 
  12796.  
  12797. Ensure the file specification is correct.  SPMAPPIN stops. 
  12798.  
  12799.  
  12800. ΓòÉΓòÉΓòÉ 10.315. SPM3004 ΓòÉΓòÉΓòÉ
  12801.  
  12802. Unable to locate SPMAPP.INI file '%1'. 
  12803.  
  12804. The SPMAPP.INI file specified could not be located in the current directory or 
  12805. through the DPATH environment variable. 
  12806.  
  12807. Ensure the file specification is correct.  SPMAPPIN stops. 
  12808.  
  12809.  
  12810. ΓòÉΓòÉΓòÉ 10.316. SPM3007 ΓòÉΓòÉΓòÉ
  12811.  
  12812. Phase %1 initialization failed. 
  12813.  
  12814. Indicates that initialization of an SPMAPPIN phase failed. 
  12815.  
  12816. Correct any errors indicated by preceding SPM30..  or SYS... messages. 
  12817. SPMAPPIN stops. 
  12818.  
  12819.  
  12820. ΓòÉΓòÉΓòÉ 10.317. SPM3008 and SPM3009 ΓòÉΓòÉΓòÉ
  12821.  
  12822. Messages: 
  12823.  
  12824. SPM3008: Phase %1 started.
  12825. SPM3009: Phase %1 finished.
  12826.  
  12827. Indicates the status of SPMAPPIN processing phases; %1 specifies which 
  12828. SPMAPP0x.CMD phase is in use. 
  12829.  
  12830.  
  12831. ΓòÉΓòÉΓòÉ 10.318. SPM3010 ΓòÉΓòÉΓòÉ
  12832.  
  12833. Unable to open file '%1'. 
  12834.  
  12835. A SPMAPPIN phase was unable to open the file specified. 
  12836.  
  12837. Correct any errors indicated by preceding SYS...  messages.  SPMAPPIN stops. 
  12838.  
  12839.  
  12840. ΓòÉΓòÉΓòÉ 10.319. SPM3014 and SPM3015 ΓòÉΓòÉΓòÉ
  12841.  
  12842. Messages: 
  12843.  
  12844. SPM3014: Unable to retrieve SPMAPP.INI file item '%1'/'%2'.
  12845. SPM3015: Unable to update SPMAPP.INI file item '%1'/'%2'.
  12846.  
  12847. Phase 02 was not able to retrieve an SPMAPP.INI file item which should have 
  12848. been in the SPMAPP.INI file, or was not able to add or replace an SPMAPP.INI 
  12849. file item.  %1 specifies the application and %2 specifies the key for the 
  12850. SPMAPP.INI file item.  This may be caused by using an incorrect or 
  12851. uninitialized SPMAPP.INI file. 
  12852.  
  12853. Ensure that you are using a correct SPMAPP.INI file. SPMAPPIN may or may not 
  12854. continue. 
  12855.  
  12856.  
  12857. ΓòÉΓòÉΓòÉ 10.320. SPM3019 and SPM3020 ΓòÉΓòÉΓòÉ
  12858.  
  12859. Messages: 
  12860.  
  12861. SPM3019: Ordinal %1 dropped.
  12862. SPM3020: Ordinal %1 replaced.
  12863.  
  12864. Input from the .SPM file has caused a counter group definition previously found 
  12865. in the SPMAPP.INI file to be discarded or replaced. 
  12866.  
  12867. If this was not an expected situation, correct the .SPM file. SPMAPPIN 
  12868. continues. 
  12869.  
  12870.  
  12871. ΓòÉΓòÉΓòÉ 10.321. SPM3021 ΓòÉΓòÉΓòÉ
  12872.  
  12873. Group '%1', ordinal %2 has the same name as group %3. 
  12874.  
  12875. A duplicate group name has been found while merging the old and new counter 
  12876. group descriptions. 
  12877.  
  12878. If this was not an expected situation, correct the .SPM file. SPMAPPIN 
  12879. continues. 
  12880.  
  12881.  
  12882. ΓòÉΓòÉΓòÉ 11. Glossary ΓòÉΓòÉΓòÉ
  12883.  
  12884. This glossary defines terms that are used with IBM Operating System/2 System 
  12885. Performance Monitor/2 Version 2.0. 
  12886.  
  12887.      A 
  12888.  access 
  12889.  access control 
  12890.  action bar 
  12891.  adapter 
  12892.  address 
  12893.  administrator 
  12894.  alert 
  12895.  alias 
  12896.  allocate 
  12897.  American Standard Code for Information Interchange (ASCII) 
  12898.  API 
  12899.  append 
  12900.  application 
  12901.  application programming interface (API) 
  12902.  ASCII 
  12903.  asynchronous 
  12904.      B 
  12905.  base operating system 
  12906.  block 
  12907.  boot 
  12908.  buffer 
  12909.  bulk counter 
  12910.  bulk state counter 
  12911.      C 
  12912.  cache 
  12913.  call 
  12914.  cancel 
  12915.  case-sensitive 
  12916.  characteristic 
  12917.  check box 
  12918.  CLI 
  12919.  cluster 
  12920.  CM 
  12921.  code 
  12922.  COM 
  12923.  command line interface 
  12924.  communication port 
  12925.  Communications Manager 
  12926.  compile 
  12927.  component 
  12928.  configuration response file 
  12929.  constant 
  12930.  coprocessor 
  12931.  counter 
  12932.      D 
  12933.  database server 
  12934.  .DEL file 
  12935.  delimited report 
  12936.  device 
  12937.  device driver 
  12938.  dialog box 
  12939.  disable 
  12940.  disk 
  12941.  diskette 
  12942.  disk operating system (DOS) 
  12943.  .DMP file 
  12944.  domain 
  12945.  DOS 
  12946.  dump 
  12947.  dump report 
  12948.      E 
  12949.  enable 
  12950.  end user 
  12951.  entry field 
  12952.  environment 
  12953.  error log 
  12954.  event 
  12955.  exit 
  12956.      F 
  12957.  FAT 
  12958.  field 
  12959.  file allocation table (FAT) 
  12960.  file specification 
  12961.  file system 
  12962.  filespec 
  12963.  filter 
  12964.  flag 
  12965.  floating point number 
  12966.  format 
  12967.  frame 
  12968.      H 
  12969.  handle 
  12970.  hook 
  12971.      I 
  12972.  IBM Extended Services for OS/2 
  12973.  IBM LAN Server 
  12974.  IBM Operating System/2 LAN Server 
  12975.  IBM Operating System/2 Standard Edition 
  12976.  icon 
  12977.  ID 
  12978.  integer 
  12979.  interface 
  12980.  interrupt 
  12981.      K 
  12982.  KB 
  12983.  kernel 
  12984.  kilobyte (KB) 
  12985.      L 
  12986.  LAN 
  12987.  LAN adapter 
  12988.  LAN Requester 
  12989.  LAN Server 
  12990.  list box 
  12991.  local 
  12992.  local area network (LAN) 
  12993.  local database 
  12994.  log 
  12995.  .LOG file 
  12996.  LS 
  12997.      M 
  12998.  memory allocation 
  12999.  menu 
  13000.  message 
  13001.  message log 
  13002.  metric 
  13003.  metric definition file 
  13004.  monitor 
  13005.  monitored workstation 
  13006.  monitoring server 
  13007.  monitor session 
  13008.  monitor session file 
  13009.      N 
  13010.  multiplexer 
  13011.  named pipe 
  13012.  NETBIOS 
  13013.  network administrator 
  13014.  network basic input/output system (NETBIOS) 
  13015.  node 
  13016.  normal stop 
  13017.  null 
  13018.      O 
  13019.  offset 
  13020.  online 
  13021.  OS/2 LAN Requester 
  13022.  OS/2 LAN Server 
  13023.      P 
  13024.  page 
  13025.  panel 
  13026.  parameter 
  13027.  path 
  13028.  pipe 
  13029.  pointer 
  13030.  port 
  13031.  Presentation Manager 
  13032.  privilege level 
  13033.  process 
  13034.  process ID 
  13035.  process identification number (process ID) 
  13036.  processor 
  13037.  profile 
  13038.  program name 
  13039.  pull-down 
  13040.  pushbutton 
  13041.      Q 
  13042.  query 
  13043.  queue 
  13044.  queue length 
  13045.      R 
  13046.  radio button 
  13047.  RAM 
  13048.  random access 
  13049.  random access memory (RAM) 
  13050.  .RDF file 
  13051.  read-only 
  13052.  record 
  13053.  remote 
  13054.  remote database 
  13055.  replace 
  13056.  report description file 
  13057.  requester 
  13058.  resource 
  13059.  restore 
  13060.  return code 
  13061.  ring 
  13062.      S 
  13063.  screen 
  13064.  select button 
  13065.  semaphore 
  13066.  server 
  13067.  session 
  13068.  shutdown 
  13069.  SPM/2 
  13070.  .SPM file 
  13071.  string 
  13072.  state counter 
  13073.  state timer 
  13074.  .SUM file 
  13075.  summary report 
  13076.  synchronous 
  13077.  syntax 
  13078.  system 
  13079.  system administrator (SYSADM) 
  13080.  System menu 
  13081.  System Performance Monitor/2 
  13082.  system trace 
  13083.      T 
  13084.  .TAB file 
  13085.  tabular report 
  13086.  template 
  13087.  thread 
  13088.  threshold 
  13089.  throughput 
  13090.  timer 
  13091.  title bar 
  13092.  toggle 
  13093.  trace services 
  13094.  transaction 
  13095.      U 
  13096.  UNC 
  13097.  universal naming convention (UNC) 
  13098.  UPM 
  13099.  user 
  13100.  user ID 
  13101.  user interface 
  13102.  user profile 
  13103.  User Profile Management (UPM) 
  13104.      V 
  13105.  vector 
  13106.      W 
  13107.  window 
  13108.  workstation 
  13109.      X 
  13110.  X.25 
  13111.  
  13112.  
  13113. ΓòÉΓòÉΓòÉ <hidden> access ΓòÉΓòÉΓòÉ
  13114.  
  13115.   1. The manner in which files or data are referred to by a computer. 
  13116.   2. The controlled authorization to enter or to make use of objects. 
  13117.  
  13118.  
  13119. ΓòÉΓòÉΓòÉ <hidden> access control ΓòÉΓòÉΓòÉ
  13120.  
  13121. The means by which network administrators restrict access to network resources 
  13122. and user programs and data. 
  13123.  
  13124.  
  13125. ΓòÉΓòÉΓòÉ <hidden> action bar ΓòÉΓòÉΓòÉ
  13126.  
  13127. The highlighted area at the top of a panel that contains the choices currently 
  13128. available in the application program that a user is running. 
  13129.  
  13130.  
  13131. ΓòÉΓòÉΓòÉ <hidden> adapter ΓòÉΓòÉΓòÉ
  13132.  
  13133. A piece of hardware that connects a computer and an external device. 
  13134.  
  13135.  
  13136. ΓòÉΓòÉΓòÉ <hidden> address ΓòÉΓòÉΓòÉ
  13137.  
  13138. A value that identifies the location of a register, a particular part of 
  13139. storage, or a network node. 
  13140.  
  13141.  
  13142. ΓòÉΓòÉΓòÉ <hidden> administrator ΓòÉΓòÉΓòÉ
  13143.  
  13144. The person responsible for the designing, planning, installing, configuring, 
  13145. controlling, managing, and maintaining of a network, system, or database.  See 
  13146. system administrator and network administrator. 
  13147.  
  13148.  
  13149. ΓòÉΓòÉΓòÉ <hidden> alert ΓòÉΓòÉΓòÉ
  13150.  
  13151.   1. In communications, an error message sent to the system services control 
  13152.      point (SSCP) at the host system. 
  13153.   2. In OS/2 LAN Server, an error or warning specified in the IBMLAN.INI file 
  13154.      that is sent to the user. 
  13155.  
  13156.  
  13157. ΓòÉΓòÉΓòÉ <hidden> alias ΓòÉΓòÉΓòÉ
  13158.  
  13159.   1. An alternative name used to identify an object or a database. 
  13160.   2. A nickname set up by the network administrator for a file, printer, or 
  13161.      serial device. 
  13162.   3. A name used to identify a network resource to a domain.  Aliases are 
  13163.      similar to network names but can be used only through the full-screen 
  13164.      interface. 
  13165.  
  13166.  
  13167. ΓòÉΓòÉΓòÉ <hidden> allocate ΓòÉΓòÉΓòÉ
  13168.  
  13169. To assign a resource to perform a specific task. 
  13170.  
  13171.  
  13172. ΓòÉΓòÉΓòÉ <hidden> American Standard Code for Information Interchange (ASCII) ΓòÉΓòÉΓòÉ
  13173.  
  13174. The standard code with a coded character set consisting of 7-bit coded 
  13175. characters (8 bits including parity check), used for information interchange 
  13176. among data processing systems and data communication systems. The ASCII set 
  13177. consists of control characters and graphic characters. 
  13178.  
  13179.  
  13180. ΓòÉΓòÉΓòÉ <hidden> API ΓòÉΓòÉΓòÉ
  13181.  
  13182. See application programming interface. 
  13183.  
  13184.  
  13185. ΓòÉΓòÉΓòÉ <hidden> append ΓòÉΓòÉΓòÉ
  13186.  
  13187. To attach a record or file to the end of another record or file. Contrast with 
  13188. replace. 
  13189.  
  13190.  
  13191. ΓòÉΓòÉΓòÉ <hidden> application ΓòÉΓòÉΓòÉ
  13192.  
  13193. A program or set of programs that perform a task; for example, a payroll 
  13194. application. 
  13195.  
  13196.  
  13197. ΓòÉΓòÉΓòÉ <hidden> application programming interface (API) ΓòÉΓòÉΓòÉ
  13198.  
  13199. A formally-defined programming language interface that is between an IBM system 
  13200. control program or a licensed program and the user of a program. 
  13201.  
  13202.  
  13203. ΓòÉΓòÉΓòÉ <hidden> ASCII ΓòÉΓòÉΓòÉ
  13204.  
  13205. See American Standard Code for Information Interchange. 
  13206.  
  13207.  
  13208. ΓòÉΓòÉΓòÉ <hidden> asynchronous ΓòÉΓòÉΓòÉ
  13209.  
  13210. Pertaining to the lack of regular time relationship; unpredictable with respect 
  13211. to the execution of program instructions. Contrast with synchronous. 
  13212.  
  13213.  
  13214. ΓòÉΓòÉΓòÉ <hidden> base operating system ΓòÉΓòÉΓòÉ
  13215.  
  13216. The component that manages system resources, excluding Database Manager, 
  13217. Communications Manager, and LAN Server. 
  13218.  
  13219.  
  13220. ΓòÉΓòÉΓòÉ <hidden> block ΓòÉΓòÉΓòÉ
  13221.  
  13222.   1. A string of data elements recorded or transmitted as a unit. 
  13223.   2. To wait, usually for an input/output (I/O) event to complete or for a 
  13224.      resource to become available. 
  13225.   3. In SPM/2, a sector or 512 kilobytes. 
  13226.  
  13227.  
  13228. ΓòÉΓòÉΓòÉ <hidden> boot ΓòÉΓòÉΓòÉ
  13229.  
  13230. To prepare a computer system for operation by loading an operating system. 
  13231.  
  13232.  
  13233. ΓòÉΓòÉΓòÉ <hidden> buffer ΓòÉΓòÉΓòÉ
  13234.  
  13235. A memory area reserved for use in performing input/output (I/O) operations. 
  13236.  
  13237.  
  13238. ΓòÉΓòÉΓòÉ <hidden> bulk counter ΓòÉΓòÉΓòÉ
  13239.  
  13240. Metric with an 8-byte value.  Increments by quantities (for example, bytes read 
  13241. since data collection began). 
  13242.  
  13243.  
  13244. ΓòÉΓòÉΓòÉ <hidden> bulk state counter ΓòÉΓòÉΓòÉ
  13245.  
  13246. Metric with an 8-byte value.  Indicates the current state of a resource.  Its 
  13247. value increases or decreases by quantities. 
  13248.  
  13249.  
  13250. ΓòÉΓòÉΓòÉ <hidden> cache ΓòÉΓòÉΓòÉ
  13251.  
  13252. A high-speed storage buffer that contains frequently accessed instructions and 
  13253. data; it is used to reduce access time. 
  13254.  
  13255.  
  13256. ΓòÉΓòÉΓòÉ <hidden> call ΓòÉΓòÉΓòÉ
  13257.  
  13258. The action of bringing a computer program, routine, or subroutine into effect, 
  13259. usually by specifying the entry conditions and an entry point. 
  13260.  
  13261.  
  13262. ΓòÉΓòÉΓòÉ <hidden> cancel ΓòÉΓòÉΓòÉ
  13263.  
  13264.   1. To end a task before it is completed. 
  13265.   2. An action that removes the current panel or window without processing it 
  13266.      and returns to a previous one.  See also exit. 
  13267.  
  13268.  
  13269. ΓòÉΓòÉΓòÉ <hidden> case-sensitive ΓòÉΓòÉΓòÉ
  13270.  
  13271. A condition in which entries for an entry field must conform to a specific 
  13272. lowercase, uppercase, or mixed-case format in order to be valid. 
  13273.  
  13274.  
  13275. ΓòÉΓòÉΓòÉ <hidden> characteristic ΓòÉΓòÉΓòÉ
  13276.  
  13277. An element of a managed object class definition.  This element can be a 
  13278. definition of: an attribute, an attribute group, a notification, an action, a 
  13279. behavior, a parameter, or a package. 
  13280.  
  13281.  
  13282. ΓòÉΓòÉΓòÉ <hidden> check box ΓòÉΓòÉΓòÉ
  13283.  
  13284. A user-interface component that is a square box with associated text. It acts 
  13285. like a switch that users can toggle on and off.  An x is displayed in the check 
  13286. box to show a choice is selected.  Many check boxes are combined in related 
  13287. sets so users can choose one or more choices or no choices.  Contrast with 
  13288. radio button. 
  13289.  
  13290.  
  13291. ΓòÉΓòÉΓòÉ <hidden> CLI ΓòÉΓòÉΓòÉ
  13292.  
  13293. See command line interface. 
  13294.  
  13295.  
  13296. ΓòÉΓòÉΓòÉ <hidden> cluster ΓòÉΓòÉΓòÉ
  13297.  
  13298. On an IBM personal computer, a particular measure of space on a disk or 
  13299. diskette for files allocated in cluster increments. 
  13300.  
  13301.  
  13302. ΓòÉΓòÉΓòÉ <hidden> CM ΓòÉΓòÉΓòÉ
  13303.  
  13304. See Communications Manager. 
  13305.  
  13306.  
  13307. ΓòÉΓòÉΓòÉ <hidden> code ΓòÉΓòÉΓòÉ
  13308.  
  13309.   1. A set of instructions for the computer. 
  13310.   2. To write instructions for the computer. 
  13311.   3. A representation of a condition, such as an error code. 
  13312.  
  13313.  
  13314. ΓòÉΓòÉΓòÉ <hidden> COM ΓòÉΓòÉΓòÉ
  13315.  
  13316. A representation of one of the asynchronous serial communications ports, (COM1, 
  13317. COM2, and COM3), supported by the OS/2 program. 
  13318.  
  13319.  
  13320. ΓòÉΓòÉΓòÉ <hidden> command line interface ΓòÉΓòÉΓòÉ
  13321.  
  13322. A user interface that allows a user to interact with and perform operations on 
  13323. a system, program, or device by entering commands at a command prompt or on a 
  13324. command line. 
  13325.  
  13326.  
  13327. ΓòÉΓòÉΓòÉ <hidden> communication port ΓòÉΓòÉΓòÉ
  13328.  
  13329.   1. An access point for data entry or exit to or from a communication device 
  13330.      such as a terminal. 
  13331.   2. On a personal computer, a synchronous or asynchronous serial port to which 
  13332.      a modem can be attached.  Synonymous with port. 
  13333.  
  13334.  
  13335. ΓòÉΓòÉΓòÉ <hidden> Communications Manager ΓòÉΓòÉΓòÉ
  13336.  
  13337. A component of the IBM Extended Services program that lets a workstation 
  13338. connect to a host computer and use the host resources as well as the resources 
  13339. of other personal computers to which the workstation is attached, either 
  13340. directly or through a host. 
  13341.  
  13342.  
  13343. ΓòÉΓòÉΓòÉ <hidden> compile ΓòÉΓòÉΓòÉ
  13344.  
  13345.   1. To translate a program written in a high-level programming language into a 
  13346.      machine language program. 
  13347.   2. The computer actions required to transform a source file into an 
  13348.      executable object file. 
  13349.  
  13350.  
  13351. ΓòÉΓòÉΓòÉ <hidden> component ΓòÉΓòÉΓòÉ
  13352.  
  13353.   1. A functional part of IBM Extended Services for OS/2 (Communications 
  13354.      Manager and Database Manager) or the base operating system. 
  13355.   2. A constituent part, for example, each step is a component in a procedure. 
  13356.  
  13357.  
  13358. ΓòÉΓòÉΓòÉ <hidden> configuration response file ΓòÉΓòÉΓòÉ
  13359.  
  13360. In Communications Manager, a file that describes the devices, optional 
  13361. features, communications parameters, and programs installed on a workstation. 
  13362.  
  13363.  
  13364. ΓòÉΓòÉΓòÉ <hidden> constant ΓòÉΓòÉΓòÉ
  13365.  
  13366. A fixed value. 
  13367.  
  13368.  
  13369. ΓòÉΓòÉΓòÉ <hidden> coprocessor ΓòÉΓòÉΓòÉ
  13370.  
  13371. A microprocessor that extends the address range of the processor in the system 
  13372. unit or adds specialized instructions to handle a particular category of 
  13373. operations; for example, an input/output (I/O) coprocessor, a math processor, a 
  13374. networking processor. 
  13375.  
  13376.  
  13377. ΓòÉΓòÉΓòÉ <hidden> counter ΓòÉΓòÉΓòÉ
  13378.  
  13379. Metric with a 4-byte value.  Increments by 1 for each occurrence of an event 
  13380. (for example, number of disk read operations). 
  13381.  
  13382.  
  13383. ΓòÉΓòÉΓòÉ <hidden> database server ΓòÉΓòÉΓòÉ
  13384.  
  13385. A Database Manager Remote Data Services workstation which provides database 
  13386. services for its local databases to other Remote Data Services workstations. 
  13387.  
  13388.  
  13389. ΓòÉΓòÉΓòÉ <hidden> .DEL file ΓòÉΓòÉΓòÉ
  13390.  
  13391. Synonymous with delimited report. 
  13392.  
  13393.  
  13394. ΓòÉΓòÉΓòÉ <hidden> delimited report ΓòÉΓòÉΓòÉ
  13395.  
  13396. A report format that provides the same level of detail as the tabular report 
  13397. format, but the data in the dump format is delimited by quotation marks and can 
  13398. be imported into many spreadsheet programs. 
  13399.  
  13400.  
  13401. ΓòÉΓòÉΓòÉ <hidden> device ΓòÉΓòÉΓòÉ
  13402.  
  13403.   1. An input/output (I/O) unit such as a terminal, display, or printer. 
  13404.   2. In OS/2 LAN Server, a drive (for files resources) or port (for printers 
  13405.      and serial devices) that is assigned when a resource is used. 
  13406.  
  13407.  
  13408. ΓòÉΓòÉΓòÉ <hidden> device driver ΓòÉΓòÉΓòÉ
  13409.  
  13410. The executable code needed to attach and use a device such as a display, 
  13411. printer, plotter, or communications adapter. 
  13412.  
  13413.  
  13414. ΓòÉΓòÉΓòÉ <hidden> dialog box ΓòÉΓòÉΓòÉ
  13415.  
  13416. A window that allows the application to receive data typed by the user or to 
  13417. present formatted information to the user. 
  13418.  
  13419.  
  13420. ΓòÉΓòÉΓòÉ <hidden> directory ΓòÉΓòÉΓòÉ
  13421.  
  13422.   1. A list of the files that are stored on a disk or diskette.  A directory 
  13423.      also contains information about the file such as size and date of last 
  13424.      change. 
  13425.   2. A named grouping of files in a file system. 
  13426.  
  13427.  
  13428. ΓòÉΓòÉΓòÉ <hidden> disable ΓòÉΓòÉΓòÉ
  13429.  
  13430.   1. To make nonfunctional. 
  13431.   2. The state of a processing unit that prevents the occurrence of certain 
  13432.      types of interruptions. 
  13433.  
  13434.  
  13435. ΓòÉΓòÉΓòÉ <hidden> disk ΓòÉΓòÉΓòÉ
  13436.  
  13437. A magnetic disk unit.  See also diskette. 
  13438.  
  13439.  
  13440. ΓòÉΓòÉΓòÉ <hidden> diskette ΓòÉΓòÉΓòÉ
  13441.  
  13442. A thin, flexible magnetic disk enclosed in a protective container that is 
  13443. removable from the hardware.  See also disk. 
  13444.  
  13445.  
  13446. ΓòÉΓòÉΓòÉ <hidden> disk operating system (DOS) ΓòÉΓòÉΓòÉ
  13447.  
  13448. An operating system for computer systems that use disks and diskettes for 
  13449. auxiliary storage of programs and data. 
  13450.  
  13451.  
  13452. ΓòÉΓòÉΓòÉ <hidden> .DMP file ΓòÉΓòÉΓòÉ
  13453.  
  13454. Synonymous with dump report. 
  13455.  
  13456.  
  13457. ΓòÉΓòÉΓòÉ <hidden> domain ΓòÉΓòÉΓòÉ
  13458.  
  13459. A set of servers that allocates shared network resources within a single 
  13460. logical system. 
  13461.  
  13462.  
  13463. ΓòÉΓòÉΓòÉ <hidden> DOS ΓòÉΓòÉΓòÉ
  13464.  
  13465. See disk operating system. 
  13466.  
  13467.  
  13468. ΓòÉΓòÉΓòÉ <hidden> dump ΓòÉΓòÉΓòÉ
  13469.  
  13470. To copy data from memory onto an external medium such as a diskette or printer. 
  13471.  
  13472.  
  13473. ΓòÉΓòÉΓòÉ <hidden> dump report ΓòÉΓòÉΓòÉ
  13474.  
  13475. A report format that displays values for the lowest level performance counters 
  13476. and timers as sampled at the requested intervals. The file extension for a dump 
  13477. report file is .DMP. 
  13478.  
  13479.  
  13480. ΓòÉΓòÉΓòÉ <hidden> enable ΓòÉΓòÉΓòÉ
  13481.  
  13482. To make functional. 
  13483.  
  13484.  
  13485. ΓòÉΓòÉΓòÉ <hidden> end user ΓòÉΓòÉΓòÉ
  13486.  
  13487. The ultimate source or destination of data flowing through a network.  An end 
  13488. user can be an application program or a workstation operator. 
  13489.  
  13490.  
  13491. ΓòÉΓòÉΓòÉ <hidden> entry field ΓòÉΓòÉΓòÉ
  13492.  
  13493. A panel element, usually highlighted in some manner and usually with its 
  13494. boundaries indicated, where users type information. 
  13495.  
  13496.  
  13497. ΓòÉΓòÉΓòÉ <hidden> environment ΓòÉΓòÉΓòÉ
  13498.  
  13499. The collective hardware and software configuration of a system. 
  13500.  
  13501.  
  13502. ΓòÉΓòÉΓòÉ <hidden> error log ΓòÉΓòÉΓòÉ
  13503.  
  13504. A file that stores error information for later access. See log. 
  13505.  
  13506.  
  13507. ΓòÉΓòÉΓòÉ <hidden> event ΓòÉΓòÉΓòÉ
  13508.  
  13509. An occurrence of significance to a task; for example, the completion of an 
  13510. asynchronous operation such as an input/output (I/O) operation, failure of a 
  13511. subsystem, the end of work to fix a problem, or the end of processing. 
  13512.  
  13513.  
  13514. ΓòÉΓòÉΓòÉ <hidden> exit ΓòÉΓòÉΓòÉ
  13515.  
  13516. An action that ends the current function and returns to a higher-level 
  13517. function.  See also cancel. 
  13518.  
  13519.  
  13520. ΓòÉΓòÉΓòÉ <hidden> FAT ΓòÉΓòÉΓòÉ
  13521.  
  13522. See file allocation table. 
  13523.  
  13524.  
  13525. ΓòÉΓòÉΓòÉ <hidden> field ΓòÉΓòÉΓòÉ
  13526.  
  13527. An area in a record or on a panel used to contain data. 
  13528.  
  13529.  
  13530. ΓòÉΓòÉΓòÉ <hidden> file allocation table (FAT) ΓòÉΓòÉΓòÉ
  13531.  
  13532. In IBM personal computers, a table used to allocate space on a disk for a file. 
  13533. This can then be used to locate and chain together parts of the file that may 
  13534. be scattered on different sectors so that the file can be used in a random or 
  13535. sequential manner. 
  13536.  
  13537.  
  13538. ΓòÉΓòÉΓòÉ <hidden> file specification ΓòÉΓòÉΓòÉ
  13539.  
  13540. The full identifier for a file, which includes its drive, path, file name, and 
  13541. file name extension. 
  13542.  
  13543.  
  13544. ΓòÉΓòÉΓòÉ <hidden> file system ΓòÉΓòÉΓòÉ
  13545.  
  13546. The collection of files and file management structures on a physical or logical 
  13547. mass storage device such as a disk. 
  13548.  
  13549.  
  13550. ΓòÉΓòÉΓòÉ <hidden> filespec ΓòÉΓòÉΓòÉ
  13551.  
  13552. The name and location of a file.  The format is dependent on the storage medium 
  13553. of a file; for example, C:\path\filename.ext. 
  13554.  
  13555.  
  13556. ΓòÉΓòÉΓòÉ <hidden> filter ΓòÉΓòÉΓòÉ
  13557.  
  13558. A device or program that modifies data, signals, or material in accordance with 
  13559. specified criteria. 
  13560.  
  13561.  
  13562. ΓòÉΓòÉΓòÉ <hidden> flag ΓòÉΓòÉΓòÉ
  13563.  
  13564.   1. A modifier that defines the action of a command. 
  13565.   2. The action or return from a command. 
  13566.  
  13567.  
  13568. ΓòÉΓòÉΓòÉ <hidden> floating point number ΓòÉΓòÉΓòÉ
  13569.  
  13570. A number followed by an exponent designator, for example, 1.234E2, -5.678E2, or 
  13571. 1.234E-2. 
  13572.  
  13573.  
  13574. ΓòÉΓòÉΓòÉ <hidden> format ΓòÉΓòÉΓòÉ
  13575.  
  13576.   1. A specific arrangement of a set of data. 
  13577.   2. In the base operating system (both DOS and OS/2 modes), a command used to 
  13578.      prepare a diskette. 
  13579.  
  13580.  
  13581. ΓòÉΓòÉΓòÉ <hidden> frame ΓòÉΓòÉΓòÉ
  13582.  
  13583.   1. In high level data link control (HDLC), the sequence of contiguous bits 
  13584.      bracketed by and including the opening and closing flag (01111110). 
  13585.      Frames are used to transfer data and control information across a data 
  13586.      link. 
  13587.   2. A data structure that consists of fields predetermined by a protocol for 
  13588.      the transmission of user data and control data. 
  13589.   3. In X.25 packet switching data networks, the contiguous sequence of 8-bit 
  13590.      bytes delimited by beginning and ending flags.  Frames are used at the 
  13591.      frame level (level 2) of the X.25 protocol to transport information that 
  13592.      performs control functions, data transfers, and transmission checking. 
  13593.  
  13594.  
  13595. ΓòÉΓòÉΓòÉ <hidden> handle ΓòÉΓòÉΓòÉ
  13596.  
  13597. An identifier that represents an object, such as a device, window, or file. 
  13598.  
  13599.  
  13600. ΓòÉΓòÉΓòÉ <hidden> hook ΓòÉΓòÉΓòÉ
  13601.  
  13602.   1. In programming, an area of program code that makes connections with other 
  13603.      program codes possible. 
  13604.   2. A mechanism by which procedures are called when certain events occur in 
  13605.      the system; for example, the filtering of mouse and keyboard input before 
  13606.      it is received by an application program. 
  13607.  
  13608.  
  13609. ΓòÉΓòÉΓòÉ <hidden> IBM Extended Services for OS/2 ΓòÉΓòÉΓòÉ
  13610.  
  13611. A program that contains the Database Manager and Communications Manager 
  13612. components and uses a base operating system equivalent to IBM Operating 
  13613. System/2 Standard Edition Version 1.30.2. 
  13614.  
  13615.  
  13616. ΓòÉΓòÉΓòÉ <hidden> IBM LAN Server ΓòÉΓòÉΓòÉ
  13617.  
  13618. See IBM Operating System/2 LAN Server. 
  13619.  
  13620.  
  13621. ΓòÉΓòÉΓòÉ <hidden> IBM Operating System/2 LAN Server ΓòÉΓòÉΓòÉ
  13622.  
  13623. A program that contains the LAN Server, OS/2 LAN Requester, and DOS LAN 
  13624. Requester components.  It allows resources to be shared with other computers on 
  13625. the network.  See server. 
  13626.  
  13627.  
  13628. ΓòÉΓòÉΓòÉ <hidden> IBM Operating System/2 Standard Edition ΓòÉΓòÉΓòÉ
  13629.  
  13630. The base operating system for OS/2 programs. 
  13631.  
  13632.  
  13633. ΓòÉΓòÉΓòÉ <hidden> icon ΓòÉΓòÉΓòÉ
  13634.  
  13635. A pictorial representation of a choice for the user to select.  Icons can 
  13636. represent things (such as a document or file) the user wants to work on.  Icons 
  13637. can also represent actions the user wants to perform. 
  13638.  
  13639.  
  13640. ΓòÉΓòÉΓòÉ <hidden> ID ΓòÉΓòÉΓòÉ
  13641.  
  13642. Identification; identifier. 
  13643.  
  13644.  
  13645. ΓòÉΓòÉΓòÉ <hidden> integer ΓòÉΓòÉΓòÉ
  13646.  
  13647. A whole number, for example, one of the numbers 0, +1, -1. 
  13648.  
  13649.  
  13650. ΓòÉΓòÉΓòÉ <hidden> interface ΓòÉΓòÉΓòÉ
  13651.  
  13652.   1. A set of verbs used by a program to communicate with another program. 
  13653.   2. A shared boundary between two or more entities.  An interface might be a 
  13654.      hardware component to link two devices together or it might be a portion 
  13655.      of memory or registers accessed by two or more computer programs. 
  13656.   3. It describes all properties that an object can exhibit to its client, such 
  13657.      as attributes, actions, notifications, and behavior. 
  13658.   4. The exterior appearance of a class, object or module that emphasizes its 
  13659.      abstract generic nature while hiding its structure and the specifics of 
  13660.      its behavior. 
  13661.  
  13662.  
  13663. ΓòÉΓòÉΓòÉ <hidden> interrupt ΓòÉΓòÉΓòÉ
  13664.  
  13665. A suspension of a process, such as the execution of a computer program caused 
  13666. by an event external to that process, performed in such a way that the process 
  13667. can be resumed. 
  13668.  
  13669.  
  13670. ΓòÉΓòÉΓòÉ <hidden> KB ΓòÉΓòÉΓòÉ
  13671.  
  13672. See kilobyte. 
  13673.  
  13674.  
  13675. ΓòÉΓòÉΓòÉ <hidden> kernel ΓòÉΓòÉΓòÉ
  13676.  
  13677. The part of an operating system that performs basic functions such as 
  13678. allocating hardware resources. 
  13679.  
  13680.  
  13681. ΓòÉΓòÉΓòÉ <hidden> kilobyte (KB) ΓòÉΓòÉΓòÉ
  13682.  
  13683. A term meaning 1024 bytes. 
  13684.  
  13685.  
  13686. ΓòÉΓòÉΓòÉ <hidden> LAN ΓòÉΓòÉΓòÉ
  13687.  
  13688. See local area network. 
  13689.  
  13690.  
  13691. ΓòÉΓòÉΓòÉ <hidden> LAN adapter ΓòÉΓòÉΓòÉ
  13692.  
  13693. A card that is installed in a computer and that is used to attach the computer 
  13694. to a local area network. 
  13695.  
  13696.  
  13697. ΓòÉΓòÉΓòÉ <hidden> LAN Requester ΓòÉΓòÉΓòÉ
  13698.  
  13699. The component of OS/2 LAN Server that allows users to access shared network 
  13700. resources made available by OS/2 LAN Servers.  See requester. 
  13701.  
  13702.  
  13703. ΓòÉΓòÉΓòÉ <hidden> LAN Server ΓòÉΓòÉΓòÉ
  13704.  
  13705. See IBM Operating System/2 LAN Server. 
  13706.  
  13707.  
  13708. ΓòÉΓòÉΓòÉ <hidden> list box ΓòÉΓòÉΓòÉ
  13709.  
  13710. In Presentation Interface, a vertical, scrollable list of items. 
  13711.  
  13712.  
  13713. ΓòÉΓòÉΓòÉ <hidden> local ΓòÉΓòÉΓòÉ
  13714.  
  13715. Pertaining to a device or system that is connected directly to, or a file that 
  13716. is read directly from your system, without the use of communications line. 
  13717. Contrast with remote. 
  13718.  
  13719.  
  13720. ΓòÉΓòÉΓòÉ <hidden> local area network (LAN) ΓòÉΓòÉΓòÉ
  13721.  
  13722.   1. Two or more computing units connected for local resource sharing. 
  13723.   2. A network in which communication is limited to a moderate-sized geographic 
  13724.      area, such as a single office building, warehouse, or campus, and that do 
  13725.      not extend across public rights-of-way. 
  13726.  
  13727.  
  13728. ΓòÉΓòÉΓòÉ <hidden> local database ΓòÉΓòÉΓòÉ
  13729.  
  13730. A database physically located on the workstation in use.  Contrast with remote 
  13731. database. 
  13732.  
  13733.  
  13734. ΓòÉΓòÉΓòÉ <hidden> log ΓòÉΓòÉΓòÉ
  13735.  
  13736. To record; for example, to log all messages on the system printer. See message 
  13737. log and error log. 
  13738.  
  13739.  
  13740. ΓòÉΓòÉΓòÉ <hidden> .LOG file ΓòÉΓòÉΓòÉ
  13741.  
  13742. Synonymous with monitor session file. 
  13743.  
  13744.  
  13745. ΓòÉΓòÉΓòÉ <hidden> LS ΓòÉΓòÉΓòÉ
  13746.  
  13747. See LAN Server. 
  13748.  
  13749.  
  13750. ΓòÉΓòÉΓòÉ <hidden> memory allocation ΓòÉΓòÉΓòÉ
  13751.  
  13752. An operating system function that assigns memory areas to tasks. 
  13753.  
  13754.  
  13755. ΓòÉΓòÉΓòÉ <hidden> menu ΓòÉΓòÉΓòÉ
  13756.  
  13757.   1. A displayed list of available machine functions for selection by a user. 
  13758.   2. A displayed list of items from which a user can make a selection. 
  13759.  
  13760.  
  13761. ΓòÉΓòÉΓòÉ <hidden> message ΓòÉΓòÉΓòÉ
  13762.  
  13763. The information not requested by users but presented to users by the computer 
  13764. in response to a user action or internal process. 
  13765.  
  13766.  
  13767. ΓòÉΓòÉΓòÉ <hidden> message log ΓòÉΓòÉΓòÉ
  13768.  
  13769. A file used to save or log certain types of messages and status information. 
  13770. See log. 
  13771.  
  13772.  
  13773. ΓòÉΓòÉΓòÉ <hidden> metric ΓòÉΓòÉΓòÉ
  13774.  
  13775. A measure of performance with specific units, for example, writes per second. 
  13776. Synonymous with hook. 
  13777.  
  13778.  
  13779. ΓòÉΓòÉΓòÉ <hidden> metric definition file ΓòÉΓòÉΓòÉ
  13780.  
  13781. An ASCII text file containing definitions of the metrics for an application. 
  13782.  
  13783.  
  13784. ΓòÉΓòÉΓòÉ <hidden> monitor ΓòÉΓòÉΓòÉ
  13785.  
  13786.   1. An action that observes and records selected events and activities within 
  13787.      a data processing system for purposes of analysis. 
  13788.  
  13789.   2. To collect data about a process or activity. 
  13790.  * 
  13791.  
  13792.  
  13793. ΓòÉΓòÉΓòÉ <hidden> monitored workstation ΓòÉΓòÉΓòÉ
  13794.  
  13795. Any workstation in a network that is monitored by the monitoring server using 
  13796. System Performance Monitor/2. 
  13797.  
  13798.  
  13799. ΓòÉΓòÉΓòÉ <hidden> monitoring server ΓòÉΓòÉΓòÉ
  13800.  
  13801. Any server in a network that is monitoring other workstations using System 
  13802. Performance Monitor/2. 
  13803.  
  13804.  
  13805. ΓòÉΓòÉΓòÉ <hidden> monitor session ΓòÉΓòÉΓòÉ
  13806.  
  13807.   1. The period of time in which System Performance Monitor/2 monitors selected 
  13808.      resources of specified workstations. 
  13809.   2. The SPM/2 program that monitors the resources and workstations. 
  13810.  
  13811.  
  13812. ΓòÉΓòÉΓòÉ <hidden> monitor session file ΓòÉΓòÉΓòÉ
  13813.  
  13814. The file containing the parameters that determine what data is collected by a 
  13815. monitor session and the data itself. 
  13816.  
  13817.  
  13818. ΓòÉΓòÉΓòÉ <hidden> multiplexer ΓòÉΓòÉΓòÉ
  13819.  
  13820.   1. A device that takes several input signals and combines them into a single 
  13821.      output signal in such a manner that each of the input signals can be 
  13822.      recovered. 
  13823.   2. A device capable of interleaving events of two or more activities or 
  13824.      capable of distributing events of an interleaved sequence to the 
  13825.      respective activities. 
  13826.  
  13827.  
  13828. ΓòÉΓòÉΓòÉ <hidden> named pipe ΓòÉΓòÉΓòÉ
  13829.  
  13830. A two-way flow of data from one program to another that is referenced by a 
  13831. logical name.  Named pipes allow two processes to communicate with each other 
  13832. even if these programs are on separate machines on a network.  See pipe. 
  13833.  
  13834.  
  13835. ΓòÉΓòÉΓòÉ <hidden> NETBIOS ΓòÉΓòÉΓòÉ
  13836.  
  13837. See network basic input/output system. 
  13838.  
  13839.  
  13840. ΓòÉΓòÉΓòÉ <hidden> network administrator ΓòÉΓòÉΓòÉ
  13841.  
  13842. The person responsible for the installation, management, control, and 
  13843. configuration of a network.  The network administrator defines the resources to 
  13844. be shared and user access to the shared resources, and determines the type of 
  13845. access those users can have. 
  13846.  
  13847.  
  13848. ΓòÉΓòÉΓòÉ <hidden> network basic input/output system (NETBIOS) ΓòÉΓòÉΓòÉ
  13849.  
  13850. A system that provides a programming interface to the local area network (LAN) 
  13851. so that an application program can have LAN communication without knowledge and 
  13852. responsibility of some of the lower layer protocol functions.  Nodes are 
  13853. identified on the LAN by NETBIOS names, and two types of data transfer are 
  13854. supported.  Session support provides guaranteed delivery of the data, while 
  13855. datagram support does not guarantee delivery.  NETBIOS is a part of LAN Adapter 
  13856. and Protocol Support. 
  13857.  
  13858.  
  13859. ΓòÉΓòÉΓòÉ <hidden> node ΓòÉΓòÉΓòÉ
  13860.  
  13861. An end point of a communications link or a junction common to two or more links 
  13862. in a network.  Nodes can be processors, communication controllers, cluster 
  13863. controllers, terminals, or workstations. 
  13864.  
  13865.  
  13866. ΓòÉΓòÉΓòÉ <hidden> normal stop ΓòÉΓòÉΓòÉ
  13867.  
  13868. In System Performance Monitor/2, the routine shutdown process for stopping a 
  13869. recording or graphing session. 
  13870.  
  13871.  
  13872. ΓòÉΓòÉΓòÉ <hidden> null ΓòÉΓòÉΓòÉ
  13873.  
  13874. A special value that indicates the absence of information. 
  13875.  
  13876.  
  13877. ΓòÉΓòÉΓòÉ <hidden> offset ΓòÉΓòÉΓòÉ
  13878.  
  13879. The number of measuring units from an arbitrary starting point in a record, 
  13880. area, control block, or a segment to some other point. 
  13881.  
  13882.  
  13883. ΓòÉΓòÉΓòÉ <hidden> online ΓòÉΓòÉΓòÉ
  13884.  
  13885.   1. Pertaining to a user's ability to interact with a computer. A description 
  13886.      of a user's access to a computer by way of a screen. 
  13887.   2. Pertaining to the operation of a functional unit that is under the 
  13888.      continuous control of a computer. 
  13889.  
  13890.  
  13891. ΓòÉΓòÉΓòÉ <hidden> OS/2 LAN Requester ΓòÉΓòÉΓòÉ
  13892.  
  13893. See IBM Operating System/2 LAN Requester. 
  13894.  
  13895.  
  13896. ΓòÉΓòÉΓòÉ <hidden> OS/2 LAN Server ΓòÉΓòÉΓòÉ
  13897.  
  13898. See IBM Operating System/2 LAN Server. 
  13899.  
  13900.  
  13901. ΓòÉΓòÉΓòÉ <hidden> page ΓòÉΓòÉΓòÉ
  13902.  
  13903.   1. In a virtual storage system, a fixed-length block that has a virtual 
  13904.      address and is transferred as a unit between memory and disk storage. 
  13905.  
  13906.   2. To transfer a page between memory and disk storage. 
  13907.  
  13908.  
  13909. ΓòÉΓòÉΓòÉ <hidden> panel ΓòÉΓòÉΓòÉ
  13910.  
  13911. A particular arrangement of information grouped together for presentation to 
  13912. the user. 
  13913.  
  13914.  
  13915. ΓòÉΓòÉΓòÉ <hidden> parameter ΓòÉΓòÉΓòÉ
  13916.  
  13917. An item for which the user specifies a value or for which the system provides a 
  13918. value when the users selection is interpreted. 
  13919.  
  13920.  
  13921. ΓòÉΓòÉΓòÉ <hidden> path ΓòÉΓòÉΓòÉ
  13922.  
  13923. The route used to locate files on a disk or diskette.  The route consists of a 
  13924. collection of drives and directories. 
  13925.  
  13926.  
  13927. ΓòÉΓòÉΓòÉ <hidden> pipe ΓòÉΓòÉΓòÉ
  13928.  
  13929. To direct the data so that the output from one process becomes the input to 
  13930. another process. 
  13931.  
  13932.  
  13933. ΓòÉΓòÉΓòÉ <hidden> pointer ΓòÉΓòÉΓòÉ
  13934.  
  13935. In the C language, an indirect means of accessing the value of a particular 
  13936. data item. 
  13937.  
  13938.  
  13939. ΓòÉΓòÉΓòÉ <hidden> port ΓòÉΓòÉΓòÉ
  13940.  
  13941. Synonym for communication port. 
  13942.  
  13943.  
  13944. ΓòÉΓòÉΓòÉ <hidden> Presentation Manager ΓòÉΓòÉΓòÉ
  13945.  
  13946. The interface of the OS/2 program that presents, in windows, a graphics-based 
  13947. interface to applications and files installed and running on the OS/2 program. 
  13948.  
  13949.  
  13950. ΓòÉΓòÉΓòÉ <hidden> privilege level ΓòÉΓòÉΓòÉ
  13951.  
  13952.   1. Privilege level is a protection mechanism of the processor that provides 
  13953.      four hierarchical protection levels to ensure program reliability.  At any 
  13954.      one time, a task executes at one of the four levels.  A task executing at 
  13955.      one level cannot access data at a more privileged level, nor can it call a 
  13956.      procedure at a less privileged level.  The most trusted service procedures 
  13957.      occupy the higher levels (levels 0, 1, and 2) while the less trusted 
  13958.      application programs are placed at the lowest level of privilege (level 
  13959.      3). 
  13960.   2. The level of resources a piece of code has access to. 
  13961.  
  13962.  
  13963. ΓòÉΓòÉΓòÉ <hidden> process ΓòÉΓòÉΓòÉ
  13964.  
  13965. A collection of system resources that include one or more threads of execution 
  13966. that perform a task. 
  13967.  
  13968.  
  13969. ΓòÉΓòÉΓòÉ <hidden> process ID ΓòÉΓòÉΓòÉ
  13970.  
  13971. See process identification number. 
  13972.  
  13973.  
  13974. ΓòÉΓòÉΓòÉ <hidden> process identification number (process ID) ΓòÉΓòÉΓòÉ
  13975.  
  13976. A unique number assigned to a process by the operating system. The number is 
  13977. used internally by processes to communicate. 
  13978.  
  13979.  
  13980. ΓòÉΓòÉΓòÉ <hidden> processor ΓòÉΓòÉΓòÉ
  13981.  
  13982. In a computer, a functional unit that interprets and processes instructions. 
  13983.  
  13984.  
  13985. ΓòÉΓòÉΓòÉ <hidden> profile ΓòÉΓòÉΓòÉ
  13986.  
  13987.   1. An object that contains information about the characteristics of a 
  13988.      computer system or application. 
  13989.   2. In Communications Manager, a part of a configuration file. 
  13990.  
  13991.  
  13992. ΓòÉΓòÉΓòÉ <hidden> program name ΓòÉΓòÉΓòÉ
  13993.  
  13994. In System Performance Monitor/2, the name of an executable file associated with 
  13995. an application. 
  13996.  
  13997.  
  13998. ΓòÉΓòÉΓòÉ <hidden> pull-down ΓòÉΓòÉΓòÉ
  13999.  
  14000. An extension of the action bar that displays a list of one or more choices that 
  14001. are available for a selected action bar choice. 
  14002.  
  14003.  
  14004. ΓòÉΓòÉΓòÉ <hidden> pushbutton ΓòÉΓòÉΓòÉ
  14005.  
  14006. A rounded-corner rectangle with text inside used in graphics applications for 
  14007. actions that occur when the pushbutton is selected. 
  14008.  
  14009.  
  14010. ΓòÉΓòÉΓòÉ <hidden> query ΓòÉΓòÉΓòÉ
  14011.  
  14012. A request for information from the database based on specific conditions; for 
  14013. example, a request for a list of all customers in a customer table whose 
  14014. balance is greater than $1000. 
  14015.  
  14016.  
  14017. ΓòÉΓòÉΓòÉ <hidden> queue ΓòÉΓòÉΓòÉ
  14018.  
  14019.   1. A line or list formed by items waiting to be processed; for example, a 
  14020.      list of print jobs waiting to be printed. 
  14021.   2. A set of items.  For example, a queue counter represents the number of 
  14022.      items. 
  14023.  
  14024.  
  14025. ΓòÉΓòÉΓòÉ <hidden> queue length ΓòÉΓòÉΓòÉ
  14026.  
  14027. Consists of two parts: 
  14028.  
  14029.  o Queue count.  This is 4-byte state counter that contains the current number 
  14030.    of elements in the queue at the time the snapshot of the hook values was 
  14031.    taken.  This is just an instantaneous value. 
  14032.  
  14033.  o Queue time.  This is an 8-byte timer that contains a value that is not 
  14034.    purely time, but rather a composite of the amount of time each element has 
  14035.    been in the queue. 
  14036.  
  14037.  
  14038. ΓòÉΓòÉΓòÉ <hidden> radio button ΓòÉΓòÉΓòÉ
  14039.  
  14040. A round button on the screen that is used to indicate items in a list from 
  14041. which only one item can be selected.  Contrast with check box. 
  14042.  
  14043.  
  14044. ΓòÉΓòÉΓòÉ <hidden> RAM ΓòÉΓòÉΓòÉ
  14045.  
  14046. See random access memory. 
  14047.  
  14048.  
  14049. ΓòÉΓòÉΓòÉ <hidden> random access ΓòÉΓòÉΓòÉ
  14050.  
  14051. An access mode in which records can be read from, written to, or removed from a 
  14052. file in any order. 
  14053.  
  14054.  
  14055. ΓòÉΓòÉΓòÉ <hidden> random access memory (RAM) ΓòÉΓòÉΓòÉ
  14056.  
  14057. The physical memory installed in a personal computer (PC). 
  14058.  
  14059.  
  14060. ΓòÉΓòÉΓòÉ <hidden> .RDF file ΓòÉΓòÉΓòÉ
  14061.  
  14062. Synonymous with report description file. 
  14063.  
  14064.  
  14065. ΓòÉΓòÉΓòÉ <hidden> read-only ΓòÉΓòÉΓòÉ
  14066.  
  14067. A type of access to data that allows it to be read but not copied, printed, or 
  14068. modified. 
  14069.  
  14070.  
  14071. ΓòÉΓòÉΓòÉ <hidden> record ΓòÉΓòÉΓòÉ
  14072.  
  14073.   1. To write pertinent data to a file.  Synonymous with log. 
  14074.   2. A set of data treated as a unit, such as a collected set of metrics. 
  14075.  
  14076.  
  14077. ΓòÉΓòÉΓòÉ <hidden> remote ΓòÉΓòÉΓòÉ
  14078.  
  14079. Pertaining to a system, program, or device that is accessed through a 
  14080. telecommunication line.  Contrast with local. 
  14081.  
  14082.  
  14083. ΓòÉΓòÉΓòÉ <hidden> remote database ΓòÉΓòÉΓòÉ
  14084.  
  14085. A database physically located on some workstation other than the one currently 
  14086. in use.  Contrast with local database. 
  14087.  
  14088.  
  14089. ΓòÉΓòÉΓòÉ <hidden> replace ΓòÉΓòÉΓòÉ
  14090.  
  14091. To substitute one record or file for another record or file. Contrast with 
  14092. append. 
  14093.  
  14094.  
  14095. ΓòÉΓòÉΓòÉ <hidden> report description file ΓòÉΓòÉΓòÉ
  14096.  
  14097. The file containing the parameters that determine the output format and content 
  14098. of a report. 
  14099.  
  14100.  
  14101. ΓòÉΓòÉΓòÉ <hidden> requester ΓòÉΓòÉΓòÉ
  14102.  
  14103. A computer that accesses shared network resources made available by other 
  14104. computers running as servers on the network. 
  14105.  
  14106.  
  14107. ΓòÉΓòÉΓòÉ <hidden> resource ΓòÉΓòÉΓòÉ
  14108.  
  14109. Any facility of a computing system or operating system required by a job or 
  14110. task, and including memory, input/output (I/O) devices, processing unit, data 
  14111. files, and control or processing programs. 
  14112.  
  14113.  
  14114. ΓòÉΓòÉΓòÉ <hidden> response time ΓòÉΓòÉΓòÉ
  14115.  
  14116. The time it takes to complete a single request (from the end user's 
  14117. perspective).  Examples of response time would be the number of microseconds it 
  14118. takes to complete a record transfer or a screen update. 
  14119.  
  14120.  
  14121. ΓòÉΓòÉΓòÉ <hidden> restore ΓòÉΓòÉΓòÉ
  14122.  
  14123.   1. To reestablish an original condition. 
  14124.   2. In Presentation Manager, to return a window to its original size or 
  14125.      position following a sizing or moving action. 
  14126.   3. An OS/2 command that restores files that have been backed up. 
  14127.  
  14128.  
  14129. ΓòÉΓòÉΓòÉ <hidden> return code ΓòÉΓòÉΓòÉ
  14130.  
  14131. A value returned to a program to indicate the results of an operation requested 
  14132. by that program. 
  14133.  
  14134.  
  14135. ΓòÉΓòÉΓòÉ <hidden> ring ΓòÉΓòÉΓòÉ
  14136.  
  14137. Synonymous with privilege level. 
  14138.  
  14139.  
  14140. ΓòÉΓòÉΓòÉ <hidden> screen ΓòÉΓòÉΓòÉ
  14141.  
  14142. The physical surface of a display device upon which information is presented to 
  14143. the user. See also panel. 
  14144.  
  14145.  
  14146. ΓòÉΓòÉΓòÉ <hidden> select button ΓòÉΓòÉΓòÉ
  14147.  
  14148. The button on a pointing device, such as a mouse, that is pressed to select a 
  14149. menu choice. Also known as button 1. 
  14150.  
  14151.  
  14152. ΓòÉΓòÉΓòÉ <hidden> semaphore ΓòÉΓòÉΓòÉ
  14153.  
  14154. A system mechanism used to control access to system resources. 
  14155.  
  14156.  
  14157. ΓòÉΓòÉΓòÉ <hidden> server ΓòÉΓòÉΓòÉ
  14158.  
  14159.   1. On a local area network (LAN), a workstation that provides facilities to 
  14160.      other workstations. 
  14161.   2. A computer that shares its resources with other computers on the network. 
  14162.   3. In OS/2 LAN Server, the component that allows a computer to share its 
  14163.      resources with other computers on the network.  This component is a 
  14164.      composite of all the base components that must be installed for the LAN 
  14165.      Server to be installed. 
  14166.  
  14167.  
  14168. ΓòÉΓòÉΓòÉ <hidden> session ΓòÉΓòÉΓòÉ
  14169.  
  14170.   1. A sequence of management operations and notifications requested by a 
  14171.      particular client using the same session OM object. 
  14172.   2. A logical connection between two machines on a network. 
  14173.   3. In OS/2 LAN Server, a logical connection between a server and a requester 
  14174.      that begins with a successful request for a shared resource. 
  14175.   4. The period of time during which a user can communicate with an interactive 
  14176.      system. 
  14177.  
  14178.  
  14179. ΓòÉΓòÉΓòÉ <hidden> shutdown ΓòÉΓòÉΓòÉ
  14180.  
  14181. In Task Manager, the procedure required before the computer is switched off to 
  14182. ensure that data and configuration information is not lost. 
  14183.  
  14184.  
  14185. ΓòÉΓòÉΓòÉ <hidden> SPM/2 ΓòÉΓòÉΓòÉ
  14186.  
  14187. See System Performance Monitor/2. 
  14188.  
  14189.  
  14190. ΓòÉΓòÉΓòÉ <hidden> .SPM file ΓòÉΓòÉΓòÉ
  14191.  
  14192. Synonymous with metric definition file. 
  14193.  
  14194.  
  14195. ΓòÉΓòÉΓòÉ <hidden> string ΓòÉΓòÉΓòÉ
  14196.  
  14197. A sequence of elements of the same nature, such as characters, considered as a 
  14198. whole. 
  14199.  
  14200.  
  14201. ΓòÉΓòÉΓòÉ <hidden> state counter ΓòÉΓòÉΓòÉ
  14202.  
  14203. Metric with a 4-byte value.  Indicates the current state of a resource.  Its 
  14204. value increases or decreases one at a time (for example, the number of pages in 
  14205. memory). 
  14206.  
  14207.  
  14208. ΓòÉΓòÉΓòÉ <hidden> state timer ΓòÉΓòÉΓòÉ
  14209.  
  14210. Metric with an 8-byte value.  This is an application-defined value in units. 
  14211.  
  14212.  
  14213. ΓòÉΓòÉΓòÉ <hidden> .SUM file ΓòÉΓòÉΓòÉ
  14214.  
  14215. Synonymous with summary report. 
  14216.  
  14217.  
  14218. ΓòÉΓòÉΓòÉ <hidden> summary report ΓòÉΓòÉΓòÉ
  14219.  
  14220. A report format that summarizes performance data at any of several detail 
  14221. levels, including workstation, application, process, and thread.  The file 
  14222. extension for a summary report file is .SUM. 
  14223.  
  14224.  
  14225. ΓòÉΓòÉΓòÉ <hidden> synchronous ΓòÉΓòÉΓòÉ
  14226.  
  14227. Pertaining to two or more processes that depend upon the occurrences of 
  14228. specific events such as a common timing signal. Contrast with asynchronous. 
  14229.  
  14230.  
  14231. ΓòÉΓòÉΓòÉ <hidden> syntax ΓòÉΓòÉΓòÉ
  14232.  
  14233.   1. The relationship among characters or groups of characters, independent of 
  14234.      their meanings or the manner of their interpretation and use. 
  14235.   2. The structure of expressions in a language. 
  14236.   3. The rules governing the structure of a language. 
  14237.   4. The rules for the construction of a statement. 
  14238.  
  14239.  
  14240. ΓòÉΓòÉΓòÉ <hidden> system ΓòÉΓòÉΓòÉ
  14241.  
  14242. A computer and its associated devices and programs.  See also workstation. 
  14243.  
  14244.  
  14245. ΓòÉΓòÉΓòÉ <hidden> system administrator (SYSADM) ΓòÉΓòÉΓòÉ
  14246.  
  14247.   1. A user with administrator authority.  Such users can grant other users or 
  14248.      groups the right to access objects and can revoke such rights. 
  14249.   2. In Communications Manager, the person responsible for installing, 
  14250.      configuring, and setting up local communications networks, and ensuring 
  14251.      the proper use of Communications Manager on all supported hardware. 
  14252.  
  14253.  
  14254. ΓòÉΓòÉΓòÉ <hidden> System menu ΓòÉΓòÉΓòÉ
  14255.  
  14256. The pull-down in the top left-hand corner of all primary windows that allows 
  14257. windows to be moved and sized. It can also be used to close a program and to 
  14258. select Task Manager. 
  14259.  
  14260.  
  14261. ΓòÉΓòÉΓòÉ <hidden> System Performance Monitor/2 ΓòÉΓòÉΓòÉ
  14262.  
  14263. A program that collects, records, and graphs performance data and processes the 
  14264. data into various report formats. 
  14265.  
  14266.  
  14267. ΓòÉΓòÉΓòÉ <hidden> system trace ΓòÉΓòÉΓòÉ
  14268.  
  14269. A historical record of specific events in the execution of the Extended 
  14270. Services program.  The record is usually produced for debugging purposes. 
  14271.  
  14272.  
  14273. ΓòÉΓòÉΓòÉ <hidden> .TAB file ΓòÉΓòÉΓòÉ
  14274.  
  14275. Synonymous with tabular report. 
  14276.  
  14277.  
  14278. ΓòÉΓòÉΓòÉ <hidden> tabular report ΓòÉΓòÉΓòÉ
  14279.  
  14280. A report format that provides a high-level summary of performance data.  This 
  14281. report format is not as detailed as the summary report format.  The file 
  14282. extension for a tabular report file is .TAB. 
  14283.  
  14284.  
  14285. ΓòÉΓòÉΓòÉ <hidden> template ΓòÉΓòÉΓòÉ
  14286.  
  14287. A pattern used as a guide in the construction of items of the same kind. 
  14288.  
  14289.  
  14290. ΓòÉΓòÉΓòÉ <hidden> think time ΓòÉΓòÉΓòÉ
  14291.  
  14292. The amount of time between each request.  It affects the arrival rate of events 
  14293. at the servicing machine or application. 
  14294.  
  14295.  
  14296. ΓòÉΓòÉΓòÉ <hidden> thread ΓòÉΓòÉΓòÉ
  14297.  
  14298. Single sequential flow of control within a process. 
  14299.  
  14300.  
  14301. ΓòÉΓòÉΓòÉ <hidden> threshold ΓòÉΓòÉΓòÉ
  14302.  
  14303. A level set in the managing workstation at which a message is sent or an 
  14304. error-handling program is called; a percentage value set for a resource and 
  14305. compared to a calculated error-to-traffic ratio. 
  14306.  
  14307.  
  14308. ΓòÉΓòÉΓòÉ <hidden> throughput ΓòÉΓòÉΓòÉ
  14309.  
  14310. The ability of a system to complete some number of end user or application 
  14311. requests (transactions) in a given amount of time. Throughput is generally 
  14312. expressed in kilobytes per second (KB/sec) or transactions per second. 
  14313.  
  14314.  
  14315. ΓòÉΓòÉΓòÉ <hidden> timer ΓòÉΓòÉΓòÉ
  14316.  
  14317. Metric with an 8-byte value.  Counts nanosecond tics of the system clock.  When 
  14318. combined with other counters, timers are used to measure how long an event 
  14319. takes. 
  14320.  
  14321.  
  14322. ΓòÉΓòÉΓòÉ <hidden> title bar ΓòÉΓòÉΓòÉ
  14323.  
  14324. The area at the top of the window that contains the window title. 
  14325.  
  14326.  
  14327. ΓòÉΓòÉΓòÉ <hidden> toggle ΓòÉΓòÉΓòÉ
  14328.  
  14329.   1. The ability to switch between two modes; for example, insert and replace. 
  14330.   2. To switch between two modes; for example, on a personal computer connected 
  14331.      to a network, to switch between the data entry and command entry modes or 
  14332.      between stand-alone operation and terminal emulation. 
  14333.  
  14334.  
  14335. ΓòÉΓòÉΓòÉ <hidden> trace services ΓòÉΓòÉΓòÉ
  14336.  
  14337. In Communications Manager, a menu-driven utility used to trace application 
  14338. programming interfaces (APIs) and data transmitted on communication links. 
  14339.  
  14340.  
  14341. ΓòÉΓòÉΓòÉ <hidden> transaction ΓòÉΓòÉΓòÉ
  14342.  
  14343. An exchange between a workstation and a program, between two workstations, or 
  14344. between two programs that accomplishes a particular action or result. 
  14345.  
  14346.  
  14347. ΓòÉΓòÉΓòÉ <hidden> UNC ΓòÉΓòÉΓòÉ
  14348.  
  14349. See universal naming convention. 
  14350.  
  14351.  
  14352. ΓòÉΓòÉΓòÉ <hidden> universal naming convention ΓòÉΓòÉΓòÉ
  14353.  
  14354. A name used to identify the server and netname of a resource, taking the form: 
  14355. \\servername\netname\pathnamr\filename or \\servername\netname\devicename. 
  14356.  
  14357.  
  14358. ΓòÉΓòÉΓòÉ <hidden> UPM ΓòÉΓòÉΓòÉ
  14359.  
  14360. See User Profile Management. 
  14361.  
  14362.  
  14363. ΓòÉΓòÉΓòÉ <hidden> user ΓòÉΓòÉΓòÉ
  14364.  
  14365. A person who uses a resource on a computer. 
  14366.  
  14367.  
  14368. ΓòÉΓòÉΓòÉ <hidden> user ID ΓòÉΓòÉΓòÉ
  14369.  
  14370. A unique name that identifies a user to the network. 
  14371.  
  14372.  
  14373. ΓòÉΓòÉΓòÉ <hidden> user interface ΓòÉΓòÉΓòÉ
  14374.  
  14375. The hardware, software, or both that allows a user to interact with and perform 
  14376. operations on a system, program, or device.  See interface. 
  14377.  
  14378.  
  14379. ΓòÉΓòÉΓòÉ <hidden> user profile ΓòÉΓòÉΓòÉ
  14380.  
  14381.   1. In OS/2 LAN Server, a command file containing commands that set 
  14382.      environment values and run programs automatically when a user logs on. 
  14383.   2. A description of a user that includes such information as user ID, user 
  14384.      name, access authority, and other attributes obtained at logon. 
  14385.  
  14386.  
  14387. ΓòÉΓòÉΓòÉ <hidden> User Profile Management (UPM) ΓòÉΓòÉΓòÉ
  14388.  
  14389. User Profile Management is automatically installed with the Extended Services 
  14390. program.  It provides user ID validation and user and group management 
  14391. facilities that are used by Database Manager, LAN Services, and Communications 
  14392. Manager.  Each installation of User Profile Management is local to the 
  14393. particular workstation where it is installed and validates users accessing 
  14394. controlled data or using programs that reside on that particular workstation. 
  14395. It also provides the mechanism for users to log on to the system and log off 
  14396. from the system to identify and authenticate system users. 
  14397.  
  14398.  
  14399. ΓòÉΓòÉΓòÉ <hidden> vector ΓòÉΓòÉΓòÉ
  14400.  
  14401. A data structure in which any item may be located by a single index or 
  14402. subscript. 
  14403.  
  14404.  
  14405. ΓòÉΓòÉΓòÉ <hidden> window ΓòÉΓòÉΓòÉ
  14406.  
  14407. An area of the screen with visible boundaries through which a panel or portion 
  14408. of a panel is displayed. 
  14409.  
  14410.  
  14411. ΓòÉΓòÉΓòÉ <hidden> working set ΓòÉΓòÉΓòÉ
  14412.  
  14413. Includes the memory pages (data and code) that are accessed in a given 
  14414. environment during a specific time interval. Working set RAM includes pages 
  14415. that are used during the time interval. 
  14416.  
  14417.  
  14418. ΓòÉΓòÉΓòÉ <hidden> workstation ΓòÉΓòÉΓòÉ
  14419.  
  14420.   1. For LAN purposes, a workstation is either a requester or a server.  A 
  14421.      workstation can have only one name by which it is known to the network. 
  14422.      See also system. 
  14423.   2. In SPM/2, a stand-alone workstation (no LAN services installed) is called 
  14424.      LOCAL. 
  14425.  
  14426.  
  14427. ΓòÉΓòÉΓòÉ <hidden> X.25 ΓòÉΓòÉΓòÉ
  14428.  
  14429. A protocol defining the interface between a computer and a packet switching 
  14430. network.