Digging Into the Latest IBM i TRs
October 23, 2019 Alex Woodie
The fall batch of Technology Refreshes (TRs) have been revealed, and as expected, there’s a bit of new functionality available for customers who use IBM i 7.3 and 7.4. In this story, we’ll tackle enhancements in open source, systems management and monitoring, and development, which means we’ll dive deeper into other areas, like database and HA/DR, in a future story.
Let’s start with the fun stuff: open source. With IBM i 7.3 TR7 and 7.4 TR1, IBM has brought support for two prominent open source projects, including ZeroMQ and Redis.
ZeroMQ is a universal messaging library that allows users to send and receive messages across various transportation mechanisms in an asynchronous manner. The software supports protocols like TCP and UDP, as well as PGM (pragmatic general multicast), inter-process communication (IPC), inter-thread communication (ITC), and WebSockets. The software has been used in production settings by companies like AT&T, Microsoft, and Spotify, and is designed to be used across several patterns, including request-reply, publish-subscribe, push-pull, and exclusive pair.
The messaging system supports dozens of languages and is available for most operating systems. On IBM i, IBM is supporting PyZMQ, the Python binding for ZeroMQ, which will allow Python-based IBM i applications work with the library.
Redis is a speedy NoSQL database that emerged as a popular key-value store for Web applications in the early 2010s, and is now playing a bigger role in various components of enterprise and Web apps. The software, development of which is managed by a company called Redis Labs, is unique in its capability to store data not just as strings, but as abstract data types, including lists and sets of strings, hash tables, geospatial coordinates, and even probabilistic data structures.
To that end, the Redis community has been expanding the data store beyond its key-value roots, and today Redis on its way to becoming a full-fledged multi-modal data store that’s able to morph into a JSON document store or a graph database as needed; it may even be able to function as a time-series database down the line. A vibrant development community adds other key capabilities, such as a geospatial extension and an Apache Spark connector. (Apache Spark, many a data engineers’ favorite tool, alas, has not yet made it into IBM i’s RPM bucket of YUM.)
Redis support dovetails with IBM’s support for open source languages like Node.js, Ruby, Python, and R, says Tim Rowe, IBM’s business architect for application development and systems management for IBM i.
“What we found with a lot of these . . . other applications that have been written, a lot of them use many different packages, with a particular language. Some of them use Redis as part of that,” he says. “So a lot of what we’re delivering are packages that are needed to complete an environment so we can have real business applications working.”
Expanded Nagios Support
System monitoring also got a boost with the delivery of a new Nagios plugin for IBM i. IBM has been working to support Nagios for some time, and now it’s partnered with Nagios (the company behind the open source project) to create a wizard that helps users with the process of adding IBM i nodes or LPARs the Nagios dashboard.
Another wizard was created to assist with the creation of custom SQL code to monitor the many IBM i SQL Services that customers may want to monitor from the Nagios dashboard. More information can be found here.
“We had plug-ins from two years ago. But this simplifies the process of adding IBM i into the Nagios console,” Rowe says. “There has been a lot of customers that use Nagios to monitor the wealth of stuff in their IT infrastructure. They can very easily add IBM i into that. Then you have a single dashboard to watch all of their IT infrastructure.”
On the system management and monitoring front, we have new features coming to Access Client Solutions (ACS), the Java-based program that’s become the standard way many users, engineers, and administrators interact with the system.
ACS gains several new features, including SQL Content Assist, which IBM says works like prompting “only better.” It also gets a couple of new buttons (for downloading results and saving as new samples), as well as a new insert from examples feature.
Green screen jockeys will be thrilled to hear about the new F8 key function with this release. In ACS’s 5250 emulator, users have long relied on the ability to scroll through recent commands by pressing the F9 button. Well, if you’ve pressed F9 one too many times, you can now press F8 to go back to the command you wanted. That eliminates the need to keep pressing F9 until you scroll back to the command you want, and could be the single best new feature with these TRs.
IBM has also added a new ACS Application Package for IBM i that supports the ODBC driver “running native as part of the PASE environment,” the company says. This feature allows ODBC access to the Db2 database from PHP, Python, and Node.js, IBM says.
On the development front, the new DATA-GEN and DATA-INTO operations in the Rational Development Studio for i (RDS) package is likely to get the attention of RPG developers.
According to the developerWorks website, the new DATA-GEN operation generates a structured document, such as JSON or CSV, from an RPG variable. The new function is seen as a way to use RPG data structures to generate data structures in XML, JSON, YAML, and HTML formats. IBM says this will help enhance programmer productivity.
The DATA-INTO operation works the other way, and allows users to convert a JSON-type file into an RPG data structure, or “shred” the JSON document into RPG, says Alison Butterill, the offering manager for IBM i. “We’ve had JSON support in database tables,” Butterill says. “But if I want to use it directly, you can get it right into an RPG data structure…and process it however you like.”
RPG also gets support for overloading with the new OVERLOAD keyword. This new function will give programmers the capability to define two or more functions with the same bit of programming, a common feature of other development languages. In RPG overloading, the program decides which procedures to call based on the parameters given.
IBM also added OPTIONS(*EXACT), which will help ensure that the called procedure receives the same value as the passed parameter. More information on these RPG enhancements can be found at the RPG Café.
There’s a lot more new stuff for IBM i 7.3 and 7.4, including enhancements to the database and HA/DR systems, which we’ll cover in a future issue of The Four Hundred.