We regularly turn to the IBM i (SQL) services that Scott Forstie’s team at IBM has been delivering. We love using them to get specific jobs done faster!
What’s not to love? SQL is a universal interface, based on IBM i’s revered crown jewel, Db2 for i. Code once, use many times from every conceivable kind of technology—on the box and off. Brilliant!
We first wrote about IBM i Services in 2017, when we recommended using one to find your server’s TR level. Since then, Scott’s team has gifted us with hundreds more IBM i services, which you’ll find nicely organized on this web page or as a graphical poster.
If you have yet to discover the efficiency of these gems, consider their many uses.
- You can use them from traditional RPG and COBOL programs.
- You can use them from popular open source languages such as PHP, Python, and Node, without needing to write and maintain a special toolkit for each language. As co-developer of the PHP for IBM i Toolkit, I can attest to the work, compromises, and gray hair involved in writing special code for each language.
- Access them via ODBC interfaces—the new ODBC driver on IBM i as well as ODBC drivers on Linux, Windows, and Mac.
- Use them for graphical representation of data with new languages (to IBM i) such as R that focus on data. When Stephanie Rabbani needed to demonstrate R’s data graphing capabilities at the LUG meeting, she turned to an IBM i service (a job status service) . . . because it was that easy. She fed some SQL into R’s ggplot component, and in 4 lines of code, generated this:She didn’t have to run complex programs or commands, then manipulate the data into a special format. “R” understands SQL and ODBC, so Steph had only to feed the SQL to the R ggplot component to generate this quick graph.
- Programmatically access data that would have been impossible before. Example: NETSTAT. This command is normally run interactively to check on TCP/IP network activity on the system. Before, we couldn’t monitor this activity from a program. Now, we access it via the relevant SQL-based services.
- “Rescue me!” Last year, a spool file listing program written by one of our customers started failing. We don’t know why it stopped working, but it used the PHP toolkit’s spool file lister that employed the IBM i List API programs asynchronously.
Faced with a complex rewrite task, we decided to first try an output queue service. It worked on the first try! We shed tears of joy that day.
- Train new IBM i practitioners in the ways of IBM i. Our traditional ways often seem obscure to them. SQL provides an interface that everyone knows, taking IBM i out of obscurity and into the light.
- Build your own services. IBM can’t create every conceivable tool itself. We, as users, can create our own services that wrap around IBM programs, customer programs, and other functionality. Our imagination is the only limit!
- Brag a bit. IBM i Services are cool! Even non-IBM i IT pros are impressed when they hear about IBM i services. While the IBM i community sometimes feels as if we lag the rest of the world, here we are ahead of the pack!
Kudos to IBM and Scott Forstie’s team for continuing to release these gems. At the risk of sounding greedy, we say, “More, please!”