Blogs

You gotta get GIT - change management for RPGLE via the IFS

  • Posted on: 4 June 2015
  • By: NickLitten
git off that code you slack jawed larkey whistle box

Thanks to Mr Aaron Bartell (of Krengel Technologies) for this excellent article on using GIT for controlling source code changes on IBM i.

I've been doing this for a while on source code for PROJEX4i and have kept meening to write a little blog about it. Aaron's article nicely touches on the high level concepts of GIT, it's ease of use and nice documentation techniques. Perhaps I will follow this up with another blog talking about GITHUB and it's lovely windows GUI for GIT'ting things

<Article originally published via itjungle.com on 2/10/15>

In a previous article, we learned about Ruby methods and encapsulation. During the various exercises there were many code changes made and we didn't really have a simple way to keep track of how the code changed from one version to the next. That's where source change management (SCM) tools like git come into play and is what we will be diving into with this article.

Display, View, Debug IBM i Data Queues

  • Posted on: 20 May 2015
  • By: NickLitten

Data Queues are a common object type in many applications on IBM i Systems: They offer an easy way to queue up data to be read and processed. Easy to load, easy to read and an easy way to handle sequential data. The only thing that I really dont like about them is the tricky way you have to poke around in them to look at their contents. But, I found this neat article on that highlights some new IBM i *API's that change to the old way that data quees are handled... we can now retrieve data queue entries without removing them. Yay!

This allows us to peek at Data Queue contents without upseting programs that are processing the queue itself...

 

In the past month or so, I've received two requests related to accessing data queue (*DTAQ) information. The first request concerned finding out how many messages were currently on a *DTAQ and how long the oldest message had been on the queue. These questions, to me anyway, suggest a management application to periodically poll *DTAQs and determine whether they are backlogged and in need of additional readers to be started and/or are stuck for some reason, for instance an outstanding inquiry message.

 

AS400 Client Access is dead - long live IBM i Access and BETA software!

  • Posted on: 4 May 2015
  • By: NickLitten
beta iseries emulator

Ask any AS400 programmer, iSeries Developer or IBM i Nerd and they will all tell you that good old "Client Access" is a pain in the arse!

Client Access was introduced back in the hazy 1990s on the old AS400 for DOS Computers, it was marginly revamped for the launch of the iSeries some years later. Premillenium saw Client Access being focussed more on Windows computers and now a decade later, it's finally being totally rewritten for the modern world of IBM i systems and connecting from any platform you like -- "Yes" its all written in JAVA so we will finally have a mobile solution to connecting to our IBM i Server from anywhere at anytime.

I've been running the technology preview for the last 6 months and overall am very impressed.

It's pretty solid and the main 5250 green-screen emulator is a big improvement over the old green screen emulator.

IBM i Error Message of the day - CEE3201

  • Posted on: 15 April 2015
  • By: NickLitten

Yesterday, I wrote a little SQLRPGLE web-service program to retrieve Picking details from System21 Warehousing. Days like this I really enjoy my job. Writing new programs in RPG is just plain good old fashioned fun. It ran perfectly with the handful of test data that I had to play with. But today I am testing it and after signing into the Infor S21 ERP and generating some pick notes, I find that when I have a hundred or so pick lists. Call the webservice and the program is timing out with an unusual error message: IBM i Exception code CEE3201.

I've never seen CEE3201 before and it has a generic error code that proclaims Exception recursion detected.    

sqlrpgle webservice error

Message . . . . :   Exception recursion detected.                            

Cause . . . . . :   An unhandled exception occurred in an exception handler. 

Recovery  . . . :   Do not let an exception that occurs in your exception handler go unhandled.

Is it only me that smiles when an error message that says "Exception recursion detected" has a solution description that says "do not let an exception recursion happen" LOL

Start Stop System21 Background Jobs (WHSE, GL, IN, OE - BACK3)

  • Posted on: 14 April 2015
  • By: NickLitten
L1017 Infor start stop application background jobs.png

This is just a memory jogger for me and while I was typing this in my notes I realized that someone else may have asked the same question: "How do I see the status of the System 21 (JBA/GEAC/INFOR) background jobs to see what is running?"

I feverishly search the interweb superhighway and apart from some mystical mumbo-jumbo from ten years ago on an old ASCII bulletin board nothing came to light. Luckily, during a meeting today one of my clients propellor heads told me the infor program that does the magic. The simple answer is "L1017 is the program that shows the status ofall the system21 background jobs and allows you to start and stop them"

Nice.

So, we can either goto menu /L1S (or L1SUS if American) in both the green screen and Infor Client or simply call the program from the command line:

s21 background

It's easy to upgrade AS400 RPG/400 to modern web-enabled IBM i RPGLE... Honest!

  • Posted on: 11 April 2015
  • By: NickLitten
upgrade old source code to modern style doesnt have to be tricky

RPG Code Modernization made simple

or a tale of taking old crusty gray haired legacy RPG and making it modern rich and vibrant -- or is that over playing it too much? ;)

The more I play with the latest version of IBM's programming language 'RPG' the more I like it. It's a quantum leap from the old RPG column based style of the 1990's and the latest version of RPGLE is free format, readable and easy to code. It's moved away from the old clunky keyboard terminals of pre-internet days and has all the bells and whistles of any modern language coded using modern IDE's. The trouble with RPG is it's astounding success during the 90's and the billions of lines of code written globally that are still running in today.

If it's not broke -- dont fix it!

This is the problem. How do we sell the benefits of a rich modern programming language when the old program is simply running, with no errors for years and possibly decades?

The simple solution to this is to keep the same program! Wouldnt it be nice if there was a way to automatically modernize the program source code so that it was upgraded to the latest version but still functioned exactly the same and was able to be maintained in the same legacy way. Wouldnt it be nice if there was a utility that would take any System36 RPG2, any System38 RPG3, any AS400 RPG400 or any version of column based RPG and convert to modern easily maintained RPGLE program code?

How to fix VPN problem after Win8.1 update? It's the same as Windows10 just use Compatibility Wizard

  • Posted on: 10 February 2015
  • By: NickLitten
absolutely nothing to do with VPN or Windows... but DAMN its a sexy motorcycle

Bloody VPN is giving me a headache!

Microsoft released an update to Win8.1 this week -- which has screwed my Cisco VPN connection. Again. I thought it was only my Win10 laptop that was hating Cisco VPN but I think there is a developer on the Windows team that hates Cisco... lets call him "Henry". Well, Henry is a little bugger because he likes to screw with VPN compatibility, tinker with required MTU settings and basically shaft us poor windows users who have multiple VPN connections. Luckily I have found a fairly solid way of fixing these problems over the last couple of months.

Compatibility Wizard setting to WIN7 generally does the trick, but I always recommend re-installing the software first because (a) it will ensure you are running the latest version and (b) will make sure the software registry is all setup correctly. So lets get to it...

(1) Reinstall the VPN software

Cisco Anyconnect

Cisco Legacy Client (5.0.7)

Beer Fridge/400

  • Posted on: 21 January 2015
  • By: NickLitten
my personal iseries cider fridge

IBM AS400 eServer and I-SERIES whirring error free for the last ten years.

Seriously, my two machines have been running fairly continously except when they have been loaded into moving trucks to migrate around the country chasing their nomadic nerd owner (aka Me) . Bloody good machines. But now that these old machines can only run upto IBM i Version 5.4 I'm considering sunsetting them in favour of using a new IBM Power Server.

Sadly IBM's corporate pricing structure is purely focussed on B2B sales. Poor consumers like me are stuck with IBM refusing to sell small machines to students and/or little independent programmers like me, this basically means that I have to choose between spending $5000+ on a computer or on a new motorcycle :)

Maybe I just gotta stick with a ten year old operating system and admire my black boxes, supporting a beer fridge and homeserver.

Upgrade Drupal 6 to 7 - Part3 Migrate ubercart from Drupal6 to Drupal 7 in simple steps

  • Posted on: 17 January 2015
  • By: NickLitten
drupal is druapl is drooopulululuu

(follow on article from http://www.nicklitten.com/blog/upgrade-drupal-6-7-part2-setup-drupal-7-w...)

Lets review what we have done: We have cleaned up the old Drupal 6 website to make it as minimal, clean and fully functional as possible. It's just housekeeping and a good thing. We have installed an empty Drupal 7 content management system in a new webserver (or in our case a subdomain of the original server) and we have installed the ubercart and migrate modules to the new Drupal 7 site.

#3 - Migrate from Dupal 6-7 in easy steps

So, we are ready to get it done.

Turn on Ubercart and setup the basic store info and prepare the PRODUCT content type (so that we have a content type to import into)

Turn on Migrate modules:

enable migrate modules

and as this the third blog for the day, I think it's time to stop typing and record a screen-cast of the import actually working.

Fingers crossed and lets do this:

Upgrade Drupal 6 to 7 - Part2 Setup Drupal 7 website empty and ready to receive

  • Posted on: 17 January 2015
  • By: NickLitten
lets do some drupal tweaking

(follow on article from http://www.nicklitten.com/blog/upgrade-drupal-6-7-part1-using-migrate-an...)

We are not focussed on a running an upgrde here, instead we are going to create a clean Drupal7 website and import (or migrate) the contect into it.

#2 - Setup a Drupal 7 installation for a Drupal6 upgrade

So, we have the original Drupal6 website now running in a clean state, with old crap purged and unnecessary modules uninstalled and deleted. You mileage may vary but my websites look something like this:

drum website in drupal6

and the new install of Drupal 7 -- I set this up in a subdomain on the new server. It uses it's own database, is seperated into a drupal7.drumstheword.com subdomain and is just good old plain vanilla Drupal 7:

Pages