With Oracle announcing end of life for IBM i distributions of MySQL, I'll discuss the potential for alternatives of MySQL on the i.
Oracle has decided to no longer support MySQL on the IBM i, and I for one am very disappointed in this recent announcement. When I first heard that you could run MySQL on the IBM i, I initially thought to myself, "Why would I want to use the MySQL database when I have DB2?" In this article, I intend to tell you why you would want to and why it's such a loss that Oracle will no longer be providing IBM i binaries. I'll also explain some of the options that we have without it.
A few months ago, I attended an event in Chicago that featured some of the industry's most innovative speakers, including Alan Seiden. I used PHP on Linux awhile back and was interested in using PHP on the IBM i. I spoke with Alan about quite a few interesting topics, but the one topic we discussed that really opened up my mind was when I asked him why you would ever use MySQL on the IBM i. And he told me that you could use the MySQL storage engine as the interface to access DB2 tables. When he told me that, it really hit me! That's it! That's the reason!
You could take any existing open-source project that is using MySQL and put it on your i and make it think that it is using MySQL when it is actually using DB2. You could enable all of these open-source projects running on the i to access your existing DB2 tables, and you wouldn't have to change a lick of code!
I have been using Drupal quite extensively lately, which is an open-source Content Management System (CMS) that uses PHP with MySQL, and I am planning to utilize this on the i. And if I were to use MySQL to interface with my DB2 tables, the code would be standardized to utilize all of the database interaction. And to top it off, I could easily transfer my code to any other server with any operating system that supports PHP and MySQL and have it run.
Because I'm used to using PHP on Linux and it's been a few years since I've used it seriously, I recently decided to refresh some of my PHP skills and learn all the nuances of using PHP on the i by signing up for a course at Zend. I decided to take the Zend Server for a spin, and while perusing the forums, I found a discussion about MySQL being discontinued on the IBM i! The forum links to an official end-of-life announcement on the MySQL Web site that states the product is EOL "due to very low demand."
Low demand? That is contradictory to what I've found. When I contacted Zend, I was interested specifically in the IBM i class that was being offered. I saw only one available class listed for the year, and I asked if there was only one class because of lack of interest from the IBM i community. The gentleman I was speaking with said "definitely not" and went on to state that the IBM i community is now a large percentage of the Zend community, which was nice to hear. I'm not saying that PHP is dependent upon MySQL, but they have been tied together for quite some time, and it would have been really convenient to use it with Drupal and other open-source projects. Since my discussion with Zend, I now see that there are several IBM i classes available.
Using DB2 with PHP
MySQL is not the only database that PHP uses, and that wasn't what my original intention was when I was thinking of using PHP on the IBM i. I was simply going to use DB2. The one thing that I did like about using MySQL with my PHP code was the portability part of it. But that's not too big of a problem if you encapsulate your database calls.
Using DB2 with Drupal
MySQL is also not the only database that Drupal uses, but it is the recommended database. You could also use MariaDB, PostgreSQL, and SQLite right out of the box. Or you could use Microsoft SQL server or Oracle with an additional module.
What's nice about Drupal is the database abstraction layer, which provides functions to call your SQL queries and takes care of all the database-specific details, so it doesn't matter which database you are using. And because Drupal is so flexible and it's open-source, you can create modules to provide DB2 access from Drupal. I found a nice article on the IBM Web site that shows you the steps to do that using IBM DB2 Express-C and you can view that by clicking here. It's from 2006, but the concepts should be equivalent.
Just Another Roadblock
The thing that really bothers me about this is that RPG programmers have been struggling with GUI solutions on the i for a very long time, and there always seemed to be indecisiveness and complexity at every turn. We finally get a simple solution that as easy to install as a PTF and Oracle decides to pull the plug on the standard that has been accepted by almost every open-source solution that uses a database.
I am an open-source advocate, and I am considering getting involved in promoting the DB2 installation option for the install of Drupal. Because we already have so much to consume when implementing all of these new technologies, it is really desirable to just click on the DB2 database option during the install. And I was really impressed with the ease of installation for the Zend Server on the IBM i. When the Zend Server installation was completed, there was a single green-screen window that said something like "Would you like to install MySQL? Yes or No". With one press of the Enter key, MySQL and the GUI administration tool were installed on my IBM i.
But when I think about participating in Drupal to support DB2, I realize that's only one open-source project that now works easily on the i. For any additional project that currently uses MySQL, I'd have to dive down into the low-level details and build a specialized component for DB2. When MySQL runs on the i, this isn't needed. You simply install and use it "as is."
MySQL is open source, so perhaps IBM or Zend will provide an easy solution to installing MySQL on the IBM i.
Oracle and Android
While I'm on an Oracle Rant, what about Android? Supposedly, Java was made open source, so why is Oracle suing Google for Android copyright infringements on Java? And why did the Apache Software Foundation leave the Java Executive Committee? Way to go, Oracle! You're taking reputable tools that have been created by years of dedicated work from developers who believed in what they were making and giving it a bad name. Nice job. I want to express my sympathies to all the contributors to these supreme projects who have to watch this happening.
Not Throwing in the Towel
This article is an expression of my current frustration toward Oracle, but I am by no means throwing in the towel. What Oracle is doing right now is extremely frustrating, considering the impact it has on the standardization of open-source projects and their ease of use on the IBM i. But I guess that would have been too easy. IBMers and the open-source community are a persistent breed, and we'll find the way. Perhaps the open-source community is seeing what Oracle is doing and making a movement toward alternatives; I've already seen recommendations that Drupal begin replacing MySQL with MariaDB.
The Strength of Open Source
The fact of the matter is that MySQL is Open Source. So, there is nothing stopping you or I or IBM or Zend from creating the binaries for the i. So, with that in mind you can feel confident in your decision to start using Open Source in your software development and know that ridiculous decisions, such as this one by Oracle, will not disrupt your plans.
I believe this to be an opportune moment for IBM or Zend to show their commitment in this pursuit and help the IBM i programming community by providing these utilities for us in an easy-to-use format that matches the installation processes that we are already accustomed to.
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7,