IBM(R) Total Storage Multipath Subsystem Device Driver Version 1.6.0.1-10 README for Linux 2.4 ------------------------------------------------------------------------------- CONTENTS 1.0 About this README file 1.1 Who should read this README file 1.2 How to get help 2.0 Prerequisites for SDD 3.0 SDD Change History 3.1 Defects Fixed 3.1.1 Common 3.1.2 ESS/DS8000/DS6000 Defects 3.1.3 SVC Defects 3.1.4 SVCCISCO Defects 3.2 New Features 3.3 Feature Details 3.4 Known Issues 3.5 Correction to User's Guide 4.0 User License Agreement for IBM Device Drivers 5.0 Notices 6.0 Trademarks and Service Marks ------------------------------------------------------------------------------- 1.0 About this README file Welcome to IBM Multipathing Subsystem Device Driver (SDD). This README file contains the most recent information about the IBM Multipathing Subsystem Device Driver, Version 1.6.0.1-10 for Linux. IBM recommends that you go to the following Web site to get the most current information about this release of SDD: http://www.ibm.com/servers/storage/support/software/sdd.html You should carefully review the following information available through the website: 1. The most current README file. This will contain corrections to this readme file, corrections to the SDD User's Guide, and other documentation updates discovered since this copy of the README was prepared. 2. The Multipath SDD Users' Guide. Because SDD can be installed in so many different environments / configurations, detailed information about each environment is placed in the appropriate chapter of the Multipath SDD Users Guide. The 'Summary of Changes' section of the SDD Users' Guide can help you quickly determine if the latest changes affect you. 3. The Flashes. As we become aware of any information that is likely to impact a broad set of our customers, Flashes are prepared and posted on this site. You should review this section periodocally to see any new Flashes that have been posted since your last review. For prerequisites information, be sure to look in the Multipath SDD User's Guide as well as the prerequisites section of this readme file for the latest updates. 1.1 Who should read this README file This README file is intended for storage administrators, system programmers, and performance and capacity analysts. The information in this file only applies to customers who run: 1. ESS, DS8000, DS6000, SAN Volume Controller, or SAN Volume Controller for Cisco MDS 9000 2. ESS and SAN Volume Controller 3. ESS and SAN Volume Controller for Cisco MDS 9000 1.2 How to get help Go to the following Web site for SDD technical support and for the most current SDD documentation and support information: http://www.ibm.com/servers/storage/support/software/sdd.html Go to the following Web site for the IBM ESS Open Systems support: http://www.storage.ibm.com/hardsoft/products/ess/supserver.htm Go to the following Web site for IBM TotalStorage DS8000 support: http://www-1.ibm.com/servers/storage/disk/ds8000/index.html Go to the following Web site for IBM TotalStorage DS6000 support: http://www-1.ibm.com/servers/storage/disk/ds6000/index.html Go to the following Web site for IBM TotalStorage SAN Volume Controller support: http://www.ibm.com/servers/storage/support/virtual/2145.html Go to the following Web site for IBM TotalStorage SAN Volume Controller for Cisco MDS 9000 support: http://www.ibm.com/servers/storage/support/virtual/2062-2300.html Call one of the following numbers to obtain nontechnical or administrative support, such as hardware and software orders, hardware maintenance, services contract of entitlement, and invoices: .For commercial or state and local support operations: 1-877-426-6006 (Listen to the voice prompts) .For business partner support operations: 1-800-426-9990 .For federal government support operations: 1-800-333-6705 ------------------------------------------------------------------------------- 2.0 Prerequisites for SDD One of the following combinations of a Linux distribution and associated vendor compiled binary kernel packages: Red Hat Enterprise Linux 2.1 (x86) with one of the following kernels: kernel-enterprise-2.4.9-e.30 kernel-summit-2.4.9-e.30 kernel-enterprise-2.4.9-e.34 kernel-summit-2.4.9-e.34 kernel-enterprise-2.4.9-e.35 kernel-summit-2.4.9-e.35 kernel-enterprise-2.4.9-e.38 kernel-summit-2.4.9-e.38 kernel-enterprise-2.4.9-e.40 kernel-summit-2.4.9-e.40 kernel-enterprise-2.4.9-e.41 kernel-summit-2.4.9-e.41 kernel-enterprise-2.4.9-e.43 kernel-summit-2.4.9-e.43 kernel-enterprise-2.4.9-e.49 kernel-summit-2.4.9-e.49 kernel-enterprise-2.4.9-e.57 kernel-summit-2.4.9-e.57 kernel-enterprise-2.4.9-e.59 kernel-summit-2.4.9-e.59 kernel-enterprise-2.4.9-e.62 kernel-summit-2.4.9-e.62 Red Hat Enterprise Linux 3.0 (x86) with one of the following kernels: kernel-smp-2.4.21-9.EL kernel-hugemem-2.4.21-9.EL kernel-smp-2.4.21-9.0.1.EL kernel-hugemem-2.4.21-9.0.1.EL kernel-smp-2.4.21-9.0.3.EL kernel-hugemem-2.4.21-9.0.3.EL kernel-smp-2.4.21-15.EL kernel-hugemem-2.4.21-15.EL kernel-smp-2.4.21-15.0.2.EL kernel-hugemem-2.4.21-15.0.2.EL kernel-smp-2.4.21-15.0.3.EL kernel-hugemem-2.4.21-15.0.3.EL kernel-smp-2.4.21-15.0.4.EL kernel-hugemem-2.4.21-15.0.4.EL kernel-smp-2.4.21-20.EL kernel-hugemem-2.4.21-20.EL kernel-smp-2.4.21-20.0.1.EL kernel-hugemem-2.4.21-20.0.1.EL kernel-smp-2.4.21-27.EL kernel-hugemem-2.4.21-27.EL kernel-smp-2.4.21-27.0.1.EL kernel-hugemem-2.4.21-27.0.1.EL kernel-smp-2.4.21-27.0.2.EL kernel-hugemem-2.4.21-27.0.2.EL kernel-smp-2.4.21-27.0.4.EL kernel-hugemem-2.4.21-27.0.4.EL kernel-smp-2.4.21-32.EL kernel-hugemem-2.4.21-32.EL kernel-smp-2.4.21-32.0.1.EL kernel-hugemem-2.4.21-32.0.1.EL Red Hat Enterprise Linux 3.0 (ppc64) with one of the following kernels: kernel-2.4.21-9.EL kernel-2.4.21-9.0.1.EL kernel-2.4.21-9.0.3.EL kernel-2.4.21-15.EL kernel-2.4.21-15.0.2.EL kernel-2.4.21-15.0.3.EL kernel-2.4.21-15.0.4.EL kernel-2.4.21-20.EL kernel-2.4.21-20.0.1.EL kernel-2.4.21-27.EL kernel-2.4.21-27.0.1.EL kernel-2.4.21-27.0.2.EL kernel-2.4.21-27.0.4.EL kernel-2.4.21-32.EL kernel-2.4.21-32.0.1.EL Red Hat Enterprise Linux 3.0 (ia64) with one of the following kernels: kernel-2.4.21-15.EL kernel-2.4.21-15.0.3.EL kernel-2.4.21-15.0.4.EL kernel-2.4.21-20.EL kernel-2.4.21-20.0.1.EL kernel-2.4.21-27.EL kernel-2.4.21-27.0.1.EL kernel-2.4.21-27.0.2.EL kernel-2.4.21-27.0.4.EL kernel-2.4.21-32.EL kernel-2.4.21-32.0.1.EL SuSE SLES8 / UnitedLinux 1.0 (x86) with one of the following kernels: k_smp-2.4.21-138 k_smp-2.4.21-169 k_smp-2.4.21-190 k_smp-2.4.21-198 k_smp-2.4.21-215 k_smp-2.4.21-226 k_smp-2.4.21-231 k_smp-2.4.21-241 k_smp-2.4.21-251 k_smp-2.4.21-261 k_smp-2.4.21-266 k_smp-2.4.21-273 k_smp-2.4.21-278 k_smp-2.4.21-281 k_smp-2.4.21-286 k_smp-2.4.21-292 k_smp-2.4.21-295 * SuSE SLES8 (ppc64) with one of the following kernels: kernel-ppc64-2.4.21-111 kernel-ppc64-2.4.21-147 kernel-ppc64-2.4.21-154 kernel-ppc64-2.4.21-155 kernel-ppc64-2.4.21-215 kernel-ppc64-2.4.21-223 kernel-ppc64-2.4.21-231 kernel-ppc64-2.4.21-241 kernel-ppc64-2.4.21-251 kernel-ppc64-2.4.21-261 kernel-ppc64-2.4.21-266 kernel-ppc64-2.4.21-273 kernel-ppc64-2.4.21-278 kernel-ppc64-2.4.21-281 kernel-ppc64-2.4.21-292 kernel-ppc64-2.4.21-295 * SuSE SLES8 (ia64) with one of the following kernels: k_itanium2-smp-2.4.21-215 k_itanium2-smp-2.4.21-231 k_itanium2-smp-2.4.21-241 k_itanium2-smp-2.4.21-248 k_itanium2-smp-2.4.21-251 k_itanium2-smp-2.4.21-261 k_itanium2-smp-2.4.21-266 k_itanium2-smp-2.4.21-273 k_itanium2-smp-2.4.21-278 k_itanium2-smp-2.4.21-286 k_itanium2-smp-2.4.21-292 k_itanium2-smp-2.4.21-295 * Red Flag Advanced Server 4.1/Asianux 1.0 kernel-2.4.21-9.30AXsmp kernel-2.4.21-20.19AXsmp * Newly supported in this release ------------------------------------------------------------------------------- 3.0 SDD Change History =============================================================================== 3.1 Defects Fixed 3.1.1 Common 1.6.0.1-10 o 3366 SDDSRV stops logging when log file is removed. o 3484 Enable error logging in SDDSRV. o 3489 Fix problems in adapter state transition during fatal_write_error. 1.6.0.1-8 o 3473 Ensure that the command-line 'debug' options, i.e. 'cfgvpath debug', 'rmvpath debug', and 'addpaths debug', have consistent descriptions and behavior, printing the debug messages to stdout. o 3475 Complete fix to allow Linux HDIO_GETGEO ioctl calls on vpath partitions. o 3450 Fix problems in path state transition. o 3461 Allow Linux HDIO_GETGEO ioctl calls on vpath partitions. 1.6.0.1-6 o 3340 Fix 'datapath query wwpn' to handle listing more than ten adapter wwpns. o 3341 Fix problem where /etc/vpath.conf file was not updated when removing a vpath with debugging enabled, i.e. 'rmvpath debug'. 1.6.0.1-3 o 3156 Fix potential hang during sdd.log trace collection. 1.6.0.1-1 o 3089 Fix problems with cfgvpath 1.6.0.0-15 o 2835 Fix cfgvpath handling of the comment flag for vpath.conf. o 2840 Fix rmvpath to correctly comment out entries. o 2752 Improve sequential IO performance (opensfs defect 8891). o 2788 Fix cfgvpath crash (PMR 06708). o 2812 Fix adapter counts during addpath on open devices o 2819 Fix SFS performance on Standby controller: (opensfs defect 9248). o 117920 SDD start error. o 2632 Enable non-root user to open vpath device. o 2618 DB2 users cannot use vpath device. o 2559 Fix for raw vpath error retry I/O hang. 3.1.2 ESS/DS8000/DS6000 Defects None 3.1.3 SVC Defects None 3.1.4 SVCCISCO Defects None 3.1.4 SANFS Defects None =============================================================================== 3.2 New Features 1.6.0.1-10 o PCR 2889 Add SDD trace collection script for problem determination (sddgetdata). 1.6.0.1-3 o PCR 2886 Add "-l" option to datapath query device command to indicate paths to a non-preferred controller. o Redhat and Red Flag: Not allow rpm upgrade or removal while SDD is in use (can be overridden). 1.6.0.0-15 o Turn on debug tracing by default. o Separated out the optimized sequential policy from the optimized policy, and added a round robin sequential policy. o Enable non-root user to open vpath device. o Added support for DS8000 (2107) and DS6000 (1750) devices. =============================================================================== 3.3 Feature Details 1.6.0.1-10 o PCR 2889 Add SDD trace collection script (located at /opt/IBMsdd/bin/sddgetdata). Run the script "sddgetdata" to collect SDD trace data and host logs to support SDD problem determination and resolution. The resulting file (sdd_data_$date_time$.tar.gz) will be saved to the current working directory. 1.6.0.1-3 o PCR 2886 A new feature has been introduced to datapath to aid users to in verifying their SAN configurations in a controller environment (such as with the SAN Volume Controller). The datapath query device command now has a new option '-l' to display paths to non-preferred controllers. For example, if users have 4 paths per SDD vpath device and they would like to configure a equal distribution between preferred controller and non-preferred controller, they will configure their environment with 2 paths from a preferred controller and another 2 paths from a non-preferred one. This feature will help users to verify their configuration by indicating which path is from the non-preferred controller before the device starts operation. For 'datapath query device', a new option, '-l', is added to mark the non-preferred paths with an asterisk. This option can be used in addition to the existing datapath query device command. For example: - datapath query device -l - datapath query device -l In the datapath query device output, the non-preferred paths are marked with a *, as below: DEV#: 35 DEVICE NAME: vpathbd TYPE: 2145 POLICY: Optimized Sequential SERIAL: 60050768018b800a800000000000008c LUN IDENTIFIER: 60050768018b800a800000000000008c ============================================================================ Path# Adapter/Hard Disk State Mode Select Errors 0* Host3Channel0/sdcu CLOSE NORMAL 0 0 1 Host3Channel0/sddc CLOSE NORMAL 22985 0 2 Host2Channel0/sds CLOSE NORMAL 26398 0 3* Host2Channel0/sdk CLOSE NORMAL 0 0 o Redhat and Red Flag: Not allow rpm upgrade or removal while SDD is in use. This can be overridden with a --nopre and --nopreun flag to rpm, but since SUSE does not support these flgas the feature is not available in SuSE (--noscripts prevents required post conditions from running as well, so is not an option). 1.6.0.0-15 o Tracing is now turned on by default for SDD. The SDD driver logs are saved to /var/log/sdd.log and the sddsrv daemon logs are saved to /var/log/sddsrv.log. o As part of the new performance improvement, we separated out an optimized sequential policy from the optimized policy, and added a round robin sequential policy. The optimized sequential policy is now the default policy of linux. Both the sequential policies base the path selection on whether the IO is sequential, and if not fall though to use the exising optimized (load balanced) or round robin policies. Highly sequential IO can have a significant performance improvement, and non sequential IO should perform the same as without the sequential policy in place. o Non-root users can now open a vpath device. Before, only root users would have this privilege, but with raised capabilities in the OS non-root users can do the same. o Added support for DS8000 (2107) and DS6000 (1750) devices. =============================================================================== 3.4 Known Issues o Kernel offlines scsi_device erroneously During heavy I/O load, the kernel may decide to offline a scsi_device, e.g. /dev/sd[X], thus disabling an SDD path entirely; all I/O to the underlying sd device will fail. When this happens, a message should appear in /var/log/messages that resembles: kernel: scsi: device set offline - not ready or command retry failed after bus reset: host 0 channel 0 id 0 lun 4 Once the scsi_device is offlined by the kernel the kernel will not put the scsi_device back online again automatically, even if the path is ok. Unfortunately, this scenario can occur under heavy I/O load when the path, i.e. scsi_device, is still usable. The only way to fix this issue and bring the scsi_device back online is to reload the HBA driver. Please be sure to stop SDD before reloading the HBA driver. =============================================================================== 3.5 Correction to User's Guide o Using SDD with Linux Logical Volume Manager (LVM) In order to use SDD with the Linux LVM, the SDD module must be loaded and vpath devices configured before LVM is loaded. This is because LVM has a dependency on SDD vpath devices, and therefore SDD must be loaded prior to LVM startup. NOTE: This procedure will describe how to set up SDD to load before LVM using boot up scripts. This procedure may not work if LVM is loaded in the initrd (initial ramdisk). One common reason why LVM would be loaded in the initrd is because the system is booting off of an LVM device for it's root disk. Supporting this type of environment requires that SDD also be placed in the initrd, which is a process that is not described here. The procedures and requirements are different for SLES 8 and RHEL 3. SLES 8: LVM with SDD on SLES 8 is ONLY supported on LVM version lvm-1.0.5-129 or later. Please upgrade your LVM to this version or later using the SuSE maintweb update. Your LVM will not work with SDD vpath devices correctly otherwise. In order to get SDD to load before LVM, you need to load SDD at boot time using the bootup scripts. Follow the following steps: 1. cd /etc/init.d/ 2. cp /opt/IBMsdd/bin/sdd.rcscript boot.sdd 3. Edit the boot.sdd file and add the following line to the beginning of the start function: mount -n -o remount,rw / 2> /dev/null Your start function start should look like this: start() { mount -n -o remount,rw / 2> /dev/null # ADDED THIS LINE echo -n "Starting $dev_name driver load: " rm -f ${driver_dir}/${driver}.o ... } 4. cd /etc/init.d/boot.d 5. Create a link named Sxxboot.sdd with xx being a number smaller than the one that is on the LVM boot script link. For example, the LVM on this system is at S04boot.lvm: # ls -l | grep lvm lrwxrwxrwx 1 root root 11 Aug 12 17:35 S04boot.lvm -> ../boot.lvm* Since LVM is loading up at S04, we need to set SDD to at least S03 so as to avoid this problem. Therefore we create a link to the boot.sdd file that we just modified: # ln -s ../boot.lvm S03boot.sdd And here are the results: # ls -l ... lrwxrwxrwx 1 root root 11 Mar 11 12:03 S03boot.sdd -> ../boot.sdd* lrwxrwxrwx 1 root root 11 Aug 12 17:35 S04boot.lvm -> ../boot.lvm* ... SLES 8 uses the numbering scheme to determine which script will be run first at boot time. Therefore, we are insuring that the SDD script will be run before the LVM script is run. 6. Configure LVM. Reboot the system and the LVM configuration should come up after reboot using SDD vpath devices. RHEL 3: LVM is not currently supported on RHEL 3 with SDD. o Change in the path state transition During path open or sddsrv path probing, SDD will no longer skip CLOSE OFFLINE paths. Their state will be changed to INVALID if open fails or DEAD if open succeeds and mode remains in OFFLINE. CLOSED_DEAD path will stay in CLOSED_DEAD during vpath open, instead of changing into INVALID state. ------------------------------------------------------------------------------- 4.0 User License Agreement for IBM Device Drivers See the LICENSE file located in /opt/IBMsdd. ------------------------------------------------------------------------------- 5.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 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 may not apply to you. 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. 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. 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 Information Enabling Requests Dept. DZWA 5600 Cottle Road San Jose, CA 95193 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 License Agreement for Non-Warranted Programs. 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. This information contains 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. =============================================================================== IBM agreement for licensed internal code +---- Read Before Using -----------------------------------------------+ |IMPORTANT | | | |YOU ACCEPT THE TERMS OF THIS IBM LICENSE AGREEMENT FOR MACHINE CODE BY| |YOUR USE OF THE HARDWARE PRODUCT OR MACHINE CODE. PLEASE READ THE | |AGREEMENT CONTAINED IN THIS BOOK BEFORE USING THE HARDWARE PRODUCT.SEE| |IBM agreement for licensed internal code. | | | +----------------------------------------------------------------------+ You accept the terms of this Agreement(3) by your initial use of a machine that contains IBM Licensed Internal Code (called "Code"). These terms apply to Code used by certain machines IBM or your reseller specifies (called "Specific Machines"). International Business Machines Corporation or one of its subsidiaries ("IBM") owns copyrights in Code or has the right to license Code. IBM or a third party owns all copies of Code, including all copies made from them. If you are the rightful possessor of a Specific Machine, IBM grants you a license to use the Code (or any replacement IBM provides) on, or in conjunction with, only the Specific Machine for which the Code is provided. IBM licenses the Code to only one rightful possessor at a time. Under each license, IBM authorizes you to do only the following: 1. execute the Code to enable the Specific Machine to function according to its Official Published Specifications (called "Specifications"); 2. make a backup or archival copy of the Code (unless IBM makes one available for your use), provided you reproduce the copyright notice and any other legend of ownership on the copy. You may use the copy only to replace the original, when necessary; and 3. execute and display the Code as necessary to maintain the Specific Machine. You agree to acquire any replacement for, or additional copy of, Code directly from IBM in accordance with IBM's standard policies and practices. You also agree to use that Code under these terms. You may transfer possession of the Code to another party only with the transfer of the Specific Machine. If you do so, you must 1) destroy all your copies of the Code that were not provided by IBM, 2) either give the other party all your IBM-provided copies of the Code or destroy them, and 3) notify the other party of these terms. IBM licenses the other party when it accepts these terms. These terms apply to all Code you acquire from any source. Your license terminates when you no longer rightfully possess the Specific Machine. Actions you must not take You agree to use the Code only as authorized above. You must not do, for example, any of the following: 1. Otherwise copy, display, transfer, adapt, modify, or distribute the Code (electronically or otherwise), except as IBM may authorize in the Specific Machine's Specifications or in writing to you; 2. Reverse assemble, reverse compile, or otherwise translate the Code unless expressly permitted by applicable law without the possibility of contractual waiver; 3. Sublicense or assign the license for the Code; or 4. Lease the Code or any copy of it. ------------------------------------------------------------------------------- 6.0 Trademarks and Service Marks The following terms are trademarks of the International Business Machines Corporation in the United States,other countries, or both: AIX AS/400 Enterprise Storage Server HACMP/6000 IBM IBM logo iSeries Netfinity NetVista Operating System/400 pSeries RS/6000 Seascape SP System/360 System/370 System/390 The eServer logo TotalStorage Versatile Storage Server xSeries zSeries z/Architecture z/OS Microsoft, Windows, Windows NT, and the Windows logo are registered trademarks of Microsoft Corporation. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. 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 2000, 2002, 2003, 2004, 2005. All rights reserved.