DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦078e2c6d2⟧ Wang Wps File

    Length: 41584 (0xa270)
    Types: Wang Wps File
    Notes: Storage & Retrieval       
    Names: »1116A «

Derivation

└─⟦b3a67856d⟧ Bits:30006040 8" Wang WCS floppy, CR 0065A
    └─ ⟦this⟧ »1116A « 

WangText

                                   …00……00……00……00…?…02……00……00…?
?…07…>…08…>…0e…>…06…=…0a…=…0b…=…02…<…09…<…0c…<…0d…<…0e…<…0f…<…00…<…01…<…02…<
< <…05…<…06…<…07…;…08…;…09…;…0e…;
; …86…1                                             …02…           …02…   …02…        

…02…CPS/SDS/007

…02…RIM/810801…02……02…
STORAGE AND RETRIEVAL
…02……02…CAMPS









                    4̲ ̲ ̲P̲A̲C̲K̲A̲G̲E̲ ̲D̲E̲S̲I̲G̲N̲



         The package design of SAR is presented in chapter 4.
         Section 4.1 presents the package overview and section
         4.2 the subpackage specification.



4.1      P̲a̲c̲k̲a̲g̲e̲ ̲O̲v̲e̲r̲v̲i̲e̲w̲

         SAR is an application package performing the storage
         and retrieval of messages and transactions.



4.1.1    F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         The main functions performed by SAR are:

         -   storage of messages and transactions on-line

         -   on-line retrieval of messages and transactions

         -   off-line retrieval of messages and transactions

         -   dump of messages and transactions to off-line disk

         -   performing supervisor commands.

         Overleaf is shown an overview diagram of the functional
         specifications.

         SAR consists of five subpackages each performing one
         of the above mentioned functions.








         Figure 4.1.1-1 Functional Specifications




4.1.1.1  S̲t̲o̲r̲a̲g̲e̲ ̲o̲f̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲

         The storage of messages and transactions function is
         performed by a STORE coroutine. This coroutine identifies
         the store subpackage.

         Main functions achieved are reception of application
         delivered storage requests. Requests are received from
         the incoming storage queue (ISQ).

         On-line catalogue is updated according to delivered
         retrieval keys.

         Actual message text is stored via message management
         system (MMS).



4.1.1.2  O̲n̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲

         The on-line retrieval sub-package handles the retrieval
         of message and transactions from the on-line disk.
         Retrieval requests are received from the retrieval
         requests queue (RRQ) and treated in an FIFO manner.
         The message or transaction corresponding to the retrieval
         keys is retrieved using MMS. Finally it is returned
         to requestor via a queue element (QEL) referencing
         the message or transaction.



4.1.1.3  O̲f̲f̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲

         Off-line retrieval requests received in RRQ, are handled
         by this subpackage, the same way as on-line retrievals
         are handled by the on-line retrieval subpackage. A
         number of additional facilities are performed too.
         Mount requests for off-line disk are delivered to supervisor's
         report printer. Reception of acknowledgement of mount
         request in form of a mount completed or mount refused.





4.1.1.4  D̲u̲m̲p̲

         Dump performs the transfer of messages and transactions
         from on-line disk to the off-line. Incarnation is achieved
         by either MMS or TEP. MMS incarnation acknowledges
         that intermediate storage threshold is exceeded and
         complete area shall be transferred to the off-line
         disk. TEP command acknowledges that storage area shall
         be emptied until time specified in command. During
         dump the on-line storage area is gradually emptied
         as follows:

         On-line catalogue is consulted for determination of
         a number of messages and transactions to transfer.
         MMS is requested to achieve the actual transfer. Off-line
         catalogue is updated according to transferred messages
         and transactions. Corresponding on-line entries are
         removed. Finally, the on-line storage area is cleared
         for the messages and transactions moved. This sequence
         is repeated, until all messages and transactions belonging
         to the dump time window are transferred.

         After total dump procedure, MMS is advised that dump
         is completed. A terminate dump command with dump file
         ref. as parameter invokes this action.                  
         Further a report to supervisors report printer is sent,
         acknowledging that dump is performed until specified
         time.



4.1.1.5  P̲e̲r̲f̲o̲r̲m̲ ̲S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲

         A number of supervisor utilities are performed by this
         sub-package. 

         Off-line retrieval off (OROF) stops the off-line retrieval
         function if the off-line retrieval has been in progress.
         The off-line retrieval requests waiting are cleared
         and requestors are given acknowledgment that off-line
         retrieval is intermediately impossible.

         Off-line retrieval on (ORON) informs SAR that off-line
         retrieval shall be restarted.

         Off-line retrieval suspended (ORSU) informs SAR that
         off-line retrieval shall be stopped as for OROF, but
         requests are still queued for later achievement.



         Command VOCL, "vol-id" causes SAR to print the TOC
         window and DTG window for the specified volume on supervisor's
         report printer.

         Command VOIL performs the above VOCL, but for all volumes
         in use and controlled by SAR.

         Command VODL, "vol-id" deletes the specified entry
         in the volume table.

         Command start-up initiates a start-up procedure.

         Command close-down performs the necessary close-down
         actions.

         The VOXX commands are valid for both the current volume
         and all others.



4.1.2    S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         SAR is mapped onto one process consisting of five coroutines.
         Each coroutine contains one of the sub-packages:

         -   storage sub-package

         -   on-line retrieval sub-package

         -   off-line retrieval sub-package

         -   dump sub-package

         -   supervisor command sub-package.

         Overleaf is shown an overview diagram covering the
         package software structure.








         Fig. 4.1.2-1 Package Software Structure




4.1.3    D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The package control is described next. First, the package
         control data elements are presented i.e. QELs and semaphores
         and secondly, the data flow logic.



4.1.3.1  P̲a̲c̲k̲a̲g̲e̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

         Each of the previously mentioned sub-packages (refer
         4.1.1) is emphasized including its external control
         i.e. control from external queues and other subpackages.

         Storage sub-package:

         This is controlled by the arrival of QEL in ISQ. Each
         QEL causes storage to update on-line catalogue independently
         of the activities of the other four sub-packages.

         On-line retrieval sub-package:

         This is activated upon arrival of an on-line/off-line
         QEL in RRQ.

         Semaphore LOCK ̲CAT synchronizes the access to the on-line
         catalogue which is shared with the dump sub-package.
         LOCK ̲CAT has the function of ensuring that only one
         sub-package accesses the catalogue. On-line retrieval
         sub-package accesses on-line catalogue during on-line
         retrieval, dump during transfer of catalogue entries
         to off-line catalogue.
         The counter "off-line ̲count" keeps the number of outstanding
         off-line retrievals. This is shared with the off-line
         retrieval sub-package.

         Off-line ̲count is incremented by the on-line retrieval
         sub-package upon registration of an off-line retrieval.
         Decremented by the off-line retrieval sub-package upon
         completion of an off-line retrieval.

         Off-line retrieval sub-package:

         Off-line ̲counter has previously been described under
         on-line retrieval sub-package.



         Semaphore LOCK ̲TABLE blocks the access to the volume
         table when either this or the supervisor command and
         dump sub-packages are consulting this.…02…Semaphore off-line
         ̲disk ̲lock is shared between this and sub-package dump
         and has the function of ensuring that only one sub-package
         uses, i.e. requests, mount and receive mount acknowledge,
         the off-line disk.

         The status boolean "off-line ̲retrieval ̲on/off" is shared
         with supervisor command sub-package and contains the
         status information about off-line retrieval. True means
         that off-line retrieval can take place. False means
         that off-line retrievals are temporarily impossible.

         Semaphore "off-line ̲retrieval ̲susp" is shared with
         supervisor command sub-package and handles the suspension
         of off-line retrievals.

         Mount acknowledge queue (MAQ), shared with dump, handles
         the reception of acknowledgements of mount requests.

         Dump sub-package:

         The semaphore "lock ̲cat" shared with on-line retrieval
         sub-package has been previously described.

         The semaphore "off-line ̲disk ̲lock" shared with dump
         sub-package has already been described.

         The semaphore "lock ̲table" shared with off-line retrieval
         and supervisor command sub-packages has likewise already
         been described.

         Mount acknowledge queue (MAQ) activates the sub-package
         when TEP sends a dump request to this queue. CSF time-out
         signals, of a mount request, are received in this queue
         as well.

         Dump command queue (DCQ) activates the dump process
         upon receipt of a dump request from TEP or MMS.

         Supervisor command sub-package:



         Activation of this sub-package is performed upon receipt
         of a QEL from TEP. The kind of QEL is specified in
         4.1.1.5.

         "Semaphore "off-line ̲retrieval ̲susp" has already been
         described.

         Status boolean "off-line ̲retrieval ̲on/off" has also
         been previously described.

         Semaphore "lock ̲table" has likewise already been described.

         Overleaf is shown the five sub-packages, the incoming
         queues, semaphores and status booleans used for controlling
         SAR.








         Fig. 4.1.3-1 Logic Control Data Elements




4.1.3.2  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲L̲o̲g̲i̲c̲

         The data flow logic for SAR is described in HIPO diagram
         1. Boxes emphasized are equal to the ones contained
         in 4.1.1 functional specifications.










                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram







                       HIPO Diagram




4.1.4    C̲o̲m̲m̲o̲n̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲ ̲(̲I̲n̲t̲e̲r̲n̲a̲l̲)̲

         Common internal data elements, i.e. data elements shared
         between subpackages or stand-alone elements, are as
         follows:

         -   on-line catalogue

         -   off-line catalogue

         -   volume table.

         Each of these data areas is described in detail within
         the next three sub-sections, as they are shared between
         the sub-packages.



4.1.4.1  O̲n̲l̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲

         This consists of three files, namely:

         -   TOC ̲FILE ̲ON

         -   DTG ̲FILE ̲ON

         -   PRI ̲FILE ̲ON.

         TOC ̲FILE ̲ON consists of an information part and a data
         part.

         The information part contains (refer to figure 4.1.4.1-1):

         -   storage pointer TOC ̲FILE ̲ON, pointing to next free
             location in the TOC ̲FILE ̲ON file;

         -   dump pointer TOC ̲FILE ̲ON, indicating the oldest
             location in the TOC ̲FILE ̲ON file;

         -   TOC start time, containing time of last copy, related
             to dump;

         -   storage pointer PRI ̲FILE ̲ON, pointing to the next
             free location in the PRI ̲FILE ̲ON file;

         -   no. of PRI entries, containing the number of entries
             in the PRI ̲FILE ̲ON file;



         -   storage pointer DTG ̲FILE ̲ON, indicating the next
             free location in the DTG ̲FILE ̲ON file;

         -   dump pointer, DTG ̲FILE ̲ON, showing the oldest location
             in the DTG ̲FILE ̲ON file;

         -   no. of DTG entries, containing the number of entries
             in the DTG ̲FILE ̲ON file.

         The data part consists of a number of byte addresses
         to the PRI ̲FILE ̲ON file.

         DTG ̲FILE ̲ON consists of a data part consisting of entries
         of two kinds:

         -   entry containing a DTG and a PLA ref. (orig. HQ);

         -   entry containing dummy parameter.

         Each entry is 10 bytes wide.


         PRI ̲FILE ̲ON consists of a data area containing catalogue
         entries 42 bytes wide. Type of entry is:

         -   ordinary catalogue entry built of retrieval keys;

         -   extension entry for the previous ordinary entry.

         The type of entry is identified by the first byte.
         Detailed entry description is included in the memory
         layout description, paragraph 4.3.

         Overleaf is shown an overview diagram for the on-line
         catalogue.








             Fig. 4.1.4.1-1 On-line Catalogue




4.1.4.2  O̲f̲f̲-̲l̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲

         This consists of three files, namely:

         -   TOC ̲FILE ̲OFF

         -   DTG ̲FILE ̲OFF

         -   PRI ̲FILE ̲OFF

         TOC ̲FILE ̲OFF contains an information part and a data
         part.

         The information area consists of:

         -   storage pointer TOC ̲FILE ̲OFF, which points to the
             next free location in the TOC ̲FILE ̲OFF file;

         -   no. of TOCs counter, which contains the number
             of used entries in the TOC ̲FILE ̲OFF data area;

         -   storage pointer PRI ̲FILE ̲OFF, which points to the
             next free location in the PRI ̲FILE ̲OFF file;

         -   no. of PRIs counter, which contains the number
             of used entries in the PRI ̲FILE ̲OFF file;

         -   storage pointer DTG ̲FILE ̲OFF, which points to the
             next free location in the DTG ̲FILE ̲OFF file;

         -   no. of DTGs counter, which contains the number
             of used entries in the DTG ̲FILE ̲OFF file.

         Data area consists of a number of 3 byte addresses
         pointing to locations in the PRI ̲FILE ̲OFF file.

         PRI ̲FILE ̲OFF consists of a data area identical to the
         previously described PRI ̲FILE ̲ON.

         DTG ̲FILE ̲OFF consists of a data area identical to the
         previously described DTG ̲FILE ̲ON.

         Overleaf is shown the logical layout of the off-line
         catalogue.








            Fig. 4.1.4.2-1 Off-line Catalogue




4.1.4.3  V̲o̲l̲u̲m̲e̲ ̲T̲a̲b̲l̲e̲

         This area resides in the VOLUME ̲FILE and consists of
         a control area and a data area.

         The control area holds the following locations:

         -   no. of volumes in use, which is the number of off-line
             volumes containing messages and transactions controlled
             by SAR;

         -   oldest volume pointer, which points to the oldest
             location in the data area in the VOLUME ̲FILE file;

         -   youngest volume pointer, which points to the youngest
             location in the data area in the VOLUME ̲FILE file.

         Overleaf is shown the layout of the VOLUME ̲FILE file.

         The data area contains an entry for each volume controlled
         by SAR. Each entry contains the following:

         -   volume-id which is an identification of the volume
             related to the below mentioned entries;

         -   oldest TOC which is the time corresponding to the
             first message or transaction stored on the volume;

         -   youngest TOC, which is the time corresponding to
             the last message or transaction stored on the volume;

         -   oldest DTG, which is the DTG corresponding to the
             oldest DTG message on the volume;

         -   youngest DTG, which is the DTG corresponding to
             the youngest DTG message on the volume.

         Note that TOC corresponds to time of cataloging while
         DTG corresponds to time of release as in format line
         5. Figure 4.1.4.3-2 shows the entry layout.








                Fig. 4.1.4.3-1 Volume File







             Fig. 4.1.4.3-2 Volume File Entry




4.1.5    E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

         External data elements shared with other packages are:

         -   storage keys during storage of messages and transactions;

         -   retrieval keys during retrieval of messages and
             transactions;

         -   return data after retrieval function, such as:

             -   return code
             -   catalogue information;

         -   return data after a supervisor utility command
             such as:

             -   volume file entry
             -   volume file;

             printer data elements.



4.1.5.1  S̲t̲o̲r̲a̲g̲e̲ ̲K̲e̲y̲s̲ ̲d̲u̲r̲i̲n̲g̲ ̲S̲t̲o̲r̲a̲g̲e̲

         Storage keys reside in the CIF information field, view
         information field and QEL information field.



4.1.5.2  R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲K̲e̲y̲s̲ ̲d̲u̲r̲i̲n̲g̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲

         Retrieval keys are contained in a buffer element.



4.1.5.3  R̲e̲t̲u̲r̲n̲ ̲D̲a̲t̲a̲ ̲a̲f̲t̲e̲r̲ ̲a̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲


4.1.5.3.1    R̲e̲t̲u̲r̲n̲ ̲C̲o̲d̲e̲ ̲

         Return code and additional information are returned
         to requestor in form of QEL plus possible buffer element.



4.1.5.3.2    C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲I̲n̲f̲o̲r̲m̲a̲t̲i̲o̲n̲

         Catalogue information is returned to requestor via
         a CIF.



4.1.5.4  S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲D̲a̲t̲a̲



4.1.5.4.1    V̲o̲l̲u̲m̲e̲ ̲F̲i̲l̲e̲ ̲E̲n̲t̲r̲y̲

         Volume file entry information is returned to requestor
         in form of a buffer element.



4.1.5.4.2    V̲o̲l̲u̲m̲e̲ ̲F̲i̲l̲e̲

         Volume file is delivered to requestor via a CIF.



4.1.5.5  P̲r̲i̲n̲t̲e̲r̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

         Printer data elements are delivered to the report printer
         via QEL referencing buffer elements.



4.1.6    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.6.1  E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Not applicable for SAR.





4.1.6.2  P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         SAR interfaces to the following packages:

         -   terminal package (TEP)

         -   message distribution package (MDP)

         -   traffic handling package (THP)

         -   log package (LOG)



4.1.6.2.1    S̲A̲R̲/̲T̲E̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         Interface during storage of messages and transactions
         is as follows:

         TEP sends a QEL to SAR's ISQ. The QEL contains a reference
         to the CIF where SAR can find the storage keys. TOC
         is returned to requestor upon storage.
         Interface during retrieval of messages and transactions
         is as follows:

         TEP sends a QEL to SAR's RRQ. The QEL contains a reference
         to the buffer element containing the retrieval parameters.
         Completion of retrieval result in three cases: 

         -   return of QEL to TEP's return queue; QEL contains
             a reference to the retrieved CIF;

         -   return of QEL to TEP's return queue; QEL contains
             a reference to the buffer element containing completion
             code and return parameters;

         -   return of QEL to TEPs return queue; QEL contains
             all of the returned information.

         During off-line retrieval, possible mount requests
         are sent to the supervisors report queue. The QEL contains
         a reference to the buffer element containing the report.
         Acknowledgements of mount requests are sent from TEP
         to SAR's mount acknowledge queue (MAQ).



         Interface during Dump of messages and transactions
         is carried out in the following manner. MMS or TEP
         sends a dump request to SAR. Request QEL contains a
         reference to a buffer element containing dump information
         such as dump volume, dump time etc. A possible mount
         request communication to TEP is carried out before
         actual dump. During this CSF time-out function is invoked.
         Upon completion of dump, a dump completion report is
         sent to supervisor's report print queue.

         Interface during supervisor command is performed as
         follows:

         TEP sends a QEL to SAR's supervisor command queue (SCQ).
         QEL contains action to be performed. A possible answer
         or completion code is returned to supervisor's return
         queue.



4.1.6.2.2    S̲A̲R̲/̲M̲D̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         This interface is identical to the SAR/TEP interface
         during storage of messages and transactions, except
         that no completion code is returned.



4.1.6.2.3    S̲A̲R̲/̲T̲H̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         This interface is identical to the SAR/TEP interface
         during storage of messages and transactions, except
         that no completion code is returned.



4.1.6.2.4    S̲A̲R̲/̲L̲O̲G̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         This interface is identical to the SAR/TEP interface
         during storage of log CIF. The difference is that QEL
         contains a reference to a buffer element from which
         storage keys are fetched from, and that no completion
         code is returned.

         Interface during retrieval of log CIF is identical
         to SAR/TEP interface during retrieval except that return
         queue is LOGs return queue.





4.1.6.3  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Sub-package interface is described in the same order
         as mentioned in section 4.1.1.



4.1.6.3.1    S̲t̲o̲r̲a̲g̲e̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Interface indirectly to the on-line retrieval sub-package
         and the dump sub-package via the on-line catalogue.
         Storage sub-package add new entries to the on-line
         catalogue. On-line retrieval-subpackage searches in
         catalogue during retrieval. Dump sub-package deletes
         entries moved to the off-line catalogue.



4.1.6.3.2    O̲n̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Interface to storage sub-package has previously been
         described in 4.1.6.3.1. Interface to off-line retrieval
         sub-package via the semaphore off-line ̲count, refer
         4.1.3.1 for functional description.

         Interface to dump sub-package is via the semaphore
         lock ̲cat which controls the single access to the on-line
         catalogue during on-line retrieval and dump. Further
         details about the semaphore lock ̲cat can be found in
         4.1.3.1.



4.1.6.3.3    O̲f̲f̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Interface to on-line retrieval sub-package has previously
         been described in 4.1.6.3.2. Interface to the dump
         sub-package is via the semaphore off-line ̲disk ̲lock
         which controls the single use of the off-line volume.
         Off-line retrieval accesses the volume during off-line
         retrievals, dump during off-line storage of messages
         and transactions.

         Interface to the dump sub-package is also via the semaphore
         lock ̲table. It controls the single access to volume
         table.



         Interface to supervisor command sub-package is via
         the status information off-line ̲retrieval ̲on/off and
         the semaphore off-line ̲retrieval ̲susp. Off-line retrieval-
          ̲on/off controls activity of off-line retrievals. They
         can be turned off or be ongoing. Off-line ̲retrieval
         ̲susp. controls the suspension of off-line retrievals.
         Functional specifications of interface can be found
         in 4.1.3.1.



4.1.6.3.4    D̲u̲m̲p̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Interface to on-line retrieval sub-package has previously
         been described in 4.1.6.3.2.

         Interface to off-line retrieval sub-package has previously
         been described in 4.1.6.3.4.

         Interface to supervisor command sub-package is via
         the semaphore lock ̲cat. This locks the access to the
         table while used by two sub-packages.



4.1.6.3.5    S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Interfaces to this sub-package have previously been
         described in off-line retrieval sub-package and dump
         sub-package, 4.1.6.3.3 and 4.1.6.3.4 respectively.








 Fig. 4.1.6.3.1-1 Storage Sub-Package Indirect Interface







  Fig. 4.1.6.3.2-1 On-line Storage Sub-Package Interface







 Fig. 4.1.6.3.3-1 Off-line Storage Sub-Package Interface







       Fig. 4.1.6.3.4-1 Dump Sub-Package Interface







Fig. 4.1.6.3.5-1 Supervisor Command Sub-Package Interfaces




4.2.1    O̲n̲-̲l̲i̲n̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         The storage sub-package performs the updating of the
         on-line catalogue during on-line storage of messages
         and transactions.



4.2.1.1  F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The following points are included in the functional
         specification:

         -   reception of storage requests

         -   retrieval key pick-up

         -   emptying collect area

         -   update on-line catalogue

         -   complete storage.

         Fig. 4.2.1.1-1 overleaf depicts these five functions.








Fig. 4.2.1.1-1 Storage Sub-Package Functional Specification




4.2.1.1.1    R̲e̲c̲e̲p̲t̲i̲o̲n̲ ̲o̲f̲ ̲S̲t̲o̲r̲a̲g̲e̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲

         Applications requesting storage of messages and transaction
         activate the storage procedure by sending a QEL to
         ISQ. Contents of QEL are an identification of requestor,
         reference to the CIF and type of CIF to be stored.
         QEL are chekpointed upon their arrival in the ISQ.



4.2.1.1.2    R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲K̲e̲y̲ ̲P̲i̲c̲k̲-̲u̲p̲

         The CIF reference in QEL is used to identify the CIF
         from which the storage keys are fetched. Type of CIF
         informs the storage sub-package about the kind of retrieval
         keys. According to this information, the retrieval
         keys are fetched from the CIF information areas. Keys
         are transferred to main memory collect areas, PRI ̲AREA
         and DTG ̲AREA. The control area contains pointer information
         regarding those areas where the storage keys are stored.
         PRI ̲AREA pointer points to the next 42 bytes entry
         in PRI ̲AREA. DTG ̲AREA pointer points to the next 6
         bytes entry in the DTG ̲AREA. Key counter no-of-PRI-ENT
         is incremented each time the collect area is updated.
         If update requires an extension entry, counter is incremented
         by 2.

         TOC is returned to TEP after servicing of TEP storage
         request.



4.2.1.1.3    E̲m̲p̲t̲y̲i̲n̲g̲ ̲C̲o̲l̲l̲e̲c̲t̲ ̲A̲r̲e̲a̲

         One of two conditions shall be fulfilled to invoke
         emptying of the collect area. Two seconds elapsed since
         last emptying or key counter exceeding the value of
         48. If key counter causes the incarnation the time-out
         is cancelled. Key counter holds the number of entries
         to be moved.





4.2.1.1.4    U̲p̲d̲a̲t̲e̲ ̲O̲n̲l̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲

         Storage pointers TOC ̲FILE ̲ON and DTG ̲FILE ̲ON hold the
         start byte addresses on the two corresponding files.
         The key counter no-of-PRI-ENT indicates the number
         of entries, to be moved from PRI-AREA and DTG ̲AREA.
         A new TOC ̲FILE ̲ON entry is supplied at regular intervals.
         At present this inteval is 10 minutes .

         Completion of transfer causes the storage pointers
         to be updated according to number of entries moved
         to each file.



4.2.1.1.5    C̲o̲m̲p̲l̲e̲t̲e̲ ̲S̲t̲o̲r̲a̲g̲e̲

         After update on-line catalogue, a new two seconds CSF
         time-out is set. The three main memory control area
         locations are all preset to the value 0. QELs corresponding
         to the stored on-line catalogues are dismantled.



4.2.1.2  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         Diagram 4.2.1.2-1 shows the software structure of the
         storage function. This consists of the following coroutines:

         -   receive storage request coroutine

         -   empty collect area cond. 2 coroutine

         -   update on-line catalogue coroutine.

         Functions performed by the three coroutines are shown
         in figure 4.2.1.2-2.








    Fig. 4.2.1.2-1 Storage On-line Software Structure




4.2.1.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The main external and internal control of this sub-package
         is achieved by:

         -   the arrival of QEL in ISQ

         -   the arrival of return code from a CSF request timeout
             command.

         -   the semaphore LOCK.

         Overleaf is shown an overview diagram of the control
         data elements.

         The way the logical control is performed is shown in
         flowgrams no. 4.2.1.3-1 and 4.2.1.3-2.

         4.2.1.3-1 depicts receive storage requests logical
         control, with emptying collect area, condition 1. Condition
         1 is when collect area is full.

         4.2.1.3-2 depicts the control of reception of two seconds
         time-out, which is condition no. 2 for emptying the
         collect area.

         HIPO diagram 4.2.1.3-3 shows the update procedure of
         the on-line catalogue.

         HIPO diagram 4.2.1.3-4 shows the complete storage procedure.








           Fig. 4.2.1.3-1 Data Control Elements









             Receive from ISQ loop:

                 Receive from ISQ (4.2.1.1.1)

                 Wait semaphore LOCK

                 Pick-up retrieval keys (4.2.1.1.2)

                 Increment no-of-PRI-ENT counter

                 Counter …0e…L…0f… 42 ? (4.2.1.1.3) …0e…yes…0f…
                         no

                     Cancel CSF 2 sec timer

                     Get ISTOQ queue length

                     queue length = 0? …0e…yes…0e…
                              no

                         Dismantle QEL


                     Update on-line catalogue (4.2.1.1.4)

                     Complete storage (4.2.1.1.5)


                 Signal Semaphore LOCK    

             End Receive from ISQ loop









 Fig. 4.2.1.3-1 Receive Storage Requests Logical Control








             Receive time-out loop (4.2.1.1.3):


                 Receive next QEL from ISTOQ


                 Wait semaphore lock


                 No.-of-PRI-ENT counter = 0 ? …0e…yes…0f…
                        no


                        update on-line catalogue (4.2.1.1.4)

                        Dismantle QEL



                 Complete storage (4.2.1.1.5)


                 Signal Semaphore LOCK


             End Receive time-out loop













Fig. 4.2.1.3-2 Empty Collect Area Condition 2, Logical Control







                       HIPO Diagram







                       HIPO Diagram




4.2.1.4  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

         Data pertinent to this sub-package are main memory
         resident collect area. This consists of a control area
         and a data area.



4.2.1.4.1    C̲o̲n̲t̲r̲o̲l̲ ̲A̲r̲e̲a̲

         Control area consists of three locations:

         -   PRI ̲AREA pointer, which points to the next free
             area in the PRI ̲AREA;

         -   DTG ̲AREA pointer, which points to the next free
             entry in the DTG ̲AREA;

         -   no-of-PRI-ENT counter, which contains the number
             of entries used in the PRI ̲AREA.

         Refer to figure 4.2.1.4-1.



4.2.1.4.2    D̲a̲t̲a̲ ̲A̲r̲e̲a̲

         This consists of two areas, PRI ̲AREA and DTG ̲AREA.

         PRI ̲AREA contains the primary catalogue information,
         ordered according to TOCs. Each entry size is 42 bytes.
         Total area is 2048 bytes.

         DTG ̲AREA contains the secondary catalogue information,
         ordered according to DTGs. Each entry size is 6 bytes.
         Total area is 512 bytes.

         Overleaf is shown the logical layout of control area
         and data area and their interrelationship.








         Fig. 4.2.1.4-1 Storage Sub-Package Data




4.2.1.5  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         The sub-package interface is an indirect on-line catalogue
         interface to on-line retrieval sub-package. Both use
         the catalogue, on-line storage for adding new entries
         and on-line retrieval for on-line catalogue searching.



4.2.1.6  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

         Initialization of this sub-package is carried out in
         the following manner:

         The main memory resident control area's three locations
         are all preset the value 0.



4.2.2    O̲n̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲

         This section includes the sub-package specification
         for the on-line retrieval sub-package.



4.2.2.1  F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         Functions performed by this sub-package are:

         -   receive retrieval requests

         -   on-line/off-line retrieval separation

         -   on-line catalogue consult

         -   access check

         -   retrieval of CIF

         -   delivery of retrieval result.

         Each of these functions is described in detail during
         the next six sub-sections.

         Figure 4.2.2.1-1 overleaf shows an overview diagram
         of the functional specifications.





Fig. 4.2.2.1-1 On-line Retrieval Functional Specification




4.2.2.1.1    R̲e̲c̲e̲i̲v̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲

         Retrieval requests are received in the RRQ. Retrievals
         in question are on-line and off-line. Completion of
         an on-line retrieval causes the next QEL in RRQ to
         be received. If this QEL happens to be an on-line retrieval,
         an on-line retrieval is initiated. After the on-line
         retrieval, the QEL is dismantled. If QEL is an off-line
         retrieval, the counter off-line ̲count is incremented,
         acknowledging the off-line retrieval sub-package that
         an off-line retrieval is waiting in RRQ. Request will
         be processed if no off-line retrieval is in progress.
         Otherwise, it will remain in the queue, i.e. several
         off-line retrieval requests can be waiting in RRQ while
         the on-line retrieval is in progress.



4.2.2.1.2    O̲n̲-̲l̲i̲n̲e̲ ̲/̲ ̲O̲f̲f̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲e̲p̲a̲r̲a̲t̲i̲o̲n̲

         The retrieval requests in RRQ contain either a TOC
         or a DTG as one of the retrieval key parameters. These
         are used for separation of the retrievals in on-line
         and off-line retrievals. The volume table is used for
         this separation. If TOC or DTG are contained in the
         TOC or DTG intervals specified in the table, the retrieval
         is marked as an off-line retrieval.

         In both cases, on-line or off-line, an answer is returned
         to requestor acknowledging whether the retrieval is
         on-line or off-line.

         The case of an off-line retrieval results in the following
         actions:

         If the off-line retrieval is off, this is acknowledged
         to requestor through return code 2. QEL is removed
         from RRQ,

         If 10 off-line retrievals are waiting in RRQ, the corresponding
         QEL is removed and requestor is informed that off-line
         retrieval is intermediately impossible (return code
         2).

         If there are less than 10 off-line retrievals waiting
         in RRQ, the off-line ̲count is incremented.





4.2.2.1.3    O̲n̲l̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲C̲o̲n̲s̲u̲l̲t̲

         Before consulting the on-line catalogue, it is locked
         by "wait semaphore LOCK ̲CAT". This ensures that only
         the on-line retrieval sub-package accesses the catalogue.
         According to the retrieval type, the catalogue is consulted.
         The types of retrievals are:

         -   retrieval of first CIF which fits the retrieval
             keys;

         -   retrieval of CIF which fits the retrieval keys;

         -   retrieval of catalogue information;

         -   retrieval of catalogue information or CIF if only
             one CIF satisfies the keys.

         Results of the catalogue consult are of two kinds.
         A CIF-id is used for a later retrieve CIF function
         call. A number of catalogue entries are collected in
         an CIF.

         DTG retrieval is carried out the following way to solve
         the overlapping DTG intervals problem in the volume
         table. Refer figure 4.2.2.1.3-1. First it is checked
         if it is an on-line retrieval and the on-line retrieval
         is performed if so. If the on-line retrieval completes
         as not found, the DTG retrieval request is marked as
         an off-line retrieval request. The off-line DTG retrieval
         is performed the same way as TOC retrievals except
         that it may turn as not found. In this case a mount
         request for the next volume is sent to the supervisors
         report printer. This mount and retrieval sequence will
         continue until message is found or DTG parameter in
         retrieval key is not contained in the next DTG interval
         for the mounted volume. A not found completion code
         is returned and DTG retrieval completed.

         After the catalogue consult and retrieval of CIF, the
         catalogue is released by signalling the semaphore LOCK
         ̲CAT.




                 Time

             Volume  windows

         youngest volume                             oldest
                                                     volume

vol. 49      volume 48               volume 47           volume
                                                         46
in dump use


             Volume table contents

TOC      TOC,Y,48    TOC,0,48TOC,Y,47    TOC,0,47TOC,Y,46  TOC,0,46


DTG

         DTG,Y,48                DTG,0,47

                         DTG,Y,47                DTG,0,48

                                     DTG,Y,46              DTG,0,46





         Y = Youngest

         O = Oldest
















             D̲T̲G̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲…01…F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲1̲.̲3̲-̲1̲



4.2.2.1.4    A̲c̲c̲e̲s̲s̲ ̲C̲h̲e̲c̲k̲

         During the catalogue consult, a number of comparing
         functions is performed. The record type identifies
         which  comparison functions are to be achieved during
         the access check. 

         The TOC or DTG retrieval parameter is the first parameter
         checked against catalogue contents. If check turns
         out positive next parameter in retrieval request is
         checked against next parameter in entry. In case the
         time check-failed, next entry in catalogue is used
         in the access check.



4.2.2.1.5    R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲o̲f̲ ̲C̲I̲F̲

         If the catalogue consult has resulted in determination
         of a corresponding CIF, this is retrieved using MMS.
         A retrieve item function call with CIF as input parameter
         performs this action. As a result of this retrieval,
         either a view ref. or CIF not found completion code
         is returned.





4.2.2.1.6    D̲e̲l̲i̲v̲e̲r̲y̲ ̲o̲f̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲s̲u̲l̲t̲

         The result of an on-line retrieval is one of the below
         mentioned replies sent to requestors return queue:

         -   return code 1, no CIF found; QEL contains a reference
             to a buffer element which contains completion code
             and all retrieval keys; this result is returned
             if the retrieval key misfits all on-line catalogue
             entries or if MMS returns a not found completion
             code;

         -   a CIF containing catalogue entries fulfilling the
             retrieval keys; a QEL referencing the CIF is sent;

         -   return code 2, off-line retrieval intermediately
             impossible; QEL contents as specified for return
             code 1; this result is returned if off-line retrieval
             is off or more than 10 off-line retrievals are
             awaiting in RRQ.



4.2.2.2  O̲n̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure is presented in figure 4.2.2.2-1
         and consists of 1 coroutine. This coroutine process
         a number of modules sequential depending on type of
         retrieval. The starting module is in the left hand
         side of the figure.





   Fig. 4.2.2.2-1 On-line Retrieval Software Structure




4.2.2.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The data flow is controlled by the following elements:

         -   QELs in RRQ

         -   off-line ̲retrieval ̲on/off, status element

         -   LOCK ̲CAT, semaphore

         -   off-line ̲count, status counter.

         Through the diagrams 4.2.2.3-1 and 4.2.2.3-2, the logical
         control for the on-line retrieval sub-package is presented.
         4.2.2.3-1 presents all functions in 4.2.2.1 except
         for the off-line retrieval registration.










             on-line retrieval loop:

                     receive retrieval request from RRQ

                     on-line/off-line determination

                     off-line retrieval ? …0e…yes…0e… call off-line
                     retrieval
                        no                    registration (4.2.2.3-2)


                     wait semaphore LOCK ̲CAT

                     consult catalogue

                     access check

                     access check failure ? …0e…yes…0f… send return
                     code 1
                        no


                     retrieve CIF via MMS

                     signal semaphore LOCK ̲CAT

                     answer = not found ? …0e…yes…0f… send return code
                     1
                        no


                     return view ref.




             End on-line retrieval loop








      Fig. 4.2.2.3-1 On-line Retrieval Control Logic








         off-line retrieval registration


         off-line retrieval off ?   …0e…yes…0f…      send return code
         2
            no


                                             dismantle QEL


         off-line ̲count   10 ? …0e…yes…0f… increment
            no                     off-line ̲count


                                   return QEL


         send return code 2


         Dismantle QEL



         End off-line retrieval registration
















      Fig. 4.2.2.3-2 Off-line Retrieval Registration



4.2.2.4  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

         The buffer element delivered to the on-line retrieval
         sub-package contains the following elements:

         -   return queue-id

         -   terminal designator

         -   requestor SCD

         -   exercise indicator

         -   special handling designators

         -   append designator

         -   transaction serial number

         -   item ref id, if append

         -   classification

         -   a number of retrieval keys for the different record
             types in the catalogue.

         Appendix A contains a description of the specific retrieval
         keys for the different record types in the catalogue.

         QEL returned after detection of on-line/off-line retrieval
         contains an indication of on-line or off-line retrieval.

         Buffer element returned, return code 1, in the event
         of a CIF not being found, contains all parameters delivered
         in the request plus the completion code.

         Buffer element returned, return code 2, in the event
         of off-line retrieval being off, contains all parameters
         delivered in the request plus the completion code.

         QEL returned after a successful on-line retrieval contains
         a view ref. as a reference to the CIF retrieved.



         QEL returned after a successful on-line retrieval of
         catalogue extract, contains a CIF. This references
         the created item, containing the catalogue entries
         fulfilling the retrieval keys.




4.2.2.5  S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         Interface to storage sub-package has already been described
         in 4.2.1.5. The interface to off-line retrieval sub-package
         is via the following elements:

         -   off-line ̲count, counter


         Off-line ̲count is a counter incremented by on-line
         retrieval when an off-line retrieval request is detected.
         Counter is incremented by off-line retrieval when an
         off-line retrieval request has been processed.

         Interface to dump sub-package is via the semaphore
         lock ̲cat. Lock-cat semaphore handles the single access
         to the on-line catalogue.

         Interface to supervisor command sub-package is via
         the status information off-line ̲retrieval ̲on/off. On-line
         retrieval tests this status each time an off-line retrieval
         request has been registered. In the event of status
         showing that off-line retrieval is off, retrieval request
         is denied and reqeustor is informed. In the event of
         status showing on, the counter off-line ̲count is incremented.



4.2.2.6  O̲n̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

         Initialization of this sub-package is performed on
         the following data elements:

         -   off-line ̲count is re-set to the value 0, and all
             off-line retrieval requests in RRQ are deleted.