Primary quantity


The supplied RESIZE user exit calculates a PQTY that is equal to the REORGSPACE plus two times the SQTY.

It also includes commented code that enables you to set a maximum PQTY that could enforce individually determined limitations. The examples in the following figures demonstrate how an installation that uses 3380 and 3390 devices can ensure that the new PQTY does not exceed one volume and z/OS limitation. The examples are in Assembler and C versions of the RESIZE User Exit.

Related topic

The maximum value in the sample code accommodates the largest data set that can fit on a 3380 or 3390 device. Change the maximum value to satisfy the requirements of your site. If your site uses volumes other than 3380s and 3390s, use the maximum value for the smallest device. The examples in Assembler language example and C language example set the PQTY maximum value in 4-KB blocks. The value 159120 represents 884 cylinders times 180 4-KB blocks per cylinder.

Remove the comments to use one of the following examples to prevent the RESIZE User Exit from calculating a PQTY that is greater than one volume. Alternatively, uncomment and edit one of the examples to change the maximum value of the PQTY to a value of your choice. After modifications, assemble and link-edit the user exit.

Assembler language example

To remove the comments from the Assembler code, delete the asterisks in column 1 of lines 3 through 6.

Commented PQTY in Assembler

*                                 CODE TO SET PRIQTY MAX VALUE
*                                 180 4K BLKS PER 3380/3390 CYL
*        L     R4,=F'159120'      <= SET MAX PRIQTY EG. 884 CYL
*        CR    R15,R4             IS CALCULATED PRIQTY > MAX
*        BNH   EXIT               NO
*        LR    R15,R4             SET TO MAX
 L     R13,4(,R13)

C language example

To remove the comments from the C code, delete the /* and */ characters for the int declaration and the if statement.

Commented PQTY in C

/*int   Max_pqty = 159120;*/ /* set max priqty value, eg. 884 cyl*/

/*   if the calculated primary quantity is greater than the*/
/*   maximum value allowed for primary quantity, reset to  */
/*   the max.                                              */

/*if (Inew_pqty > Max_pqty)                                */
/*{                                                        */
/*   Inew_pqty = Max_pqty;                                 */
/*}                                                        */

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

DASD MANAGER PLUS for DB2 13.1