FastSort Manual

Sorting in Parallel
FastSort Manual429834-003
6-21
Parallel Sorting From COBOL85 Programs
*------------------------------------------------------------
* Specify the number of subsort processes.
*------------------------------------------------------------
MOVE "SUBSORT-COUNT" TO VALUE-PARAM.
ENTER "COBOL85^SET^SORT^PARAM^VALUE"
USING SORT-FILE,
VALUE-PARAM, NUMBER-OF-SUBSORTS
GIVING RETURN-CODE.
IF RETURN-CODE NOT = 0
PERFORM ERROR-RETURN
END-IF.
*------------------------------------------------------------
* Specify the number of input records to sort.
*------------------------------------------------------------
MOVE "IN-FILE-COUNT" TO VALUE-PARAM.
ENTER "COBOL85^SET^SORT^PARAM^VALUE"
USING SORT-FILE,
VALUE-PARAM, INPUT-RECORDS
GIVING RETURN-CODE.
IF RETURN-CODE NOT = 0
PERFORM ERROR-RETURN
END-IF.
*------------------------------------------------------------
* Specify a scratch file for each subsort process.
*------------------------------------------------------------
MOVE "SCRATCH-FILE" TO VALUE-PARAM.
ENTER "COBOL85^SET^SORT^PARAM^TEXT"
USING SORT-FILE,
VALUE-PARAM, SCRATCH-FILE-1, 1
GIVING RETURN-CODE.
IF RETURN-CODE NOT = 0
PERFORM ERROR-RETURN
END-IF.
ENTER "COBOL85^SET^SORT^PARAM^TEXT"
USING SORT-FILE,
VALUE-PARAM, SCRATCH-FILE-2, 2
GIVING RETURN-CODE.
IF RETURN-CODE NOT = 0
PERFORM ERROR-RETURN
END-IF.
*------------------------------------------------------------
* Execute the sort run.
*------------------------------------------------------------
SORT SORT-FILE ON ASCENDING KEY SORT-CODE OF SORT-RECORD
INPUT PROCEDURE INPUT-SECTION
OUTPUT PROCEDURE OUTPUT-SECTION.
*------------------------------------------------------------
* Display any FastSort error codes.
*------------------------------------------------------------
ERROR-RETURN SECTION.
ERR-RTN.
DISPLAY "Error-Return Code is: " RETURN-CODE.
STOP RUN.
*------------------------------------------------------------
* Generate the input file. (Note: An actual program would
* get input records from an existing file or a process.)
*------------------------------------------------------------
INPUT-SECTION SECTION.
INPUT-ROUTINE.
DISPLAY "Input sort procedure entered...".
PERFORM INPUT-RECORDS TIMES
ADD 1 TO WS-RECORD-NO
SUBTRACT 1 FROM WS-CODE-NBR
RELEASE SORT-RECORD FROM WS-ORDR-CODE
END-PERFORM.
DISPLAY "Input sort records created: " INPUT-RECORDS.
Example 6-2. COBOL85 Example of a Parallel Sort Run (page 2 of 3)