Start a Conversation

This post is more than 5 years old

Solved!

Go to Solution

626

May 21st, 2009 09:00

Only getting default buffering from Performance Essential non-VSAM (XIO)

I'm posting this for general customer benefit and information related to service request number 29784717.

The customer presented with a scenario in which his batch job was only getting 5 buffers for non-VSAM data sets even though PSP was invoked.

*****************************************************************
N O N - V S A M S T A T I S T I C S V3R1 (M00)
A PROPRIETARY SOFTWARE PRODUCT OF EMC CORPORATION

JOB: SBOD0051 STEP: JSTEP040 PSTP: PGM: IDCAMS
SYSID: XA01 USERID: STCZEKE JOBCLASS:P
05/20/2009 00:12:45
POST-DFP 2.1 IMPLICIT NOSMF
NOSTATONLY DDTHLD=100 BUFSP=DFLT
BUFNO=15 MINBUFNO=15 MAXBUFNO=DFLT
NSRADJ%=DFLT FREEBUF NOWTOBUF


OFILE / AID01.SBO.ACCTDIST.BKUP.G0011V00
OFLGS: 03000048 OPTCD: 00 STORCLAS= N/A SRVCLASS=N/A
OPTIONS: BUFF24 DDTHLD=100 BUFSP=DFLT
BUFNO=15 MINBUFNO=15 MAXBUFNO=DFLT


ACTIVATE BY: CONTROL REPOSITORY RECORD SVCLVL: N/A
+PSBOD0051.*.*.IDCAMS.*

OPTIMAL #BUFRS USED: 5 BUFSIZE: 32760
CURRENT #EXCPS: 555040

In bold / italics, you can see that the customer is buff24 (below the 16mb line), requesting 15 buffers (and a minimum 15 ); they are getting 5.

The culprit is here:
//SBOD0051 JOB (D752,D1-SBO-DC),'...',CLASS=P,MSGCLASS=M,
// REGION=0M
//*

The batch job is running with region=0m, requesting essentially all the below the line storage. PSP cannot / will not add buffers in a situation in which it would bankrupt the available storage.

The customer subsequently tested and found that when approaching REGION=16M, the same thing happened, only 5 buffers. This makes sense because PSP once again tries to bow out when adding buffers could potentially abend the job. Once relayed to the customer, he indicated the following questions:

We tried with 32M region and also got the 5 buffers. We are going to look at the BUFF31 and run some tests .... you indicated that they would run or S0C4 .... is it safe to assume that if they run once the same job should always be OK??

Is this based on the program being executed?? ie IDCAMS should always be good??

Right off hand I am not sure where the 15 buffers is coming from ... any thoughts??

any guideline on what a good default would be??

I shall now conjure up a Performance Essential subject matter expert to address these questions. We have one right here on the EMC Mainframe Forum and no doubt other customers would benefit from this discussion. Stay tuned.

Dave Yates
EMC TSE3
"Il Moderator Benevolo"
Benevolent Host S/W & Mainframe Forum Moderator

24 Posts

May 21st, 2009 10:00

First the amount of storage available below the 16Mb line will differ from LPAR to LPAR, depending on the products and databases on the LPAR. Once storage has been reserved for a program by coding region= on either the jobcard or execute card, PSP assumes that that storage will be used and it is off limits for use as buffers. This prevents PSP from causing 'out of storage' conditions. So if PSP is told to buffer datasets below the 16Mb line and then all of the storage below the line is reserved for the program; PSP has no storage to allocate.

Accessing buffers above the line is program dependent. The program will either be able to access buffers when they are placed above the 16Mb line or the program will take an 0C4 abend. In an assembler program, the DCBE parameter RMODE31=BUFF informs QSAM that buffers will be above the 16Mb line. Changing this parameter requires a re-assembly, so support/nosupport will not change from one run to another. Subtasks should also be tested as the main program might support buffers above the 16Mb line and a subtask might not.

When considering IBM utilities, older levels may not support buffers above the 16Mb line when newer levels might. So any IBM utility that does not currently support buffers above the line now might do so in the future.

I also do not know where 15 buffers came from. PSP will calculate the number of buffers needed based on the size of the dataset and how it is opened (read/ write/update). Setting specific buffer values causes jobs to run slower than they would if PSP calculated the number of buffers. Also customers must do more work; because they must continually update the buffer specifications. I would recommend letting PSP calculate the number of buffers for each dataset. However, when jobs which use large numbers of datasets and it is observed that later opened datasets are getting few buffers, it can be beneficial to restrict the number of buffers earlier opened datasets receive in order to reserve the storage for buffers for the later opened datasets.
No Events found!

Top