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.