You've already been introduced to the IBM i Access Client Solutions application packages in a previous article. In this article, the Linux Application Package is explained in greater detail including the benefits over the existing iSeries Access for Linux offering. If you have used iSeries Access for Linux, you've probably been frustrated by it being increasingly hard to install due to missing motif libraries, not working well with the latest versions of unixODBC on 64-bit platforms, and requiring unsupported tools to install on Debian-based distributions. Fortunately, the IBM i Access Client Solutions Linux Application Package picks up the slack where iSeries Access for Linux falls short.
Full 64-bit support
Most (if not all) newer Linux distributions are including unixODBC 2.2.14 or later, which finally added full 64-bit support. This means that SQLLEN is now a 64-bit value on 64-bit architectures. Unfortunately, this was done in a completely backward-incompatible way (and for that, the blame rests on Microsoft®, because they write the standard). This means that ODBC applications compiled on recent 64-bit Linux systems will not work with the ODBC driver included with iSeries Access for Linux. Applications compiled using previous versions of unixODBC (prior to 2.2.14) will continue to work, but will not be full 64-bit compatible. Realize, by an application, this also means any program that uses an abstraction layer or library that binds to libodbc.so such as php-ODBC, pdo_odbc, ruby-odbc, and so on. These are usually included with the distribution and have been compiled with the distribution's unixODBC, which is probably now incompatible with iSeries Access for Linux. The good news is that the ODBC driver included with the IBM i Access Client Solutions Linux Application Package is now full 64-bit compatible and now works correctly on recent Linux distributions.
Applications might need to be updated to work properly with the new driver. Applications that use SQLLEN most likely just need a recompile. Microsoft changed the SQLINTEGER parameters in many application programming interfaces (APIs) to SQLLEN – applications that intermixed the two might now get a bunch of errors about conflicting types. This requires the application to be modified to use SQLLEN instead of SQLINTEGER. For more information on changes for full 64-bit compatibility, refer to Microsoft article ODBC 64-Bit Information. Applications using an abstraction layer (for example, through PHP, Ruby or other scripting languages shouldn't have any issue.
Packages for Debian-based distributions
iSeries Access for Linux only ever supported RPM-based distributions, but many customers resorted to scripts or tools (such as alien) to convert the RPMs to debs to install on Debian-based distributions such as Ubuntu. The IBM i Access Client Solutions Linux Application Package now includes both RPM and deb packages. This should help those of you who are using Debian or Ubuntu to access your IBM i.
32-bit co-installable libraries
In iSeries Access for Linux, if you had both 32-bit and 64-bit applications, there was no provided way to install both sets of libraries. Many users resorted to force installing the 32-bit and 64-bit packages. This meant that RPM now couldn't fully uninstall everything, because the 32-bit package information overwrote the 64-bit package information (or the 64-bit package information overwrote the 32-bit package information). With service pack 1 of the IBM i Access Client Solutions Linux Application Package, we now include additional RPM and deb packages to install the 32-bit libraries along with the 64-bit package. For instance, to install both the 64-bit package and the 32-bit libraries on SUSE, you would use the following command:
zypper in ibm-iaccess-188.8.131.52-1.0.x86_64.rpm ibm-iaccess-32bit-184.108.40.206-1.0.x86_64.rpm
This installs both the 64-bit package (which includes the 64-bit libraries, utility binaries, message files, and translation tables) and the 32-bit package (which just includes the 32-bit libraries). Because everything but the libraries is shared between the RPMs, there is no need to install them twice.
Support for Linux on Power
With service pack 1, the IBM i Access Client Solutions Linux Application Package has gained support for Linux on Power. This is great for customers who want to get the most out of their IBM Power Systems™ hardware by running Linux in addition to IBM i. For customers who have both IBM i and Linux, running Linux servers on Power Systems hardware is great because it can make use of excess capacity on your existing hardware and can reuse existing knowledge. All the same tools [Virtual I/O Server (VIOS), Integrated Virtualization Manager (IVM), Hardware Management Console (HMC), IBM PowerVM®, and so on] can manage both your IBM i and Linux logical partitions (LPARs), and therefore, administrators don't need to learn new tools.
The last release of iSeries Access for Linux was 7.1, released in September 2010. Many changes and fixes have gone in and many service packs for Microsoft Windows® have been released since then, but Linux never got the same treatment. With IBM i Access Client Solutions, the Linux Application Package is no longer a second-class citizen. IBM has committed to release periodic service packs to fix problems that are encountered and add new functions as appropriate.
With the IBM i Access Client Solutions Linux Application Package, the driver name was changed from "iSeries Access ODBC Driver" to "IBM i Access ODBC Driver." Be sure to adjust your odbc.ini accordingly. Additionally, the IBM i Access ODBC Driver allows you to share the data source name with both the 32-bit and 64-bit drivers. The right one will be picked by unixODBC to coincide with your application.
Unfortunately, when the unixODBC project added full 64-bit support in unixODBC 2.2.14, they did not increment the shared library version from so.1 to so.2. This was finally fixed with unixODBC 2.3.1, but many distributions are not currently including this version yet. Many distributions did realize that there was a break in compatibility and updated their packages to reflect this. On Red Hat, Fedora, and others, you might see an error when trying to install the IBM i Access Client Soutions Linux Application Package about a missing dependency on libodbcinst.so.1. To fix this, you need to force install the package and create a symlink from libodbcinst.so.2 to libodbcinst.so.1:
- 64-bit RPM-based distributions:
ln -s libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
- 32-bit RPM-based
ln -s libodbcinst.so.2 /usr/lib/libodbcinst.so.1
- 64-bit Debian-based
ln -s libodbcinst.so.2 /usr/lib/
- 32-bit Debian-based
ln -s libodbcinst.so.2 /usr/lib/
This is something that we hope to fix in a future release.
A few features of iSeries Access for Linux have been removed in the IBM i Access Client Solutions Linux Application Package. Essentially, the IBM i Access Client Solutions Linux Application Package is now just the ODBC driver and toolkit. This is a conscious decision, as many of these features are now part of IBM i Access Client Solutions proper, which is a cross platform solution. Customers who struggled to get the old ibm5250 emulator working on Linux can now just download IBM i Access Client Solutions and get a much better, more modern emulator. Additionally, IBM i Access Client Solutions includes a data transfer client, integrated Secure Sockets Layer (SSL) support, a spool file viewer, and the ability to connect to LAN consoles and HMCs. For more information refer to the IBM iAccess Client Solutions article by Tim Rowe.
Between the support for full 64-bit ODBC interfaces, Debian packages, 32-bit co-installable packages for 64-bit Linux, and a much improved 5250 emulator and other features found in IBM i Access Client Solutions, we hope you agree that IBM i Access Client Solutions and the Linux Application Package are a huge upgrade from the iSeries Access for Linux product. IBM i Access Client Solutions and the Linux Application Package can be downloaded from IBM Entitled Software Support (ESS). For information on how to easily download the packages, refer to Obtaining Access Client Solutions.
- IBM i developerWorks forum
- How to get Access Client Solutions
- Access Client Solutions Migration Made Easy
- For more information on IBM Access Client Solutions, read iAccess Unleashed or visit the IBM i Access Client Solutions home page.
- For more information on IBM i Access Client Solutions application packages, read IBM i Access Client Solutions: What are these application packages?