============================================================================
        IBM i Access Client Solutions - PASE Application Package
                         5733-XJ1 Version: 1.1.0.28

(c) Copyright IBM Corporation 2024.  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  PREREQUISITES
  1.3  INSTALLING
2.0  RECOMMENDATIONS/RESTRICTIONS
  2.1  IBM i SERVER FIXES
3.0  KNOWN ISSUE (APAR) ABSTRACTS
  - SERVICE PACK LEVEL = 1.1.0.28 (May 2024)
  - SERVICE PACK LEVEL = 1.1.0.27 (November 2022)
  - SERVICE PACK LEVEL = 1.1.0.26 (May 2022)
  - SERVICE PACK LEVEL = 1.1.0.15 (May 2021)
  - 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 (August 2019)
4.0  ENHANCEMENTS AND INTERNAL FIXES
  - SERVICE PACK LEVEL = 1.1.0.28 (May 2024)
  - SERVICE PACK LEVEL = 1.1.0.27 (November 2022)
  - SERVICE PACK LEVEL = 1.1.0.26 (May 2022)
  - SERVICE PACK LEVEL = 1.1.0.15 (May 2021)
  - 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 (August 2019)

-----------------------------------------------------------------------------

1.0  INSTALLATION INSTRUCTIONS
------------------------------

1.1 SUPPORTED ENVIRONMENTS
--------------------------

  This service pack is supported on IBM i 7.3 and later.

1.2  PREREQUISITES
------------------

  This service pack is shipped as an RPM and is designed to integrate with the
  IBM i Open Source yum ecosystem. You must have yum installed in order to
  install this package.

  For information on how to get the yum environment installed go to
  http://ibm.biz/ibmi-rpms.

1.3  INSTALLING
---------------

  The service pack includes rpm files for installation on PASE. The RPMs will
  have the names:
  
  ibm-iaccess-V.R.M.F-S.ibmi7.3.ppc64.rpm
  
  Where V.R.M.F is the Service Pack level, S is the RPM version. The RPMs will be
  located under the directory of the corresponding architecture.
  
  Example installation instructions:
  
  yum install ibm-iaccess-1.1.0.12-0.ibmi7.3.ppc64.rpm

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

3.0  KNOWN ISSUE (APAR) ABSTRACTS
--------------------------------------------------------
   This a list of Known Issue (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.28
Build Date = May 2024
---------------------------------

Known Issue DT378953 OSP-UNPRED A PHP APPLICATION SETTING ODBC_AUTOCOMMIT
                     TO FALSE DOES NOT EXHIBIT EXPECTED BEHAVIOR.
Known Issue DT378984 OSP-UNPRED BYTE COUNT IS OFF CAUSING TRANSLATION ISSUES
Known Issue DT378985 OSP ODBC DRIVER MIGHT CRASH 0XC0000005 0X0004DB64
Known Issue DT379008 OSP-INCORROUT ATTEMPT TO CALL A STORED PROCEDURE WHICH
                     CONTAINS A "SPECIFIC" NAME FAILS WITH RETURN CODE -100
Known Issue DT379010 OSP-UNPRED LINUX ODBC - LIBRARY LIST SHORTENED
                     INTERMITTENTLY

---------------------------------
Version: 1.1.0.27
Build Date = November 2022
---------------------------------

APAR SE78044 OSP-INCORROUT ODBC INCORRECT COLUMN LABEL INFORMATION
APAR SE78102 OSP-UNPRED WINAP 1.1.0.26 - MICROSOFT CURSOR ENGINE: DATA
             PROVIDER OR OTHER SERVICE RETURNED AN E_FAIL STATUS
APAR SE78694 OSP-UNPRED PASE - ODBC - DBCS - SQL0104 FOR SELECT SQL STATEMENT

---------------------------------
Version: 1.1.0.26
Build Date = May 2022
---------------------------------

APAR SE75879 OSP-INCORROUT SYSTEM KEYWORD NOT RECOGNIZED IN DSN-LESS ODBC
             CONNECTION
APAR SE76176 OSP-INCORROUT ODBC - CWBNL0107 FOR SPECIFIC CHARACTERS WITH TARGET
             CODE PAGE 1202
APAR SE77094 OSP-THREADS-WAIT PASE ODBC DRIVER DELAY SQLGETINFO
APAR SE75812 OSP-UNPRED MEMORY LEAK IN ODBC DRIVER

---------------------------------
Version: 1.1.0.15
Build Date = May 2021
---------------------------------

APAR SE75463 OSP ACS WINDOWS AP ODBC {FN CURRENT_DATE()} MIGHT CRASH WITH WHERE
             CLAUSE
APAR SE74428 OSP-UNPRED SQLFETCHSCROLL() CAUSES A SEGMENTATION VIOLATION IN
             THE ODBC DRIVER.
APAR SE75368 OSP-INCORROUT SQL_NO_DATA / RC=100 MAY BE RETURNED TO
             SQLFETCHSCROLL INCORRECTLY IN HIGH UTILIZATION ENVIRONMENTS

---------------------------------
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 = Aug 2019
---------------------------------

 - Initial release for PASE

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


4.0  ENHANCEMENTS AND INTERNAL FIXES
------------------------------------
   This a list of enhancements and internal fixes.

---------------------------------
Version: 1.1.0.28
Build Date = May 2024
---------------------------------

No enhancements.

---------------------------------
Version: 1.1.0.27
Build Date = November 2022
---------------------------------

- Add TLS (SSL) support using OpenSSL. This requires that the OpenSSL libraries
  provided by yum are installed, eg libopenssl1_1. OpenSSL version 1.1.1 is
  supported. Unlike with GSKit on Windows, FIPS mode is not supported.
- Add EnableKeepAlive connection string keyword to enable TCP keepalive support
  as an alternative to using cwbcopwr. Setting to 0 disables keepalives, 1
  enables keepalives, and 2 uses the cwbcopwr value (default).
- Add Timeout connection string keyword to set the socket timeout (in seconds)
  when communicating with the server. This is an alternative to using the
  SQL_ATTR_CONNECTION_TIMEOUT connection attribute or cwbcopwr.
- Add LoginTimeout connection string keyword to set the connection timeout (in
  seconds) when initially connecting and logging in to the server. This is an
  alternative to using the SQL_ATTR_LOGIN_TIMEOUT connection attribute.
- Fix handling of QueryStorageLimit=*NOMAX. Previously, this would get
  interpreted as if 0 had been specified.

---------------------------------
Version: 1.1.0.26
Build Date = May 2022
---------------------------------

- Unify version number with IBM i Access Client Solutions Windows Application
  Package
- Add support for IBM i 7.5 PWDLVL 4
- Add support for IBM i 7.5 BOOLEAN SQL data type
- Add support for SQL_ATTR_CONNECTION_TIMEOUT and proper support for
  SQL_ATTR_LOGIN_TIMEOUT. In addition, cwbcopwr can be used to set send and
  receive socket timeouts.
- Add cwbcopwr utility
- SQL_DESC_OCTET_LENGTH and SQL_DESC_DISPLAY_LENGTH now take in to account any
  expansion that might occur due to CCSID conversion. For instance, a CHAR(10)
  EBCDIC column will now return 20 instead of 10 for the above attributes when
  the client is in UTF-8 since extended ASCII characters take 2 bytes in UTF-8
  but only 1 byte in EBCDIC. This allows retrieving the full column data in
  PHP's odbc and pdo_odbc extensions, especially on IBM i 7.4 and beyond where
  the default PASE CCSID is 1208.
- Fix bug on big endian systems where error message text would be blank in some
  cases
- Fix getaddrinfo error reporting on macOS and PASE systems. These
  were not being mapped correctly, giving odd error messages, eg.
  "rc=8 - CWB0008 - Insufficient personal computer resources" instead of 
  "rc=11001 - CWBCO1004 - Remote address could not be resolved"
- Allow SQL_ATTR_ROW_ARRAY_SIZE to change after data has been (pre-)fetched.
- Remove duplicate DBCLOB() CCSID 13488 row returned by SQLGetTypeInfo when
  called with SQL_ALL_TYPES

---------------------------------
Version: 1.1.0.15
Build Date = May 2021
---------------------------------

- Implement the current_date, current_time, current_timestamp, timestampadd,
  and timestampdiff ODBC scalar function escape sequences. For more details,
  refer to the following ODBC documents:
    https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/scalar-function-calls
    https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/time-date-and-interval-functions
- Add TrimCharFields connection option to trim trailing blank characters when
  retrieving CHAR and GRAPHIC fields. Setting this option to 1 will enable
  trimming, while setting it to 0 (default) will disable trimming.
- Add AlwaysCalculateResultLength connection option. Setting this option to 1
  will prevent the driver from returning SQL_NO_TOTAL, while setting it to 0
  (default) will allow the driver to return SQL_NO_TOTAL. Some applications do
  not expect SQL_NO_TOTAL (-4) and treat it as the actual length, causing
  problems. Note that calculating the actual result length can require repeated
  character conversion, so for performance reasons it's advised to not enable
  this feature unless absolutely necessary.

---------------------------------
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.
- Added cwbmedic script to gather diagnostic material for support personnel.

---------------------------------
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 = August 2019
---------------------------------

 - Initial release for PASE

-----------------------------------------------------------------------------
[END OF DOCUMENT]
