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

⟦82d70fcee⟧ Wang Wps File

    Length: 68129 (0x10a21)
    Types: Wang Wps File
    Notes: CPS/SDS/032               
    Names: »1569A «

Derivation

└─⟦945185ab2⟧ Bits:30005808 8" Wang WCS floppy, CR 0113A
    └─ ⟦this⟧ »1569A « 

WangText

…07……00……00……00……00…H…02……00……00…H
G…0c…G…06…F…01…F…06…E…0a…E…0e…E…00…E…05…E…07…D…08…D…0d…D
D…07…C…0d…8…0a…8…0e…8…02…7…08…7…0b…7…0c…7…01…7…02…7…07…6…0a…6…0b…6…00…6 6…05…5…0d…5
4…09…4…0b…4…0d…4…00…4



…02…CPS/SDS/032

…02…HUH/820503…02……02…
LOGGING
DETAILED DESIGN SPECIFICATION…02……02…CAMPS








 …06…1   …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02… …02…                                     
                    T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲



   1   GENERAL ..........................................
       1-001

     1.1 PURPOSE AND SCOPE ..............................
         1-002
     1.2 APPLICABLE DOCUMENTS AND PROJECT REFERENCES ....
         1-002
       1.2.1 Applicable Documents .......................
             1-002
       1.2.2 Project References .........................
             1-002

     1.3 TERMS AND ABBREVIATIONS ........................
         1-002
       1.3.1  Terms .....................................
       1-002
       1.3.2  Abbreviations .............................
       1-003

   2   SUMMARY OF REQUIREMENTS ..........................
       2-001

     2.1 PACKAGE DESCRIPTION ............................
         2-001
     2.2 PACKAGE FUNCTIONS ..............................
         2-004
       2.2.1 Main Functions at Normal Operation .........
             2-004
       2.2.2 Functional Responsibilities ................
             2-004
         2.2.2.1 Initialization, Close Down and Restart
                 . 2-004
           2.2.2.1.1 Initialize and Restart .............
                     2-005
             2.2.2.1.1.1  Start Up Types ................
             2-005
             2.2.2.1.1.2  Log Package Initialize ........
             2-005

           2.2.2.1.2 Close Down .........................
                     2-006

         2.2.2.2 Checkpointing and Recovery .............
                 2-006
           2.2.2.2.1 Checkpointing ......................
                     2-006
           2.2.2.2.2 Recovery ...........................
                     2-006

         2.2.2.3 Error Detecting and Error Handling .....
                 2-007
         2.2.2.4 Integrity of Operation .................
                 2-007
         2.2.2.5 Data Collection ........................
                 2-007
         2.2.2.6 Security ...............................
                 2-007

     2.3 CHARACTERISTICS ................................
         2-008
       2.3.1 Timing .....................................
             2-008
         2.3.1.1 Collect Run Time .......................
                 2-008
         2.3.1.2 Trace Run Time .........................
                 2-009

       2.3.2 Throughput .................................
             2-009
       2.3.3 Flexibility ................................
             2-009
       2.3.4 Accuracy ...................................
             2-009



   3   ENVIRONMENT ......................................
       3-001

     3.1 EQUIPMENT ......................................
         3-001
     3.2 SOFTWARE .......................................
         3-001
       3.2.1 System Software ............................
             3-001
       3.2.2 Development Support Software ...............
             3-001

     3.3 INTERFACES .....................................
         3-001
       3.3.1 External Interfaces ........................
             3-001
       3.3.2 Package Interfaces .........................
             3-001
         3.3.2.1 Application Package Interface ..........
                 3-002
         3.3.2.2 SSC Interface ..........................
                 3-002
         3.3.2.3 TEP Interface ..........................
                 3-002
         3.3.2.4 CSF Interface ..........................
                 3-003
         3.3.2.5 SAR Interface ..........................
                 3-003

     3.4 FUNCTIONS MAINTAINED BY OTHER PACKAGES .........
         3-005

   4   PACKAGE DESIGN ...................................
       4-001

     4.1 PACKAGE OVERVIEW ...............................
         4-001
       4.1.1 Functional Specification ...................
             4-003
         4.1.1.1 Functional Breakdown ...................
                 4-003
           4.1.1.1.1 Log Collection Functions ...........
                     4-003
           4.1.1.1.2 Log Trace Functions ................
                     4-004

       4.1.2 Software Specification .....................
             4-006
       4.1.3 Data Flow and Control Logic ................
             4-007
       4.1.4 Common Package Data.........................
             4-009
       4.1.5 Common Package Procedures ..................
             4-013
         4.1.5.1 Dismantle Request Procedure ............
                 4-013

       4.1.6 Global Data ................................
             4-016
       4.1.7 Interfaces .................................
             4-016
         4.1.7.1 External Interfaces ....................
                 4-016
         4.1.7.2 Package Interfaces .....................
                 4-016
           4.1.7.2.1 Applications Interfaces ............
           4-016
           4.1.7.2.2 Interface to SCC ...................
                     4-019
           4.1.7.2.3 Interface to TEP ...................
                     4-019
           4.1.7.2.4 Interface to CSF ...................
                     4-019
           4.1.7.2.5 Interface to SAR ...................
                     4-020

         4.1.7.3 Subpackage Interfaces ..................
                 4-020

     4.2 Subpackage specification .......................
         4-020
       4.2.1 Log Collect Subpackage .....................
             4-020


         4.2.1.1 Functional Specification ...............
                 4-021
           4.2.1.1.1 Log Record Collection ..............
                     4-021
           4.2.1.1.2 Log Record Store ...................
                     4-021
           4.2.1.1.3 Log Record Printout ................
                     4-022
           4.2.1.1.4 Log CIF Store ......................
                     4-022
           4.2.1.1.5 Initialization .....................
                     4-024
           4.2.1.1.6 Error Processing ...................
                     4-024
           4.2.1.1.7 Close Down .........................
                     4-024

         4.2.1.2 Software Structure .....................
                 4-024
         4.2.1.3 Data Flow and Control Logic ............
                 4-024
         4.2.1.4 Module Specification ...................
                 4-026
           4.2.1.4.1 Collect Module .....................
                     4-026
             4.2.1.4.1.1 Functional Specification .......
                         4-026
             4.2.1.4.1.2 Module Interface ...............
                         4-026
             4.2.1.4.1.3 Module Components ..............
                         4-027
             4.2.1.4.1.4 Data Description ...............
                         4-027
             4.2.1.4.1.5 Module Design ..................
                         4-027
           4.2.1.4.2 Log CIF Handling Module ............
                     4-042
             4.2.1.4.2.1 Functional Specification .......
                         4-042
             4.2.1.4.2.2 Module Interface ...............
                         4-042
             4.2.1.4.2.3 Module components ..............
                         4-042
             4.2.1.4.2.4 Data Description ...............
                         4-043
             4.2.1.4.2.5 Module Design ..................
                         4-043

           4.2.1.5 Common Subpackage Data ...............
                   4-056
           4.2.1.6 Common Subpackage Procedures .........
                   4-060
           4.2.1.7 Subpackage Interfaces ................
                   4-067
             4.2.1.7.1 Close Down Flag ..................
                       4-067

       4.2.2 Log Trace Subpackage .......................
             4-068
         4.2.2.1 Functional Specification ...............
                 4-068
           4.2.2.1.1 Receive Trace Keys .................
                     4-068
             4.2.2.1.1.1 Trace Key Definition ...........
             4-068

           4.2.2.1.2 Retrieve Pertinent Log CIFs ........
                     4-070
           4.2.2.1.3 Trace Log Records ..................
                     4-070
           4.2.2.1.4 Return Traced Log Records ..........
                     4-070

         4.2.2.2 Software Structure .....................
                 4-072
         4.2.2.3 Data Flow and Control Logic ............
                 4-072
         4.2.2.4 Module Specification ...................
                 4-074
           4.2.2.4.1 Trace Module .......................
                     4-074
             4.2.2.4.1.1 Functional Specification .......
                         4-074
             4.2.2.4.1.2 Module Interface ...............
                         4-074
             4.2.2.4.1.3 Module Components ..............
             4-075


             4.2.2.4.1.4 Data Description ...............
             4-075
             4.2.2.4.1.5 Module Design ..................
             4-076

           4.2.2.4.2 Trace Log CIF Module ...............
                     4-104
             4.2.2.4.2.1 Functional Specification .......
                         4-104
             4.2.2.4.2.2 Module Interface ...............
                         4-104
             4.2.2.4.2.3 Module Components ..............
                         4-104
             4.2.2.4.2.4 Data Description ...............
                         4-105
             4.2.2.4.2.5 Module Design ..................
                         4-106

         4.2.2.5  Common Subpackage Data ................
         4-123
         4.2.2.6  Common Subpackage Procedures ..........
         4-128
           4.2.2.6.1 Create Trace CIF Procedure .........
                     4-128
           4.2.2.6.2 Terminate CIF Procedure ............
                     4-128
           4.2.2.6.3 Send Trace CIF Procedure ...........
                     4-128
           4.2.2.6.4 Dismantle Request Procedure ........
                     4-129

         4.2.2.7  Subpackage Interface ..................
         4-138
           4.2.2.7.1 Close Down Flag ....................
           4-138

     4.3 MEMORY LAY OUT .................................
         4-139


                        1̲ ̲ ̲G̲E̲N̲E̲R̲A̲L̲



1.1      P̲U̲R̲P̲O̲S̲E̲ ̲A̲N̲D̲ ̲S̲C̲O̲P̲E̲

         The package specification for logging is written to
         fulfil the following objectives:

         1)  To provide detailed definition of the package functions
             and software architecture.

         2)  To provide user operational and development personnel
             details of the ongoing analysis.

         3)  To define in detail the interfaces with other packages
             and to describe their facilities.

         The design specification is a software description
         of the LOG package, down to a level where all modules
         are defined.

         Higher level design specifications can be found in
         the system design document.

         The application interfaces to LOG are described in
         this document. 

         All interfaces and data are described in detail in:

         -   CPS/ICD/009  Software Interface Control Document

         -   CPS/DBD/001  Database Design Document





1.2      A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲ ̲A̲N̲D̲ ̲P̲R̲O̲J̲E̲C̲T̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲S̲



1.2.1    A̲p̲p̲l̲i̲c̲a̲b̲l̲e̲ ̲D̲o̲c̲u̲m̲e̲n̲t̲s̲

         -   CPS/210/SYS/0001  CAMPS System Requirements
         -   CPS/SDS/029       CAMPS System Function
         -   CPS/SDS/030       Storage and Retrieval
         -   CPS/SDS/033       Traffic Handling
         -   CPS/DBD/001       Data Base Design Document
                               Document
         -   CPS/ICD/009       Software Interface Control
         -   CPS/SPS/035       Supervisor VDU
         -   CPS/SDS/036       Supervisor Printer
         -   CPS/SDS/037       MDCO VDU
         -   CPS/SDS/038       MSO VDU
         -   CPS/SDS/039       User VDU
         -   CPS/SDS/040       OCR
         -   CPS/SDS/041       Printer



1.2.2    P̲r̲o̲j̲e̲c̲t̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         N/A.



1.3      T̲E̲R̲M̲S̲ ̲A̲N̲D̲ ̲A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲



1.3.1    T̲e̲r̲m̲s̲

         Applications (TEP,THP,SSC,CSF) - packages are TEP,
         THP, SSC and CSF which contribute with log information
         to the LOG package.





1.3.2    A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲

         CIF     CAMPS Information File 
         CSF     CAMPS System Functions
         SAR     Storage and Retrieval
         MMS     Storage and File Management 
         SSC     System Status and Control
         TEP     Terminal Package
         MDCO    Message Distribution Control Operator
         MSO     Message Service Operator
         TOS     Terminal Operating System
         DAMOS   CR80D Advanced Multiprocessor Operating System
         PD      Preliminary Design
         SP      Subpackage
         LOG     Logging Package


                2̲ ̲ ̲S̲U̲M̲M̲A̲R̲Y̲ ̲O̲F̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲



2.1      P̲A̲C̲K̲A̲G̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲

         The tasks of the LOG package are:

         a)  Receive log records from applications.

         b)  Send the incoming log information to TEP for printout.

         c)  Store the log information by means of SAR.

         d)  Trace log records requested by TEP using SAR to
             retrieve the log CIF-cif. in question.


         A chart with the LOG package and its inter-relationships
         with other packages is shown on fig. 2.1-1.

         Explanation to the inter-relationships chart fig. 2.1-1:

         No 1:   The application transfers the log records to
                 LOG.

         No 2:   When a specific log record is safely stored,
                 an acknowledge is returned.

         No 3:   Close down command from SSC

         No 4:   Acknowledge on close down command

         No 5:   The incoming log records are transferred to
                 the TEP supervisor log print queue.

         No 6:   Request to CSF for creation of log CIF.

         No 7:   Return of the created log CIF-ref.

         No 8:   Append log record to CSF.

         No 9:   Set-up time monitor in CSF.

         No 10:  Receive time out from time monitor.



         No 11:  Request SAR to store the log CIF.

         No 12:  TEP request LOG to retrieve log records.

         No 13:  LOG request SAR to find a specified log 
                   CIF-ref.

         No 14:  Return of requested log CIF-ref.

         No 15:  Retrieve log records from disk.

         No 16:  Return the traced log records.

















































            Fig. 2.1-1…01…LOG Inter-Relationship.


2.2      P̲A̲C̲K̲A̲G̲E̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲S̲



2.2.1    M̲a̲i̲n̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲a̲t̲ ̲N̲o̲r̲m̲a̲l̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲

         The main functions at normal operation are:

         a)  Collection of log records from TEP THP, SSC and
             CSF.
             The log records are transferred to the LOG package
             via buffers and queue elements.

         b)  Append the collected log records.
             The collected log records are appended to the log
             CIF.
             Every 10 minutes or when the log CIF runs full
             or on supervisor request the present used log CIF-ref.
             is stored by SAR and a new requested.
             Log records are stored online for a period of at
             least 24 hours and offline for at least 30 days.

         c)  Log record printout.
             The incoming log records are queued for printout
             contained in a log CIF to the supervisor log print
             queue.

         d)  Trace of stored log information.
             The stored log information is retrieved and traced
             on supervisor request. The trace command and trace
             keys are sent to LOG via the TEP package.
             The requested log records are appended in a trace
             CIF and the trace CIF-ref. is queued in the supervisor
             print queue.


2.2.2    F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲R̲e̲s̲p̲o̲n̲s̲i̲b̲i̲l̲i̲t̲i̲e̲s̲



2.2.2.1  I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲,̲ ̲C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ ̲a̲n̲d̲ ̲R̲e̲s̲t̲a̲r̲t̲





2.2.2.1.1    I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲a̲n̲d̲ ̲R̲e̲s̲t̲a̲r̲t̲

         The initialize and restart software is placed at the
         LOG package start up entry point.  



2.2.2.1.1.1  S̲t̲a̲r̲t̲-̲u̲p̲ ̲T̲y̲p̲e̲s̲

         There are two types of start up in the LOG package.
          At start up SSC identify the type.

         a)  I̲n̲i̲t̲i̲a̲l̲i̲s̲e̲ ̲S̲t̲a̲r̲t̲-̲u̲p̲                     

         In this start up type the LOG package data is initialised.
         The coroutines are created and started. No recovery
         actions are taken.

         The following SSC start up types will cause a initialise
         start up:

         DEAD1, DEAD2 and COLD.

         b) R̲e̲c̲o̲v̲e̲r̲y̲ ̲S̲t̲a̲r̲t̲-̲U̲p̲

         After switch-over and total system error the recovery
         start-up will be activated.  The present used log CIF
         is recovered and added the last saved log records from
         the fast log file.

         The following SSC start-up types will cause a recovery
         start-up action:

         WARM1 and WARM2




2.2.2.1.1.2  L̲o̲g̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲

         Initialization of the log package is divided into a
         global part including all subpackages and a part unique
         to each subpackage.

         The global part of the initialize software is placed
         outside the subpackages. It recognizes the startup
         type, create and starts the coroutines.The global initialise
         is described in section 4.1.

         The subpackage initialization is described in section
         4.2.1.4.1.5 and 4.2.2.4.1.5.



2.2.2.1.2    C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲

         The close down software is resident in the COLLECT
         Sub-Package

         When COLLECT receives a close down command from SSC,
         the following actions are taken:

         a)  Empty incoming log queue.

         b)  Append the log records to the log CIF.

         c)  Store log CIF via SAR

         d)  Send completion code to SSC.




2.2.2.2  C̲h̲e̲c̲k̲ ̲P̲o̲i̲n̲t̲i̲n̲g̲ ̲a̲n̲d̲ ̲R̲e̲c̲o̲v̲e̲r̲y̲



2.2.2.2.1    C̲h̲e̲c̲k̲ ̲P̲o̲i̲n̲t̲i̲n̲g̲

         The present used log CIF is checkpointed on disk.



2.2.2.2.2    R̲e̲c̲o̲v̲e̲r̲y̲

         The recovery actions are executed when a recovery start-up
         occur.

         There are two recovery start-up types:  Warm 1 and
         Warm 2 but the recovery action for LOG is the same.

         The present used log CIF is recovered.

         The last stored log records are recovered from the
         fast log disc file and appended to the log CIF. The
         log CIF is terminated and stored via SAR. Max. one
         log record can be lost!



2.2.2.3  E̲r̲r̲o̲r̲ ̲D̲e̲t̲e̲c̲t̲i̲n̲g̲ ̲a̲n̲d̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         Errors detected by LOG are:

         a)  Error in the incoming log record queue element.

         b)  Error in trace commands and trace keys from TEP.

         E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         All errors are reported to SSC.

         Error a:    The incoming log record is sent to the
                     SSC garble queue and a completion code
                     is returned to the sender.

         Error b:    The command is deleted and a completion
                     code returned to TEP.



2.2.2.4  I̲n̲t̲e̲g̲r̲i̲t̲y̲ ̲o̲f̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲

         To avoid errors in the log trace mechanism the incoming
         log records are deleted if errors are found in the
         log parameters or in the queue element referencing
         the log record buffer. A negative completion code will
         be returned to the sender and the queue element in
         question sent to the SSC garble function.



2.2.2.5  D̲a̲t̲a̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲

         The collection of log records is done by means of queue
         elements and the buffer functions implemented by CSF.
          The log records are transferred to the incoming log
         queue by sending a queue element with a reference to
         a log record buffer.

         When a log record is received by LOG, an acknowledge
         queue element is returned to the log record sender
         when the log record is safely stored.



2.2.2.6  S̲e̲c̲u̲r̲i̲t̲y̲

         No security action is performed by LOG.



2.3      C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲



2.3.1    T̲i̲m̲i̲n̲g̲

         Every 10 minutes, the presently used CIF will be closed
         and stored.  This action is only taken if the CIF contains
         log records.

         Log records are stored online for a period of at least
         24 hours.

         Log records are stored offline for a period of at least
         30 days.



2.3.1.1  C̲o̲l̲l̲e̲c̲t̲ ̲R̲u̲n̲ ̲T̲i̲m̲e̲

         The CPU time used by LOG during the log collect procedure:

         a)  For each log record, validated,
             and queued for print out             :       1
                                                        ms

         b)  storage of each log record
             on disk                              :       0.2
                                                      ms

         c)  Storage of old log CIF and re
             quest of new log CIF every 10 min.   :       0.1
                                                      ms

         Estimated average CPU time used by
         LOG for each received log record         :       1.1
                                                      ms

         Estimated CPU time used by LOG in
         a busy min.                              :     160
                                                        ms

         Note that it is CPU time not response time.

         Number of system and spplication call for each received
         log records:

         IOS fast disc file access                :   1    
                                                      times
         CSF log CIF access                       :   0,2  
                                                      times
         SAR store log CIF                        :   0,005
                                                      times
         QMON receive, send and dismantle qel.    :   3    
                                                      times




2.3.1.2  T̲r̲a̲c̲e̲ ̲R̲u̲n̲ ̲T̲i̲m̲e̲

         The average CPU time used by LOG,
         tracing a ten busy minute log CIF 
         is estimated to                          :     100
                                                        ms

         This only includes the CPU time used by LOG. It is
         not response time.

         The trace procedure is executed in such a way that
         no significant performance reduction occurs.



2.3.2    T̲h̲r̲o̲u̲g̲h̲p̲u̲t̲

         The amount of log records are estimated to be 145 log
         records per busy minute, 7000 log records per busy
         hour and 35000 per busy 24 hours.



2.3.3    F̲l̲e̲x̲i̲b̲i̲l̲i̲t̲y̲

         The modularity of the LOG package facilitates implementation
         of changes in the log record format and trace format
         as well as changes in the log record store timing.



2.3.4    A̲c̲c̲u̲r̲a̲c̲y̲

         Not applicable to LOG.

         No calculations or data manipulation are performed
         by LOG.










                     3̲ ̲ ̲E̲N̲V̲I̲R̲O̲N̲M̲E̲N̲T̲S̲



3.1      E̲Q̲U̲I̲P̲M̲E̲N̲T̲

         The software within the LOG package is online resident
         in one processing unit. 

         Main memory data area consists of buffer and data area.
          Main memory buffer area size will be 1000 words. 
         Main memory data area size will be 900 words.


3.2      S̲O̲F̲T̲W̲A̲R̲E̲



3.2.1    S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The system software environment to LOG are:

         -   CAMPS System Function
         -   Message Management System



3.2.2    D̲e̲v̲e̲l̲o̲p̲m̲e̲n̲t̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         Development support software is standard DAMOS and
         TOS resident in a single CR 80D.



3.3      I̲N̲T̲E̲R̲F̲A̲C̲E̲



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

         There are no external interfaces to LOG.



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

         An interface overview is shown in figure 3.3.2-1.



3.3.2.1  A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The LOG package receives log records from TEP, THP,
         SSC and CSF. This interface is referred to as application
         package interface.

         The application package interface is implemented by
         means of queue elements and the buffer function implemented
         by CSF.

         The buffers are used to transport the log records from
         the applications to LOG.

         When a log record is safely stored an acknowledge is
         returned to the sender in an answer queue.



3.3.2.2  S̲S̲C̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The interface to SSC is implemented by means of queues.
          The queues are used to:

         a)  Transfer close down commands from SSC

         b)  Send close down completion codes to SSC



3.3.2.3  T̲E̲P̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         L̲o̲g̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲

         The interface to TEP is implemented by means of queues
         and log CIFs.  The CIF's may contain up to 558 log
         records waiting for printout.

         Incoming log records are stored in CIFs and queue elements
         with CIF-refs. are sent to the TEP printout queue.

         L̲o̲g̲ ̲T̲r̲a̲c̲e̲

         Log trace commands are sent to LOG in a buffer via
         a queue.  The queue elements contain pointers to buffers
         with trace keys.  The traced log records are stored
         in a trace CIF and the CIF-ref. is returned to TEP
         in a queue element.


3.3.2.4  C̲S̲F̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The interface to CSF is implemented by means of monitor
         calls.

         The monitor calls are used e.g. when requesting for
         a queue element and time out.

         Please refer to CPS/ICD/009.



3.3.2.5  S̲A̲R̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The SAR interface is implemented with queues.

         The queues are used to:

         a)  Request SAR for a CIF-ref.

         b)  Receive CIF-ref. from SAR.

         c)  Request SAR for cataloguing and storage of a CIF.

         Refer to CPS/ICD/009 and section 4.1.7.2.5 for a more
         detailed description.


































               Fig. 3.3.2-1…01…LOG Interfaces


3.4      F̲U̲N̲C̲T̲I̲O̲N̲S̲ ̲M̲A̲I̲N̲T̲A̲I̲N̲E̲D̲ ̲B̲Y̲ ̲O̲T̲H̲E̲R̲ ̲P̲A̲C̲K̲A̲G̲E̲S̲

         The functions maintained by other packages are:

         -  Error handling by SSC
         -  close down by SSC


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



4.1      P̲A̲C̲K̲A̲G̲E̲ ̲O̲V̲E̲R̲V̲I̲E̲W̲

         The main events in the LOG package are shown by means
         of a diagram fig. 4.1-1 and appertaining text.

         It is natural to divide the events in a log collecting
         part and a log tracing part.

         L̲O̲G̲ ̲C̲O̲L̲L̲E̲C̲T̲

         L̲o̲g̲ ̲R̲e̲c̲o̲r̲d̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲ - The log information generated
         by the applications is sent to the LOG package via
         queue elements and buffers.

         A̲p̲p̲e̲n̲d̲ ̲l̲o̲g̲ ̲r̲e̲c̲o̲r̲d̲s̲ - The collected log records are
         appended to a created CIF when log time and log record
         type is added.

         S̲t̲o̲r̲e̲ ̲l̲o̲g̲ ̲C̲I̲F̲ - The log CIFs are stored with 10 minute
         intervals and new log CIFs are created.

         SAR catalogs the CIF-ref. for later retrieval.

         L̲O̲G̲ ̲T̲R̲A̲C̲E̲

         L̲o̲g̲ ̲t̲r̲a̲c̲i̲n̲g̲ - The supervisor's log trace requests are
         transferred via TEP to the LOG package.  A number of
         trace keys tells the log trace mechanisms, which of
         the stored log records to retrieve.

         R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲o̲f̲ ̲l̲o̲g̲ ̲C̲I̲F̲s̲ - The retrieved log CIFs are
         traced and the wanted log records selected.

         A̲p̲p̲e̲n̲d̲ ̲l̲o̲g̲ ̲r̲e̲c̲o̲r̲d̲s̲ - The selected log records are appended
         to an especially created CIF.

         T̲r̲a̲n̲s̲f̲e̲r̲ ̲l̲o̲g̲ ̲C̲I̲F̲-̲r̲e̲f̲.̲ ̲t̲o̲ ̲T̲E̲P̲ - The log CIF-ref. and
         a completion code is returned to TEP.








































 







                Fig. 4.1-1…01…Package Events


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̲



4.1.1.1  F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲B̲r̲e̲a̲k̲d̲o̲w̲n̲

         The functions implemented by LOG are separated in two
         groups:

         1)  Log collection functions
         2)  Log trace functions



4.1.1.1.1    L̲o̲g̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         Log records, generated by the applications, are transferred
         to the incoming log queue.  The incoming log records
         are read by the LOG application and four things happen:

         a)  The log record buffer is read and stored on the
             fast disk file.  When the file runs full the contents
             is appended to the log CIF.

         b)  An acknowledge is returned to the log record sender.

         c)  Every 10 minutes or on supervisors request the
             present log CIF is closed and stored via SAR. If
             the supervisor wants a print out of the latest
             collected log records a request is generated and
             sent to LOG via TEP.

         d)  The closed log CIF is sent to the supervisor log
             print queue for printout.

         S̲t̲o̲r̲a̲g̲e̲ ̲o̲f̲ ̲l̲o̲g̲ ̲C̲I̲F̲'̲s̲

         Every 10 minutes the present used log CIF is stored
         and catalogued via SAR. A new log CIF is requested
         from MMS. If no log records were appended to the log
         CIF, no action is taken.




4.1.1.1.2    L̲o̲g̲ ̲T̲r̲a̲c̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The stored log records may be retrieved with respect
         to specific trace keys and sent to supervisors position
         via TEP.  The following functions are implemented by
         LOG when log records are retrieved:

         a)  The trace command is received from TEP.

         b)  The pertinent time interval is computed and the
             CIF-refs. are retrieved via SAR.

         c)  The wanted log records are traced and appended
             to a trace CIF.

         d)  The trace CIF-ref is sent to TEP via a queue element
             when the trace action is completed. 
















































          Fig. 4.1.1.1.2-1…01…Functional Breakdown


4.1.2    S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The LOG package consists of two subpackages:

         1)  Log collect subpackage
         2)  Log trace subpackage

         The functions allocated to each of the subpackages
         correspond with the functional break-down in chapter
         4.1.1.1.

         The two subpackages are independent of one another
         and they have no common data area.

         The log Collect subpackage is divided in two modules:
         1)  Record Collect Module
         2)  Log CIF Handling Module.

         R̲e̲c̲o̲r̲d̲ ̲C̲o̲l̲l̲e̲c̲t̲ ̲M̲o̲d̲u̲l̲e̲

         The Record Collect Module receive and validate the
         incoming queue elements. The incoming log records are
         stored and an acknowledge returned to the sender.
         When the collect buffer runs full, a 10 mins. time
         out is received or a request log command is received
         the Log CIF Handling Module is called.

         L̲o̲g̲ ̲C̲I̲F̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲M̲o̲d̲u̲l̲e̲ 

         This module implement all log CIF relevant functions
         such as:

         -   store the collect buffer contents in the log CIF
         -   reset the collect buffer index pointer
         -   catalogue the present log CIF via SAR
         -   request a new log CIF
         -   send log CIF for print-out.  


         The Log Trace sub-package is divided in two modules:

         1)  Trace Module
         2)  Trace Log CIF Module.

         T̲r̲a̲c̲e̲ ̲M̲o̲d̲u̲l̲e̲

         The Trace Module is the main module. It received the
         trace command and validates it.  The requested log
         CIFs are retrieved via SAR and each log CIF traced
         via a call to the Trace Log CIF Module.

         T̲r̲a̲c̲e̲ ̲L̲o̲g̲ ̲C̲I̲F̲ ̲M̲o̲d̲u̲l̲e̲

         This module implement log CIF trace.

         The traced log records are collected in a trace CIF
         and sent for printout.



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̲

         There is no data flow between the subpackages. The
         data flow and control logic is described in section
         4.2 for each subpackage.

         A close down flag is set by the COLLECT subpackage
         during close down.  It is used by both subpackages.



















































                 Fig 4.1.2. S/W BREAKDOWN





 4.1.4     C̲o̲m̲m̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

     Refer to CPS/DBD/001 for global types

     TYPE QEL ̲REF               :   QEL ̲REFERENCE
     TYPE OBJECT                :   OBJECT ̲TYPE
     TYPE CC                    :   COMPLETION ̲CODE
     TYPE CLOSE ̲DOWN            :   BOOLEAN
     TYPE LOG ̲RECORD ̲TYPE       :   (INIT ̲A ̲C1 ̲G1 ̲G3 ̲M,
                                    FINAL ̲A ̲C1 ̲G1 ̲G3, FINAL
                                    ̲M,
                                    INIT ̲O ̲H, FINAL ̲O ̲H,
                                    FINAL ̲B ̲E1 ̲E2 ̲G2, FINAL
                                    ̲D ̲F,
                                    FINAL ̲P1, FINAL ̲P2,
                                    FINAL ̲N ̲Q ̲R,
                                    INIT ̲DUMMY, FINAL ̲K1
                                    ̲I1,
                                    FINAL ̲K2, FINAL ̲I2,
                                    FINAL ̲SUPV,
                                    FINAL ̲MDCO, FINAL ̲MSO,
                                    PRINTER ̲LOG, OCR ̲LOG,
                                    OUT ̲VALID ̲LOG, IN ̲VALID
                                    ̲LOG,
                                    IN ̲VALID ̲LOG, IN ̲DISC
                                    ̲LOG,
                                    OUT ̲VALID ̲PTP ̲LOG, INIT
                                    ̲OUT ̲CTS,
                                    INIT ̲IN ̲CTS, INIT ̲COM
                                    ̲NOT,
                                    FINAL ̲OUT ̲CTS, FINAL
                                    ̲IN ̲CTS, FINAL ̲COM ̲NOT)

     TYPE  SERIAL ̲NO ̲TYPE        :  INTEGER
     TYPE  LOG ̲TYPE              :  LOG ̲RECORD ̲TYPE
     TYPE  TERMINAL ̲DESIGNATOR   :  TERMINAL ̲DESIGNATOR
                                    ̲TYPE
     TYPE  DEVICE ̲DESIGNATOR     :  DEVICE ̲DESIGNATOR ̲TYPE
     TYPE  TRANSACTION ̲SERIAL ̲NO :  TRANSACTION ̲SERIAL ̲NO
                                    ̲TYPE
     TYPE  FORMAT ̲ID             :  FORMAT ̲ID ̲TYPE
     TYPE  LOG ̲TIME              :  TIME ̲TYPE
     TYPE  ITEM ̲1 ̲REF ̲ID         :  ITEM ̲REF ̲ID ̲TYPE
     TYPE  EXIT ̲CAUSE            :  EXIT ̲CAUSE ̲TYPE
     TYPE  CLASSIFICATION        :  CLASSIFICATION ̲TYPE
     TYPE  SPEC ̲HAND ̲CAT         :  SPEC ̲HAND ̲TYPE
     TYPE  TRANSACTION ̲START ̲TIME:  TIME ̲TYPE
     TYPE  ITEM ̲2 ̲REF ̲ID         :  ITEM ̲REF ̲ID ̲TYPE
     TYPE  MONTH ̲DAY             :  TIME ̲TYPE
     TYPE  DECISION ̲CODE         :  DECISION ̲CODE ̲TYPE
     TYPE  USER ̲IDENTIF          :  USER ̲ID ̲TYPE
     TYPE  PROBLEM ̲CODE          :  PROBLEM ̲CODE ̲TYPE
     TYPE  SYSTEM ̲PRINT ̲OUT ̲NO   :  SYSTEM ̲PRINT ̲CONT ̲NO
                                    ̲TYPE
     TYPE  CHANNEL ̲DESIGNATOR    :  CHANNEL ̲DESIGNATOR ̲TYPE
     TYPE  CHANNEL ̲SERIAL ̲NO     :  CHANNEL ̲SERIAL ̲NO ̲TYPE
     TYPE  PRECEDENCE            :  PRECEDENCE ̲TYPE
     TYPE  CALLING ̲STATION       :  STATION ̲ID ̲TYPE
     TYPE  STATION ̲SERIAL ̲NO     :  STATION ̲SERIAL ̲NO ̲TYPE
     TYPE  FILING ̲TIME           :  TIME ̲TYPE
     TYPE  SIC                   :  SIC ̲GROUP ̲TYPE
     TYPE  MESSAGE ̲TYPE ̲TYPE     :  MAIN ̲TYPE


     VAR   EXP ̲CHANNEL ̲SERIAL ̲NO   :  CHANNEL ̲SERIAL ̲NO
                                      ̲TYPE
     VAR   TIME ̲STAMP ̲SEND         :  TIME ̲TYPE


    TYPE OBJECT ̲TYPE =   (VIEW, BUFFER, TIMEOUT, SINGLE)

    TYPE LOG ̲CIF ̲ADM ̲FIELD =           LOG ̲CIF ̲ADM ̲TYPE

    TYPE TRAFFIC ̲LOG=
         RECORD
             LOG ̲TYPE:LOG ̲RECORD ̲TYPE
             LOG ̲TIME:TIME ̲TYPE;
             DESIGNATOR: DESIGNATOR ̲TYPE;
             SERIAL ̲NO:  SERIAL ̲NO ̲TYPE;
             MESSAGE ̲TYPE: MESSAGE ̲TYPE ̲TYPE;
             ITEM ̲1 ̲REF ̲ID: ITEM ̲REF ̲ID ̲TYPE;
             PRECEDENCE: PRECEDENCE ̲TYPE;
             CALLING ̲STATION:STATION ̲ID ̲TYPE;
             STATION ̲SERIAL ̲NO:STATION ̲SERIAL ̲NO ̲TYPE;
             FILING ̲TIME: TIME ̲TYPE;
             CLASSIFICATION: CLASSIFICATION ̲TYPE;
             SPEC ̲HAND ̲CAT: SPEC ̲HAND ̲TYPE;
             SIC: SIC ̲GROUP ̲TYPE;
             PROBLEM ̲CODE: PROBLEM ̲CODE ̲TYPE;
             EXP ̲CHANNEL ̲SERIAL ̲NO:CHANNEL ̲SERIAL ̲TO ̲TYPE
         END;

    TYPE CTS ̲ATOMAL ̲DELETION ̲LOG =
         RECORD
             LOG ̲TYPE:LOG ̲RECORD ̲TYPE;
             LOG ̲TIME:TIME ̲TYPE;
             CHANNEL ̲DESIGNATOR:CHANNEL ̲DESIGNATOR ̲TYPE;
             CHANNEL ̲SERIAL ̲NO:CHANNEL ̲SERIAL ̲NO ̲TYPE;
             MESSAGE ̲TYPE:MESSAGE ̲TYPE ̲TYPE
             ITEM ̲1 ̲REF ̲ID:ITEM ̲REF ̲ID ̲TYPE;
             CALLING ̲STATION:STATION ̲ID ̲TYPE;
             STATION ̲SERIAL ̲NO:STATION ̲SERIAL ̲NO ̲TYPE;
             FILING ̲TIME:TIME ̲TYPE;
             TERMINAL ̲DESIGNATOR:TERMINAL ̲DESIGNATOR ̲TYPE;
             TIME ̲STAMP ̲SEND:TIME ̲TYPE
         END;




    TYPE VDU ̲USER ̲LOG=
         RECORD
             LOG ̲TYPE:LOG ̲RECORD ̲TYPE
             LOG ̲TIME:TIME ̲TYPE;
             TERMINAL ̲DESIGNATOR:TERMINAL ̲DESIGNATOR ̲TYPE;
             TRANSACTION ̲SERIAL ̲NO:TRANSACTION ̲SERIAL ̲NO
             ̲TYPE;
             FORMAT ̲ID:TEP ̲FORMAT ̲ID ̲TYPE;
             ITEM ̲1 ̲REF ̲ID:ITEM ̲REF ̲ID ̲TYPE;
             EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPE;
             CLASSIFICATION:CLASSIFICATION ̲TYPE;
             SPEC ̲HAND ̲CAT:SPEC ̲HAND ̲TYPE;
             TRANSACTION ̲START ̲TIME:TIME ̲TYPE;
             ITEM ̲2 ̲REF ̲ID:ITEM ̲REF ̲ID ̲TYPE;
             MONTH ̲DAY:TIME ̲TYPE;
             DECISION ̲CODE:DECISION ̲CODE ̲TYPE
         END;

    TYPE VDU ̲SECURITY ̲LOG=
         RECORD
             LOG ̲TYPE:LOG ̲RECORD ̲TYPE;
             LOG ̲TIME:TIME ̲TYPE;
             TERMINAL ̲DESIGNATOR:TERMINAL ̲DESIGNATOR ̲TYPE;
             TRANSACTION ̲SERIAL ̲NO:TRANSACTION ̲SERIAL ̲NO
             ̲TYPE;
             FORMAT ̲ID:TEP ̲FORMAT ̲ID ̲TYPE;
             EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPE;
             TRANSACTION ̲START ̲TIME:TIME ̲TYPE;
             USER ̲ID:USER ̲ID ̲TYPE
         END;

    TYPE PRINTER ̲OCR ̲LOG=
         RECORD
             LOG ̲TYPE:LOG ̲RECORD ̲TYPES;
             LOG ̲TIME:TIME ̲TYPE;
             DEVICE ̲DESIGNATOR:DEVICE ̲DESIGNATOR ̲TYPE;
             TRANSACTION ̲SERIAL ̲NO:TRANSACTION ̲SERIAL ̲NO
             ̲TYPE;
             FORMAT ̲ID:TEP ̲FORMAT ̲ID ̲TYPE;
             ITEM ̲1 ̲REF ̲ID:ITEM ̲REF ̲ID ̲TYPE;
             EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPE;
             CLASSIFICATION:CLASSIFICATION ̲TYPE;
             SPEC ̲HAND ̲CAT:SPEC ̲HAND ̲TYPE;
             TRANSACTION ̲START ̲TIME:TIME ̲TYPE;
             SYSTEM ̲PRINT ̲CONT ̲NO:SYSTEM ̲PRINT ̲CONT ̲NO
             ̲TYPE
         END;




         TYPE VDU ̲SUPV ̲LOG=
              RECORD
                 LOG ̲TYPE:LOG ̲RECORD ̲TYPE
                 LOG ̲TIME:TIME ̲TYPE;
                 TERMINAL ̲DESIGNATOR:TERMINAL ̲DESIGNATOR ̲TYPE;
                 TRANSACTION ̲SERIAL ̲NO:TRANSACTION ̲SERIAL ̲NO
                 ̲TYPE;
                 FORMAT ̲ID:TEP ̲FORMAT ̲ID ̲TYPES;
                 ITEM ̲1 ̲REF ̲ID:ITEM ̲REF ̲ID ̲TYPE;
                 EXIT ̲CAUSE:EXIT ̲CAUSE ̲TYPES;
                 TRANSACTION ̲START ̲TIME:TIME ̲TYPE;
                 MONTH ̲DAY:TIME ̲TYPE;
                 PROBLEM ̲CODE:PROBLEM ̲CODE ̲TYPE
              END;


4.1.5    C̲o̲m̲m̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲



4.1.5.1. I̲n̲i̲t̲i̲a̲l̲i̲s̲e̲ ̲L̲o̲g̲ ̲P̲a̲c̲k̲a̲g̲e̲

         F̲l̲o̲w̲c̲h̲a̲r̲t̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         1)   INITIALISE LOG PACKAGE

         D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ 

         - Refer figure 4.1.5.1-1

         The start up type from SSC is defined in register 0
         The start up type indicate recovery action or not
         The coroutines are initialised and started


         LOG START UP ENTRY POINT

         INITIALIZE ̲LOG ̲PACKAGE
                 Start up type is in register zero
         PRE ̲INITIALIZE

         CASE START ̲UP ̲TYPE OF

              DEAD1  OR
              DEAD2  OR  ?
              COLD

              WARM1 OR
              WARM2      ?       L̲O̲G̲ ̲C̲I̲F̲ ̲R̲E̲C̲O̲V̲E̲R̲Y̲


              OTHER?

         END CASE

         INIT ̲COROUTINE(LOG ̲COLLECT ̲CO,PRIO1,SUB1,COLLECT ̲ID,
                                             LOG ̲COLLECT ̲ADD)

         INIT ̲COROUTINE(LOG ̲TRACE ̲CO,PRIO2,SUB2,TRACE ̲ID
                                           LOG ̲TRACE ̲ADD)







          Fig. 4.1.5.1-1 Log Package Initialise




L̲O̲G̲ ̲C̲I̲F̲ ̲R̲E̲C̲O̲V̲E̲R̲Y̲

CASE     RECEIVE ̲FIRST ̲QEL       (TRUE,DUMMY ̲Q)
                                 (LOG ̲CIF ̲VIEW ̲REF,COLL ̲QEL,COLL
                                 ̲SUBQ,CC):

         ERROR?      ANALYSE ̲ERROR(CC,0)

         OK?

END CASE

CASE READ BYTES (LOG ̲SAVE ̲FD,LOG ̲SAVE ̲FILEADDRESS,
               COLLECT ̲BUFFER)
              (LOG ̲SAVE ̲FILEADDRESS,CC):

         ERROR?  ANALYSE ̲ERROR   (CC,0)

         OK?

END CASE

INITIALISE LOG ̲CIF ̲FIELD ̲LIST ̲2

PUT ̲LOG ̲CIF(LOG ̲CIF ̲FIELD ̲LIST ̲2,LOG ̲CIF ̲VIEW ̲REF)

NO ̲OF ̲LOG ̲RECORDS=COLLECT ̲BUFFER.NO ̲OF ̲LOG

STORE ̲LOG ̲CIF(LOG ̲CIF ̲VIEW ̲REF,NO ̲OF ̲LOG ̲RECORDS)

















             Fig. 4.1.5.1-2 Log Cif Recovery






4.1.6    G̲l̲o̲b̲a̲l̲ ̲D̲a̲t̲a̲

         Refer to CPS/DBD/001


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



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

         There are no external interfaces to the LOG package.



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

         An interface overview is given in fig. 4.1.7.2-1. 
         It covers all the LOG interfaces to other packages.

         Each LOG interface is described in a separate chapter.
         For detailed description refer to CPS/ICD/009.



4.1.7.2.1     A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         Collection of log records is performed by means of
         queue elements and the buffer function, implemented
         by CSF.  When a log record is generated, the application
         (SSC, THP, CSF, TEP) must reserve a queue element and
         a buffer.  The log parameters are written in the reserved
         buffer and the queue element is sent to the SYSTEM
         ̲Q with a sent request command.

         When log records are received by LOG, the log time
         and log record type is added to the log record parameters.

         An acknowledge queue element will be sent to the application
         answer queue, when the log record is properly stored.

         For detailed description refer to CPS/ICD/009 sec.
         4.2.2.3 and 5.4.

















































               Fig. 4.1.7.2-1…01…Log Interface


         Queue names used in fig. 4.1.7.2-1.

                                         MAIN ̲Q          SUB
                                                         ̲Q

Q1       System queue                    SYSTEM ̲Q        0
Q1,1     Incoming command queue          SYSTEM ̲Q        IN
                                                         ̲COMM
                                                         ̲Q
Q1,2     Incoming log queue              SYSTEM ̲Q        IN
                                                         ̲LOG
                                                         ̲Q
Q1,3     Timeout queue                   SYSTEM ̲Q        TIM
                                                         ̲Q
Q2,1     Trace command queue             TRACE ̲Q         COMM
                                                         ̲Q(1)
Q2,2     Trace reply queue               TRACE ̲Q         REPLY
                                                         ̲Q(2)
Q3       Retrieval response queue        RET ̲RESP ̲Q      SUB
                                                         ̲0
Q4       Close down acknowlegde          PCR ̲RQ          LOG
                                                         ̲RQ
Q5       Application response queues
Q6       Incoming storage queue          ISQ             SUB
                                                         ̲Q ̲1
Q7       Retrieval request queue         RRQ             SUB
                                                         ̲Q ̲1
Q8       Trace command completion        SVUP ̲CREPQ      0
Q9       Return traced log records       SPIP ̲LOGQ       0


























4.1.7.2.2    I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲S̲S̲C̲

         The queue interface to SSC is used to receive a close
         down command and to return a close down completion
         code.

         For detailed description refer CPS/ICD/009 sec. 4.2.1.3.1.



4.1.7.2.3    I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲T̲E̲P̲

         L̲o̲g̲ ̲P̲r̲i̲n̲t̲

         A log CIF is sent to the supervisor log print queue
         every 10 minutes or on supervisor request.

         L̲o̲g̲ ̲p̲r̲i̲n̲t̲ ̲r̲e̲q̲u̲e̲s̲t̲

         A log print request from the supervisor, sent to the
         incoming command queue, will cause an immediate termination
         of the present log CIF. The log CIF-ref is sent to
         the supervisor log print queue and a command completion
         code is returned to the supervisor.

         L̲o̲g̲ ̲T̲r̲a̲c̲e̲

         The stored log records may be traced on supervisor
         request. Trace command and trace keys are transferred
         to LOG by means of queue elements and the buffer function
         implemented by CSF.

         The traced log records will be copied in a CIF and
         the trace CIF-ref. and a completion code is returned
         in a queue element to the supervisor.

         If the requested log records cannot be traced then
         a completion code indicating this is returned to TEP.

         For details refer to CPS/ICD/009 sec. 5.4.



4.1.7.2.4    I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲C̲S̲F̲ ̲a̲n̲d̲ ̲M̲M̲S̲

         The interface is implemented by means of monitor calls
         and queues.

         For further description please refer to CPS/ICD/009.



4.1.7.2.5    I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲S̲A̲R̲

         The interface to SAR is implemented with queues.  When
         LOG requests SAR to catalogue and store a CIF, the
         CIF-ref. and a SAR log type indicator is sent to the
         SAR incoming storage queue.  
         Refer CPS/ICD/009

         A queue interface is also used when LOG request SAR
         to retrieve CIF-refs.  A time interval and a SAR log
         type indicator is sent to the SAR retrieval request
         queue.  A completion code or CIF-ref. is returned to
         the retrieve response queue.



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

         The only subpackage interface is the close down flag.



4.2      S̲U̲B̲-̲P̲A̲C̲K̲A̲G̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲

         The LOG package is divided in two subpackages.

         The subpackages are :  4.2.1)  Log collect subpackage
                                4.2.2)  Log trace subpackage

         The subpackages are described in chapter 4.2.1 and
         4.2.2.



4.2.1    L̲o̲g̲ ̲C̲o̲l̲l̲e̲c̲t̲ ̲S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The log collect subpackage includes log record collection
         and storage.





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 functions for the log collect subpackage consists
         of four main functions and a number of sub functions.
          The main functions are:

         1)  Log record collection
         2)  Log record store
         3)  Log record printout
         4)  Log CIF store

         The Record Collect Module implement the log record
         collect function.


         The Log CIF Handling Module implement all log CIF relevant
         functions:

         -   store the collect buffer contents in the log CIF
         -   reset the collect buffer index pointer
         -   catalogue the present log CIF via SAR
         -   request a new log CIF
         -   send log CIF for printout



4.2.1.1.1    L̲o̲g̲ ̲R̲e̲c̲o̲r̲d̲ ̲C̲o̲l̲l̲e̲c̲t̲i̲o̲n̲

         Queue elements referencing a log record buffer are
         sent to the system queue. The queue elements and the
         buffer are read. The log record parameters are stored
         in the buffer and log time and log record type are
         added to the parameters. 

         A send reply queue element is returned to the reply
         queue.  The queue element contain the log record type
         and a completion code indicating proper storage of
         the log record.


4.2.1.1.2    L̲o̲g̲ ̲R̲e̲c̲o̲r̲d̲ ̲S̲t̲o̲r̲e̲

         The contents of the collect buffer is stored in the
         log CIF. This action occurs when:

         -   the collect buffer is full
         -   a 10 min.time out is received
         -   the supervisor request the latest received log
             records.





4.2.1.1.3    L̲o̲g̲ ̲R̲e̲c̲o̲r̲d̲ ̲P̲r̲i̲n̲t̲o̲u̲t̲

         A log CIF is sent for printout every 10 minutes or
         on supervisor request.



4.2.1.1.4    L̲o̲g̲ ̲C̲I̲F̲ ̲S̲t̲o̲r̲e̲

         The present used log CIF will be closed and catalogued
         via SAR when a 10 min. time out occurs or on supervisor
         request.  A new log CIF will then be created for online
         storage from MMS.



















































           Fig. 4.2.1.1-1…01…FUNCTIONAL BREAKDOWN


4.2.1.1.5    I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

         Ref. section 2.2.2.1.1. and 4.1.5.1



4.2.1.1.6    E̲r̲r̲o̲r̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲

         Ref. section 2.2.2.3.



4.2.1.1.7    C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲

         Ref. section 2.2.2.1.2.



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̲

         The collect subpackage consist of one coroutine performing
         the functions listed in section 4.2.1.1.

         The coroutine in the collect subpackage consist of
         two software modules.


         The Log Collect subpackage is divided in two modules:

         R̲e̲c̲o̲r̲d̲ ̲C̲o̲l̲l̲e̲c̲t̲ ̲M̲o̲d̲u̲l̲e̲

         The Record Collect module is the main module. It receives
         and validates all incomming queue elements and define
         the actions to perform.

         L̲o̲g̲ ̲C̲I̲F̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲M̲o̲d̲u̲l̲e̲

         All Log CIF relevant functions are implemented by this
         module.

         The module is called from the Record Collect Module.
         The call parameters decide the wanted action.



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 data flow is described in fig 4.2.1.3-1 and in
         section 4.2.1.4











































                      Fig.4.2.1.3-1






4.2.1.4  M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.4.1    R̲e̲c̲o̲r̲d̲ ̲C̲o̲l̲l̲e̲c̲t̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.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̲

         The Record Collect module receives and validates the
         incoming queue element.

         If the queue element references a log record buffer
         the log record data is stored in the collect buffer.
         The backup of the collect buffer will be updated on
         the fast disk file.
         When the collect buffer runs full a call to the Log
         CIF Handling module will cause a transfer of the buffer
         contents to the CIF.

         If the received queue element contains a time out or
         a supervisor CIF request, a call will be made to the
         Log CIF Handling module. 



4.2.1.4.1.2  M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The main module is not called from other modules.
         The interface is implemented via queues.
         Please refer to section 4.1.7.


4.2.1.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         SEND ̲GARBLE(CONTINUE, QERROR, COLL ̲QEL, ERR ̲INFO)

         Queue elements with errors are sent to the SSC garble
         queue via the SEND ̲GARBLE call to CSF.



4.2.1.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲s̲

         No specific module data is identified for this module.
         Refer section 4.2.1.5.



4.2.1.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Each of the flowgram figures are described shortly
         in this section:

         1)  M̲a̲i̲n̲ ̲F̲l̲o̲w̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-1 Main
             flowgram

             The following tasks are implemented in flow 1:

             -   Initialize, the collect subpackage is initialized,
                 expanded in flow 2.

             -   Get Next Command, from SSC, expanded in flow
                 5.

             -   Get Next Request, from the system queue, expanded
                 in flow 6.

             -   Process SSC Command, close down command,
                 (CIF HANDLING MODULE).

             -   Process Log, read and store incoming log records,
                 expanded in flow 7.

             -   Process Supervisor Command, sent the present
                 CIF for printout and store it via SAR,
                 (CIF HANDLING MODULE).

             -   Process Timeout, sent the present CIF for printout
                 and store it via SAR, (CIF ̲HANDLING MODULE).



             -   Send Garble, if queue elements with errors
                 are received they are sent to the SSC garble
                 queue, expanded in flow 11.

             -   Dismantle Request, dismantle CIF, buffers and
                 queue elements.

         2)  I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-2

             The log collect module is initialized.

             -   Collect buffer index and close down flag is
                 initialized.

             -   Main queue and sub-queue variables are initialized.

             -   Open Fast Disk File, the fast disk file is
                 opened, expanded in flow 3.

             -   Create New Log Cif, a new log cif is created,
                 (common procedure).

             -   Request Timeout, a ten minutes interval timeout
                 is requested, expanded in flow 4.

         3)  O̲p̲e̲n̲ ̲F̲a̲s̲t̲ ̲D̲i̲s̲k̲ ̲F̲i̲l̲e̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-3

             The fast disk file is opened and made ready for
             use. The fast disk file is used for temporary storage
             of collected log records.

         4)  R̲e̲q̲u̲e̲s̲t̲ ̲T̲i̲m̲e̲o̲u̲t̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-4

             A 10 minutes periodic timeout is requested. The
             timeout is used as a "close CIF command".

         5)  G̲e̲t̲ ̲N̲e̲x̲t̲ ̲C̲o̲m̲m̲a̲n̲d̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-5

             This is a dummy receive function used after a close
             down command as waiting point.



         6)  G̲e̲t̲ ̲N̲e̲x̲t̲ ̲R̲e̲q̲u̲e̲s̲t̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-6

             All incoming data to the system queue is received.
             The incoming data can be:

             -   SSC command, close down
             -   incoming log records
             -   supervisor command, request log CIF
             -   timeout, from time monitor

          7) P̲r̲o̲c̲e̲s̲s̲ ̲L̲o̲g̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-7

             In this flow the log collection function is implemented.

             -   Read Log Buffer, the incoming log buffer is
                 read, expanded in flow 8.

             -   The log type and the log time is added, expanded
                 in flow 9. The log record is stored on the
                 fast disk log file, if the collect buffer,
                 used for temporary storage of log records,
                 is full the contents is appended to the log
                 CIF.

             -   Print Log CIF, when the log CIF reaches the
                 max value, it is sent for printout, expanded
                 in flow 8.

             -   A new log CIF is created, when the present
                 log CIF is stored via SAR.

             -   Send APP ACK, an acknowledge is returned to
                 the log record sender, expanded in flow 10.


          8) R̲e̲a̲d̲ ̲L̲o̲g̲ ̲B̲u̲f̲f̲e̲r̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-8 

             The incoming log buffer is read into the collect
             buffer.



          9) R̲e̲a̲d̲ ̲L̲o̲g̲ ̲T̲i̲m̲e̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-9 

             The log time is read each time a log record is
             received from the applications. Log time is time
             type.

         10) S̲e̲n̲d̲ ̲A̲P̲P̲ ̲A̲C̲K̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-10

             An acknowledge is sent to the log record sender
             when it is properly stored.

         11) S̲e̲n̲d̲ ̲G̲a̲r̲b̲l̲e̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.1.5-11

             Queue elements with errors are sent to the SSC
             garble queue.


         F̲l̲o̲w̲g̲r̲a̲m̲ ̲L̲i̲s̲t̲

          1) Main Flow

          2) Initialize

          3) Open Fast Disk File

          4) Request Timeout

          5) Get Next Command

          6) Get Next Request

          7) Process Log

          8) Read Log Buffer

          9) Read Log Time

         10) Send APP ACK

         11) Send Garble




         LOG COLLECT

         INITIALIZE   2  

         LOOP

            CLOSE ̲DOWN EQ TRUE?  G̲E̲T̲ ̲N̲E̲X̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲   5

            G̲E̲T̲ ̲N̲E̲X̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲   6    


            CASE  COLL ̲QEL ̲ATTR.HEADER.MAINTYPE OF

                 SSC ̲COMMAND?  CIF ̲HANDLING (SSC ̲CLOSE ̲DOWN)(
                 )

                 INCOMING ̲LOG?      P̲R̲O̲C̲E̲S̲S̲ ̲L̲O̲G̲    7

                 SUPERVISOR ̲LOG ̲COMMAND? CIF ̲HANDLING(CIF ̲REQUEST)(
                 )

                 TIME ̲OUT?  CIF ̲HANDLING(TIME ̲OUT)( )  

                 OTHER? SEND GARBLE  11  APP.PARAMS.FLAG = NOT
                 ̲OK


            END CASE

            DISMANTLE REQUEST  (COLL ̲QEL, COLL ̲QEL ̲ATTR.OBJECT)

         END LOOP

















              Figure 4.2.1.4.1.5-1 MAIN FLOW



             INITIALIZE

             COLL ̲BUF ̲INDEX = 1

             CLOSE ̲DOWN = FALSE

             IN ̲Q. MAINQUEUE = SYSTEM ̲Q

             IN ̲Q. SUBQUEUE = 0

             CMD ̲Q.MAINQUEUE = SYSTEM ̲Q

             CMD ̲Q.SUBQUEUE = IN ̲COMM ̲Q

             O̲P̲E̲N̲ ̲F̲A̲S̲T̲ ̲D̲I̲S̲K̲ ̲F̲I̲L̲E̲ ̲  3

             CREATE ̲NEW ̲LOG ̲CIF   (LOG ̲CIF ̲ATTRIBUTES,
             LOG ̲CIF ̲Q ̲REF)

             T̲I̲M̲E̲ ̲O̲U̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲  4  (LOG ̲CIF ̲VIEW ̲REF)



























         Figure 4.2.1.4.1.5-2 INITIALIZE



         O̲P̲E̲N̲ ̲F̲A̲S̲T̲ ̲D̲I̲S̲K̲ ̲F̲I̲L̲E̲

         CASE  GETROOT (LOG ̲FSN, LOG ̲VOLN)
                     (LOG ̲ROOT ̲FD, CC):

             ERROR?  ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE

         CASE  LOOKUP    (LOG ̲ROOT ̲FD, LOG ̲SAVE ̲FILENAME)
                     (LOG ̲SAVE ̲FD, CC):

             ERROR?  ANALYSE ̲ERROR(CC, O)

             OK?


         END CASE

























              Figure 4.2.1.4.1.5-3 
               OPEN FAST DISK FILE


         R̲E̲Q̲U̲E̲S̲T̲ ̲T̲I̲M̲E̲O̲U̲T̲

         CASE  REQUEST TIMEOUT    (TIM ̲PARAMETER)
                                 (CC):

             ERROR?   ANALYSE ̲ERROR (CC, 0)

             OK?


         END CASE



































              Figure 4.2.1.4.1.5-4
                 REQUEST TIMEOUT


   G̲E̲T̲ ̲N̲E̲X̲T̲ ̲C̲O̲M̲M̲A̲N̲D̲

   CASE  RECEIVE ̲FIRST ̲QEL (TRUE, CMD ̲Q)
                           (COLL ̲QEL ̲ATTR, COLL ̲QEL,
                         COLL ̲SUB ̲Q, CC):

            ERROR?   ANALYSE ̲ERROR (CC, O)

            OK?


   END CASE



































              Figure 4.2.1.4.1.5-5
                GET NEXT COMMAND


         G̲E̲T̲ ̲N̲E̲X̲T̲ ̲R̲E̲Q̲U̲E̲S̲T̲

         CASE  RECEIVE ̲FIRST ̲QEL:(TRUE, IN ̲Q)
                              (COLL ̲QEL ̲ATTR, COLL
                              ̲QEL, COLL ̲SUBQ, CC):

             ERROR?    ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE



































              Figure 4.2.1.4.1.5-6
                GET NEXT REQUEST


   P̲R̲O̲C̲E̲S̲S̲ ̲L̲O̲G̲

   R̲E̲A̲D̲ ̲L̲O̲G̲ ̲B̲U̲F̲F̲E̲R̲ ̲  8

   INCREMENT NO ̲OF ̲LOG ̲RECORDS   "log record count
   pr cif

   COLLECT ̲BUFFER.RECS (COLL ̲BUF ̲INDEX).LOG ̲TYPE =
   COLL ̲QEL ̲ATTR.HEADER.SUBTYPE

   R̲E̲A̲D̲ ̲L̲O̲G̲ ̲T̲I̲M̲E̲ ̲  9

   INCREMENT COLL ̲BUF ̲INDEX

   PUT ̲LOG ̲DATA  (  ) (  )

   COLL ̲BUF ̲INDEX  LE  COLLECT ̲NO ̲OF ̲LOG ̲RECORDS?

   CIF ̲HANDLING(BUFFER ̲FULL) (  )

   S̲E̲N̲D̲ ̲A̲P̲P̲ ̲A̲C̲K̲   10




























              Figure 4.2.1.4.1.5-7
                   PROCESS LOG


   R̲E̲A̲D̲ ̲L̲O̲G̲ ̲B̲U̲F̲F̲E̲R̲ 

   BUF ̲SIZE = MAX ̲LOG ̲REC ̲SIZE-TYPE ̲TIME ̲SIZE

   CASE  READ ̲BUFFER (BUF ̲REF,
                     COLLECT ̲BUFFER.RECS(LOG ̲BUF ̲INDEX).BUF,
                     BUF ̲SIZE, 1)
                     (SIZE, CC)

         ERROR?    ANALYSE ̲ERROR (CC, O)

         OK?


   END CASE































              Figure 4.2.1.4.1.5-8
                 READ LOG BUFFER


      R̲E̲A̲D̲ ̲L̲O̲G̲ ̲T̲I̲M̲E̲

      CASE READ ̲TIME (F ̲TIME ̲TYPE)
                        (COLLECT ̲BUFFER.RECS(COLL ̲BUF
                   ̲INDEX).LOG ̲TIME,CC):

             ERROR?   ANALYSE ̲ERROR (CC, O)

             OK?


      END CASE




































              Figure 4.2.1.4.1.5-9
                  READ LOG TIME


   S̲E̲N̲D̲ ̲A̲P̲P̲ ̲A̲C̲K̲

   APP ̲PARAMS.HEADER.INF = COL ̲QEL ̲ATTR.HEADER.SUBTYPE

   CASE  SEND ̲REPLY  (APP ̲PARAMS,NIL,COLL ̲QEL)
                     (CC):

         ERROR?    ANALYSE ̲ERROR (CC, O)

         OK


   END CASE


































              Figure 4.2.1.4.1.5-10
                  SEND APP ACK





      SEND GARBLE

      SEND ̲GARBLE (CONTINUE, QERROR, COLL ̲QEL, ERR
      ̲INFO)











































              Figure 4.2.1.4.1.5-11
                   SEND GARBLE


4.2.1.4.2    L̲o̲g̲ ̲C̲I̲F̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.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̲

         The Log CIF Handling module handle all CIF relevant
         functions. The functions are:

         -   store the collected log records in the log CIF
         -   reset the collect buffer index pointer
         -   terminate and store the present log CIF via SAR
         -   request a new log CIF
         -   send the terminated log CIF for printout
         -   perform close down action



4.2.1.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         The Log CIF Handling module interface to the Record
         Collect module via calls:

         CIF ̲HANDLING(CIF ̲REQUEST) ( )
         A CIF ̲REQUEST will cause termination of the present
         log CIF. The CIF is stored via SAR and sent for printout.

         CIF ̲HANDLING(TIME ̲OUT) ( )
         Same function as CIF ̲REQUEST.

         CIF ̲HANDLING(BUFFER ̲FULL) ( )
         The collect buffer content is stored in the log CIF
         and the collect buffer index is preset to the initial
         value.

         CIF ̲HANDLING(SSC ̲CLOSE ̲DOWN) ( )
         The incoming SSC close down command will cause storage
         of all pending log records and termination of the log
         CIF.



4.2.1.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         CIF ̲HANDLING(COMMAND) ( )
         This is the main procedure. The command decides which
         action to take. They are:

         CIF ̲REQUEST, TIME ̲OUT, BUFFER ̲FULL, SSC ̲CLOSE ̲DOWN



         PUT ̲LOG ̲CIF(LOG ̲CIF ̲FIELD ̲LIST ̲2, LOG ̲CIF ̲VIEW ̲REF)
         The collected log records are stored on the log CIF.

         STORE ̲LOG ̲CIF(LOG ̲CIF ̲VIEW ̲REF, NO ̲OF ̲LOG ̲RECORDS)
         The present used log CIF is terminated and stored via
         SAR.

         PRINT ̲LOG ̲CIF(LOG ̲CIF ̲VIEW ̲REF)
         A copu of the terminated and stored log CIF is sent
         to the supervisor log print queue.



4.2.1.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         No specific module data is identified for this module.
         
         Refer section 4.2.1.5.



4.2.1.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         Each of the flowgrams are described shortly in this
         section:

         1)  C̲I̲F̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲- Refer to fig. 4.2.1.4.2.5-1.

             This is the main procedure. The call parameter
             decides the actions to take.

          2) P̲r̲o̲c̲e̲s̲s̲ ̲S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲ ̲C̲o̲m̲m̲a̲n̲d̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-2

             The present used log CIF is on request terminated,
             stored and sent for printout. A new log is created
             and a command acknowledge is returned to the supervisor.

          3) P̲r̲o̲c̲e̲s̲s̲ ̲T̲i̲m̲e̲o̲u̲t̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-3

             The present used log CIF is terminated, stored
             and sent for printout. A new log CIF is then created.



          4) B̲u̲f̲f̲e̲r̲ ̲F̲u̲l̲l̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-4.

             The content of the collect buffer is stored on
             the log CIF.

          5) P̲r̲o̲c̲e̲s̲s̲ ̲S̲S̲C̲ ̲C̲o̲m̲m̲a̲n̲d̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-5.

             This flow shows the implementation of the close
             down command from SSC.

             The close down flag, used by both subpackages,
             is set. If the no. of log records, received since
             the log CIF was created, is more than zero the
             log CIF is terminated and stored via SAR.
             A completion code is returned to SSC.

             -   Put Log CIF, expanded in flow 6

             -   Store Log CIF, expanded in flow 7.

          6) P̲u̲t̲ ̲L̲o̲g̲ ̲C̲I̲F̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-6

             The collected log records are stored on the log
             CIF. The log CIF is checkpointed. The collect buffer
             index pointer is reset and stored on the fast disk
             file. Both pointer and log records are stored on
             the fast disk file.

             -   Put Log Data is a common subpackage procedure.

          7) S̲t̲o̲r̲e̲ ̲L̲o̲g̲ ̲C̲I̲F̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-7.

             The present used log CIF is terminated and stored
             via SAR.

             -   Handle CIF Header, the CIF header is created,
                 expanded in flow 8.

             -   Sent To SAR, the CIF is catalogued via SAR,
                 expanded in flow 9.



          8) H̲a̲n̲d̲l̲e̲ ̲C̲I̲F̲ ̲H̲e̲a̲d̲e̲r̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-8.

             The CIF header is created and stored in the CIF
             administration field.

          9) S̲e̲n̲d̲ ̲T̲o̲ ̲S̲A̲R̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-9.

             The present and terminated log CIF is stored and
             catalogued via SAR.

         10) P̲r̲i̲n̲t̲ ̲L̲o̲g̲ ̲C̲I̲F̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.4.2.5-10.

             A copy of the terminated and stored log CIF Is
             sent to the supervisor log print queue.

         F̲l̲o̲w̲g̲r̲a̲m̲ ̲L̲i̲s̲t̲

          1) CIF ̲HANDLING
          2) PROCESS SUPV COMMAND
          3) PROCESS TIMEOUT
          4) BUFFER FULL
          5) PROCESS SSC COMMAND
          6) PUT ̲LOG ̲CIF
          7) STORE ̲LOG ̲CIF
          8) HANDLE CIF HEADER
          9) SEND TO SAR
         10) PRINT ̲LOG ̲CIF


         CIF ̲HANDLING (CONMAND: (CIF ̲REQUEST, TIME ̲OUT, 
                       BUFFER ̲FULL, SSC ̲CLOSE ̲DOWN)) (  )



         CASE    COMMAND OF

                 CIF ̲REQUEST?        P̲R̲O̲C̲E̲S̲S̲ ̲S̲U̲P̲V̲ ̲C̲O̲M̲M̲A̲N̲D̲ 2

                 TIME ̲OUT?           P̲R̲O̲C̲E̲S̲S̲ ̲T̲I̲M̲E̲O̲U̲T̲ 3

                 BUFFER ̲FULL?        B̲U̲F̲F̲E̲R̲ ̲F̲U̲L̲L̲ 4

                 SSC ̲CLOSE ̲DOWN?     P̲R̲O̲C̲E̲S̲S̲ ̲S̲S̲C̲ ̲C̲O̲M̲M̲A̲N̲D̲ 5

                 OTHER?

         END CASE

         RETURN

























                    Fig. 4.2.1.4.2.5-1
                       CIF ̲HANDLING



   P̲R̲O̲C̲E̲S̲S̲ ̲S̲U̲P̲V̲ ̲C̲O̲M̲M̲A̲N̲D̲

   NO ̲OF ̲LOG ̲RECORDS EQ O?

   COLL ̲BUF ̲INDEX  NE 1?       PUT ̲LOG ̲DATA (  ) (
                    )


   PUT ̲LOG ̲CIF     (LOG ̲CIF ̲FIELD ̲LIST ̲2, LOG ̲CIF ̲VIEW
   ̲REF)  6

   STORE ̲LOG ̲CIF   (LOG ̲CIF ̲FIELD ̲LIST ̲2, NO ̲OF ̲LOG
   ̲RECORDS)  7

   PRINT ̲LOG ̲CIF   (LOG ̲CIF ̲VIEW ̲REF)  10

   CREATE ̲NEW ̲LOG ̲CIF   (LOG ̲CIF ̲ATTRIBUTES, LOG ̲CIF
   ̲Q ̲REF)
                         (LOG ̲CIF ̲VIEW ̲REF)


   CASE  SEND ̲REPLY (SUPQ ̲PARAMS, NIL, COLL ̲QEL)
                       (CC):

         ERROR?   ANALYSE ̲ERROR (CC, O)

         OK?


   END CASE
























              Figure 4.2.1.4.2.5-2
           PROCESS SUPERVISOR COMMAND


      P̲R̲O̲C̲E̲S̲S̲ ̲T̲I̲M̲E̲O̲U̲T̲

      NO ̲OF ̲LOG ̲RECORDS EQ O?

      COLLECT ̲BUF ̲INDEX NE 1? PUT ̲LOG ̲DATA  (  ) (
                               )


      PUT LOG ̲CIF    (LOG ̲CIF ̲FIELD ̲LIST ̲2, LOG ̲CIF
                     ̲VIEW ̲REF) 6

      STORE ̲LOG ̲CIF   (LOG ̲CIF ̲VIEW ̲REF, NO ̲OF ̲LOG
      ̲RECORDS) 7

      PRINT ̲LOG ̲CIF   (LOG ̲CIF ̲VIEW ̲REF)  10

      CREATE ̲NEW ̲LOG-CIF   (LOG ̲CIF ̲ATTRIBUTES, LOG
      ̲CIF ̲Q ̲REF)
                            (LOG ̲CIF ̲VIEW ̲REF)

































              Figure 4.2.1.4.2.5-3
                 PROCESS TIMEOUT


      B̲U̲F̲F̲E̲R̲ ̲F̲U̲L̲L̲

      PUT ̲LOG ̲CIF(LOG ̲CIF ̲FIELD ̲LIST ̲2, LOG ̲CIF ̲VIEW
      ̲REF)  6

      NO ̲OF ̲LOG ̲RECORDS LT MAX ̲CIF ̲LOGS?

      STORE ̲LOG ̲CIF (LOG ̲CIF ̲VIEW ̲REF, NO ̲OF ̲LOG ̲RECORDS)
       7

      PRINT ̲LOG ̲CIF (LOG ̲CIF ̲VIEW ̲REF)  10

      DISMANTLE ̲REQUEST (LOG ̲CIF ̲VIEW ̲REF, VIEW)

      CREATE ̲NEW ̲LOG ̲CIF (LOG ̲CIF ̲ATTRIBUTES, LOG ̲CIF
      ̲Q ̲REF)
                          (LOG ̲CIF ̲VIEW ̲REF)
































               Fig. 4.2.1.4.2.5-4
                   BUFFER FULL



      P̲R̲O̲C̲E̲S̲S̲ ̲S̲S̲C̲ ̲C̲O̲M̲M̲A̲N̲D̲

      COLL ̲QEL ̲ATTR.HEADER.SUBTYPE NE CLOSE ̲DOWN? 
      SEND GARBLE

         Any SSC-command is Close ̲Down.

      CLOSE ̲DOWN = TRUE

      NO ̲OF ̲LOG ̲RECORDS  EQ 0?

      PUT ̲LOG ̲CIF  (LOG ̲CIF ̲FIELD ̲LIST ̲2, LOG ̲CIF ̲VIEW
      ̲REF)  6

      STORE ̲LOG ̲CIF  (LOG ̲CIF ̲VIEW ̲REF, NO ̲OF ̲LOG ̲RECORDS)
       7


      CASE  SEND ̲REPLY (SSC ̲PARAMS, NIL, COLL ̲QEL)
                      (CC):

         ERROR?     ANALYSE ̲ERROR (CC, 0)

         OK?


      END CASE
























              Figure 4.2.1.4.2.5-5
               PROCESS SSC COMMAND


         PUT ̲LOG ̲CIF (LOG ̲CIF ̲FIELD ̲LIST ̲2: FIELD ̲LIST,
                      LOG ̲CIF ̲VIEW ̲REF: QEL ̲REFERENCE)

         CASE  WRITE ̲VIEW     (CIF ̲WRITE ̲SIZE,
                         LOG ̲CIF ̲FIELD ̲LIST ̲2,
                         LOG ̲CIF ̲VIEW ̲REF,
                         COLLECT ̲BUFFER.RECS)
                         (CC):

             ERROR?   ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE

         CASE  SAVE ̲VIEW      (FALSE, LOG ̲CIF ̲VIEW
                              ̲REF)
                         (CC):

             ERROR?    ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE

         COLLECT ̲BUFFER.HEADER.COLL ̲BUF ̲INDEX = 1

             Same new index value.

         PUT ̲LOG ̲DATA  (  ) (  )

         RETURN














              Figure 4.2.1.4.2.4-6
                   PUT LOG CIF


             STORE ̲LOG ̲CIF    (LOG ̲CIF ̲VIEW ̲REF: QEL
                              ̲REFERENCE,
                                                                 
                                                                 NO
                                                                 ̲OF
                                                                 ̲LOG
                                                                 ̲RECORDS:
                                                                 INTEGER)

             H̲A̲N̲D̲L̲E̲ ̲C̲I̲F̲ ̲H̲E̲A̲D̲E̲R̲ ̲   8

             S̲E̲N̲D̲ ̲T̲O̲ ̲S̲A̲R̲  9

             RETURN







































              Figure 4.2.1.4.2.5-7
                  STORE LOG CIF


         H̲A̲N̲D̲L̲E̲ ̲C̲I̲F̲ ̲H̲E̲A̲D̲E̲R̲

         LOG ̲CIF ̲HEADER. NO ̲OF ̲LOG ̲RECORDS =
             COLLECT ̲BUFFER.HEADER.NO ̲OF ̲LOG ̲RECORDS

         LOG ̲CIF ̲HEADER.ITEM ̲REF =
             LOG ̲CIF ̲ATTRIBUTES.NAME.CIF ̲ID.LEAST

             Other Parameters are always loaded

         LOAD  LOG ̲CIF ̲HEADER ̲FIELD ̲LIST

         CASE  WRITE ̲VIEW     (HEADER ̲WRITE ̲SIZE,
                         LOG ̲CIF ̲HEADER ̲FIELD ̲LIST,
                         LOG ̲CIF ̲VIEW ̲REF,
                         LOG ̲CIF ̲HEADER)
                         (CC):

             ERROR?   ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE























              Figure 4.2.1.4.2.5-8
                HANDLE CIF HEADER


         S̲E̲N̲D̲ ̲T̲O̲ ̲S̲A̲R̲

         CASE  SEND ̲QEL  (SAR ̲SEND ̲PARAMS,
                     LOG ̲CIF ̲VIEW ̲REF,
                     SAR ̲QUEUE)
                     (CC):
             ERROR? -    ANALYSE ̲ERROR (CC, O)

             OK?


         END CASE


































              Figure 4.2.1.4.2.5-9
                   SEND TO SAR


         PRINT ̲LOG ̲CIF   (LOG ̲CIF ̲VIEW ̲REF: QEL ̲REFERENCE)

         CASE  SEND ̲QEL  (TEP ̲PARAMS, LOG ̲CIF ̲VIEW ̲REF,
                         TEP ̲PRINT ̲Q)
                         (CC):

                   ERROR? --ANALYSE ̲ERROR  (CC,0)

                   OK?


         END CASE

         RETURN

































               Figure 4.2.1.4.2.5-10
                   PRINT LOG CIF


4.2.1.5  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲




               E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

               TYPE            START ̲UP ̲TYPE:   INTEGER
               The start up type, given by SSC, indicates the
               start up.

               TYPE CC                     :   COMPLETION ̲CODE

               TYPE            CLOSE ̲DOWN   :   BOOLEAN
               This is a flag indicating that a close down is
               received from SSC.


               L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲


         TYPE  COLL ̲QEL ̲ATTR   :           QEL ̲ATTRIBUTES
         TYPE  COLL ̲QEL        :           QEL ̲REFERENCE
         TYPE  COLL ̲SUBQ       :           SUBQUEUE ̲INDEX
         VAR   COLLECT ̲BUFFER  :           COLLECT ̲BUFFER ̲TYPE
               The collect buffer is used to collect the incoming
               log records.

         VAR   COLL ̲BUF ̲INDEX  :           COLL ̲BUF ̲INDEX ̲TYPE
               Is a pointer to the collect buffer.

         VAR   BUF ̲SIZE        :           INTEGER
               Buf size is the size of one log record.
         
         VAR   IN ̲Q            :           QUEUE ̲REFERENCE
         VAR   CMD ̲Q           :           QUEUE ̲REFERENCE
         INIT  CMD ̲Q.MAIN ̲QUEUE            = SYSTEM ̲Q
               CMD ̲Q.SUB ̲QUEUE             = IN ̲COMM ̲Q

         VAR   SSC ̲PARAMS      :           SEND ̲PARAMS
         INIT  SSC ̲PARAMS.INFORMATION ̲TYPE         =  FALSE
         INIT  SSC ̲PARAMS.CHECKP ̲STATUS            =  FALSE
         INIT  SSC ̲PARAMS.HEADER.MAINTYPE          =  ACK
         INIT  SSC ̲PARAMS.HEADER.SUBTYPE           =  LOG ̲ACK
         INIT  SSC ̲PARAMS.HEADER.FLAGS             =  0



         VAR   SUPV ̲PARAMS                         :  SEND ̲PARAMS
         INIT  SUPV ̲PARAMS.CHECKP ̲STATUS           =  FALSE
         INIT  SUPV ̲PARAMS.HEADER.SUBTYPE          =  LOG ̲CIF
                                                      ̲ACK
         INIT  SUPV ̲PARAMS.HEADER.MAINTYPE         =  ACKNOWLEDGE
         INIT  SUPV ̲PARAMS.HEADER.FLAGS            =  1
         INIT  SUPV ̲PARAMS.INFORMATION ̲TYPE        =  TRUE
         INIT  SUPV ̲PARAMS.HEADER.INF              =  LOG ̲CIF
                                                      ̲REQUEST

         VAR   ERR ̲INFO                            :  ERROR
                                                      ̲INF
         INIT  ERR ̲INFO  QERROR ̲INF.RECEIVING ̲Q    =  TBD
         INIT  ERR ̲INFO  QERROR ̲INF.ORIGINAL ̲SENDER=  TBD
         INIT  ERR ̲INFO  QERROR ̲INF.USER ̲CC        =  TBD

         VAR   APP ̲PARAMS                          :  SEND ̲PARAMS
         INIT  APP ̲PARAMS.HEADER.SUBTYPE           =  LOG COLLECT
                                                      ACK
         INIT  APP ̲PARAMS.HEADER.MAINTYPE          =  ACKNOWLEDGE
         INIT  APP ̲PARAMS.HEADER.FLAGS             =  1
         INIT  APP ̲PARAMS.HEADER.INFORMATION ̲TYPE  =  FALSE
         INIT  APP ̲PARAMS.CHECKP ̲STATUS            =  FALSE

         VAR   TEP ̲PARAMS                          :  SEND ̲PARAMS
         INIT  TEP ̲PARAMS.CHECKP ̲STATUS            =  LOG ̲CIF
         INIT  TEP ̲PARAMS.HEADER.SUBTYPE           =  CIF ̲ON
                                                      ̲REQUEST
         INIT  TEP ̲PARAMS.HEADER.FLAGS             =  ONLY ̲CIF

         VAR   SAR ̲SEND ̲PARAMS                     :  SEND ̲PARAMS
         INIT  SAR ̲SEND ̲PARAMS.INFORMATION ̲TYPE    =  FALSE
         INIT  SAR ̲SEND ̲PARAMS.CHECKP ̲STATUS       =  TRUE
         INIT  SAR ̲SEND.PARAMS.HEADER.MAINTYPE     =  LOG CIF
         INIT  SAR ̲SEND ̲PARAMS.HEADER.SUBTYPE      =  LOG ̲FROM
                                                      ̲LOG
                                                      TO ̲SAR
         INIT  SAR ̲SEND ̲PARAMS.HEADER.FLAGS        =  0

         VAR   SAR ̲QUEUE                           :  QUEUE
                                                      ̲REFERENCE
         INIT  SAR ̲QUEUE.MAINQUEUE                 =  ISQ
         INIT  SAR ̲QUEUE.SUB ̲QUEUE                 =  SUB ̲Q
                                                      ̲0

         VAR   TIM ̲PARAMETER                       :  REQUEST
                                                      ̲TIME ̲RELATIV;
         INIT  TIM ̲PARAMETER.TIME ̲OUT ̲KIND         =  K ̲RELATIV;
         INIT  TIM ̲PARAMETER.QUEUE.MAIN ̲QUEUE      =  SYSTEM
                                                      ̲QUEUE
         INIT  TIM ̲PARAMETER.QUEUE.SUB ̲QUEUE       =  TIM ̲Q
         INIT  TIM ̲PARAMETER.TIMEOUT               =  PERIODIC        INIT TIM
                                                                           ̲PARAMETER.FORMAT = MINUTES
         INIT  TIM ̲PARAMETER.TIME                  =  10
         INIT  TIM ̲PARAMETER.EVENT ̲ID              =  0



         VAR   LOG ̲FSN                             :  FILE ̲SYSTEM
                                                      ̲
               Initialized to FSN of file system      NAME
               for fixed head mirrored disk.
                                                      
         VAR   LOG ̲VOLN                            :  VOLUME
                                                      ̲NAME
               Initialized to volume name of fixed head mirrored
               disk.

         VAR   LOG ̲ROOT ̲FD                         :  FDCB ̲INDEX
         VAR   LOG ̲SAVE ̲FD                         :  FDCB ̲INDEX
         VAR   LOG ̲SAVE ̲FILENAME                   :  FILE ̲NAME
               Initialized to LOG ̲SAVE file name

         VAR   LOG ̲SAVE ̲FILEADDRESS                :  FILE ̲ADDRESS
               Initialized to
                        FIRST ̲BYTE                 :  0
                        BYTE ̲COUNT                 :  Size of
                                                      COLLECT
                                                      ̲BUFFER
                                                      in bytes

         VAR   COLLECT ̲BUFFER ̲BLE                  :  BUFFER
                                                      ̲LIST ̲
               Initialized to point to                ELEMENT
                COLLECT ̲BUFFER                        

         VAR   LOG ̲CIF ̲ATTRIBUTES                  :  VIEW ̲ATTRIBUTES
               Initialized with attributes of LOG ̲CIF

         VAR   LOG ̲CIF ̲Q ̲REF                       :  QUEUE
                                                      ̲REFERENCE
         INIT  LOG ̲CIF ̲Q ̲REF.MAIN ̲QUEUE            = SYSTEM
                                                   ̲Q
               LOG ̲CIF ̲Q ̲REF.SUB ̲QUEUE             = IN ̲LOG
                                                   ̲Q

         VAR   LOG ̲CIF ̲VIEW ̲REF                    :  VIEW ̲REFERENCE
         VAR   LOG ̲CIF ̲FIELD ̲LIST ̲2                :  FIELD
                                                      ̲LIST
         VAR   CIF ̲WRITE ̲SIZE                      :  INTEGER
               Initialized to SIZE OF COLLECT ̲BUFFER.RELS B

         VAR   LOG ̲CIF ̲HEADER                      :  LOG ̲CIF
                                                      ̲ADM ̲FIELD
               Initialized classification, special handling
               and exercise to UNCLASSIFIED, No special handling,
               exercise = 0,

         VAR   LOG ̲CIF ̲HEADER ̲FIELD ̲LIST           :  FIELD
                                                      ̲LIST
         VAR   HEADER ̲WRITE ̲SIZE                   :  INTEGER
               Initialized to LOG ̲CIF ̲HEADER



         TYPE INTERNAL ̲LOG ̲REC ̲TYPE =
             RECORD
               LOG ̲TYPE  :       LOG ̲RECORD ̲TYPE;
               LOG ̲TIME  :       TIME ̲TYPE;
               BUF     : ARRAY (1..MAX ̲LOG ̲REC ̲SIZE) OF INTEGER
             END

         TYPE COLLECT ̲BUFFER ̲TYPE =
             RECORD
               HEADER  : COLLECT ̲CONTROL ̲HEADER ̲TYPE
               RECS    : ARRAY (1..COLLECT ̲BUFFER ̲NO ̲OF ̲LOG
                         ̲RECORDS) OF INTERNAL ̲LOG ̲REC ̲TYPE
             END

         TYPE COLL ̲BUF ̲INDEX ̲TYPE =
         (0..COLLECT ̲BUFFER ̲NO ̲OF ̲LOG ̲RECORDS)

         TYPE COLLECT ̲CONTROL ̲HEADER ̲TYPE =
             RECORD
               NO ̲OF ̲LOG ̲RECORDS :   (0..MAX ̲CIF ̲LOGS);
               COLL ̲BUF ̲INDEX    :   COLL ̲BUF ̲INDEX ̲TYPE
             END


         C̲o̲n̲s̲t̲a̲n̲t̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲s̲

         MAX ̲LOG ̲REC ̲SIZE            =26
         TYPE ̲TIME ̲SIZE              = 3
         The size of LOG ̲TYPE + LOG ̲TIME in bytes.
         COLLECT ̲NO ̲OF ̲LOG ̲RECORDS   = 8
         MAX ̲CIF ̲LOGS                =558
         max numbers of log records in one CIF
         TIME ̲OUT                    =10
         max time between storage of log records

         Please note that

         TIME ̲OF ̲DELETION        =   LOG ̲TIME
         END ̲OF ̲TRANSMISSION ̲TIME=   LOG ̲TIME
         RECEPTION ̲TIME          =   LOG ̲TIME
         TIME ̲OF ̲EVENT           =   LOG ̲TIME




4.2.1.6  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

             F̲l̲o̲w̲c̲h̲a̲r̲t̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

          1) C̲r̲e̲a̲t̲e̲ ̲N̲e̲w̲ ̲L̲o̲g̲ ̲C̲I̲F̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.6-1.

             A new log CIF is created and the log of field list
             is initialized.

          2) P̲u̲t̲ ̲L̲o̲g̲ ̲D̲a̲t̲a̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.6-2.

             The collected log records and the buffer header
             is stored on the fast disk log file.

         3)  D̲i̲s̲m̲a̲n̲t̲l̲e̲ ̲R̲e̲q̲u̲e̲s̲t̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer fig. 4.2.1.6-3.

             This procedure dismantles the object referenced
             by the QEL ̲REF. Input parameters are QEL ̲REF and
             OBJECT.

         4)  D̲i̲s̲m̲a̲n̲t̲l̲e̲ ̲V̲i̲e̲w̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.6-4.

             The log CIF view is closed and dismantled.

         5)  D̲i̲s̲m̲a̲n̲t̲l̲e̲ ̲B̲u̲f̲f̲e̲r̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ - Refer to fig. 4.2.1.6-5

             The log record buffer is dismantled.

         6)  D̲i̲s̲m̲a̲n̲t̲l̲e̲ ̲Q̲E̲L̲

             D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲ - Refer to fig. 4.2.1.6-6

             The actual queue element is dismantled.


             CREATE ̲NEW ̲LOG ̲CIF  (LOG ̲CIF ̲ATTRIBUTES: QEL ̲ATTRIBUTES,
                                  LOG ̲CIF ̲Q ̲REF: QUEUE ̲REFERENCE)
                                 (LOG ̲CIF ̲VIEW ̲REF: QEL ̲REFERENCE)

             CASE  CREATE ̲CIF    (LOG ̲CIF ̲ATTRIBUTES,
                                  LOG ̲CIF ̲Q ̲REF)
                                 (LOG ̲CIF ̲VIEW ̲REF, CC):

                 ERROR?          ANALYSE ̲ERROR (CC, O)

                 OK?


             END CASE

             CASE  OPEN ̲VIEW     (LOG ̲CIF ̲VIEW ̲REF)
                         (CC):

                 ERROR?          ANALYSE ̲ERROR (CC, 0)

                 OK?


             END CASE

             INITIALIZE LOG ̲CIF ̲FIELD ̲LIST ̲2

             RETURN





















                     Figure 4.2.1.6-1
                    CREATE NEW LOG CIF



      PUT ̲LOG ̲DATA (  ) (  )

         Store COLLECT ̲BUFFER on fast disk log file

      CASE  MODIFYBYTES  (LOG ̲SAVE ̲FD, LOG ̲SAVE ̲FILEADDRESS,
                         COLLECT ̲BUFFER ̲BLE)
                         (LOG ̲SAVE ̲FILEADDRESS, CC):

         ERROR?    ANALYSE ̲ERROR (CC, O)

         OK?


      END CASE

      RETURN





























                Figure 4.2.1.6-2.
                  PUT LOG DATA


         DISMANTLE REQUEST (QEL ̲REF: QEL ̲REFERENCE,
                               OBJECT:  OBJECT ̲TYPE)

         CASE      OBJECT  OF

             VIEW?            D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲V̲I̲E̲W̲     4

             BUFFER?                                             D̲I̲S̲M̲A̲N̲T̲L̲E̲
                                                                 ̲B̲U̲F̲F̲E̲R̲
                                                                 
                                                                 
                                                                 5

             TIMEOUT, SINGLE? D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲      6


         END CASE
































                Figure 4.2.1.6-3
                DISMANTLE REQUEST


      D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲V̲I̲E̲W̲

      CASE   CLOSE ̲VIEW  (QEL-REF)
                         (CC):

             ERROR?  ANALYSE ̲ERROR (CC, O)

             OK?


      END CASE

      CASE   DISMANTLE ̲VIEW   (QEL ̲REF)
                              (CC):

             ERROR?  ANALYSE ̲ERROR  (CC,O)

             OK?


      END CASE



























                Figure 4.2.1.6-4
                 DISMANTLE VIEW


      D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲B̲U̲F̲F̲E̲R̲

      CASE   DISMANTLE ̲BUFFER  (COLL ̲QEL)
                                (CC):

             ERROR?  ANALYSE ̲ERROR (CC, O)

             OK?


      END CASE




































                Figure 4.2.1.6-5
                DISMANTLE BUFFER


      D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲

      CASE   DISMANTLE ̲QEL    (COLL ̲QEL)
                              (CC):

             ERROR?  ANALYSE ̲ERROR (CC,O)

             OK?


      END CASE




































                Figure 4.2.1.6-6
                  DISMANTLE QEL


4.2.1.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.2.1.7.1    C̲l̲o̲s̲e̲ ̲D̲o̲w̲n̲ ̲F̲l̲a̲g̲

         When a close-down-command is received from SSC, the
         close-down-flag is set to true.

         The close-down-flag is reset during start-up The flag
         is used by both subpackages to identify a close-down-action
         in progress.