IBM i on Power Systems

IBM i #IBMiStepUp

i am ibm i and ibmi is who i am

I've been working with a new customer recently which means I'm once again, finding myself in the i-vangelist pulpit.  I was about to say that I'm tired of responding with "Huh? You said AS400? Do you really still have one of those old machines? I thought IBM stopped making those in the nineties..." but a little secret part of me quite enjoys the sarcastic bluster of it all, and if I'm honest - gets a kick out of it    ;)

The IBM Power System is still being referred to as either (a) an AS400, (b) the 400 or (c) an iSeries. The Dinosaur developers need to be educated and reminded that our lovely box has been through some changes in the last ... fifteen... years! Yes, it really is that long since the AS/400 was replaced with the iSeries. How can IT professionals have failed to notice that the AS/400 no longer exists?

Mr Trevor Perry has long been a proponent of the IBM i moniker and tries hard to educate the masses via his excellent blog at http://blog.angustheitchap.com/

using IBMi FIELDPROC encrypt sensitive data

padlock your data away from hackers eyes

I wrote a data encryption routine a few years ago. In my ongoing mission to refactor my old utilities, I was looking at it this weekend thinking about ways to improve it. The basic premise behind my routine is to read a row of information from a file, perform encryption of said data based on a specific 'key' and then hide the key within the encrypted data - so it can be decrypted correctly at a later date. Keeps data safe from prying eyes even if they manage to get access to the file data itself. This worked very nicely for obfuscating the source code for my Projex4i programs, but has bitten me on a few occasions when somebody has tampered with the data in the file, therefore making my encryption key incorrect. Tampered data means I have effectively lost my ability to decode it.

There must be a better way right?

There is - FIELDPROC in IBM-i v7.1

What is Field Proc?

Query Management Queries are Queer

nowt as queer as queries

So, I was emailed the following hints and tips document discussing the ubiquitous Query Management Qeuery object type on the IBM Power Server (the artist formerly known as AS400). It's useful to refer to so, here it is:

QMQRY - QUery Management Query

A SOURCE FILE FOR YOUR QUERY

The key to making a query dynamic is converting it into a form that can accept variables. The easiest way to do that is to convert your query to a Query Management Query (QMQRY). A QMQRY is simply an SQL statement stored in a source member. Once the SQL statement has been placed into a source member, you can replace hard-coded values from your original query with variables that can be replaced at execution time. If you've never worked with SQL before, you needn't worry; we will make use of an IBM command that will construct SQL statements for you.

We'll begin by creating the source file used to store your QMQRYs: QQMQRYSRC. To create this source file, use command Create Source Physical File:

CL Outfiles are like totally last year, Dude!

ibmi cross reference files

Using the internal cross reference files mean that us lowly IBMi Programmers can access heap of system information just by reading a file... the days of DSPFFD to an outfile then reading the outfile are long gone - we can just read the file field information direct from QADBIFLD instead...

There are eight cross-reference physical files, each containing a different type of information.

How to update Turnover for Windows

update turnover change management

Turnover (from Soft Landings Inc) is a pretty cool Software Change Management system running on IBMi.

Arguably its best in class and certainly my preferred SCM tool. Saying that, the old 5250 (green screen) functions are frustratingly lacking in some areas where the company has obviously decided to only focus continued development on its Windows client - Turnover for iSeries.

when does iseries become IBMi

[quote]It's not Turnover for iSeries, its Turnover for IBM-i! Would you sell a Windows package and sell it as Turnover for DOS or maybe Turnover/XP?[/quote]

But, the Windows client is based on the Eclipse IDE and its pretty neat. It's regularly updated, but you need to know how to grab the very lastest updates. So here you go.

I recorded this little screen cast with the excellent freebie JING from Techsmith but didnt record any sound... because I am huddled in a super quiet littel Dilbert cubicle and it may have awoken my fellow programmers.

The important piece is this URL - http://support.softlanding.com/t100client/2012Q2/

New IBMi iSeries AS00 Integer Found!

ARMONK, NY – IBM research labs today announced a breakthrough in the discovery of a new integer. The as-yet unnamed number has been positively located between seven and eight. Seven and eight had been thought to be consecutive for many years.

Early responses from IBM scientists indicate that there is going to be a lot of trouble caused by this discovery, and many fields are going to feel the impact. Some of the implications immediately noted include:

A whole lot of numbers we thought were odd are, in fact, even.
All those big primes on which we based all our encryption schemes are not prime at all.
What do we call an octet now?
It appears that there is no corresponding negative integer, although there are still many groups who continue to look for new integers.

Historical Note: This is the first time in more than at least 175 years (probably a lot more) that a new integer has been found. There is no indication that the Romans knew of this number, they appear to have believed, curiously enough, that VIII followed VII!

IBM has not yet named this new integer pending application for international patent rights to this number. The implications of the granting of patent rights have created quite a stir among attorneys.

Can I upgrade JBA SYSTEM21 from IBM-i v5r4 to V6 or V7?

upgrade JBA to newer version of IBMi OS

Just what is JBA anyway?

JBA Softwre Company from BirminghamThe JBA ERP system is a 30 year old Enterprise Resource Planning system running on IBMi operating system (an on the earlier i5/OS and OS400 versions). I can sense your eyebrow raising when you read "30 years", but think of it as a system that has evolved for thirty years and grown incredibly. Originally developed and distributed by UK based company JBA (from in-house developed system called Olympic and also by blending in field developed products from many client sources). The entire product line was later bought and distributed by GEAC in the USA. Following the demise of GEAC the latest and greatest version is (at the time of writing) provided and supported by Infor.

  • The older JBA/GEAC versions of System21 and all related apps will run on any system upto and including V5R4.
  • The current version of System21 is called Aurora, supplied by Infor and runs on all the latest version of IBMi (currently IBMi Version6 but Version7 is in beta so watch this space)
I think that the last version of JBA System21 was V3.5.2 and this was the basis for the new improved Infor version. From what I understand, the Infor version is a total conversion of all the old System21 OPM RPG source Code to ILE RPG and recompilation. Infor has also added lots of new web-friendly components and modernised the entire package for the new millenium.

infor system looks good

 
What OS versions will JBA run on
  • JBA System 21 will run on all versions upto and including v5.4
  • Infor Aurora will run on all version upto and including the current version.
Upgrading to V6 is as big an upgrade as the old Cisc-Risc upgrade in the mid-nineties and requires programs to have their observability included in the object description to process each object as part of the upgrade. 

What causes the 'changed outside of turnover' iSeries error message

What causes the 'changed outside of turnover' error message

I'm currently working with IBMi (iSeries) Turnover change management system. It's the best SCM (Software Change Management) application in IBMi land and has a great balance between being easy to use and very powerful.

I know the product fairly well, but it still grins and kicks me in the shins occasionally. This week I've been seeing a lot of "this program has been changed outside of turnover" warning message when checking Turnover Forms to promote code changes. But, when I use DSPOBJD to compare object differences, the only thing different is the last used and the change date. Maybe its a system authority change on the object? Or something deeper and trickier...

The trouble is... what exactly is Turnover checking when it compares the old and new objects?

I've frequently scratched my head over this so it's time to submit the following question to SOFTLANDING SUPPORT

What exactly is the cause of "program has been changed outside of turnover" messages...

IBMi External Procedures calling from *LIBL or specific library

External procedures are very tasty

Turnover (the one written by Softlandings that does Change Management, not the one that is full of apple and tastes delicious) is a pretty cool software control application native to IBMi. But of course, you already knew that. But did you know that you can promote an EXTERNAL PROCEDURE to a specific library and then have it invoke its program component from that library, or from any library that you care to define to Turnover or of course from the *LIBL?

It's all down to these basic rules:

  1. &LIBRARY is the variable that TURNOVER will replace with the name of your target library during promotion
  2. if you quote the procedure name (ie: 'program') then it must have either a hardcoded library ('QGPL/THING') or the variable ('&LIBRARY/THING)
  3. If not quotes (ie: EXTERNAL NAME THING) then *LIBL will be used to call the THING program

Example *EXTPRC using &LIBRARY VARIABLE:

CREATE PROCEDURE CHKCASACT

IBMI not AS400

they seek him here

So, as usual... today I was scratching my head with a problem that was kind of outside my realms of expertise. These realms are many, I hasten to add the ones outside are the many ones and the ones inside are rapidly diminishing with my braincells exploding in a puff of logic and old age.

Searching the esteemed searchword engine of High Lord Bing and the mighty Goddess Google I found some interesting stuff about stored procedures.... and as I sit here... late at night... deep into my second bottle of red wine... spool *hich* spellchecking this for the fifteenth time... I realise that this is not the time to type this stuff.

Besides trying t otype technical stuff while playing Facebook Poker is losing me loads of chips.

so... *cough*... its time to sideline this for tomorrow...

and... errm... I will...

New Power Option for IBM System i

New Power Option for IBM System i

 

Now you can get a single-board nuclear reactor that supplies stand-by power for the IBM System i for 12 years! The QBX-1 nuclear reactor card provides back-up power for up to 12 years. When the card senses a power failure, explosive charges (bolts) eject moderator and control rods from the reactor interior, within 20 mmsec, bringing the reactor to its fully-rated output of 20 KW, in less than one millisecond! Over its 12-year active life, the reactor’s power decreases by 25%, to 15 KW.

Integral heat fans provide convection cooling of the reactor’s 500W power dissipation while the reactor is in “stand-by” position. If your computer cannot furnish the 400 cubic feet per second of forced air for cooling, consider buying IBM’s heavy-water cooling jacket and stainless steel pump module, which fits conveniently next to your System i. Latches on each side of the reactor module let you quickly swap the radioactive core, should you need to replace it. An optional circular viewing port of lead glass lets you view the reactor’s internal assemblies, and also functions as a 10-million candlepower nightlight.

IBM Announces the new Power 995 Server

ibmi star wars

 

ibm i death istarRochester MN - The new IBM Power™ 995 server is the most powerful server ever offered by the IBM Galactic Empire. This server provides out-of-this-world performance with massive scalability. The Power 995 is by far the most remarkable technological product of the IBM Galactic Empire. It is a brutal and awesome culmination of engineering and science of a galaxy-spanning organization. With unrivaled power, it can perform an infinite loop in under 4-seconds and requires two HALT instructions to stop it.

It was designed to help enterprises, governments and empires deploy the most cost effective and flexible IT infrastructure while achieving the industry’s best application performance. As the most powerful member of the IBM Power™ Systems family, this server provides exceptional performance and massive scalability. It’s full range of complex, mission-critical applications include:

  • Large-scale transaction processing
  • Massive-scale server consolidation
  • Ultra-high bandwidth communications
  • Super-advanced data mining and warehousing
  • Small planetary systems destruction
  • At 900 km (550 miles) in diameter, the IBM Power 995 must be deployed in a low-earth orbit and requires a 12-year lead time before orders of this product become operational.

 

Equipped with ultra-high frequency IBM POWER9™ processors in up to 1000-core, multiprocessing (SMP) configurations, the Power 995 server can scale rapidly and seamlessly to address the changing needs of today’s empires. It can seamlessly consolidate millions of UNIX®, IBM i (formerly known as i5/OS®) and Linux® application workloads onto a single system.

IBMi Change Management System Review

help choosing an IBM iSeries AS400 Softare Changement Management System

IBM-I Change Management Application Review

Today's SCM systems are as much focused on productivity gains for the programmer as they are in "controlling" or managing the source and objects. Anything that can be done to make your programmers more effective and more efficient in their development process is a very worthy investment.

Software configuration management (SCM) is an umbrella term that has come to mean a wide range of automation functions for application development all SCM product features have potential benefits and other functions that may require changes to your business practice.

 

The Big Three

What follows is a listing of products that provide SCM functions for IBM-i application development.

In my opinion, the three big players are:

  • Turnover V100 - SoftLanding Systems (acquired by Unicom in 2010)
  • Aldon LMe- Aldon Computer Group (acquired by Rocket Software group in March 2011)
  • Implementor -  MKS Inc (acquired by PTC in May 2011)

These vendors are the heavy hitters in the IBM-I arena and all have Eclipse user-interface plug-ins for their solutions, which can integrate with IBM's WDSC and RD-i.

Turnover Change Management override to ignore failed LF promotion

use a parachute if you really want a soft landing

This month I've been mainly working with Turnover SCM for iSeries.

"Turnover is the premier Change Management Tool for IBMi Power Systems. The windows Client integrates nicely with RDi and WDSC Development tools and it neatly handles RPG, CL. SQL, DDS, etc etc for controlled code development for all size IBMi shops." No, I dont work for the Turnover mother company - Soft Landings - I just like the product itself. It's more comprehensive and simpler to use than its closest competitors (Aldon and PTS Implementor). IMHO of course.

Anyway, as usual, I digress. I read an interesting little hint hidden away deep in some forum. It's worth recording here so I can find it if I ever need it in the future.

If promotion of a Logical File fails to add a member the FORM will fail and go into RECOVER mode.

Zend Framework for RPG programmers

The Zend Framework is a neat thing for letting my RPG programmers brain run a little wild. Yes it's object Oriented and not (necessarily) that easy to adapt to the linear model that us old schoolers may be used to. But does that mean we can’t adopt it?robbie was an rpg programmer

"Hell No!"

- "Adapt and Survive" is the motto of all us lucky people who have grown up through the AS400 years.

2011 New Years Resolution for AS400 Security

I know these girls have nothing to do with an AS400 but... who cares?

As 2011 New Years Eve came and went I spent a long time considering what my core personal resolutions should be: Eat Less, Exercise More, Speak Less, Think More.

Obviously I have my slightly more extravagant resolutions which are bound to fail: Take up Aikido, Become a Wine Connoisseur, Learn how to write Android & iPad Apps, Climb a Pyramid, Switch from Cigarettes to Cigars, Learn how to prepare a killer Chilli.

As I think about my new Years resolutions I also ponder what resolutions I should be applying to my professional role as an ‘AS400 Techie’. So here is resolution nbumber one:

Perform a system wide AS400/IBMi Security Cleanup

All of these tasks should be performed on a frequent basis but if your shop is a little more relaxed then maybe these pointers will assist in setting up an annual New Years Security Policy. Traditionally I always find the Christmas and New Years period is an ideal time for these kind of security cleanups - just after year end processing and the system has been fully backed up. Everyone is suffering from Hangovers and too many mince pies.

So lets get onto a list of things to do:

How to delete IFS files with bad malformed files names

As part of my testing routines for the new IBMi Data Distribution commands (DSTDTA and DSTSPLF) I was creating and testing all kinds of documents in the integrated File system.  Taking any file from the good ole AS400 and converting it to TXT, PDF, XML, TIF, CSV and plopping a copy into the IFS or DLS, then sending it as a very saucy looking email to the users... It works beautifully now but "whats that got to do with malformed file names" I hear you mutter.

Well OK then.

So, while I was writing these programs I had a brain-fart and accidentally create IFS objects with completely invalid file names... its possible to actually call a file '\this\is\a\file.txt' (with slashes as part of the file name) and as you can imagine Windows Explorer just completely gets its knickers in a twist. trying to figure out what folder that is in... Not Good.

So I have this file called '\projex\test.pdf' and its stored in a folder called '/home/nlitten'
 
So lets go and do a WRKLNK to delete the file in question. No Joy. It tells me it cant delete it, because it cant find it... aaaargh!!!! 
These problems happen because your program that is creating IFS files uses a '\' when it should have used a '/' (for internal IBMi IFS operations).
 
Running a RCLSTG wont help as these files aren’t damaged they’re just named badly. Neither will attacking it from within iSeries Navigator. It just seems to be stuck there... forever... eating up some storage.
 
So how do we delete malformed IFS documents?
 

It's actually very easy 

Single Black iSeries looking for a lasting relationship with the latest IBMi operating system

sadly this is where my iseries ended up

I love programming (RPG, JAVA and CL) on the IBMi Server range... but it feels like IBM are trying to stop me. Aaaaargh!!!!

"But Nick, whats the problem old Chap?" I hear you askcome on ibm i expect better customer service

Here I am - a huge advocate of IBMi technology. I've grown up through the ranks of IBM System 3x systems and evolved alongside IBM through the AS400 years. I've excitedly played with the quiet, yet groundbreaking changes in hardware and software that came with the iSeries/eServer range of Servers. I've scratched my head slightly at the i5 branding. I've shook my head at the weirdly blurred focus on Linux. I've cheered at the Power5 Processor range and final (hopefully) name consolidation of the Power Server Hardware and IBMi software. I own 2 iSeries myself, courtesy of the internet beast known as eBay, and suspect there are not a lot of iSeries running in peoples houses just for their own amusement. 

I acquired my iSeries for developing PROJEX400 and learning new stuff which I can’t necessarily play/learn/experience when working on IBMi at client sites. I recently bought the second iSeries specifically to load IBMi 5.4 (unfortunately the iSeries Model 220 can’t run the latest v6 of IBMi).

But, three months after buying my iSeries machines, they're still sitting there trying to find anyone who can supply me with IBMi v5.4 for less than the price of preowned family car.

I am an IBMi Consultant, RPG Programmer, Web Enthusiast, Blogger and Advocate for IBM technology and business solutions. But, I am most definitely not an advocate of IBM's customer support policies. Not this morning anyway.

I'm really starting to get so pissed of IBM's derogatory view of me as an individual 'AS400 Programmer' - Yes, I really had to describe myself as that to an IBM Customer Representative on the phone because she didn’t understand when I said I was a freelance IT Consultant who wanted to buy a personal copy of IBMi Version 5.4  :/

Let me take a breath and review how I got here.

History of the IBM RPG programming language

from the r to the p to the g

when lady operators were ever so proper and more than a little but saucy

So, as an RPG* Developer I am definitely biased towards IBM's best and most versatile language. IBM RPG has evolved massively from the early Report Program Generator that it was designed to be. The latest Incarnation of RPG is a leading edge web -savvy object oriented SOA language.

Here is my personal version of how RPG has evolved:

  • 1960's(this is a decade of code evoloution): RPG was introduced but called something else. Dunno, much about this as I was only 3 years old and was busy learning to walk. Programmers started the decade wearing sharp 1950's style suits and ended it wearing tie-dyes and Greenpeace badges.
     
  • 1970's: RPG II was introduced with the System/3 series of computers. It was later used on System/32, System/34, and System/38 and then the System 36 (!), with an improved version of the language. RPG2 was a beautiful language using a logic cycle, arrays and data structures and internal file layouts. Complex, hard to master and quirky... but strangely addictive.

Pages