How to find the Tech Refresh Level on IBM i (iSeries, os400, AS400 etc)

I’ve just updated my blog about how to find the OS/400 version you have installed on IBM iSeries to also cover how to find the tech refresh level on IBM iSeries (os400).  This was prompted by a comment left on the blog. We do love to hear back from you and have often found that comments lead us to write new articles covering what you are looking for. So if there’s an IT topic or problem you’d like to see discussed do please get in touch or leave a comment below.

How can I see what is trending in the iPhone Twitter App?

It’s often useful to keep an eye on what’s trending on Twitter but in the latest versions of the iPhone Twitter App it’s not immediately obvious where to find what’s trending.

It’s actually really simple when you know.

How to see whats trending in the Twitter App.

At the top of your timeline screen just under where is says Home you’ll see 3 little dots. This is an iPhone App standard way to say that there’s more to see if you swipe left. The trick is to swipe left as shown by the arrow on one of the tweets not on the header itself.

Once you’ve swiped left you’ll see the ‘What’s Trending’ screen:

iPhone Twitter App - What's Trending Screen

You can then click on one of the hashtags to see what people are saying or return to your hime page by swiping right or just press the timelines button.

How to delete or change DB/2 SQL Stored Procedures with duplicate/same name.

Using DB/2 for IBM i (aka IBM AS/400 or iSeries) I was trying to drop a stored procedure using the command

DROP PROCEDURE TEST/TEST_FTP;

But was getting a message

Message: [SQL0476] Routine TEST_FTP in TEST not unique. Cause . . . . . : Function or procedure TEST_FTP in TEST was specified, not by signature or specific name, and more than one specific instance of the routine was found. Or the procedure was used in a DESCRIBE PROCEDURE or ASSOCIATE LOCATOR statement without a schema name specified while connected to a remote system, and more than one procedure has been called with that name. Recovery . . . : Request the routine either by its specific name, or by its signature (function or procedure name with parameter types). If this is for a DESCRIBE PROCEDURE or ASSOCIATE LOCATOR statement, specify the schema name for the procedure. Try the request again.

Using Ops Navigator, to view the stored procedures I was getting an idex array error message, if I used query to query SYSRoutine in QSYS2, I could see 2 entries for this with slightly different settings in the SPECIFIC_NAME, but the ROUTINE_NAME was the same as TEST_FTP.

After some investigation I found that you could drop and specify the parameters, so I tried

DROP PROCEDURE TEST/TEST_FTP(CHAR(13));

Which successfully make the name unique and allow me to delete one, then managed to call

DROP PROCEDURE TEST/TEST_FTP;

Which then deleted the other one of the same name.

Basically in DB/2 on IBM i and I guess most other SQL databases stored procedures can have the same name as long as they have different parameters. This is essentially the same as method overloading in Java and some other languages where the method (sub routine) names signature is composed of the name part + the parameter list that is passed into it.