Unallocation end processing

Normally JES2 or JES3 schedules all sysout data sets from a job for printing or punching when all the system-managed data sets are processed at the end of the job.

Spinning data sets

Sysout data sets can be scheduled for printing or punching when the data set is closed before the job completes execution. Code:
  
   //ddname  DD  SYSOUT=class,FREE=CLOSE  

These data sets are called spin data sets.

If the step continues processing after the close, the sysout data set may be printed concurrently with the last of the step's execution.

Use of spinning

Use FREE=CLOSE to let JES begin printing or punching a sysout data set before a long job step is finished.

Example
  
//STEP1 EXEC PGM=VERYLONG  
//SHORT DD   SYSOUT=C,FREE=CLOSE  

To make a sysout data set available for printing immediately, code SPIN=UNALLOC on the sysout DD statement, and dynamically unallocate the data set. Dynamic unallocation can be explicit or through FREE=CLOSE.