============================================================================ IBM i Access Client Solutions - Linux Application Package 5733-XJ1 Version: 1.1.0.14 ESS ID: LCD8-2012-14 (c) Copyright IBM Corporation 2020. All rights reserved. ============================================================================= NOTICE: ------- Application of this Service Pack may disable or render ineffective programs that use system memory addresses not generated by the IBM translator, including programs that circumvent control technology designed to limit interactive capacity to purchased levels. This Service Pack may be a prerequisite for future Service Packs. By applying this Service Pack you authorize and agree to the foregoing. This Service Pack is subject to the terms of the license agreement which accompanied, or was contained in, the Program for which you are obtaining the Service Pack. You are not authorized to install or use the Service Pack except as part of a Program for which you have a valid Proof of Entitlement. SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT, REGARDING THE SERVICE PACK. The applicable license agreement may have been provided to you in printed form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR) CL command. ----------------- Table of Contents ----------------- 1.0 INSTALLATION INSTRUCTIONS 1.1 SUPPORTED ENVIRONMENTS 1.2 INSTALLING ON RPM-BASED LINUX DISTRIBUTIONS 1.3 INSTALLING ON DEBIAN-BASED LINUX DISTRIBUTIONS 1.4 CREATING COMPATIBILITY SYMLINKS 2.0 RECOMMENDATIONS/RESTRICTIONS 2.1 IBM i SERVER FIXES 2.2 32-BIT OS SUPPORT 3.0 AUTHORIZED PROGRAM ANALYSIS REPORT (APAR) ABSTRACTS - SERVICE PACK LEVEL = 1.1.0.14 (August 2020) - SERVICE PACK LEVEL = 1.1.0.13 (February 2020) - SERVICE PACK LEVEL = 1.1.0.12 (May 2019) - SERVICE PACK LEVEL = 1.1.0.11 (November 2018) - SERVICE PACK LEVEL = 1.1.0.10 (May 2018) - SERVICE PACK LEVEL = 1.1.0.9 (October 2017) - SERVICE PACK LEVEL = 1.1.0.8 (May 2017) - SERVICE PACK LEVEL = 1.1.0.7 (October 2016) - SERVICE PACK LEVEL = 1.1.0.6 (May 2016) - SERVICE PACK LEVEL = 1.1.0.5 (October 2015) - SERVICE PACK LEVEL = 1.1.0.4 (May 2015) - SERVICE PACK LEVEL = 1.1.0.3 (October 2014) - SERVICE PACK LEVEL = 1.1.0.2 (May 2014) - SERVICE PACK LEVEL = 1.1.0.1 (October 2013) - SERVICE PACK LEVEL = 1.1.0.0 (June 2013) 4.0 ENHANCEMENTS AND INTERNAL FIXES - SERVICE PACK LEVEL = 1.1.0.14 (August 2020) - SERVICE PACK LEVEL = 1.1.0.13 (February 2020) - SERVICE PACK LEVEL = 1.1.0.12 (May 2019) - SERVICE PACK LEVEL = 1.1.0.11 (November 2018) - SERVICE PACK LEVEL = 1.1.0.10 (May 2018) - SERVICE PACK LEVEL = 1.1.0.9 (October 2017) - SERVICE PACK LEVEL = 1.1.0.8 (May 2017) - SERVICE PACK LEVEL = 1.1.0.7 (October 2016) - SERVICE PACK LEVEL = 1.1.0.6 (May 2016) - SERVICE PACK LEVEL = 1.1.0.5 (October 2015) - SERVICE PACK LEVEL = 1.1.0.4 (May 2015) - SERVICE PACK LEVEL = 1.1.0.3 (October 2014) - SERVICE PACK LEVEL = 1.1.0.2 (May 2014) - SERVICE PACK LEVEL = 1.1.0.1 (October 2013) - SERVICE PACK LEVEL = 1.1.0.0 (June 2013) ----------------------------------------------------------------------------- 1.0 INSTALLATION INSTRUCTIONS ------------------------------ 1.1 SUPPORTED ENVIRONMENTS -------------------------- This service pack is supported on the following Linux distributions: - Red Hat Enterprise Linux 6 (x86_64, ppc64) - Red Hat Enterprise Linux 7 (x86_64, ppc64, ppc64le) - Red Hat Enterprise Linux 8 (x86_64, ppc64le) - SUSE Linux Enterprise 11 (x86_64, ppc64) - SUSE Linux Enterprise 12 (x86_64, ppc64le) - SUSE Linux Enterprise 15 (x86_64, ppc64le) - Ubuntu Linux 16.04 (amd64, ppc64el) - Ubuntu Linux 18.04 (amd64, ppc64el) - Ubuntu Linux 20.04 (amd64, ppc64el) 1.2 INSTALLING ON RPM-BASED LINUX DISTRIBUTIONS ------------------------------------------------ The service pack includes rpm files for installation on Linux distributions which use RPM for package management. The RPMs will have the names: ibm-iaccess-VRMF-S.0.ARCH.rpm ibm-iaccess-32bit-VRMF-S.0.ARCH.rpm Where VRMF is the Service Pack level, S is the RPM version, and ARCH is one of x86_64, ppc64, and ppc64le. The RPMs will be located under the directory of the corresponding architecture. Example installation instructions: - RPM generic: rpm -ihv ibm-iaccess-1.1.0.1-1.0.ppc64.rpm - openSUSE and SUSE Linux Enterprise: zypper in ibm-iaccess-1.1.0.1-1.0.ppc64le.rpm - Fedora, CentOS, RHEL: yum install ibm-iaccess-1.1.0.1-1.0.x86_64.rpm On x86_64 and ppc64, there is also included a 32-bit package that can be installed along side the 64-bit package. This enables both 32-bit and 64-bit applications to co-exist. Example installation instructions: - RPM generic: rpm -ihv ibm-iaccess-32bit-1.1.0.1-1.0.x86_64.rpm - openSUSE and SUSE Linux Enterprise: zypper in ibm-iaccess-32bit-1.1.0.1-1.0.x86_64.rpm - Fedora, CentOS, RHEL: yum install ibm-iaccess-32bit-1.1.0.1-1.0.ppc64.rpm NOTE: In some cases you may have to force install the rpm due to unixODBC version changes. See section 1.3 for more information. 1.3 INSTALLING ON DEBIAN-BASED LINUX DISTRIBUTIONS --------------------------------------------------- The service pack includes deb files for installation on Debian-based Linux distributions. The DEBs will have the names: ibm-iaccess-VRMF-S.0.ARCH.deb ibm-iaccess-32bit-VRMF-S.0.ARCH.deb Where VRMF is the Service Pack level, S is the DEB version, and ARCH is one of amd64 or ppc64le. The DEBs will be located under the directory of the corresponding architecture. Example installation instructions: - Using dpkg: dpkg -i ibm-iaccess-1.1.0.1-1.0.ppc64le.rpm apt-get install -f - Using gdebi: gdebi ibm-iaccess-1.1.0.1-1.0.amd64.rpm For amd64 systems, there is also included a 32-bit package that can be installed along side the 64-bit package. This enables both 32-bit and 64-bit applications to co-exist. See the following for more information on enabling MultiArch support: https://help.ubuntu.com/community/MultiArch https://wiki.debian.org/Multiarch/HOWTO Example installation instructions: - Using dpkg: dpkg -i ibm-iaccess-32bit-1.1.0.1-1.0.amd64.rpm apt-get install -f - Using gdebi: gdebi ibm-iaccess-32bit-1.1.0.1-1.0.amd64.rpm 1.4 CREATING COMPATIBILITY SYMLINKS ------------------------------------ Due to the changes for full 64-bit compatibility in unixODBC 2.2.14, the API and ABI of unixODBC were changed. To reflect this change, the library version was bumped to 2 - but not until unixODBC 2.3.1. Some Linux distributions realized the break in ABI compatibility and changed the library version in their own distributions, but others did not. In addition, starting with 1.1.0.2 of ibm-iaccess, the IBM i Access ODBC driver is compiled against unixODBC 2.3.2 and links against library version 2. Prior to this release, the ODBC driver was linked against library version 1. This creates complications for installing the ibm-iaccess package. On some distributions, a compatibility symlink may need to be created and the package force installed. If your distribution does not provide a package which contains libodbcinst.so.2, the following example commands may be useful: - 64-bit RPM-based distributions: ln -s libodbcinst.so.1 /usr/lib64/libodbcinst.so.2 - 32-bit RPM-based distributions: ln -s libodbcinst.so.1 /usr/lib/libodbcinst.so.2 - 64-bit Debian-based distributions: ln -s libodbcinst.so.1 /usr/lib/x86_64-Linux-gnu/libodbcinst.so.2 - 32-bit Debian-based distributions: ln -s libodbcinst.so.1 /usr/lib/i386-Linux-gnu/libodbcinst.so.2 2.0 RECOMMENDATIONS/RESTRICTIONS --------------------------------- 2.1 IBM i SERVER FIXES ----------------------- We recommend keeping your IBM i system at the latest Cumulative PTF package, HIPER Group PTF, and latest Database Group PTF. See https://www.ibm.com/support/pages/node/667303 2.2 32-BIT OS SUPPORT ---------------------- As of service pack level 1.1.0.10, there is no longer support for installing on 32-bit Linux operating systems (i386 or ppc). Existing 32-bit applications can make use of the 32-bit sub-packages for x86_64/amd64 and ppc64 systems. Refer to sections 1.1 and 1.2 on how to install these sub-packages. 3.0 AUTHORIZED PROGRAM ANALYSIS REPORT (APAR) ABSTRACTS -------------------------------------------------------- This a list of APAR fixes included in this service pack. Each service pack is cumulative. The current service pack includes all the fixes from the prior service pack levels. --------------------------------- Version: 1.1.0.14 Build Date = Aug 2020 --------------------------------- APAR SE73090 OSP-INCORROUT NOTES ON LINUX USING ODBC CRASHES APAR SE73347 OSP-INCORROUT ACS LINUX ODBC USING UNICODE SQL STATEMENTS CAN ENCOUNTER CONVERSION ISSUES RESULTING IN SUBSTITUTION CHARACTER APAR SE73817 OSP-INCORROUT ONLY 200 ROWS OF DATA ARE FETCHED BY ODBC DRIVER FOR LINUX --------------------------------- Version: 1.1.0.13 Build Date = Feb 2020 --------------------------------- APAR SE72337: OSP-INCORROUT LONG COLUMN NAMES TRUNCATED FOR FIRST METADATA RESPONSE APAR SE72376: OSP-OTHER-INCORROUT IBM I ACS LINUX APPLICATION PACKAGE 64-BIT ODBC DRIVER IS NOT CORRECTLY CONVERTING CHAR* TO BIGINT VALUE --------------------------------- Version: 1.1.0.12 Build Date = May 2019 --------------------------------- APAR SE71039: CA400EXP-APIS-NLS-INCORROUT CCSID 937 USING 28709 FOR SBCS RATHER THAN 37 APAR SE71097: CA400EXP-ODBC-MSGSQL0181 LINUX ODBC DRIVER CONVERTING STRING TO TIME INCORRECTLY APAR SE71133: CA400EXP-ODBC-THREADS-PERFM IBM I ACCESS CLIENT SOLUTIONS LINUX ODBC DRIVER MEMORY USAGE GROWTH --------------------------------- Version: 1.1.0.11 Build Date = November 2018 --------------------------------- APAR SE69991: CA400EXP-ODBC-MSGSQL0904 RESOURCE LIMIT TYPE 7 EXCEEDED WITH REASON CODE 168 --------------------------------- Version: 1.1.0.10 Build Date = June 2018 --------------------------------- APAR SE68793: OSP-UNPRED ACS WINDOWS ODBC DRIVER WILL FAIL WITH ACCESS VIOLATION WHEN USING *USRLIBL AT 64 BIT DATA SOURCE APAR SE68610: CA400EXP-ODBC-INCORROUT TIMESTAMP PRECISION APAR SE68844: OSP-INCORROUT ODBC HEAP ADDRESS ERRORS OR DELPHI DEBUGGER STOPS AT A "NON-USER BREAKPOINT" APAR SE68848: OSP-INCORROUT ODBC EXCEL MSQUERY DOES NOT WORK TO CHANGE THE QUERY --------------------------------- Version: 1.1.0.9 Build Date = October 2017 --------------------------------- No fixes. --------------------------------- Version: 1.1.0.8 Build Date = May 2017 --------------------------------- APAR SE66636: CA400ECP-ODBC-INCORROUT SQL_NO_TOTAL PROBLEM WITH ODBC APAR SE66663: CA400EXP-ODBC-INCORROUT ALL COLUMN VALUES BOUND AS NULL WHEN USING BLOCK INSERT --------------------------------- Version: 1.1.0.7 Build Date = October 2016 --------------------------------- APAR SE65922: CA400EXP-ODBC-UNPRED Data is messed up if no shift-in APAR SE65773: OSP SQLDRIVERCONNECT NOT REPORTING ERRORS CORRECTLY IN LAST TWO SERVICE PACKS --------------------------------- Version: 1.1.0.6 Build Date = May 2016 --------------------------------- APAR SE63287: CA400EXP-ODBC-INCORROUT CWB0111 UTF-8 PARAMETER DATA APAR SE63307: CA400EXP-ODBC-INCORROUT FILE DSN SIGNON TYPE APAR SE63628: CA400EXP-ODBC-UNPRED FIELD DATA IS TRUNCATED APAR SE63700: CA400EXP-ODBC-INCORROUT LINUX ODBC NOT RETURNING COLUMN NAMES CORRECTLY TO CALLER APAR SE63801: CA400EXP-ODBC-INCORROUT ERROR INVALID PARAMETER NUMBER RETURNED AFTER CALLING SQLFREESTMT(SQL_RESET_PARAMS) APAR SE64596: CA400EXP-ODBC-UNPRED UNEXPECTED 0F0E INSERTED BETWEEN KANJI AND DBCS BLANKS APAR SE64600: CA400EXP-ODBC-INCORROUT DATES AND TIMES NOT CONVERTED TO WIDE CHARACTERS --------------------------------- Version: 1.1.0.5 Build Date = November 2015 --------------------------------- APAR SE62758: CA400EXP-ODBC-UNPRED EVENT-ID 1000 LOGGED IN WINDOWS EVENT LOG FOR CWBODBC.DLL WHEN AN APPLICATION CONNECTS TO IBM I 7.2 SYSTEM APAR SE62994: CA400EXP-ODBC-UNPRED ACS APPLICATION PACKAGE FOR LINUX ODBC DRIVER "CCSID" CONNECTION STRING KEYWORD NOT WORKING AS DESIGNED --------------------------------- Version: 1.1.0.4 Build Date = May 2015 --------------------------------- APAR SE61173: CA400EXP-ODBC-INCORROUT RESTRICTED DATA TYPE ATTRIBUTE VIOLATION CALLING SQLGETDATA WITH 0 BYTE BUFFER APAR SE61221: CA400EXP-ODBC-INCORROUT ODBC INSERT DATA CORRUPTED WITH SERVICE PACK SI53809 APAR SE61342: CA400EXP-ODBC-F/QSQRUN2-T/QSQRUN2-RC501-MSGMSGSQL0501 INSTALLATION OF SI53809 CAUSES SQL0501 IN ODBC APPLICATION APAR SE61465: CA400EXP-ODBC-INCORROUT ODBC FAILING IN FOXPRO --------------------------------- Version: 1.1.0.3 Build Date = October 2014 --------------------------------- APAR SE59290: CA400EXP-ODBC-MSGSQL0952 PROGRAM CALL INTERMITENT TIMEOUT APAR SE59344: CA400EXP-ODBC-UNPRED APPLICATION FAULTS AND CLOSES ON A QUERY THAT DOES A CALCULATION APAR SE59386: CA400EXP-ODBC-INCORROUT UNEXPECTED CHARACTERS IN OUTPUT DOING A SIMPLE SELECT STATEMENT APAR SE60184: CA400EXP-ODBC-MSGSQL0180 ODBC SELECT & INSERT STATEMENTS FAIL WITH MSGSQL0180 IN IBM I ACCESS FOR WINDOWS SERVICE PACK SI53584 APAR SE60361: CA400EXP-ODBC-PERFM BLOCKING WITH LOB LOCATORS --------------------------------- Version: 1.1.0.2 Build Date = May 2014 --------------------------------- APAR SE57759: CA400EXP-ODBC-INCORROUT INCORRECT HANDLING OF ROW-WISE PARAMETER BINDING APAR SE57797: CA400EXP-ODBC-INCORROUT SQLGETTYPEINFO (ALL DATATYPES) THROWS INCORRECT OUTPUT FOR CREATE_PARAMS APAR SE57867: CA400EXP-ODBC-INCORROUT SQLCOLUMNS() REPORTS DATA_TYPE & SQL_DATA_TYPE AS -1 (LONGVARCHAR), NOT -370 (XML) APAR SE58113: CA400EXP-ODBC-UNPRED MSGCWBNL0107 WHEN RECORD DOES HAVE X'E0' (SHIFT OUT) BUT NO X'0F' (SHIFT IN) --------------------------------- Version: 1.1.0.1 Build Date = October 2013 --------------------------------- No fixes. --------------------------------- Version: 1.1.0.0 Date = June 2013 --------------------------------- APAR SE54149: CA400EXP-ODBC-INCORROUT CHANGED VALUE OF "RETURN CODE FOR UNUSABLE PACKAGES" NOT RETAINED APAR SE55472: OSP-HOSTSERVERS LINUX ODBC, INCORRECT DATA RETURNED FOR SELECT ON PACKED FIELD This package also includes all fixes for the ODBC component from IBM i Access for Windows 7.1 prior to Service Pack level SI49800. 4.0 ENHANCEMENTS AND INTERNAL FIXES ------------------------------------ This a list of enhancements and internal fixes. --------------------------------- Version: 1.1.0.14 Build Date = Aug 2020 --------------------------------- - Better handling of surrogate pairs in UTF-16 when converting to and from UTF-8 or UTF-32. - Send SQL text in UTF-16 instead of UCS-2 when UnicodeSQL is 1 or 2 - Improve ODBC error reporting when server messages contain embedded NUL bytes. This should result in fewer "Error message text unavailable" messages. - Allow setting SQL_ATTR_TXN_ISOLATION to 0 for COMMIT(*NONE). Some driver managers restrict the values to those defined by ODBC. In that case, a custom driver attribute CWB_ATTR_TXN_ISOLATION (2139) can be used which functions identically to SQL_ATTR_TXN_ISOLATION and bypasses the restriction. - Support for using ODBC escape sequences in connection strings. The primary benefit is for passwords which contain any of the special characters '"', '=', and ';'. Wrap any value in curly braces "{}" to embed special characters. A '}' can be doubled inside an open escape sequence to escape it. - Fix driver identification on POWER. This should now give ppc, ppc64, and ppc64le correctly depending on the platform. Previously it always gave ppc. - Fix possible crash when fetching an output parameter from a stored procedure and tracing is enabled. - Utilities in /opt/ibm/iaccess/bin (eg. cwbtrc, cwbmedic, ...) are now symlinked to /usr/bin --------------------------------- Version: 1.1.0.13 Build Date = Feb 2020 --------------------------------- - Fix a bug in fetch processing that could cause a call to SQLFetch, SQLFetchScroll, or SQLExtendedFetch after a forward-only cursor had reached the end of data in a previous fetch call to return the last rowset of data again instead of returning SQL_NO_DATA. In some cases, this could result in another fetch call being made to the server, resulting in an error. --------------------------------- Version: 1.1.0.12 Build Date = May 2019 --------------------------------- No enhancements. --------------------------------- Version: 1.1.0.11 Build Date = November 2018 --------------------------------- No enhancements. --------------------------------- Version: 1.1.0.10 Build Date = May 2018 --------------------------------- No enhancements. --------------------------------- Version: 1.1.0.9 Build Date = October 2017 --------------------------------- - No longer incorrectly claim support for the ODBC Explicit Data Type Conversion function --------------------------------- Version: 1.1.0.8 Build Date = May 2017 --------------------------------- - Fix for result set operations that could cause a statement handle to get in to a bad state after calling a stored procedure that returns a result set and then calling a stored procedure which does not return a result set. Due to a flag not getting unset when it is re-used, the ODBC driver simultaneously thinks that it has a result set and does not have a result set. This will cause a Function Sequence Error when attempting to close the non-existent result set or execute a query. --------------------------------- Version: 1.1.0.7 Build Date = October 2016 --------------------------------- No enhancements. --------------------------------- Version: 1.1.0.6 Build Date = May 2016 --------------------------------- - Connection string keyword tracing enhancements --------------------------------- Version: 1.1.0.5 Build Date = October 2015 --------------------------------- No enhancements. --------------------------------- Version: 1.1.0.4 Build Date = May 2015 --------------------------------- - Support for Little Endian POWER systems running Ubuntu 14.04 --------------------------------- Version: 1.1.0.3 Build Date = October 2014 --------------------------------- - Support for truncating blank padding from character types using SQLBindParameter and SQLPutData. When the character parameter does not fit in the target field after conversion, the ODBC driver will attempt to truncate blanks (both the ASCII space and the ideographic space characters) from the end of the buffer until the parameter fits in to the target target field after conversion. If the driver truncates blanks, it will return SQL_SUCCESS_WITH_INFO and set SQLSTATE 01004. If the buffer does not fit even after truncate blanks (if any), it will continue to return SQL_ERROR and set SQLSTATE 22001. There is still no support for truncating blank padding when using SQLPutData with LOB locators nor support for truncating NULL character padding for SQL_C_BINARY parameters. - Support for Little Endian POWER systems running SUSE Linux Enterprise 12. - Installation path is now /opt/ibm/iaccess instead of /opt/ibm/iSeriesAccess. A symlink has been added for compatibility, but may be removed in a future release. - New header file, /opt/ibm/iaccess/include/cwbodbc.h, contains various IBM i Access ODBC driver specific definitions. - Improved dependency resolution for .deb files. --------------------------------- Version: 1.1.0.2 Build Date = May 2014 --------------------------------- - Support for connecting to IBM i 7.2 systems. - Support for timestamp columns and parameters with precisions other than 6 when connecting to IBM i 7.2 systems. - Support for returning IBM-format timestamps instead of ISO-format timestamps when using SQLBindCol and SQLGetData. Use the new TimestampFormat odbc.ini attribute or the TST connection string keyword (0 = ISO, 1 = IBM). - ODBC driver is now registered with Threading=0, so multiple threads can use the same connection handles and/or statement handles. --------------------------------- Version: 1.1.0.1 Build Date = October 2013 --------------------------------- - Support for rpm-based Linux on POWER systems. - Improved installation and upgrade processing. - 32-bit co-installable packages for 64-bit systems. - 64-bit installations now use /opt/ibm/iSeriesAccess/bin instead of /opt/ibm/iSeriesAccess/bin64 for binaries. A symlink has been added for compatibility, but may be removed in a future release. --------------------------------- Version: 1.1.0.0 Date = June 2013 --------------------------------- - Initial release. - New package name: ibm-iaccess. - Support for Debian-based systems. - Full 64-bit support for the ODBC driver. The driver now requires unixODBC 2.2.14 or higher. ----------------------------------------------------------------------------- [END OF DOCUMENT]