|
Short OrderUser Reference GuideHigh Performance Sort Utility for Wang/VS Computers |
Eighth Edition, September 1999
© Copyright, Utility Systems, Inc., 1988-1999. All rights reserved. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into any language in any form by any means without the written permission of Utility Systems, Inc.
Short Order is a registered trademark of Utility Systems, Inc.
Use of Short Order is restricted to those specifically licensed by Utility Systems, Inc. That license contains restrictions relating to the copying and use of the Short Order software and related documentation.
![]()
The best way to test Short Order is simply to load it on your VS, and then run your daily reports, applications, month-end processing, etc. as you normally would. Notice right away how much faster your biggest reports and DP jobs run. The bigger and more sort-intensive the job, the more dramatic your timesavings will be.
A second, more subtle improvement you may notice after installing Short Order is an improvement in general system performance, especially at peak processing times. Short Order uses significantly less CPU time and Disk I/O as it delivers better performance, leaving more system resources available for other competing system tasks.
Short Order version 3.0 is Y2K compliant; it has no Y2K-specific dependencies. However, many of the applications that use Short Order, and the data that Short Order manipulates, are Y2K sensitive. This sensitivity is due to the use of two digits to represent the year portion of dates. It is now easier to make applications Y2K compliant by the use of Short Orders sliding window technique for processing dates. This sliding window algorithm treats two digits years greater than 50 as dates in the 20th century, and years less than 50 as dates in the 21st century.
While the handling of these situations may seem arbitrary, our philosophy is that these problems are typically presented to an operator who has no idea how to examine a record in memory, much less decide if it should be selected, bypassed or whatever. Short Order provides an installation option, which removes the choices and forces program abort, removing the opportunity for operator error.
Invalid Numeric Selection Keys The two programs handle this problem in basically the same way. A getparm called RECORD is issued to allow the user to select or reject the record manually. Short Order identifies the record number in addition to identifying the file. Wang Sort gives the main memory address of the record. Short Order provides a PF16 abort, which we believe, should be the only choice. Short Order provides an installation option, which removes the choices and forces program abort, removing the opportunity for operator error.
Underestimated Record Count When tape input is specified, the number of records contained in the file must be supplied. Both sort programs use this number to allocate the resources necessary to perform the sort. If the specified number or records proves to be low, Wang Sort will stop and offer the option of continuing to read the files so as to determine the actual number of records, and the restart itself with the revised count.
Short Order will continue the sort without interruption. An additional workfile and associated tables are allocated to increase the sort capacity. As required, more workfiles are opened to handle severely underestimated sort files until either memory or open file count limitations make it impossible to continue. Each successive extension increases previous capacity by 25%. After the fifth additional workfile is opened, the compound effect is that the sort capacity is more than 300% of the original specification.
Return Codes The return codes from Short Order are the same as those found in the Wang Sort documentation, where applicable. Where no corresponding value can be found, code 20 "Unexpected Program Check" is used. We feel that using and expected value will cause fewer problems for linking programs and procedures than assigning new values. Another consideration is that Wang will probably assign new values in future versions that might conflict with our assignments. The return codes are explained in Chapter 5.
| The primary key is not unique and a duplicate primary has been encountered. | |
| The sort key type is numeric and does not collate in the same sequence as DMS indexed file keys. | |
| The sort key type is C and an alternate collating sequence is used. |
The table contains 256 hexadecimal values, which represent the alternate collating values of the 256 possible characters in each position of a character field. Individual bytes in the table may be changed. For example, if a space is to collate greater than all other characters, a value of XFF might be inserted into table position X20 (the ASCII value for a space).
If Short Order is being run as an interactive task, the table modifications can be made directly on the screen. However, for production-invoked runs, the getparm KEYWORDS should be used to modify the table.
There are 16 keywords, each of which are used to specify 16 alternate collating characters. The keyword names contain the range of 16 ASCII character values represented by that table entry. The value specified for keyword HEX40#4F represents the alternate collating values for the ASCII characters with the values from X40to X4F. The keyword values are specified as four substrings of eight hexadecimal digits separated by a space. To enter the value from a procedure, the entire 35-character value must be specified. For the above example, changing space (ASCII X20) to collate highest (XFF), the procedure statement would be as follows:
ENTER TABLE HEX20#2F="FF212223 24252627 28292A2B 2C2D2E2F"
1
The Y2K data type behaves exactly as the data type C (character) except that, if the first character is a number, it is sorted as follows: 5, 6, 7, 8, 9, 0, 1, 2, 3, 4.As there are no collating during a COPY operation, this getparm is not issued.
| PRNAME | KEYWORDS | LENGTH |
TYPE |
DEFAULT | PERMITTED VALUES |
| OPTIONS | FUNCTION MEMORY ADDROUT KEYOUT STABLE REFORMAT FILES ALTSEQ |
5 4 3 3 3 3 1 6 |
AN INT AN AN AN AN NUM AN |
SORT AUTO NO NO NO NO 2 NONE |
SORT,
MERGE, COPY AUTO, MIN, MAX, or integer YES or NO YES or NO YES or NO YES or NO 2 5 ASCII, EBCDIC, UPPER TABLE, or NONE |
| TABLE | HEX00#0F HEX10#1F
HEXF0#FF |
35 35
35 |
AN AN
AN |
00100203
040506070 8090A0B 0C0D0E0F 10111213 14151617 18191A1B 1C1D1E1F
F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF |
|
| INPUT | FILE LIBRARY VOLUME SHARED SELECT MOREFILE DEVICE FILESEQ RECORDS |
8 8 6 3 3 3 4 4 8 |
AN AN AN AN AN AN AN INT INT |
INLIB INVOL NO NO NO DISK 1 1000 |
YES or NO YES or NO YES or NO DISK or TAPE 1 9999 1 99999999 |
| LOCK | LOCK TIMEOUT BYPASS |
3 3 3 |
AN INT AN |
YES 10 NO |
YES or NO 1 999 or NO YES or NO |
| SELECT | FLDPOSn LENGTHn FLDTYPn TSTRELn VALUEn CONECTn (1 <= n <= 32) |
4 4 1 2 18 3 |
INT INT AN AN AN AN |
C
|
>0,
<= record size 1 16 C, B, P, D, L, Z, Y EQ,NE,GT,LT,GE,LE Literal or field position AND or OR |
| PRNAME | KEYWORDS | LENGTH |
TYPE |
DEFAULT | PERMITTED VALUES |
| SELECT2 SELECT3 SELECT4 SELECT5 SELECT6 SELECT7 SELECT8 |
Same as SELECT1 except n varies from 5 to 8. Same as SELECT1 except n varies from 9 to 12.. Same as SELECT1
except n varies from 13 to 16. Same as SELECT1 except
n varies from 17 to 20. Same as SELECT1 except
n varies from 21 to 24. Same as SELECT1 except
n varies from 25 to 28. Same as SELECT1 except
n varies from 29 to 32. |
Issued
when CONECT4 is not spaces. Issued when CONECT8 is not spaces Issuee when CONECT12 is not spaces. Issued when CONECT16 is not spaces. Issued when CONECT20 is not spaces Issued when CONECT24 is not spaces. Issued when CONECT28 is not spaces. |
|||
| KEYS | KEYS POSTn LENGTHn TYPEn ORDERn (1 <= n <= 8) |
1 4 3 1 1 |
INT INT INT AN AN |
1
C A |
1
8 1 record size Depends on TYPEn C, U, B, D, F, L, P, Z, Y A or D |
| FORMAT | LENGTH PAD INPOSn LENGTHn OUTPOSn (1 <= n <= 10) |
4 2 4 4 4 |
INT AN INT INT INT |
1max
for output FILEORG Single char or 2 digit hex 1 record size Within input record Within output record |
|
| OUTPUT | FILE LIBRARY VOLUME FILEORG DPACK IPACK RECSIZE RECTYPE REPLACE COMPRESS DEVICE FILESEQ |
8 8 6 1 3 3 5 1 3 3 4 4 |
AN AN AN AN INT INT INT AN AN AN AN INT |
OUTLIB OUTVOL C 100 100 From input From input NO From input DISK 1 |
C, I, or R 1 100 1 100 1-max for output FILEORG F or V YES or NO YES or NO DISK or TAPE 1 - 9999 |
| FILEKEY | KEYPOSn KEYSIZn
DUPSOKn (01 <= n <= 16) |
4 3
3 |
INT INT
AN |
YES |
1
record size or blank 1 256 (blank if KEYPOSn is blank) YES or NO |