I’m Back

(Originally posted 2005-11-11.)

One of the cardinal rules for a successful blog has been to write often. Clearly I’ve not done that for some time. Indeed I missed writing about zSeries Expo in San Francisco in September. And all I can say is that you really wouldn’t want to know about the internals of writing a Firefox extension, would you?

Well, maybe you would. 🙂

But it was (and is) a set of such small steps that reading about them here would be like watching paint dry.

So I subjected my IBM internal blog readership to that. 🙂

Seriously, the design work was incremental and required my internal users to be involved every step of the way. Hopefully, as a result, they got what they wanted – and I got the advice I needed.

I made the design decision to only support Firefox 1.5 and later. An informal poll 2 days ago (admittedly of a self-selecting group of IBMers who are committed to blogging and Firefox big-time) suggested that about 60% of Firefox users were already on 1.5 and so could use my extension. In the wild I expect the proportion would be smaller. But still those numbers vindicate my decision. And in 3 months time I expect almost nobody to still be on 1.0.x.

IRD and zAAPs

(Originally posted 2005-07-11.)

This is perhaps fairly basic for those of you who’ve read the fine print on zAAPs and IRD, but I needed to see it in someone’s data:

IRD Weight Management will feel free to vary the weight for the “Type 1” pool for a z/OS LPAR with zAAPs. But it will keep the weight the same for the “Type 2” pool – for the zAAP/IFA engines.

In other words an LPAR with z/OS and zAAPs could have two weights:

  • A varying weight for the GCPs
  • A static weight for the zAAPs

So in your code (and ours) you have to cope with the possibility of two weights.

I raise this now as I’ve just seen it in some data from one of the Washington Systems Center machines: The LPAR had an initial weight of 300 and the 10 GCPs’ weight dropped to 151. The 2 zAAPs’ weight stayed at precisely 300.

DB2 Instrumentation Changes – Documentation Updated

(Originally posted 2005-07-11.)

APAR PQ96908 accumulates updates to the DB2 for OS/390 and z/OS V7 and V8 IFCID flat files (DSNWMSGS) that occur in the last half of 2004 and the first half of 2005.

DSNWMSGS documents all the fields in each of the DB2 SMF records (and other DB2 instrumentation sources).

Personally I carry around a copy of this on my Thinkpad for reference so I think it’s time I downloaded a new copy.

Actually I also, amongst other things, refer to DSNx10.SDSNMACS and the SQL Reference for instrumentation information.

Paging Subsystem Design

(Originally posted 2005-07-05.)

Periodically on IBM-MAIN I’m caused to revisit something. With the advent of z990/z890 and “supposedly abundant” 🙂 real memory it seems to be time to revisit paging subsystem design.

You might perhaps think that in these days of zero paging you could skimp on paging subsystem design. And you’d be wrong. 😦

I’ve been following an IBM-MAIN discussion on this with interest. The discussion was about not exceeding 25% page data set busy. If you do, the received wisdom is that Auxiliary Storage Manager (ASM)’s Contiguous Slot Allocation algorithm will degrade. In this case utilisation means space rather than device utilisation (in RMF terms).

(There has been a change, which I don’t think materially affects this, round about the 1.2 timeframe, with a line item I’ll call more aggressive slot harvesting. But I don’t think that makes much difference to the argument about utilisation.)

Experiences in the not-too-distant past have caused me to think about page data set design from a different angle. I’ll call this the leave enough room to dump that large DB2/WAS address space argument. Actually, a fortiori, I’d say leave enough space to dump the whole of real storage. So that gives another Rule Of Thumb of leave free page space of about 1.5x the amount of real storage you have.

Note: Both the 25% and the 1.5x ROTs are trying to simplify probabilistic things (as always). So, you know in your shop what happens when you fail the ROT. In the former case paging performance tanks. In the latter it’s a real bad news day when that 6GB DB2 subsystem dumps. (I’ve seen the latter happen and it’s not pretty – when you don’t have the paging space to contain it.)

You don’t really have to choose which of these two considerations to follow. Go for both.

And finally… My friend Alvaro Salla (ex IBM Brazil) used to think the plural of Rule of Thumb was Rule of Thumbs. Makes sense as the plural of ROT must be ROTs. 🙂


(Originally posted 2005-06-29.)

As a relative newcomer to the world of web programming I’ve been learning javascript. The reason I chose this language is (quite apart from already knowing java/swing) there is a very useful javascript tool called GreaseMonkey.

Greasemonkey allows you to modify web pages you’re browsing. Such modifications include

  • Inserting HTML into a page.
  • Deleting parts of a page.
  • Mergins stuff from another website.

At its most basic you can essentially get rid of annoyances in web pages that you consider to be poorly designed.

Greasemonkey scripts are written in javascript.

Note: This only works for Firefox. Personally I almost exclusively use Firefox. (I really like its tabbed browsing feature and the ability to write/obtain extensions that customise your browsing experience.)

GreaseMonkey is available from http://greasemonkey.mozdev.org

Things I could write about

(Originally posted 2005-06-15.)

Yesterday we IBM “pioneer” bloggers had a conference call where we thought about enhancements to this blogging site. One that seemed to get some measure of support was the notion of a place where readers could make unsolicited comments and ask questions.

I’m just writing about things I think are interesting. I’m not sure what my readership want to hear about. So I’m going to take a risk and invite you to suggest some topics. The risk is that I look foolish 🙂 or churlish 😦 by seeming to ignore your question.

You could either do it by sending me an e-mail (martin_packer@uk.ibm.com) or commenting on this entry.

There’s no guarantee that I know the answers 🙂 but it gives you a chance to steer what I blog on a little. If I can sensibly comment on something I will. And, just so my management don’t have a fit, this isn’t a substitute for “proper” Technical Support from IBM.

And, Mum, don’t ask me what I want for my dinner. 🙂

DB2 Virtual Storage Goes Mainstream

(Originally posted 2005-06-13.)

For a number of years now we’ve been talking about the importance of DB2 Virtual Storage management. The real credit goes to John Campbell of the DB2 lab who pioneered this stuff.

We usually see DB2 Virtual Storage as an issue in 2 ways:

  • A client presents with the problem and asks for our help in resolving it.
  • We’re looking at a client’s data for some other reason and ascertain they need to look at Virtual Storage as well.

So I usually give the following Rule of Thumb: “If your DB2 Virtual Storage usage (as seen by SMF 30) exceeds 1GB, or your buffer pools exceed 512MB you probably need to pay attention to Virtual Storage.”

The main instrumentation for studying DB2 Virtual Storage is IFCID 225, produced by turning on Statistics Trace 6 and collecting SMF 102 records.

This record allows you to build a map of the DBM1 address space. (Actually it’s technically not a map but it does show the major subdivisions of memory.) We like to do a stacked bar through time (AKA “With Varying Load”). Then you can see the dynamics and work on reducing the major areas.

Today’s news is that, with APAR PQ99658 for Version 8 and (I think) Version 7, IFCID 225 is produced whenever Statistics Trace Class 1 is turned on. Which is pretty much always.

This corroborates my view that every DB2 subsystem should have it turned on all the time. It’s light and no-one has ever complained to me about turning it on.

Another change with this APAR is to drop the default value of STATIME from 30 minutes to a (rather more useful) 5 minutes. But note this means that you get more records. Yippee or ouch, depending on your perspective. I’m in the yippee camp on this one.

Finally the APAR says a cache of IFCID 225 data is kept internally so a dump can show the changes over time. Again a great help if a subsystem runs out of storage.

Learn from my mistakes – Which Engines Does IRD Vary Offline?

(Originally posted 2005-06-13.)

I’d made the assumption (in my code) that IRD would vary offline the top logical engines when it decided to vary an LPAR’s logical engine offline.

In fact that isn’t the case. I have data from a US company where it’s engines 2 and 3 (out of the range 0-11) that tend to be offline more than all the others.

In principle even Logical CP 0 can be offline. (Indeed some of the test systems in Poughkeepsie have no Logical CP 0.) Now this was a problem for us because I used the “Online Time” (SMF70ONT) for Logical CP 0 to determine the RMF interval length in STCK format. I use that to determine how much of the interval any Logical CP is online (using their SMF70ONT). In theory I could be dividing by 0. In practice I haven’t seen that.

Now APAR OA05798 documents a change in the order in which Logical CPs are varied offline. It talks about starting with CP 1, not CP 0.

But it does show how the implementation has already evolved and how wrong basic assumptions can be. 😦

Now I feel a new PMMVS chart coming on. 🙂 I have several times now plotted how much of the time each logical CP is online. This is, at this stage, of pedagogical interest. But clients do ask me to explain how IRD works. It is counter-intuitive.

UKCMG Conference

(Originally posted 2005-05-25.)

This is mostly to say a big thank you to all the customers and other consultants at UKCMG (which has just ended). It’s great to catch up with you all. And also to spend time with Don Deese and Mike Moroz.


I genuinely believe in user groups and so I’d like to encourage everyone to attend next year. And, just to be balanced, to support GSE as well – I get to go to both conferences and count myself as lucky to do so.

DB2 Accounting Trace Parallel Task Rollup – A Problem Child?

(Originally posted 2005-05-09.)

Here’s another breakage of Accounting Trace that’s been fixed:

APAR PK03905 describes a problem with DB2 Parallel Task Rollup that causes the Group Buffer Pool Accounting data for GBP 0 to be missing. (Its title talks about IFCID 148 but in the detail IFCID 3 is roped in. IFCID 3 means “Accounting Trace base record”.)