System Management archives - The iSeries Blog

The iSeries Blog:

System management

Dec 19 2008   11:27AM GMT

System i vendor hands out development awards



Posted by: Mark Fontecchio
System management, Humor, System i software

Aldon, a configuration management software company for System i users, has announced awards in two categories: one for a developer that averted a potential catastrophe, and another for best project turn-around.

The winner in the first category, for most frightening development nightmare, went to Brad Abernathy, a senior developer for Sunbelt Rentals. In a previous position, Abernathy was a developer for a major manufacturer of bedding and towels and a colleague was working on a shipping application project. The developer started a bug when he created a logical file right on top of the production machine. The bug turned product orders for two or three towel bundles into two or three million orders. Due to a lack of quality check, the systems nearly broke down and the company had to pay a lot of workers a lot of overtime to get it fixed.

The next category was for most remarkable project turnaround. That award went to Manoj Dhamu, a senior programming analyst with DST Health Solutions. He was working on business application that handled member enrollment, claim processing and claim billing for managed care organizations. But they realized a glitch that would require them to manually run other custom programs every time they rebuilt a file. Using the Aldon software, the company was able to incorporate a bunch of important external code into the development cycle.

Dec 3 2008   10:25AM GMT

New IBM System i change management software



Posted by: Mark Fontecchio
System management, System i software

Last week IBM announced Rational Team Concert for i, a bunch of systems management software geared toward the System i platform. Available electronically the day before Thanksgiving, the software is available for a free 60-day trial.

According to the announcement letter, the software “allows teams to simplify, automate, and govern application development on IBM i.” Some details:

  • Includes source control, change management, build, process management and governance
  • Integration with IBM Rational Developer for i
  • Support for source control, change management and builds of RPG and COBOL
  • Support for application development using RPG, Java and EGL
  • Supports IBM i native Library file system and integrated file system (IFS)
  • Build agent which runs on the IBM i operating system, running IBM i commands and call programs

Hat tip to Alex Woodie for the heads-up.


Nov 24 2008   2:19PM GMT

Performance tuning the AS/400: Fault rates and pools



Posted by: Leah Rosin
System management, Operating systems

A recently published tip on performance tuning the AS/400 was created to respond to Search400.com reader feedback. Raymond Johnson answered a series of questions submitted by a reader, and since publication, the reader has provided a few more questions that Johnson has kindly answered.

The article is fantastic, to say the least. Our system has fault rates in the hundreds and page rates in the thousands. I assume that this indicates that the system is thrashing and it is spending more time moving data in and out of storage than it does processing it. Is that true? When the high page and faulting rates were brought up, it was mentioned that high fault rates are not a big contributor to poor performance, and so are no longer a concern as much as they had been in the past. Is that true? It makes sense to me when the system spends more time moving data around than it does processing the data, then of course, the response time will take a hit.

Is there anything you can share about the comment that high fault rates are not as big a concern now as they were in the past?

Ray responded with an explanation of thrashing and page faulting on the AS/400:

Because the answer to the questions was not really straight forwarded, I have tried to share a little insight about thrashing and page faulting.

High faulting rates can mean thrashing and poor performance. It can also mean that some new task has just started running and none of the code or data was in memory and had to be moved from disk to memory. It can also be “normal”for the particular system, time period and workload.

Thrashing typically occurs on a system when batch and interactive work share the same memory pool. Interactive work typically processes a small amount of information and then sends a response back to the user and then waits for a response. The key point here being that the interactive job has completed a small task and is waiting for the user. On the other hand, batch gets control of the CPU and is processing a file that can be millions of records long. A typical batch process doesn’t relinquish control of the CPU until it is forced to by a parameter called “time slice end.”

What can happen is that a batch program pulls hundreds or thousands of records into memory, starts to process the data, and then hits time slice end. Next, several interactive jobs with higher priority all get to run. These interactive jobs essentially flush memory so the data that the batch job was using has been completely paged out of system memory by the work of the interactive jobs. When the batch job gets the CPU back, it starts loading memory all over again, only to be kicked out at time slice end by more interactive jobs that have a higher priority. Repeat this cycle and this is what I call thrashing. If a batch job shares memory with other batch jobs or similar work, the thrashing typically does not occur or occurs much less frequently.

I recommend that you look at the WRKSYSSTS screen when the system is busy and everyone is happy (i.e. no complaints about a slow system). Press F5 and F10 several times and take a few screen shots. This should be your baseline of good performance. Next, observe the WRKSYSSTS screen when many users are complaining of poor performance. Now you have some real information to work with. Hopefully what you see now will make sense. I think of the WRKSYSSTS screen as the system dashboard. With this information you can start to analyze system performance.

An additional metric that I didn’t really address was the ratio of DB page faults to DB pages and the ratio of non-DB page faults to non-DB pages. At first glance, I would say that if the number of “pages” is at least a factor of 10 larger than the number of “page faults,” this could be normal.

The age old answer of “it depends” comes into play here. As the system performs more work, the value of the parameter “pages” increases. This is a very good indicator of the amount of data being read from disk to supply transactions with the requested data. Big numbers in the Pages column is a good indication.

Regarding the question: When the high page and faulting rates were brought up, it was mentioned that high fault rates are not a big contributor to poor performance, and so are no longer a concern as much as they had been in the past. Is that true?

Hopefully you now know the answer, however I did want to emphasize one point – generally high faulting rates (high being a relative number) are a big contributor to poor performance. The only reason that high faulting rates are not as big of a concern now as they were in the past is that fast machines with lots of brute force can hide horrible performance. New machines have faster disks, faster IOP/IOA’s, faster CPU’s and often more memory. Because of the reduced cost of hardware performance it appears to me that system performance tuning has become a lost art. Both commercial software programs and technicians with knowledge of performance can dramatically improve system performance in some situations with no additional hardware. However both software and human resources generally are more expensive than more hardware.

Because every machine is truly unique, and every workload and number of users at any given time is also unique, only you can observe what constitutes good performance on your system.

The reader then asked a follow-up question regarding pool data:

When I enter the WRKSBSD command for a particular subsystem, I enter an option #5 for that subsystem to display its parameters. Then I enter option #2 for pool definitions. That screen lists the POOL ID, STORAGE SIZE, and ACTIVITY LEVEL.

Then I enter a WRKSHRPOOL command. That screen lists POOL as the left column, but also has a POOL ID column. I need to find out: What is the relationship of the POOL and POOL ID columns on the WRKSHRPOOL command, to the POOL ID column on the WRKSBSD POOL DEFINITION screen? Does the POOL ID columns on the WRKSBSD display referring to the POOL ID column on the WRKSHRPOOL command?

I believe what I need to figure out is:

  1. The size of each pool.
  2. Whether that size can be automatically changed or always stays the same.
  3. What subsystems use each pool. In other words, I need to see each pool and what subsystems [and therefore jobs], feed into that pool.

I would think that if I get the total of the DEFINED SIZE column on the WRKSHRPOOL command, it would equal the MAIN STORAGE SIZE amount. On my screen, it does not. In fact, there is a difference of 2433 M. Is that difference normal? Or does the difference represent memory we have physically installed, but not used for anything?

Thank you very much for all of your time in this matter. I realize that faster processors, memory, and disk, hide performance issues. But, if the performance issues were addressed, we would really see throughput increase without additional hardware expense

Ray’s briefly explained how to understand pool numbers on the AS/400:
Pool numbers are one of the most confusing issues when dealing with memory on i. I have added a few notes in his questions and a couple of screen shots. This can get pretty deep pretty quickly for an email. See the two screen shots below. Looking at them together usually helps put the pieces together.

In the WRKSYSSTS screen shot note that the “Sys Pool” numbers 1 – 5. System Pool numbers 3 and greater are assigned arbitrarily when the system IPL’s by which subsystem starts first. Note on the second screen shot of WRKSBS screen that you see the subsystem pools 1-10.

Performance tuning on AS/400 screenshot

Performance tuning on AS/400 pool data

QINTER and QSPOOL come defined with the OS. Separating batch and interactive is a manual process.

Rule #1 of tuning – all subsystems should have System Pool #2 defined for the first subsystem pool since that is where the “task dispatcher” runs by definition (you can’t change it). Nothing gets done until the task dispatcher dispatches the work.

So you always want pool 1 and 2 to be running well. If they are not running well, no one is running well.

A different reader submitted this question regarding non-DB faults more than 10:

I was interested in the section regarding non-DB faults will all be less than 10.0. Our system regularly see the a much higher figure. Following on from the explanation given later in the article is the only fix for this adding more memory or is it a case that there could be a problem with the way an application has been coded.

Ray explained a quick fix and expands on page faulting rates and what they mean:

The quickest way (not the only way) to fix is to add memory. I believe I that I discussed moving memory from other pools and changing the Max active value later in the same article. Adjusting these numbers can often improve performance. Caveat - if the System Value QPFRADJ is turned on, all of the changes you just made will be unmade when the Performance tuner deems necessary.

However we need to first backup and ask – are you experiencing performance issues. A page faulting rate above 10 may provide superb performance for your machine. It all depends on the CPU speed, the amount of memory, the speed of disk access, the workload, and often the network connections.

On my small (P05) system performance starts to slow down when my page faulting rates go above 10. This is a guideline that has worked well for me as a good starting point when analyzing system performance.


Sep 18 2008   6:39AM GMT

Some System i product news



Posted by: Mark Fontecchio
Databases, System management, Operating systems, System i printing, System i software

This is courtesy of the Four Hundred Stuff report from IT Jungle:


Aug 7 2008   7:51AM GMT

System i news roundup - 8/7/08



Posted by: Mark Fontecchio
System management, Operating systems, Humor


Jun 5 2008   10:52AM GMT

Necessity leads to iSeries Watchdog development



Posted by: Leah Rosin
Open Source, System management, iSeries software

Necessity is the mother of invention. And so, many System i shops will find themselves inventing new applications to perform necessary business functions. This practice is not limited to end-users, but includes vendors using the AS400 to develop applications and provide support for businesses running i. First Option Inc. is one such shop. In “spare time,” the company developed a java-based monitoring application that collects key health indicators of an AS400. Released in April 2008, the iSeries Watchdog application’s evolution and development story is shared here in a Q&A with First Option president, Paul Fuller.

Could you describe the specific circumstances of the internal problem that your company was having that led to the development of the Watchdog program?

We have service level agreements (SLAs) that require our iSeries box to be up 24 x 7 x 365, and we need to ensure that if there is a problem we address it immediately. There are financial penalties if we do not resolve problems in a specific period of time. Prior to Watchdog, the systems were checked manually. This presented two problems: 1) Operators were involved in the manual checking rather than other billable activities — resulting in reduced revenue. 2) The manual method was not scalable (i.e., more boxes mean more people). We looked at the existing packages on the market and they were too expensive. We had a very basic need and we did not want to purchase additional products in order to make the monitoring software run. We are a software development shop, so why not build it ourselves!

Why Java? Was this the immediate solution, or did it just happen to work well? Did you consider other options?

Java was the immediate solution for the front end interface. We had in-house expertise and it is platform independent. Using Java also allowed us to work with open source tools. We had not worked with Java Persistence API (JPA), Spring or LDAP on the iSeries but had been reading a lot about them in the Trades. Since we are a Java/RPG shop, we wanted to try out some new technologies and frameworks. So, this was a perfect opportunity to solve an internal need and further develop our consulting skill set.

For the back end, the programs that gather key health indicators are RPG service programs. In terms of data access, we let the iSeries do what it does best, crunch data. Additionally, the type of information we needed to gather was iSeries-specific so it did not make a lot of sense to use Java because it was already tied to the platform.

How long did it take to develop the Watchdog program?

We started in November 2007 of last year. The application was developed on nights and weekends so we did not finish it until March 2008. Had we been working on it full-time, it probably would have taken a couple of months.

What problems did you encounter along the way? (Were there work-arounds or problems that you had to deal with?)

We did have a few problems. We wanted to use a tool to generate JPA entities from SQL tables. The tool needed to run on the latest version of Eclipse so we had to abandon WebSphere development studio client (WDSC) and go with Eclipse in order to use the tool. We also used the IBM Interrogated application server released in January of 2008. There was not a lot of documentation and/or knowledge regarding this product. So, we had to engage IBM in order to resolve some of these problems. The LDAP web based interface was not available on WebSphere 6.1 so we had to find an alternate tool to create schemas and enter test data.

There are similar products available — why didn’t you invest in one of the competitor’s products instead of spending the time and energy developing your own?

There are definitely some very good products on the market that have some of the same functionality. As I mentioned above, we thought the products were too expensive and did not like the front end. The interface to the user was either green screen or a very difficult to read dashboard. Also, you had to purchase the software that had a traditional price based model — the larger the model and processing group, the more expensive the software. We would have had to purchase software maintenance in addition to the upfront cost. Some of the products also required purchasing additional third-party products in order from them to work.

What size company is Watchdog preferable for?

We are providing this software as a service (SaaS). We will establish a secured connection to the customer, install a client on their iSeries which will gather the monitoring data and configure the alert system as well as provide the Web Services to send the data to a First Option Inc. server. We charge a monthly fee that includes rental of the client software and the graphical front end. The rental fee is not based on the iSeries model or processor group and you do not have to buy software maintenance.

We think this will appeal to small- to medium-sized businesses that require a solid monitoring system for a price that makes business sense. We can also bundle a remote monitoring service that will respond and resolve problems on the iSeries. This allows small- to medium-sized businesses to focus on their core business not running a System Operations Group.

I started in the software development business writing code on a S36. The most overwhelming change over the past 20 years is the number of options available to develop and deploy software. From the creation of the development environment to the deployment of the application on a production server, there are a number of products to install and integrate. It’s easy to get lost in the technology and lose focus on the business need. It is extremely important to engage an experienced development team who understands that the requirement is always a superior software product to support your business need.


Jan 9 2008   8:38PM GMT

System i system management: Where to start?



Posted by: Mark Fontecchio
System management

IBM often touts System i as an easy-to-manage platform, and for good reason. But still, IT gets more complex, and complexity can breed chaos without some level of control.

MC Press Online, which just recently redesigned its site, has a good article about systems management of System i. The article is by Andy Kowalsky, a senior product manager at Vision Solutions, so those of you who aren’t crazy about Vision’s customer service may take it with a grain of salt. Still, the article goes into a significant amount of detail on System i systems management, and it’s worth a look. Here’s an overview from the article:

The value of optimization and tighter management of System i is clear, but where should you begin? Start with the tasks that will deliver the utmost impact, with the least effort. This article examines the following five areas that typically provide the greatest benefits:

  • Compression
  • Physical file reorganization
  • QSYS and IFS object clean-up
  • Logical file optimization
  • Data, CPU, and I/O usage monitoring


Oct 11 2007   9:41AM GMT

Database automation software boasts minimal configuration



Posted by: Adam Trujillo
Databases, System management, System i software

In a recent conversation with software provider GridApp about the release of the latest version of GridApp’s flagship database automation software, Clarity 4.0, CEO Rob Gardos and Chief Scientist Matthew Zito described their product as “out-of-the-box.” But does anyone really believe that there is such thing as a true out of the box tool? As the briefing went on, it became clear that GridApp is getting closer to such a deployment with their online model-based best practices configuration.

Essentially, admins must create profiles (models) of their existing configuration and when Clarity runs, it lets you know what isn’t set up correctly according to their online best practices support, which you can then correct. And that’s it. Your database management is automated. Of course, I’m simplifying, but the point remains that although System i admins do not need to create and maintain any new scripts (thus, the out-of-the-box tagline), they still need to do some system modification.

Gardos and Zito said that Clarity is for organization that need to manage a minimum of 50 databases and that the product is intended for a enterprise-level organizations. But they point out that it’s not uncommon and it doesn’t take long for businesses to reach the 1000 database threshold.Clarity is cross-platform software, meaning that it can be used on Windows, Linux, Solaris, System i, pretty much anything. There are a few systems that aren’t yet fully functional, though. Support for zLinux isnt’ ready . . . yet.

If you use Clarity or any other database automation software, we’d like to know about it. You can always post comments to this blog or send me an email. We’d be interested to know your experience with automation or any other systems management tools and strategies.


Oct 10 2007   8:46AM GMT

IBM continues to target SMBs, this time with Rational and Tivoli



Posted by: Mark Fontecchio
System management, System i software

Big Blue wants its smaller companies to have (and pay for) the same tools that it offers to its larger companies, so it recently announced new Rational and Tivoli software for SMBs.

There have been past attempts by IBM to do this sort of thing, but the major complaint was that the smaller version of the software was just a watered-down version of the original with fewer features and less pop. More appealing would be a version that catered specifically to the needs of the smaller market. IBM says the new software does that, but that remains to be seen.

IBM has built a special site just to sell this small-market software, which includes development and management software that has room to grow as a small business grows.


Aug 15 2007   3:02PM GMT

iSeries user accountability help from Search400.com reader



Posted by: Adam Trujillo
Security – alerts – compliance, System management

After reading Establishing user accountability in AS400, the iSeries security expert response from Carol Woodbury, one reader sent us this comment to round out her answer. Thanks, Tom!


Especially with QSECOFR, it’s difficult to guarantee full accountability. Whatever QSECOFR can put in place, QSECOFR can remove. There are potential items that can help though.

For interactive work, for example, a routing program might intercept the job and prompt for an individual’s identification. This might consist of a user/password prompt that could be tested against actual user/password via perhaps the Get Profile Handle (QSYGETPH) API, followed by Release Profile Handle (QSYRLSPH) API if successful.

The routing program might continue by setting job logging levels or various audit attributes before transferring control to QSYS/QCMD (or your own request-processing program). Before transferring control, it might send scope messages to ensure that end-of-job logging also occurred or set condition handlers for similar purposes.

None of that *guarantees* anything. But it can help when an auditor asks what’s been done.