IBM(R) DB2(R) Recovery Expert for Multiplatforms, Version 1 Release 1 IBM DB2 Recovery Expert for Workgroups, Version 1 Release 1 Fix Pack 4 README CONTENTS 1.0 ABOUT THIS README FILE 1.1 Evaluation code 1.2 Before using DB2 Recovery Expert 1.2.1 To test DB2 Recovery Expert 1.3 Corrected known problems 1.4 Enhancements 1.5 Known problems 1.5.1 javaw.exe error with JDBC 1 1.5.2 Problem reading DB2 active logs 2.0 PREREQUISITES 2.1 Hardware requirements 2.2 Software requirements 2.2.1 AIX-specific software requirements 3.0 INSTALLATION INSTRUCTIONS 3.1 AIX-specific installation information 3.1.1 AIX Software Registration Database Corruption 3.1.1.1 Identifying The Problem 3.1.1.2 Fixing the Corruption 3.1.2 Insufficient Number of Shared Memory Segments (SQL1224N) 3.1.2.1 Increase shared memory segments 3.1.2.2 Avoid using shared memory 3.2 Solaris-specific installation information 3.2.1 Updating the Java Runtime Environment 3.3 Silent Install Feature 4.0 CUSTOMIZATION INSTRUCTIONS 5.0 RESTRICTIONS 5.1 Cannot recover dropped DMS tables and tablespaces from backup 5.2 Cannot recover DB2 V7 objects into DB2 V8 5.3 Cannot recover a dropped database from an online backup 5.4 Compressed backups in DB2 V8 Fix Pack 4 are not supported 5.5 Cannot recover using storage manager backups on Solaris 5.6 Limited support for LOB and long field data 5.7 Minilogs not supported in DB2 Recovery Expert Fix Pack 4 5.8 Clear log cache when recreating a database 5.9 Recovery path costs not updated after Log Analysis 6.0 CORRECTIONS TO DOCUMENTATION 6.1 Minilog and Log Analysis files will be rebuilt by Fix Pack 4 7.0 HOW TO GET HELP 8.0 NOTICES 8.1 Third Party Code 8.1.1 Excluded Components 8.2 Use of evaluation program 8.3 Trademarks and service marks 1.0 ABOUT THIS README FILE Welcome to IBM DB2 Recovery Expert, Version 1 Release 1 Fix Pack 4, README file. This README file contains information about installing IBM DB2 Recovery Expert. Fix Packs for this product are cumulative. In order to install this Fix Pack, you must have the minimum code level for Recovery Expert for Multiplatforms, Version 1 installed on your system. IBM DB2 Recovery Expert has been tested and validated with all supported releases of DB2 Universal Database(TM) through Version 8 Release 1. Subsequent releases might require additional maintenance. In this README file, the following naming convention applies: IBM DB2 Recovery Expert for Multiplatforms and IBM DB2 Recovery Expert for Workgroups are abbreviated to DB2 Recovery Expert. 1.1 Evaluation code If you are using evaluation code, the evaluation code enables you to try this product for a period of 60 days. After 60-days, you must purchase a license to continue to use the product. When you purchase the product, the license is enforced based upon the platform on which you are running IBM DB2 Recovery Expert. Read NOTICES Section 8.2, Use of evaluation program, and the License Agreement provided with your evaluation copy of the program. 1.2 Before using DB2 Recovery Expert DB2 Recovery Expert is a new product that offers advanced recovery facilities. Because recovering your data is of such critical importance, you must be experienced with the recovery process and with the recovery facilities included with DB2 Recovery Expert before deploying DB2 Recovery Expert to your production environment. Therefore, it is recommended that you thoroughly test DB2 Recovery Expert in a test environment before you deploy it to your production environment. 1.2.1 TO test DB2 Recovery Expert -Back up your data using the method of your choice. DB2 Recovery Expert depends on a quality backup of your data. -Analyze your logs using the Log Analysis tool. -Create and inspect Undo/Redo SQL. -Familiarize yourself with the versioning repository. Failure to fully understand and implement recovery facilities can result in unpredictable results. 1.3 Corrected known problems This Fix Pack contains the following corrections: - PQ75967: The end-of-logs option is now disabled on the PIT screen when recovering a dropped table. - PQ75579: The URID Finder sets correct timestamp in multiple partition environments. - PQ75958: Log analysis performance improved for logs archived to TSM. - PQ79591: Connection failure message text corrected for command line tools. - PQ79093: Versioning Repository create/update takes regional numeric data type representations into account. - PQ75965: Versioning Repository create/update supports multiple partition tablespaces without data containers located on the database catalog partition. - GUI application supports connection to default database partition - Indexes are supported by Object Translation tool (db2ox) - Object Translation tool (db2ox) now works on DB2 V8 - GRAPHIC/VARGRAPHIC types displayed correctly in DBCS environments 1.4 Enhancements New features in this Fix Pack include: - support access to backup images located on storage managers (e.g.: TSM) via DB2 UDB vendor API - silent install feature via response file - archive log caching and cache control configuration parameter - configuration parameter to define starting log number for each database partition - Log Analysis GUI interface updated - SQL generation commit count option added to Log Analysis GUI - Options added to not display generated SQL, and to write SQL directly to a user-selectable file - Improved progress indicators to Log Analysis GUI - Progress details displayed during GUI create/update of the Versioning Repository - Partition number is displayed in GUI title bar when executing in a multi-partition environment - Enhancement to Log Analysis command line tool "-A" parameter processing to eliminate unnecessary log processing - New Log Analysis command line tool "-P" parameter added to permit processing specific log sets - Log Analysis now reports additional transaction status 1.5 Known problems 1.5.1 javaw.exe error with JDBC 1 Recovery Expert can end abnormally with a "javaw.exe" error when running on Microsoft Windows while using JDBC 1 with DB2 V7.2.6 or higher. The error message is: javaw.exe has generated errors and will be closed by Windows. You will need to restart the program. This error does not occur if you are using JDBC 2.0. If possible, try using using JDBC 2.0 to avoid the problem. Otherwise, the workaround to resolve this issue is to reinstall DB2, and then apply any desired Fix Packs. 1.5.2 Problem reading DB2 active logs Starting with DB2 V8.1 Fix Pack 2, there is a problem with the DB2 "sqlurlog" API call that prevents Recovery Expert from reading the contents of the active database logs. This prevents the tools from seeing recent database activity that has not yet been flushed to the archive logs. To learn more about a fix for this problem, please search for APAR IY47042 on the IBM Web site www.ibm.com. 2.0 PREREQUISITES DB2 Recovery Expert has hardware and software requirements. 2.1 Hardware requirements DB2 Recovery Expert has the following hardware requirements: -Memory and disk space sufficient to fulfill DB2 minimum requirements. -For Windows platform install: Approximately 150 MB of free disk space on any Windows platform. -For Unix platform install: Approximately 150 MB of free disk space in the /tmp filesystem, 50 MB of free disk space in the target install filesystem (the default location is /opt) and 100 MB of free disk space in the /var filesystem, for any Unix platform. -Additional space for user data (varies depending on the size of your databases and the amount of activity your system encounters). 2.2 Software requirements To use IBM DB2 Recovery Expert, you must have IBM DB2 V7 Fix Pack 5 or later and the IBM JDBC driver. You also must be able to connect to a DB2 database. -IBM DB2 V7 Fix Pack 5 or later running locally: This release of DB2 Recovery Expert for Multiplatforms requires you to run DB2 locally. Future releases will allow for remote connections to DB2. -IBM JDBC driver: To run Recovery Expert, you must install the IBM JDBC driver. This driver is included with the DB2 Run-Time Client. Recovery Expert does not include this component. 2.2.1 AIX-specific software requirements To use Recovery Expert with AIX, you must ensure that the level of the C++ Runtime environment fileset installed on the system is at least version 5.0.2.0. For AIX 4.3.3 systems: You can view the current fileset level with the command: lslpp -L xlC.aix43.rte If the fileset version is less than 5.0.2.0, you must obtain and install the fileset xlC.aix43.rte to the latest available maintenance level for version 5.0.2.x. For AIX 5L systems: You can view the current fileset level with the command: lslpp -L xlC.aix50.rte If the fileset version is less than 5.0.2.0, you must obtain and install the fileset xlC.aix50.rte to the latest available maintenance level for version 5.0.2.x. For more information about obtaining and updating filesets, contact your AIX system administrator. 3.0 INSTALLATION INSTRUCTIONS To install DB2 Recovery Expert, complete the following tasks: 1. Log on to your system: For Windows, perform the following steps: a. Log in as the Administrator user if your Windows system is configured for multiple user accounts. b. Locate the directory containing the setup files and run db2rewin32setup. For non-Windows systems, perform the following steps: a. Log in as the SuperUser ("root") user. b. Open a terminal window to activate a command-line shell. c. Change your current directory to the one containing the DB2 Recovery Expert installation package, as shown in the list below: AIX -- db2reaixsetup HP-UX -- db2rehpuxsetup Linux -- db2relinuxsetup Solaris -- db2resolarissetup d. Run the installation package from the shell. For example, "./db2reaixsetup". Note: If the program is not executable, you can make it executable with the command "chmod u+x ./db2re*setup". 2. The installation wizards starts. Follow the instructions of the installation wizard, clicking Next to proceed through the install. 3. Check for Service updates on the Fix Pack Web site: http://www.ibm.com/software/data/db2imstools/support/fixpaks.html 4. Configure DB2 Recovery Expert. See Section 4.0 3.1 AIX-specific installation information 3.1.1 AIX Software Registration Database Corruption A problem can occur during the Recovery Expert installation process that causes incorrect entries to be added to the AIX software registration database. If this happens, no visible error will be seen during the installation, but an error will be detected afterwards if the AIX "lppchk" command is run, or if a user attempts to install or remove software via the SMIT software management menus. 3.1.1.1 Identifying The Problem After installing Recovery Expert, you can check if the problem occurred by executing the command: lppchk -v If there is a problem, the command will report output similar to: lppchk: A lexical error occurred for 4c03bb3c1b81893c53ca1a07c352305b 1.0.9.0 on line 1, column 10. There is an illegal number: 7e. Use local problem reporting procedures. lppchk: The following filesets need to be installed or corrected to bring the system to a consistent state: 4c03bb3c1b81893c53ca1a07c352305b 1.0.9.0 (UNKNOWN) If lppchk does not report a problem, no action is required. However, if it does report a problem, proceed to the next step to fix the problem so that subsequent attempts to install or remove software will succeed. 3.1.1.2 Fixing the Corruption 1. Change your current directory to the directory where DB2 Recovery Expert was installed. 2. Run the Interim Fix installation package from the shell as the root user by executing the command: ./lex_ismp_clean If the package is not executed as the root user, it will request the root user password before proceeding. 3. Run the command "lppchk -v", and verify that it no longer reports a lexical error. If you are unable to resolve the problem, contact customer support. 3.1.2 Insufficient Number of Shared Memory Segments DB2 on AIX(R) version 4.3.3 or later will not allow more than a few simultaneous local connections to a database. If the connection limit is reached, DB2 Recovery Expert will report an error message when attempting to connect to a database. An error code SQL1224N message may also be displayed or written to the Recovery Expert log file. The failure results from an operating system-imposed limit on the number of shared memory segments available to DB2. The error message states, "Could not connect to database: [IBM][CLI Driver] SQL1224N. A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command. " If this error occurs when you attempt to connect to a database, the error usually indicates that the number of shared memory segments allowed by AIX to connect to the database has been exceeded. In this case you must change the DB2 configuration to increase the number of shared memory segments or avoid using shared memory. Additional information about this topic can be found by searching the DB2 Technical Support Knowledge Base for Technote document number 1009742 on the IBM web site (www.ibm.com). 3.1.2.1 Increase shared memory segments There is an Extended Shared Memory feature used by these versions of DB2 that circumvents the problem. To enable this feature, place the following lines near the beginning of both /etc/rc.db2 and /sqllib/db2profile, (where is the home directory of each instance user; that is, /home/db2inst1) after the block comment but before any executable lines: # Local addition to fix AIX shared memory problem: EXTSHM=ON export EXTSHM Note that the entry is case-sensitive. The entry must be placed in the db2profiles of ALL instance users and the Admin Server user. Then log in as each instance user and the Admin Server user and execute the following command: db2set DB2ENVLIST=EXTSHM This sets a DB2 profile variable within each instance that causes the value of the EXTSHM environment variable to be included in the environment of the DB2 daemon processes as they are started. Defining EXTSHM in the db2profiles of each instance, which are executed at login, ensures that the variable is set in any instance owner environment. Finally, putting it in /etc/rc.db2 ensures that the variable is set when the DB2 processes are started up at boot time. Now, either reboot the system or stop and restart the DB2 instances to ensure that all DB2 processes are started with EXTSHM=ON set in their environment. If you want the fix to be automatically applied to new instances when they are created in the future, add the lines that set and export EXTSHM to the file /usr/lpp/db2_07_01/cfg/db2profile, which gets copied to sqllib/db2profile on instance creation. To ensure that the DB2ENVLIST profile variable also gets set, add this code after the variable INSTHOME is set: if [ -x $INSTHOME/sqllib/adm/db2set ] then if [ "`$INSTHOME/sqllib/adm/db2set DB2ENVLIST`" != "EXTSHM" ] then $INSTHOME/sqllib/adm/db2set DB2ENVLIST=EXTSHM fi fi That will cause the DB2ENVLIST instance profile variable to be set the first time a new instance is used. 3.1.2.2 Avoid using shared memory The following steps describe how to setup a TCP/IP loopback connection for a local database on AIX. Using a TCP/IP connection does not use shared memory and avoids the segmentation limitation on AIX. 1. Set up a TCP/IP port in /etc/services, if a port for remote DB2 clients has not been established yet. 2. Ensure that the TCP/IP communication protocol has been specified in the DB2COMM registry parameter. To check the current setting of the DB2COMM parameter, enter db2set DB2COMM. To update the DB2COMM registry variable to include TCP/IP, use the db2set command. For example: db2set DB2COMM=existing_protocol_names, tcpip 3. Update the SVCENAME database manager configuration parameter to the connection service name as defined in /etc/services (step 1). For example: db2 update dbm cfg using svcename connection service name 4. Catalog the loopback node. For example: db2 catalog tcpip node node_name remote 127.0.0.1 server connection_service_name You can view the current node configuration using the command: db2 list node directory 5. You can either add a new alias for connecting to the database by the loopback connection, leaving the original database name unchanged, or you can recatalog the original database name to use the loopback connection so that users can continue to connect using the original name. To define an alias for the loopback connection, use the command: db2 catalog db database_name as database_alias Afterwards, connecting to the database using the original database name will continue to use shared memory, and connecting via the new alias will use the loopback connection. To redefine the original database name so that it uses a loopback connection, recatalog the database as follows: db2 catalog db database_name as database_alias db2 uncatalog db database_name db2 catalog db database_alias as database_name at node node_name In this example, users can continue to use the original database name, but connections to it will now make use of the TCP/IP loopback connection. You can view the current database directory information using the command: db2 list db directory 6. Stop the DB2 instance and restart it again to refresh the directory cache. 3.2 Solaris-specific installation information 3.2.1 Updating the Java Runtime Environment When Recovery Expert is installed, a copy of the Java Runtime Environment (JRE) may be copied into the product installation directory. If a previous version of the JRE exists, it will be necessary to update the JRE version. To determine if the JRE needs updating: 1. Install the current Fix Pack using the procedure described in Section 3.0. 2. After installation is complete, look in the Recovery Expert installation directory to see if the directory "_jvm" exists. The default installation directory is /opt/IBM/DB2RecoveryExpert. If it doesn't exist, no further action is required. However, if it does exist, proceed with the following steps to update the JRE. To update the JRE, perform the following steps: 1. Change your working directory to the product installation directory using the "cd" command. For example, if you have installed the product in the default location, use the following command: cd /opt/IBM/DB2RecoveryExpert 2. In the product installation directory: a) Rename the directory "_jvm" to "saved_jvm" with the command "mv _jvm saved_jvm" b) Rename the directory "_uninst" to "saved_uninst" with the following command: mv _uninst saved_uninst 3. Repeat the installation procedure for the current Fix Pack. This will copy a new version of the JRE into the product installation directory. 4. After installation is complete, and it appears that that Recovery Expert executes correctly, you can delete the contents of the directories that were renamed during step 2 above. 3.3 Silent Install Feature An automated silent install option is available to allow installing Recovery Expert without requiring any user interaction. The silent install uses a response file that defines installation parameter settings. A sample response file is provided with the product and can be customized as needed for use with subsequent installs. Please refer to the product user guide for more information. 4.0 CUSTOMIZATION INSTRUCTIONS For complete instructions on how to customize and use DB2 Recovery Expert, refer to DB2 Recovery Expert for Multiplatforms User's Guide. If you received your copy of DB2 Recovery Expert electronically, locate the User's Guide here: http://www.ibm.com/software/data/db2imstools/library.html If you are installing this image from a CD-ROM, the documentation is located in /doc directory. The User's Guide on the Web can contain updates to the publication on CD-ROM. 5.0 RESTRICTIONS 5.1 Cannot recover dropped DMS tables and tablespaces from backup DB2 Recovery Expert does not allow the recovery of dropped DMS tables and table spaces from a backup image. This is the case where the DMS object is read from the backup image and is written directly to the DB2 data pages. NOTE: Restore and roll-forward recovery for DMS table spaces that are not dropped continue to be valid recovery paths. Recovery with roll forward is also still valid for databases that contain DMS table spaces. 5.2 Cannot recover DB2 V7 objects into DB2 V8 DB2 data and objects that have been backed up in DB2 V7 format cannot be recovered into DB2 V8 objects. They must be recovered in V7 format. 5.3 Cannot recover a dropped database from an online backup A dropped database cannot be recovered from an online backup. If the database is restored from an online backup, it is left in a roll-forward-pending state, because the log files for the dropped database cannot be processed (and if the backup is old, the log files may not even still exist). An online backup, however, can still be used to restore onto an existing database. 5.4 Compressed backups in DB2 V8 Fix Pack 4 are not supported Recovery Expert cannot currently use compressed backup images written by DB2 V8 Fix Pack 4 and later for object recovery or log analysis. When performing DB2 backups, do not select the compression option if you want the Recovery Expert tools to be able to process the backup images. 5.5 Cannot recover using storage manager backups on Solaris The DB2 Recovery Expert GUI application should not be used in the Solaris operating environment to recover objects from backup images located on a storage manager (e.g., "TSM"). The command line tools can still be used to access these backups. 5.6 Limited support for LOB and long field data DB2 Recovery Expert does not currently support the generation of redo/undo SQL values for LOB, BLOB, CLOB, or long field data. This affects both the Log Analysis tool and the recovery process. Recovery can always be performed for tables and table spaces containing this kind of data when the recovery path does not involve performing redo or undo SQL statements. Recovery will also work when using redo/undo SQL that performs DELETEs or UPDATEs that do not modify the fields containing the LOB/long data. However, INSERTs and UPDATEs that modify LOB/long fields cannot be replicated. The Log Analysis tool will not generate redo/undo SQL containing LOB/long data and does not report the details for changes made to LOB/long fields in the output report. 5.7 Minilogs not supported in DB2 Recovery Expert Fix Pack 4 Minilogs and the DB2 Minilog managment tool (db2mm) are not supported in DB2 Recovery Expert Fix Pack 4. 5.8 Clear log cache directory when recreating a database DB2 Recovery Expert maintains a temporary cache area where log files are stored by a userexit during recovery or log analysis. Normally, this cache is managed automatically by Recovery Expert. However, if you drop and recreate a database in a multiple partition environment, you should clear out the cache for that database on all of the database partitions. The default cache directory is located immediately underneath the Recovery Expert data directory and is named "cache". In this directory are subdirectories with the same names as the databases. You should remove the directory and all of its contents for the database that you have dropped and recreated. The default Recovery Expert definitions for the data directory and cache directory locations can be overridden in the recex.properties configuration file. Please refer to the product user guide for more information. 5.9 Recovery path costs not updated after Log Analysis When performing a recovery via the DB2 Recovery Expert GUI application, a message may be shown when moving to the Recovery Path window that recommends running Log Analysis to ensure that accurate recovery path cost information is displayed. If you follow the instructions and run Log Analysis from within the GUI, and then return to the Recovery Path window, the cost information is not updated on the window. This will not affect the recovery process; a valid recovery will still occur. However, if you want to ensure that valid cost information is displayed for all recovery paths, you can exit and restart the GUI application. An alternative method is to run Log Analysis before starting the GUI application, or from within the GUI but before proceeding to the Recovery Path window. 6.0 CORRECTIONS TO DOCUMENTATION The following sections describe corrections to documentation after the book was published. 6.1 Log Analysis files will be rebuilt by Fix Pack 4 The format of the log analysis files maintained by Recovery Expert has changed. After installing Fix Pack 4, these files will automatically be recreated using the new format the next time that the relevant Recovery Expert commands are executed; any previous data in these files will be lost. If you encounter any problems or if you choose to delete all the log analysis files manually before running the new Fix Pack utilities, the files are located in the "data" subdirectory of the installation directory on Windows systems, or usually under the default data directory "/var/opt/IBM/DB2RecoveryExpert/" on non-Windows systems. 7.0 HOW TO GET HELP For complete and up-to-date source of DB2 Recovery Expert information, including information on issues discovered after this README was published, go to the following Web site: DB2 Recovery Expert Online Support: http://www.ibm.com/software/data/db2imstools/support.html If you are not able to find your answer searching the listed URL, call 1-800-IBM-SERV to speak to an IBM representative for assistance. 8.0 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 10594-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 may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the 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 publication 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 as your own risk. Licensees of this program who want 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 J74/G4 555 Bailey Avenue San Jose, CA 95141-1003 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 information 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. COPYRIGHT LICENSE: This information contains 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. 8.1 Third Party Code The Program contains, and future updates and Fix Packs to the Program may contain, certain third party components which are provided to you under terms and conditions which are different from this Agreement, or which required IBM to provide you with certain notices and/or information. For each such third party component, either IBM will identify such third party component in the Program's "README" file (or in an updated "README" file accompanying a Fix Pack or update), or in a file or files referenced in such "README" files (and shall include any associated license agreement, notices and other related information therein), or the third party component will contain or be accompanied by its own license agreement (for example, provided when installing or starting such component, or accompanying such component in a file entitled "README," "COPYING," "LICENSE" or a substantially similar title, or included among the Program's paper documentation, if any). You use of each third party component which contains or is accompanied by its own license agreement, or for which IBM has identified a license agreement in one of the above "README" files (or in a file or files referenced therein), will be subject to the terms and conditions of such other license agreement, and not this Agreement. By using and not uninstalling such third party components after the initial installation of such third party components (thereby giving you access to the applicable license agreements, notices and information), you acknowledge and agree to all such license agreements, notices and information, including those provided only in the English language. You agree to review any updated "README" file which accompanies updates or Fix Packs to the Program. 8.1.1 Excluded Components Notwithstanding the terms and conditions of any other agreement you may have with IBM or any of its related or affiliated companies (collectively "IBM"), the following terms and conditions apply to all "Excluded Components" identified in this License Information document: (a) all Excluded Components are provided on an "AS IS" basis; (b) IBM DISCLAIMS ANY AND ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS INCLUDING, BUT NOT LIMITED TO, THE WARRANTY OF NON-INFRINGEMENT OR INTERFERENCE AND THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE; (c) IBM will not be liable to you or indemnify you for any claims related to the Excluded Components; and (d) IBM will not be liable for any direct, indirect, incidental, special exemplary, punitive or consequential damages with respect to the Excluded Components. The following components in the Program are Excluded Components: (a) all third party components, including third party components included or embedded in the Program and those components referenced in any "README" file included with the Program, and (b) all source code included with the Program. The International Components for Unicode (ICU4C and ICU4JNI) are excluded components. COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1995-2002 International Business Machines Corporation and others All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIALINDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. 8.2 Use of evaluation program If you are using an evaluation copy of the program, the following terms apply: This program contains a disabling device that will prevent it from being used upon expiration of this license. You will not tamper with this disabling device or program. You should take precautions to avoid any loss of data that might result when the program can no longer be used. See the License Agreement for a complete explanation of the terms that apply. 8.3 Trademarks and service marks The following terms are trademarks or service marks of the IBM Corporation in the United States or other countries or both: AIX DB2 DB2 Universal Database DB2 Universal Database Enterprise Server Edition IBM Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, and service names may be trademarks or service marks of others. (C) Copyright IBM Corporation 2001, 2002; Copyright Rocket Software, Inc., 2001.2002. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.