ISMBLD

Updated May 2015; see History

ISMBLD fspec {/switches}

ISMBLD performs fundamental file building operations for ISAM 1.x files—i.e., creating a new file, adding an index, loading data.

Parameters

fspec

is the name of file to create or process. You may specify a directory, but do not specify the file extension. The operation works on both the data (IDA) and index (IDX) files, so specifying an extension will just confuse matters. If the file does not exist, a new IDX and, if necessary, a new IDA will be created based on the ensuing prompts for file configuration details. Otherwise it will prompt for an existing IDA file to which a new IDX can be added.

For an in-depth discussion on how to use the ISMBLD switches to maximize performance, see ISAM Performance.

switches

Switch

Function

/A

Auto-Configure Index.

/B:####

Index block size. Allowable values are 512, 1024, 2048, 4096, 8192, 16384; the default value is 512. See Note.

/D

Change data device of existing file.

/F

"Fast" load. Aassumes no duplicate keys; aborts if any are present.

/L:#

Index level. Allowable values are 3 to 9, the default is 3. See Note.

/MI

Memory map index during load operation, causing possibly faster runs.

/MR

Memory map only the root of the index during load. This reduces the amount of memory required.

/N

Use non-exclusive mode.

/V

Verbose mode. Displays progress information (percentage complete) during the build and load, and the elapsed time for the load, plus messages confirming the /Mx and /F switches during the load.

/?

Writes switch listing and usage info to the screen.

 

Note: Use of these switches requires A-Shell 1122 or later; see the discussion on ISAM Performance.

See Also

ISMDMP.LIT, ISMBLD.SBX, ISMROK.SBR.

History

2015 July, A-Shell 6.1.1412:  ISMBLD.LIT 2.1(141) fixes a discrepancy between the AMOS and A-Shell behavior of the /D switch, which is used to change the IDA device. Previously, hitting ENTER to the "Enter new device name" prompt was causing an existing explicit device specification to be set to blank, meaning that the IDA is on the same device as the IDX. In contrast, the AMOS version was leaving the existing device specification alone in this case. Instead, you were expected to enter "." to remove an existing device specification. While the A-Shell version was treating "." as an invalid device.

The updated ISMBLD.LIT 2.1(141) now matches the AMOS behavior, although the prompt has been enhanced to clarify the ENTER and "." options.

While on the subject of the ISAM IDA device, please take note to remember why the feature existed in the first place: it was a workaround to the 32MB limitation of the original AMOS disk devices. In the modern world, it makes no sense to split the IDX and IDA across different devices. It is strongly recommended that you keep the IDX and IDA on the same device under A-Shell—i.e. leave the the data file device option blank.

2015 May, A-Shell 6.1.1411:  ISMBLD.LIT 2.1(140) no longer stores the data file device in the IDX unless it is specified explicitly on the command line (e.g. ISMBLD DSK2:MYFILE) or to the "Data file device:" prompt. This partially rolls back a change introduced in 2.1(139) which made the data device explicit in all cases.

The explicit data device specification was causing a problem for non-AMOS-conforming devices like ARCH27: or VSK: because of limitations in the historic binary format of the IDX. It was also inviting confusion when an IDX/IDA pair was copied to another location for testing. If the data device specification was not updated using the ISMBLD /D switch, the new IDX would continue to reference the old IDA device, possibly leading to inadvertent updating of the wrong file. Note that:

ISMDMP displays the data file device (only if it is non-blank).

ISMDMP <file>/D can be used to change it.

• If using an explicit data file device, make sure it follows the form of three alphabetic characters followed by a number 0-66635, e.g. DSK1: or XYZ999:

2014 January, A-Shell 6.1.1373:  ISAM 1.1 refinement: To avoid needlessly complaining about an invalid number of index levels in some IDX files created by ancient (particularly AMOS) versions of ISMBLD, and value < 3 or > 9 is now treated as 3, which was originally the only choice. A warning is logged to the ashlog.log file, along with a recommendation that it be rebuilt, but then it goes on to work as a legacy-format IDX file. Previously, A-Shell complained and returned ERF 35 (smashed index) for any invalid value except 255, which was, until recently, the only legacy/invalid value we had seen in the field. Note that if the file really was corrupt, it will surely generate an ERF 35 in short order anyway, so the only downside to attempting to treat it as a legacy IDX is that you might miss the warning which used to appear on the screen.

2013 April, A-Shell 6.1.1348:  ISMBLD.LIT 2.1(134) adds /A switch.