This post is more than 5 years old
154 Posts
0
626
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
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
Lehlia
24 Posts
0
May 21st, 2009 10:00
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.