IBM i services comprise a collection of DB2 and SQL objects that provide a wealth of system information. The GROUP_PTF_INFO view, for example, will display an IBM i’s Technology Refresh (TR) level to the user who runs this SQL:
SELECT CURRENT SERVER CONCAT ' is running ' CONCAT PTF_GROUP_TARGET_RELEASE
CONCAT ' with TR level: ' CONCAT PTF_GROUP_LEVEL AS TR_LEVEL
FROM QSYS2.GROUP_PTF_INFO WHERE PTF_GROUP_DESCRIPTION = 'TECHNOLOGY REFRESH'
AND PTF_GROUP_STATUS = 'INSTALLED' ORDER BY PTF_GROUP_TARGET_RELEASE DESC
FETCH FIRST 1 ROWS ONLY
When run on my server, the result was a single column, TR_LEVEL, with the value:
SEIDENI is running V7R2M0 with TR level: 3
Time for me to upgrade, yes?
Here is my original post with older techniques:
I recently needed to know if a client’s IBM i 7.1 system had Technology Refresh 4 (TR4). If it did, I could use the relatively new INSERT with remote SUBSELECT technique, which allows a single SQL statement to copy DB2 data from one partition to another. Such are the benefits of keeping current with Technology Refreshes.
After reading an article on TRs by Steve Will, I decided to document how to determine which TRs are installed on an IBM i system.
TRs, which were introduced with IBM i 7.1, are packaged as Program Temporary Fixes (PTFs). They can be found with the DSPPTF command.
First, determine the product number of the licensed internal code of your system. For 7.1, the product number is 5770999.
Then use the DSPPTF command followed by this product number. For example:
DSPPTF 5770999
When run on my test system, this command produced a list of PTFs that included MF99007, MF99006, MF99005, MF99004, MF99003, MF99002, and MF99001.
Because Technology Refresh PTF numbers follow the format MF99nnn, where nnn is the TR number (bolded above), I knew that TR7, TR6, TR5, TR4, TR3, TR2, and TR1 were available. I was pleased to learn I could use TR4’s enhancements to DB2.
Zend Framework 2 performance optimization: it works
/0 Comments/in IBM i, iSeries, Performance, PHP, System i /by Alan SeidenZend Framework 2 (ZF2) provides optimization techniques that are often overlooked by published performance tests. One excellent source for such techniques is a presentation by Gary Hockin. I was thrilled when my client and friend King Harrison IV of K3S began testing the effect of these techniques on his ZF2 application running on IBM i.
King’s initial tests produced a 600ms reduction in load time, obtaining respectable performance for his database-heavy application. He plans to update his blog post with further speed improvements as he implements them.
Read King Harrison IV’s blog post about ZF2 performance improvements.
Save your fingers when using PHP-CLI
/1 Comment/in IBM i, iSeries, PHP, RSI, System i /by Alan SeidenIn Batch PHP I showed how to call PHP from a command line. For example, with Zend Server 6 or 7 on IBM i, one would launch a PASE command line using the command CALL QP2TERM, or launch QShell using QSH, then type a command such as this:
For those of us who use PHP-CLI often, the above command can be a finger-buster. Let’s shorten the path by creating a symbolic link:
I created the symbolic link in /usr/bin, a directory that is likely to be in any user’s path.
Now try the shortened command:
To test the shortcut without a PHP script, use the -v switch, which requests version information (‘v’ for version) about your PHP installation.
The above command will return version information that starts out something like this:
By creating a symbolic link to the PHP-CLI binary, practitioners of PHP can speed their work while saving their fingers.
For more about symbolic links, see my article Link up with QShell.
Zendcon 2014 promo video for IBM i users
/0 Comments/in db2, Events, IBM i, iSeries, PHP, PHP toolkit for IBM i, System i /by Alan SeidenAbout Zendcon:
Find the Technology Refresh (TR) level of an IBM i
/8 Comments/in db2, IBM i, iSeries, System i /by Alan SeidenIBM i services comprise a collection of DB2 and SQL objects that provide a wealth of system information. The GROUP_PTF_INFO view, for example, will display an IBM i’s Technology Refresh (TR) level to the user who runs this SQL:
When run on my server, the result was a single column, TR_LEVEL, with the value:
Time for me to upgrade, yes?
Here is my original post with older techniques:
I recently needed to know if a client’s IBM i 7.1 system had Technology Refresh 4 (TR4). If it did, I could use the relatively new INSERT with remote SUBSELECT technique, which allows a single SQL statement to copy DB2 data from one partition to another. Such are the benefits of keeping current with Technology Refreshes.
After reading an article on TRs by Steve Will, I decided to document how to determine which TRs are installed on an IBM i system.
TRs, which were introduced with IBM i 7.1, are packaged as Program Temporary Fixes (PTFs). They can be found with the DSPPTF command.
First, determine the product number of the licensed internal code of your system. For 7.1, the product number is 5770999.
Then use the DSPPTF command followed by this product number. For example:
When run on my test system, this command produced a list of PTFs that included MF99007, MF99006, MF99005, MF99004, MF99003, MF99002, and MF99001.
Because Technology Refresh PTF numbers follow the format MF99nnn, where nnn is the TR number (bolded above), I knew that TR7, TR6, TR5, TR4, TR3, TR2, and TR1 were available. I was pleased to learn I could use TR4’s enhancements to DB2.
ZendCon+Tutorial discount expires Aug. 31
/1 Comment/in db2, Events, IBM i, iSeries, PHP, PHP toolkit for IBM i, System i /by Alan SeidenZendCon, the premier PHP conference, October 27-30, 2014, in Santa Clara, California, has a discount expiring August
1531 (extended!). When you register, be sure to include the tutorial day (Oct. 27). If you already registered but forgot to add the tutorial day, you can contact the organizers via a link at the bottom of the registration page. Among other half-day tutorials, I’ll be presenting two focused on IBM i:—Mike Meszaros, Software Developer, Specialty Pipe & Tube
My co-presenter for tutorials will be IBM’s Tony Cairns, who helped bring PHP to the IBM i in the first place. He also created XMLSERVICE (toolkit back-end) and is a maintainer of ibm_db2 on the IBM i. One reason Tony comes to ZendCon is to hear from attendees such as yourselves. Normally he stays locked up in his lab. Take advantage of this opportunity to meet him. Watch Tony and me argue and debate in front of the class!
I’m also presenting a session during the regular conference about the PHP Toolkit for IBM i. I’ve updated my presentation with new features of the toolkit and best practices for calling RPG and COBOL.
ZendCon‘s topics are generally advanced ones to enable professional, enterprise-ready development practices. There’s also an IBM i track and plenty of networking time so that IBM i users of PHP can learn from speakers and each other, making the conference appropriate for intermediate users of PHP on IBM i as well.
Hope to see you there, October 27-30, 2014! Remember to register for tutorial day when you register for the conference. Get in touch with questions you’d like answered during my presentations.
See you at COMMON, May 4-7, 2014
/0 Comments/in db2, Events, IBM i, iSeries, PHP, PHP toolkit for IBM i, System i /by Alan SeidenHope you enjoy these four videos (plus an outtake) I made with fellow speakers Dawn May and Charles Guarino to promote this year’s COMMON conference to be held in Orlando, Florida, from May 4-7, 2014, with optional pre-conference workshops May 3. I’ll be speaking about PHP and performance on IBM i. http://www.common.org/index.php/annualmeeting.html
IBM i safe from OpenSSL Heartbleed bug
/4 Comments/in IBM i, iSeries, System i /by Alan SeidenClients have asked me whether their IBM i servers may be vulnerable to hackers due to the widely publicized OpenSSL Heartbleed bug.
The answer is no. IBM i is safe from this bug, which is present only in specific OpenSSL versions: 1.0.1 through 1.0.1f (inclusive). IBM i’s latest version of OpenSSL, shipped with the “Portable Utilities for i” licensed program product 5733SC1, is 0.9.8, which does not contain the bug.
To make doubly certain, check what version of OpenSSL is installed on your IBM i. Run these two commands, which, respectively, start a PASE interactive terminal session and check the openssl version:
call qp2term
openssl version
For me, the above commands returned “OpenSSL 0.9.8m 25 Feb 2010,” confirming that I’m not affected.
Press F3 afterward to leave the PASE environment.
Thanks to Jim Oberholtzer of Agile Technology Architects for his contribution to this answer.
UPDATE from IBM: System SSL and IBMJSSE2 are also safe from the vulnerability on IBM i.
Performance Tweet chat Monday, online workshop Thursday
/0 Comments/in Apache, db2, Events, IBM i, iSeries, Performance, PHP, PHP toolkit for IBM i, System i, Web development /by Alan SeidenJoin me for two events this week sponsored by COMMON, a Users Group:
Details on online workshop: http://www.common.org/index.php/webinars.html
PHP Performance on IBM i: Tuesday, Dec. 10 (limited-time discount)
/0 Comments/in Announcements, Apache, db2, Events, IBM i, iSeries, JavaScript, Open Source, Performance, PHP, PHP toolkit for IBM i, System i, Web development /by Alan SeidenUpdate: a recording of this class is available at http://iprodeveloper.com/let-your-php-apps-fly-ibm-i-high-performance-php-demand
————-
This Tuesday, learn how to Let Your PHP applications fly on IBM i. Busy? You can attend while getting your work done, with three one-hour class segments separated by breaks.
You’ll learn to quickly improve your application’s performance, including:
I’ll be there to answer your questions. What’s more, the presentation will be archived for 60 days so you can review the material afterward.
What: PHP on IBM i performance eLearning event
When: Tuesday, December 10, 2013: three one-hour segments with two one-hour breaks, starting 11AM and ending 4PM (ET).
Where: Online
Cost: $150 (but discounted to $99 through Friday, Dec. 6)
Details and registration: http://iprodeveloper.com/let-your-php-apps-fly-ibm-i-high-performance-php
High-performance PHP on IBM i this Tuesday (July 30, 2013)
/1 Comment/in Apache, db2, Events, IBM i, Performance, PHP, PHP toolkit for IBM i, System i, Web development /by Alan SeidenFor the first time, I’m teaching how to Let Your PHP applications fly on IBM i, including how to configure Zend Server for performance, diagnose bottlenecks, leverage unique IBM i performance tools, optimize DB2 and the IBM i toolkit, and improve performance of front-end javascript, style sheets, and the like. You’ll come away with knowledge that you can use immediately to improve your application’s performance.
I’ll be there to answer your questions. What’s more, the presentation will be archived for 60 days so you can review the material afterward.
What: PHP on IBM i performance eLearning event
When: Tuesday, July 30, 2013: three one-hour segments with two one-hour breaks, starting 11AM and ending 4PM (ET).
Where: Online
Cost: $150 (group registrations available)
Details and registration: http://iprodeveloper.com/let-your-php-apps-fly-ibm-i-high-performance-php
Questions: Get in touch with Alan
Other upcoming events from Alan:
August 22, 2013: At NESTU (user group in Fairfield, N.J.): “At ease! Relax your neck-back-shoulders at the keyboard”: A special presentation from Alan to help computer workers (such as all of us) avoid repetitive strain injury and stay poised at work. Fun and unusual.
September 9-11, 2013: COMMON Fall 2013 Conference and Expo in St. Louis, Missouri. The Premier IBM i event. I’m presenting 5 talks on PHP and web performance.
October 7, 2013: Full-day, in-depth PHP on IBM i Performance Workshop, 9:30-4PM (PT) at ZendCon (the PHP conference). Register for both parts of this tutorial (room 6) for Oct. 7, and the full conference, which goes till Oct. 10, in Santa Clara, California. I’m presenting several talks on PHP for IBM i in addition to the full-day performance tutorial.
Alan’s event page: https://www.seidengroup.com/presentations/upcoming/