Navigation Bar

Big IAM Advert

System Managed Buffering

System Managed Buffering (SMB) for VSAM datasets was introduced with DFSMS version 1.4 for KSDS files. This was enhanced with DFSMS 1.5 to include all VSAM files. Basically, the system decides how many buffers to use for data and index portions, and also whether to use direct or sequential buffering. SMB is usually better than the VSAM defaults, but not as good as third party buffering tools. This is because it is only invoked at file open time, whereas third party products will adjust the VSAM buffers as required over time.

SMB is only defined for extended format VSAM files, which restricts it to files which are SMS managed, and to files which use NSR buffering. The ACB MACRF must be NSR. Other MACRF parameters RST(ACB reset option), VBF(USER buffering), ICI(Improved Control Interval processing), GSR(Global Shared Resources) LSR(Local Shared Resources), RLS(Record Level Sharing), and AIX(Alternate Index), are not supported. Most of these options are pretty obscure and rarely seen anyway. RLS and AIX are common.

There are two ways to invoke SMB

  • via an SMS dataclass. The dataclass must be defined as
     EXTENDED        	REC ACC 
     ADDRESSABILITY  	BIAS    
     -----(27)-----  	-(39)-- 
     YES			SYSTEM  
    
  • Via JCL, using
      //ddname  DD DSN=vsam.cluster.name,AMP=('ACCBIAS=SYSTEM'),DISP=SHR
    

Anything specified in the JCL will override the DataClass.

Other possible values for ACCBIAS are

  • SO - sequential optimisation
  • SW - reserve most buffers for sequential processing, but keep a few back for direct (i.e. for the index)
  • DO - direct optimisation
  • DW - reserve most buffers for direct processing, but retain a few for sequential processing
  • USER - do not invoke SMB

You may see a couple of other options quoted, CO (create optimised) and CR (create recovery). These are selected by the system, and cannot be specified manually. Three other 'AMP' JCL options are available to control how SMB uses storage. SMBVSP restricts the overall size of the buffers, SMBHWT will reserve hyperspace buffers, and SMBDFR can delay buffer writes until end-of-job, or until the buffer is full, whichever comes soonest. You specify the lot in an AMP statement as

  AMP=('ACCBIAS=SYSTEM','SMBVSP=50M','SMBHWT=30','SMBDFR=Y')

These are just example numbers, you need to decide what is best for you. SMSVSP is nnK or nnM, SMBHWT is 0-99 and SMBDFR is Y or N

You can specify the SMB buffer processing as SO/SW/DO/DW as above, or simply use SYSTEM and let the system pick it out. It decides this based on the access method. SMB will use NSR buffers, unless DO is specified. It then changes the buffering internally to LSR. However, if SMB cannot get enough LSR buffers, it will change the buffering to DW.

The pecking order which decides if SMB will be invoked is JCL specifications, then the data class Record_Access_Bias parameter, then the MACRF values. That is, whatever is specified in the JCL will always take preference.

back to top


                           VENDOR SHOWCASE

Copyright © Lascon Storage Ltd. 2000 to present date. By entering and using this site, you accept the conditions and limitations of use