IBM Tivoli Network Manager IP Edition 3.8 FixPack 1 README (Build 3.8.0.35) Date: June 1,2009 ==================================================================== Copyright Notice: ------------------------- © Copyright IBM Corp. 2009 All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ==================================================================== Introduction ===================================== This README contains information on issues fixed in IBM Tivoli Network Manager IP Edition 3.8 FixPack 1. ITNM IP 3.8 FixPack 1 distribution does not include any SNMP agents for Alcatel or HP devices. If you have Alcatel or HP devices please contact IBM support. For more information about V3.8 please refer to the latest version of the Release Notes. http://publib.boulder.ibm.com/infocenter/tivihelp/v8r1/topic/com.ibm.networkmanagerip.doc_3.8/welcome.htm Prerequisites ===================================== ITNM V3.8 must be installed before applying the FixPack.. IBM Tivoli Network Manager IP Edition 3.8 FixPack 1 is available as a separate install for Solaris, AIX, Windows and Linux. While applying a FixPack, GUI properties file in $NCHOME/etc/precision/default and $TIPHOME/profiles/TIPProfile/etc/tnm/default will be overwritten. So, take a backup of these files before applying the fix pack and merge them with customised ones after applying the FixPack. Install this FixPack as the same user that installed the initial IBM Tivoli Network Manager IP Edition. Thus, if you installed as a non-root user, you must install this FixPack as the same non-root user and run the same setuid scripts as you did previously. Recommendations ===================================== It's recommanded that you upgrade to Weptop IF4 http://www-01.ibm.com/support/docview.wss?rs=3121&context=SSSHVS&dc=D400&uid=swg24021416&loc=en_US&cs=UTF-8&lang=en) or a more recent version. If you're using the ITM Agent it's recommended that you upgrade to ITM Agent FP1 or a more recent version. This will be make available soon. Installation ===================================== Installation Steps: 1. Uncompress the download image. You must uncompress the image and install the FixPack using the same user account used to perform the original Network Manager 3.8 installation. 2. Ensure that there is approximately 1 gigabyte of free space on the drive on which the product was installed. 3. Ensure that the NCHOME environment variable is defined in the environment in which the FixPack installation is being run. The easiest way to do this is to source the script $NCHOME/env.sh, e.g. On UNIX . $NCHOME/env.sh On Windows %NCHOME%\env.bat 4. Execute the FixPack installer by running the script install.{sh|exe} found in the directory in which you uncompressed the image. The FixPack supports both console and silent mode – it’s the same as with the base installer. Console Mode: ./install.{sh|exe} -i console Silent Mode: ./install.{sh|exe} -i silent -f /absolute/path/to/response/file For that purpose a sample response file (ITNM-FP-install-response.txt) is shipped in the same location as the README.1ST 5. Restart the Network Manager. On UNIX: itnm_start On Windows: Start the appropriate Windows services. “ncp_ctrl in domain ” A summary of the results of the FixPack installation will be appended to the configuration log found in the $NCHOME/log/install/ directory. Post-Installation ===================================== See the bottom of this file for Tuning and Performance Recommendations from our performance and scalability testing experience to enhance your use of ITNM. Known Issues with V3.8 FixPack 1 (Build 3.8.0.35) ===================================== http://www-01.ibm.com/support/search.wss?rs=3118&tc=SSSHRK&q=technote+3.8&ibm-go.x=18&ibm-go.y=12 ----------------------------------------------------------------------------------------------------- alm00108975 No progress indicator for console install on Windows It's a known issue that during a console install on Windows the progression bar (made of dashes) stops and does not continue any progress indicators for the majority of the installation process. ----------------------------------------------------------------------------------------------------- alm00108973 Console install does not hide ncim password Using console mode of installation you are prompted for two user ids / passwords. tipadmin - the password is hidden with * (however, an initial * is pre-filled). ncim - the password is not hidden. You can see it in clear text as you type it. ----------------------------------------------------------------------------------------------------- alm00105190 Cannot enter 0 for discovery config, seed file finder IP column When configuring discovery for seed file, when you enter a new filename, delimiter [ ]+ and IP Column=0, it will not accept 0. The pop-up message says you need 1-500 only. 0 is now invalid, and 1 is the first column ----------------------------------------------------------------------------------------------------- Summary of Fixes in V3.8 FixPack 1 (Build 3.8.0.35) ==================================================== APAR=IZ09389 alm00111406 [NBS054811] COLLECTOR LAYER 3 TOPOLOGY DATA SHOULD NOT CONTRIBUTE TO THE PHYSICAL TOPOLOGY The problem is mainly because of passing layer3 topology data to merging of layer2 and lower layer topologies. ----------------------------------------------------------------------------------------------------- APAR=IZ34147 alm00111445 [NBS060546] SNMPHELPER IGNORING THE CHANGE IN VALUES FOR M_TIMEOUT & M_NUMRETRIES THAT ARE SET UNDER SNMPSTA The SNMP helper process now rereads its configuration whenever changes are made (and saved) in the Passwords panel in the Discovery Configuration section of the GUI. Changes to any settings are now dealt with correctly, and the updated settings will be used as soon as the device is accessed again. ----------------------------------------------------------------------------------------------------- APAR=IZ36915 alm00111494 [NBS061190] GUI, ITNMV3.7 DISTINCT NETWORK VIEW NOT UPDATED. The logic has been modified so that all child views are processed when a dynamic view is updated. If there are changes to an existing child view, then any custom layout will be kept when the view is updated. ----------------------------------------------------------------------------------------------------- APAR=IZ39304 alm00104337 RSM/MSFC ENTITIES (ENTITYTYPE = 8) ARE MISSING ACCESSIPADDRESS IN NCIM AND ADDRESS(2) IN MASTER.ENTITYBYNAME Previously CreateScratchTopology would only set the IP address for chassis entities (EntityType = 1). Now CreateScratchTopology and RecreateScratchTopology have been changed so that they both set IP addresses on both chassis (EntityType = 1) and module (EntityType = 8) entities. ----------------------------------------------------------------------------------------------------- APAR=IZ39828 alm00102052 [NBS061582] POSSIBILITY EXISTS FOR THE SERVICEDATA.CFG FILE TO BE CORRUPTED. Previously, the CRivObjSockServer class would ignore a failure to get a file lock for the ServiceData.cfg file. CRivObjSockServer.cc has now been changed so that it will repeatedly try for a file lock until it successfully gets one before attempting to write to ServiceData.cfg. ----------------------------------------------------------------------------------------------------- APAR=IZ39917 alm00100631 ERRORS "NODE XXX NOT FOUND" VISIBLE IN JAVA CONSOLE "Node Not found" errors are no longer displayed in the Java console while populating maps in topology network view. This would happen when users click on a view and, as soon as it displays the topology map, click on another view(s). ----------------------------------------------------------------------------------------------------- APAR=IZ40064 alm00101528 NETWORK VIEWS GO TO DEFAULT AFTER DISCOVERY Functionality for freezing of old nodes after rediscovery has been implemented to the map layout. This functionality can be enabled via a property in topoviz.properties: topoviz.node.freezeold=true ----------------------------------------------------------------------------------------------------- APAR=IZ40796 alm00102020 ITNMV3.7/6 - DUPLICATES PRE-DISCO FILTERS The comparison is now made case insensitive. OQL accepts upper case keywords, so, this way users can continue to have upper case keywords in their filter definition. ----------------------------------------------------------------------------------------------------- APAR=IZ41051 alm00106993 ITNMV3.7 - REDISCOVERY REMOVING CONNECTIONS INCORRECTLY The problem was caused by some errors in the CreateMPLSPE.stch and RecreateScratchTopology.stch stitchers. ----------------------------------------------------------------------------------------------------- APAR=IZ41214 alm00104840 NCP_POLLER DOESN'T POLL NEW DEVICE WHEN NAME OF THE DEVICE GETS CHANGED UPON SUBSEQUENT DISCOVERY CYCLE Poller now recognises the change in name. If two devices exist in NCIM, it uses the lingerTime attribute and the device with the higher value (more recently discovered) will be polled in preference. ----------------------------------------------------------------------------------------------------- APAR=IZ41892 alm00106900 MIB FILES NAMED WITH MORE THAN ONE '.' DO NOT GET PARSED CORRECTLY. MIB file named with more than one '.' will now parse correctly. ---------------------------------------------------------------------------------------------------------------------- APAR=IZ42192 alm00104104 IFALIAS POLLS FAIL IF THERE IS AN APOSTROPHE IN THE TEXT. The single quote is now handled correctly. ----------------------------------------------------------------------------------------------------- APAR=IZ42332 alm00104845 POLLER CONTINUES TO POLL OLD LOOPBACKADDRESS AFTER IT HAS BEEN CHANGED DURING DISCOVERY. This fix stops the poller from continuing to poll old accessIPAddress instead of new IP when the old IpAddress doesn't exist in Model & NCIM. ----------------------------------------------------------------------------------------------------- APAR=IZ42347 alm00103496 ITNMV3.7 - CDP LAYER STITCHER ALLOWS MULTIPLE LINKS ON SINGLE INTERFACE. Modified the CDPLayer stitcher to remove the assumption that only a single CDP link can exist on a single interface and allows multiple links on a single interface. ----------------------------------------------------------------------------------------------------- APAR=IZ42604 alm00104375 ITNMV3.7 (FP6) - IFSTACKTABLE AGENT MAKES DISCO CORE The Alcatel5620SamSoap Collector output ifStack data in the wrong order. If the IfStackTable agent discovered it in the correct order then an ifStack loop would occur. The switch stitcher would get caught in this loop and eventually crash. The fix makes the switch stitcher detect loops and stops the Alcatel5620SamSoap Collector from generating incorrect ifStack information. ----------------------------------------------------------------------------------------------------- APAR=IZ42619 alm00104555 AMOS RULES CAN CAUSE CIRCULAR SUPPRESSION WITH NO ROOT CAUSE This FixPack will replace 6 of the existing AMOS rules files, namely: 1. EntityClearEvent.rule 2. EntityEventToAlert.rule 3. InterfaceOrModuleClearEvent.rule 4. InterfaceOrModuleEventToAlert.rule 5. SuppressConnectedAlerts.rule 6. SuppressContainedAlerts.rule ----------------------------------------------------------------------------------------------------- APAR=IZ43671 alm00106857 ITNM /DB2 EXPERIENCING VERY SLOW PERFORMANCE WHEN ACCESSING NCIMDATABASE AT THE INITIAL DISCOVERY Several factors were implicated in this problem. Once was the size of the buffer pool which was too small causing lots of disk access, another was that some rapidly changing tables used to cache views had out of date statistics. The following scripts have been added to change the view cache tables to volatile and print out the suggested command to increase the size of the buffer pool. On UNIX: $NCHOME/precison/scripts/db2/updatePrecisonGUIDb.sh DBNAME user password On Windows: $NCHOME/precison/scripts/db2/updatePrecisonGUIDb.sh DBNAME user password The mechanism by which the timestamps on the managedStatus table were generated was also modified by the addition of a new insert trigger which rounds time to the nearest second. Prior to this change queries on this table had occurred many more times than necessary and negatively impacted performance. ----------------------------------------------------------------------------------------------------- APAR=IZ44203 alm00106731 AMOS RCA daemons fix Circular suppression of events could occur, sometimes with no root cause, due to the daemons not running. ----------------------------------------------------------------------------------------------------- APAR=IZ44277 alm00105584 IFSPEED IS DISPLAYED AS NEGATIVE VALUE. Previously the SNMPhelper was returning all 32 bit values in atoms of type E_RDTInteger. This meant that large positive unsigned values would be converted to negative numbers. ----------------------------------------------------------------------------------------------------- APAR=IZ44747 alm00106460 STITCHING TOO SLOW (OSPF/BGP/VARIOUS) Various stitchers were found to be inefficient on large networks. Several stitchers have been optimised resulting in faster BGP, OSPF and Subnet processing. ----------------------------------------------------------------------------------------------------- APAR=IZ44824 alm00107154 PROBLEMS WITH THE ITNM ADMIN GUI WITH THE BROWSER LANGUAGE SET TO "ITALIAN" Problem was caused by enclosing JSTL calls for messages from language resource bundles with single quotes in JavaScript functions. Languages like Italian and French get into conflict with the single quotes and mess up the JavaScript. ----------------------------------------------------------------------------------------------------- APAR=IZ44924 alm00107076 ERROR RUNNING NMEXPORT SCRIPT - ./NMEXPORT[322]: /DEV/BULL:CANNOT CREATE [PERMISSION DENIED] A misspelling in the nmExport script has been corrected in this FixPack ----------------------------------------------------------------------------------------------------- APAR=IZ45266 alm00106417 PARTIAL SUPPORT FOR IPUNNUMBERED SERIAL LINKS The fix contains a new agent which downloads the routing table entries for the serial interfaces. A new stitcher then uses that information to infer the connectivity of the IPUnnumbered Serial interfaces. Due to the limited data available the stitcher has to make some assumptions about the system. This includes assuming a single IPUnnumbered Serial link between devices, that the main management address of the device defined for the system is the one used by the IP Unnumbered interface and that the routing data recovered is complete for all the IPUnnumbered serial links in that section of the network. ----------------------------------------------------------------------------------------------------- APAR=IZ45326 alm00106638 MYSQL DEADLOCK CAN OCCUR DURING SIMULTANEOUS BATCH UPDATES IN A MULTI-DOMAIN SYSTEM The connects table, which has an auto-increment column, is now populated with an insertConnection function that is analagous to the insertCacheEntity function. The domainSummary is populated using OQL queries, rather than NCIM queries which were also causing a deadlock. ----------------------------------------------------------------------------------------------------- APAR=IZ45327 alm00106658 MANAGED STATUS INFORMATION IS LOST WHEN RE-INITIALISING FROM CACHE IF THE NCIM TABLES ARE DROPPED OR DELETED Managed status information from the cache will now be used at startup, in addition to the data in the managed status table. When loading up from cache, managed status will be handled as follows: - Any values explicitly listed in the NCIM managed status table at start-up will take precedence over cached values. - Any cached values from the NCIM managed status table will be used if and only if no entry currently appears in the managed status table. Note that due to additional flags being added to the cached data, existing caches cannot be reloaded with all managed status information. When managed status updates are made, the cache will be synchronised, and will subsequently contain that required data. ----------------------------------------------------------------------------------------------------- APAR=IZ46821 alm00107327 A NON-NAT DISCOVERY IS BEING INITIATED EVERY HOUR BECAUSE OFNATTIMER STITCHER. The NATTimer stitcher has been changed to do nothing if NAT functionality is switched off. ----------------------------------------------------------------------------------------------------- alm00100768 Interface display label changes and interface keying This fix allows more control over the interface name key and the interface display label in the GUI. We have modified the configuration so that there are two new fields in the disco.config table that can be used to control and configure the interface naming and the display label used in the GUI. There is a new stitcher AddIntDisplayLabel.stch that can be modified, if desired, to change the display label. The two new fields are m_UseIfIndexNaming and m_AddIntDisplayLabel. The m_UseIfIndex = 0 or 1 - means does the interface get named using its ifIndex or not. The m_AddIntDisplayLabel just adds an m_DisplayLabel tag to the ExtraInfo of the interfaces. This display label is the tag at the end of the base name by default but can be configured as desired by altering the AddIntDisplayLabel stitcher. ----------------------------------------------------------------------------------------------------- alm00103514 ITNMIP3.8-Migration is trying to migrate DiscoSnifferFinderSchema.cfg on AIX Added check to ITNMDataImport.cfg to skip the running of ncp_config for any schemas that don't exist in the exported data. ----------------------------------------------------------------------------------------------------- alm00104304 Make scope dialog resizable on Disco Config When in High Contrast (Accessibility) mode, it's impossible to see the buttons in the partial rediscovery scope dialog. To fix it the dialog was made resizable. ----------------------------------------------------------------------------------------------------- alm00104437 [NBS055790] Containment stitching 70% faster with minor change to AddEntityContainment.stch The AddEntityContainment.stch stitcher has been modified to move the port entity interface resolution code to a new ContainResolvablePortEntities.stch The algorithm for port entity interface resolution has been modified to provide a speed improvement. ----------------------------------------------------------------------------------------------------- alm00104815 Asynchronous VLAN FDB table download in CiscoSwitchSnmp This work enables the agents to retrieve SNMP data asynchronously and in particular enables the CiscoSwitchSnmp agent to retrieve the per VLAN FDB tables asynchronously. (i.e., request all VLAN FDB tables at the same time and then process the responses individually). This results in a speed improvement of the CiscoSwitchSnmp agent. ----------------------------------------------------------------------------------------------------- alm00104905 Huawei VPLS support Huawei VPLS are now supported ----------------------------------------------------------------------------------------------------- alm00105022 COLLECTORADDRESSTRANSLATION.STCH WON'T STITCH DEVICES INTOWORKINGENTITIES.FINALENTITY WHEN LACKING ASSOCADDRESS DATA The Collectors pass the correct information to the agents, and the agents pass the correct information to the stitchers, but the stitchers fail to process the Collector discovered device as it lacks associated IP data. As a result the device doesn't get into the topology. Stitchers had been modified to allow devices without associated IP address lists into the topology. ----------------------------------------------------------------------------------------------------- alm00106703 [NBS056915] IMPROVEMENT TO THE LAYER-2 CONNECTIVITY The CDP protocol is holding remote nbrs ifIndex instead of ifname that is confusing CDP layer stitcher. ------------------------------------------------------------------------------- alm00111454 [NBS060750] Uninstall as non-root leaving ld.so.conf links. There is a new script, $PRECISION_HOME/scripts/unsetup_run_as_setuid_root.sh, which reverses the effects of the script $PRECISION_HOME/scripts/setup_run_as_setuid_root.sh. This script needs to be run as root in order to work. If the $PRECISION_HOME/scripts/setup_run_as_setuid_root.sh has been run, you must run $PRECISION_HOME/scripts/unsetup_run_as_setuid_root.sh before uninstalling. ------------------------------------------------------------------------------- Tuning and Performance Recommendations ================================ Tuning and other considerations to enhance your use of ITNM from our performance and scalability testing: 1. Client JRE and Browser Recommendations - Move to a current JRE, for example SUN JRE 1.6.0_12 (this is update 12 on 32-bit Windows OS) or higher. - Use Firefox version 2.x on Windows client systems. - Use Internet Explorer version 6 or better at the latest patch level. 2. Changing the Default Java Memory Settings Used with Internet Explorer Display of large topology views can require more memory than the default setting for Java. Start with 512 MB. The following notes describe how to set this for Windows Internet Explorer with the SUN JRE installed on the Windows workstation hosting the GUI session(s). o Start a browser session; log on to the Network Manager. This starts Java. Open a network map. - Click Tools > SUN Java Console - Look at the display for errors (like out of memory) - “m” will show the current memory settings in use o To change it: From Windows control panel, Double click “Java” - View or move to Java Applet Runtime Settings - Edit the Java run time parameters to the following settings: -Xms512m –Xmx512m - Select the OK button, then the Apply button, then the OK button. - Restart IE - Verify settings in use 3. Changing the Java Default Memory Settings Used with Firefox 2.x on Solaris Display of large topology views can require more memory than the default setting for Java. Start with 512 MB. The following notes describe how to set this for Firefox with the SUN JRE installed on a Solaris system hosting the GUI session(s). o To change it: - Go to /usr/java/bin and execute ControlPanel - Edit the Java applet runtime parameters to the following values: -Xms512m –Xmx512m - Select the OK button, then the Apply button, then the OK button. - Restart Firefox 2.x 4. Obtaining Updated Topology Maps after Rediscovery If you make configuration changes to a network device and then do a discovery, the topology map may not display the expected new configuration. To force an update of the topology map: IBM Tivoli Network Manager IP Edition 3.8 force “linger time” to zero: 1. Run itnm_stop (on one or more systems if you have a distributed installation) 2. Go to /opt/IBM/netcool/etc/precision (if you have not used the default install location, this would be $NCHOME/etc/precision. (This example shows the UNIX path.) 3. Edit the ModelSchema.cfg 4. Find the section that references linger time, and insert into model.config values (3, 5, 0, 0) 5. Change the 3 to a 0 (zero) and save the file. (This will force replacement of everything that is known.) 6. Run itnm_start (or start the appropriate windows services “ncp_ctrl in domain ”) 7. Run a discovery again. 5. Tuning File Handles on the Tivoli Integrated Portal Server The stability of the Tivoli Integrated Portal is improved by tuning the file handles. As an example, on a Red Hat Linux 4 AS server, you can increase the value (by default 1024), using the following command: ulimit –n 8192. 6. Tivoli Integrated Portal Session TimeOut Modification To allow long-running client displays, it is recommended that you change the Tivoli Integrated Portal timeout to a very large number (35971 minutes is the maximum). To change the Tivoli Integrated Portal session Timeout: 1. Log on as an administrative user, tipadmin. 2. Click Security > Secure administration > Authentication expiration 3. Change the value for the timeout (for example, from default of 1440 to 35971). 4. Save the change. 5. Restart the Tivoli Integrated Portal, for example, by using UNIX: "itnm_stop tip" and "itnm_start tip". Windows: stop and restart the Windows service “Tivoli Integrated Portal – TIPProfile_PORT_16310” Notices and trademarks: ----------------------- Notices: This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user’s responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement might not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact: IBM Corporation 2Z4A/101 11400 Burnet Road Austin, TX 78758 U.S.A. Such information may be available, subject to appropriate terms and conditions, including in some cases payment of a fee. The licensed program described in this document and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any equivalent agreement between us. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurement may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. All statements regarding IBM’s future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only. This information may contain examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information may contain sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces. Trademarks: The following terms are trademarks of International Business Machines Corporation in the United States, other countries, or both: IBM, IBM logo, Tivoli, Tivoli logo, AIX®, AOC/MVS™, APPN, CICS®, CICSPlex®, CICS/ESA®, DB2®, DB2 Universal Database™, DFSMShsm™, Domino®, DB2 Universal Database, IMS™, IMS/ESA®, Informix®, MQSeries®, MVS, MVS/ESA™, NetView®, NWays, OS/390®, RACF®, RMF™, SNA/APPN, SecureWay®, Tivoli Enterprise™, Tivoli Enterprise Console®, Tivoli Management Environment, TME 10™, VTAM®, WebSphere®, z/OS®. UNIX® is a registered trademark of The Open Group in the United States and other countries. Microsoft®, Windows, Windows NT®, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Pentium® is a registered trademark of Intel® in the United States and other countries. Other company, product, or service names may be trademarks or service marks of others. ====================================================================