Wednesday, December 7, 2011

JCL: Unit and Volume Affinity


When two or more volumes are assigned the same device, the volumes are said to
have unit affinity within the same job step allocation. Unit affinity implies deferred
mounting for all except one of the volumes.

A related concept is volume affinity. When two or more data sets share one or more
volumes, the data sets have volume affinity.

For concatenated data sets, code the following to assign the data sets to the same
device:

//DD1 DD DSNAME=dataset1,...
// DD DSNAME=dataset2,UNIT=AFF=DD1,...
// DD DSNAME=dataset3,UNIT=AFF=DD1,...

When you use explicit unit affinity, it is recommended that you use UNIT=AFF to
reference the previous DD in the unit affinity chain, rather than the primary DD. That
is, code:

//DD1 DD DSNAME=dataset1,...
//DD2 DD DSNAME=dataset2,UNIT=AFF=DD1,...
//DD3 DD DSNAME=dataset3,UNIT=AFF=DD2,...
//DD4 DD DSNAME=dataset3,UNIT=AFF=DD3,...

rather than:

//DD1 DD DSNAME=dataset1,...
//DD2 DD DSNAME=dataset2,UNIT=AFF=DD1,...
//DD3 DD DSNAME=dataset3,UNIT=AFF=DD1,...
//DD4 DD DSNAME=dataset3,UNIT=AFF=DD1,...

Always referencing the previous DD means that, if any condition causes the system
to ignore unit affinity for one of the DDs in the chain, any subsequent DDs in the
chain will still be allocated to a single unit, rather than to different units.


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.