The relationship between generic names, keys vectors and Zebra banks

As explained above, there can be multiple copies of a file with the same generic name. Typically, these copies will reside on different media, in different locations or have different data representations.

An entry exists in the FATMEN catalogue for each copy of a file. This entry consists of a Zebra bank and an associated vector known as the KEYS vector. One can use the keys vector, explicitly or implicitly, to select a particular copy of a file. More details on how this is done are given below.

Many of the FATMEN callable routines have the generic name, Zebra bank address and keys vector as arguments. If the bank address is zero, the FATMEN software retrieves the bank corresponding to the specified generic name from the FATMEN catalogue. In the case of multiple entries for the same generic name, the entry which is returned is determined by the rules described below. The exception to this rule is the routine FMGETK, which returns the entry corresponding to the key vector specified.

The FATMEN selection rules

By default, the FATMEN selection is as follows:

  1. The catalogue is scanned for entries matching a given generic name. No check is made on location code, or copy level, but the different media types are processed in numerical order 1 - 4. (Media types 1 - 4 are disk, 3480 cartridge, 3420 tape and Exabyte 8200 cassette respectively).
  2. If a entry is found for a given media type that is accessible, that entry is taken and the search stops.
  3. For disk files, the host name in the catalogue must match the current host name for the file to be deemed accessible.
  4. In the case of VAXclusters, the node name in the catalogue may be the VAXcluster alias or the name of any member of the cluster.
  5. In the case of tape files, an entry on a robotically mounted volume is taken in preference over one on a manually mounted volume.
  6. If the interface to the Tape Management System (TMS) is enabled, the volume must exist and be in an active vault.

Note that for systems such as Apollo, SHIFT etc. the node name that the FATMEN software uses can be set using an environmental variable. Thus on the various SHIFT nodes at CERN (shift1, shd01 etc.) the node name is set to SHIFT.

One can set ranges of valid location codes and copy levels using the routines FMSETL and FMSETC respectively. (The corresponding shell commands are SET/LOCATION and SET/COPYLEVEL). If ranges for either of these keys are set, then only entries with keys that match will be considered for selection. Note that setting a range of location codes can result in significantly faster selection time in the case of multiple entries, particurly if multiple TMS queries are avoided.

For example, if one makes 30 copies of every DST tape for export to outside laboratories, one can avoid up to 29 TMS queries by using different location codes at these sites.

In addition to ranges of location codes and copy levels, one may also set ranges of media types with FMSETM or SET/MEDIATYPE. Here, the order is also significant, thus SET/MEDIATYPE 2,4,1 will look first on 3480 cartridge, then Exabyte 8200 cassette and finally disk.

In some cases, a more powerful selection technique is needed. For example, one may want to set the search order to

  1. Local disk, native data format
  2. Robotically mounted tape, native data format
  3. Local disk, exchange data format
  4. Robotically mounted tape, exchange data format

to avoid the overhead of conversion between data representation types. This can be achieved using the FORTRAN routine FMSETK. This routine is described further in the user guide section of this manual.