How to Resolve Yum Command FTP Errors on IBM i

While installing packages from IBM’s original open source repository, ibm, users may encounter errors, including:

  • [​Errno 12] Timeout on: ftp://public.dhe.ibm.com/software/ibmi/products/pase/rpms/repo/repodata/repomd.xml: (28, ‘Connection time-out’) Trying other mirror. Error: Cannot retrieve repository metadata (repomd.xml) for repository: ibm. Please verify its path and try again.
  • [​Errno 14] FTP Error 451 – server did not report OK, got 451 Trying other mirror
  • [Errno 14] FTP Error 550 – Access denied: 550 Trying other mirror

Read more

Running the x86 IBM i ODBC driver on ARM Linux with Rosetta

ODBC with Db2 for IBM iI recently did some research on how to run the IBM i ODBC driver under Linux on newer macOS architecture and thought I’d share what I learned.

Over the last few years, macOS has changed from x86 (Intel) to ARM architecture. IBM has kept pace by updating its IBM i ODBC driver to support ARM on macOS as of version 1.1.0.15.

Developers who use a Linux virtual machine, however, will note that there is no ARM version of the Linux driver available yet. While an ARM-native version of the driver would be ideal, Mac users running a Linux virtual machine can run the existing x86 version of the driver using Rosetta for Linux. Read more

What’s New in Open Source on IBM i

Open source on IBM i is moving fast these days. Alan recently shared his favorite updates to IBM i open source—focusing on improved security, performance, and ease of programming—at a Summit Lunch & Learn hosted by Paul Tuohy.

Read more

curl Your RPG Apps with QSHCURL

curlIn this post we’ll take a closer look at how IBM i developers can use the QSHCURL command to easily reach out from CL or RPG and talk to internet-based services and APIs, then consume the resulting data, without a lot of extra effort.

First we’ll provide a short curl intro, and then we’ll look at an example of how to use the PASE-based curl command with an RPG program.

Read more

Automate SFTP Transfers Using ‘expect’

IBM iA programmer asked recently how to automate their password-based SFTP transfer. How does one automate SFTP or any task that typically requires user interaction?
Read more

Tips for Fast, Reliable Open Source on IBM i

Open source continues to gain traction in IBM i shops, and for good reason. It excels at delivering new interfaces and functionality for RPG and COBOL applications, plus it broadens the talent pool for your development team.

Read more

Case-Insensitive Queries using ODBC on IBM i

ODBC with Db2 for IBM iWhen querying for character data using SQL, case matters. “A” is not equal to “a”. Even so, you might want to find all matches, whether uppercase, lowercase, or mixed case.

Read more

Encrypting IBM i ODBC Connections from Linux with TLS/SSL

ODBC with Db2 for IBM i

ODBC connections between Linux and IBM i should be encrypted to keep their Db2 data safe in transit.

To encrypt ODBC data, IBM recommends the industry-standard TLS encryption protocol (the successor to SSL).

Read more

What’s in Your ODBC Driver?

ODBC with Db2 for IBM iSince IBM announced Yum support for installing the IBM i Db2 ODBC driver, as documented in our recent tutorial, users can update their driver more easily.

To help users determine what’s changed, IBM maintains a list of fixes and enhancements for each IBM i ODBC driver release.

Read more

Continuous Integration for PHP Extensions

(Co-written with Alan Seiden)

CI/CDContinuous Integration (CI) ensures that every time a developer commits changes to a version control system such as Git, the code is automatically built and subjected to automated tests.

CI has been invaluable to us. As maintainers of PHP’s PDO_IBM and ibm_db2 extensions, we use CI to ensure high quality across platforms.

Platforms supported by PHP’s extensions for Db2 include IBM i, Unix/Linux, and Windows. While our focus is IBM i, we must ensure compatibility with the others. Reliance on manual testing would introduce the risk of broken builds or subtle bugs. Automation is a must.

In this post, we explain how we use CI principles when building and testing PHP’s Db2 extensions.

Read more