MQ 710 supports active logs of 4GB when you archive directly to tape, but only 3GB when archiving to disk - because the access method to read from disk only supports 3GB.
I though this would be trivial to set up - wow how wrong this was!
3GB is 3 * 1024 MB = 3072 MB = 3221225472 bytes
I used the following IDCAMS input
DEFINE CLUSTER -
(NAME (SCENDATA.MQPA.LOGCOPY2.DS02SUN) -
SHAREOPTIONS(2 3) -
This looks pretty simple - what can go wrong?
I issued LISTCAT ENT('SCENDATA.MQPA.LOGCOPY1.DS02SUN') ALLOC and got
Although I specified a size in megabytes the allocation was done in cylinders.
I did a quick check. 3GB = 3221225472. This is different to 3221913600. So not what I expected.
The documentation for DEFINE CLUSTER says
The amount of space in cylinders, kilobytes, megabytes, records, or tracks allocated to the cluster from the volume's available space. A kilobyte or megabyte allocation resolves to either tracks or cylinders; record allocation resolves to tracks.
So what happened was
- How many Cylinders is 3GB ? 3221225472/(4096 bytes per page * 12 pages per track * 15 tracks per cylinder) = 4369.066666667
- IDCAMS now rounds this up to 4370 - not 4369.
- 4370 Cylinders is 4370 * 4096 * 12 * 15 bytes
- This is 3221913600 which matches the IDCAMS report
So how do you allocate a 3 GB log? You cannot - you allocate just under 3GB (2.99995GB).
- Specify 4369 cylinders
- Convert this to MB (4369 * 12 * 15 * 4096)/(1024* 1024) = 3071.953125 - so specify Megabytes(3071) not Megabytes(3072)
- 3GB is TRACKS(65536) = 4369.0666 cyl. So specify TRACKS(65535)
- 3GB is 786432 4KB pages. This is 65536 tracks. As the allocation was in records this should have allocated the correct number of tracks - but no, it allocated 4370 Cylinders. I had to allocate
RECORD(786420) not RECORD(786432) to get 4369 Cylinders
So not as easy a task as I thought. For your home work - work out how big you need to allocate a 4GB log, so it is less than or equal to 4GB is (hint 4GB is 5825.4222 Cylinder).