DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦8c68dd88f⟧ Ada Source

    Length: 13312 (0x3400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Daemon, pragma Module_Name 4 3932, pragma Subsystem Os_Commands, seg_001b62

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Calendar;
package Daemon is

    -- There are five types of Daemon tasks controlled by this package, their
    -- characteristics and default scheduling:
    --
    --      Snapshot.   Frequent.  ~1 minute slowdown.  Hourly.
    --
    --      Action.     Frequent, unobtrusive.  Every two hours.
    --
    --      Weekly.     Unobtrusive.  Weekly at 2:30 AM.
    --                  Code_Segment Group Session Tape Terminal User
    --
    --      Daily.      Variable, possibly significant interruption.
    --                  Nightly at 3:00 AM.
    --                  Ada DDB Directory Error_Log File Disk
    --
    --      Disk.       Daily or as needed.    Prolonged slowdown.
    --                  Last portion of the Daily run
    --
    -- If no other action is taken, all clients will be scheduled at a
    -- frequency and time normally appropriate.  These schedules can be
    -- changed to suit specific needs.  Note that Disk is included in the
    -- Daily category and will be run with the other Daily Daemons.
    --
    -- Clients that interfere with normal operations warn all users.
    --
    -- There is a group of clients referred to as Major_Clients that are
    -- expected to be of interest in monitoring the state of the machine:
    --     Snapshot, Action, Disk, Ada, DDB, Directory, and File.

    Major_Clients : constant String := "*";

    procedure Run (Client   : String := "Snapshot";
                   Response : String := "<PROFILE>");
    -- Cause the named Client to run the specified operation immediately;
    -- Has no effect on the next scheduled run of Client.

    procedure Schedule (Client    : String   := ">>CLIENT NAME<<";
                        Interval  : Duration;
                        First_Run : Duration := 0.0;
                        Response  : String   := "<PROFILE>");

    -- Sets the interval at which the Client operation will take place.

    procedure Quiesce (Client           : String   := ">>CLIENT NAME<<";
                       Additional_Delay : Duration := 86_400.0;
                       Response         : String   := "<PROFILE>");
    -- Reschedule the Client not to run at the next scheduled time.
    -- Equivalent to Schedule with a new First_Run, but the same Interval.
    -- Defaults to a 1-day delay; use Duration'Last for indefinite delay.

    procedure Status (Client : String := "*");
    -- print a formatted display of current status for given Client
    -- Matches on prefix of Client name, "" is prefix of all clients
    -- Major Clients (*): Actions, Ada, DDB, Directory, Disk, File, Snapshot
    -- The Disk Client provides additional information when run separately.

    procedure Warning_Interval (Interval : Duration := 120.0);
    function  Get_Warning_Interval return Duration;
    -- Warning given before starting Daily clients to allow time to Quiesce.

    function  In_Progress    (Client : String) return Boolean;
    function  Next_Scheduled (Client : String) return Calendar.Time;
    function  Last_Run       (Client : String) return Calendar.Time;
    function  Interval       (Client : String) return Duration;
    procedure Get_Size       (Client               :     String;
                              Size                 : out Long_Integer;
                              Size_After_Last_Run  : out Long_Integer;
                              Size_Before_Last_Run : out Long_Integer);
    -- Sizes are set to -1 if invalid

    -- Control of the Disk Daemon
    --
    -- The Disk Daemon runs in response to a number of stimuli:
    --
    --   Daemon.Schedule   Runs at priority 6; intended for machine idle.
    --   Daemon.Run        Runs at priority -1; background collection.
    --   Daemon.Collect    Runs at specified priority
    --   over threshold    Starts at priority 0 with escalation
    --
    -- Messages to all users are issued for each of the three explicitly
    -- called collections.  In addition, a message is sent when a Set_Priority
    -- is called and it causes a change in priority.
    --
    -- A background task monitors over threshold situations and sends messages
    -- of interesting events.  Threshold_Warnings (False) allows an
    -- installation-provided job to tailor policy.
    --
    -- Additional control over Disk operations is available in the
    -- Disk_Daemon tools package.

    subtype Volume              is Integer range 0 .. 31;
    subtype Collection_Priority is Integer range -1 .. 6;
    -- -1 is the default and implies very low-level background activity
    --  0 guarantees progress in collection but has some effect on response
    --  6 causes collection to take over the machine

    procedure Collect (Vol : Volume; Priority : Collection_Priority := 0);
    -- If this call initiates a collection, it waits for its completion.

    procedure Set_Priority (Priority : Collection_Priority := -1);
    -- Set the priority of a currently running collection to Priority

    procedure Threshold_Warnings (On : Boolean := True);
    -- Cause messages to be sent when collection thresholds are passed.

    --
    -- Control of snapshot messages
    --

    procedure Snapshot_Warning_Message (Interval : Duration := 120.0);
    procedure Snapshot_Start_Message   (On : Boolean := True);
    procedure Snapshot_Finish_Message  (On : Boolean := True);
    procedure Show_Snapshot_Settings;
    procedure Get_Snapshot_Settings    (Warning        : out Duration;
                                        Start_Message  : out Boolean;
                                        Finish_Message : out Boolean);

    -------------------------------------------------------------------------
    --
    -- Control of the contents and permanence of the operations error log
    --
    -------------------------------------------------------------------------

    type Condition_Class is (Normal, Warning, Problem, Fatal);
    type Log_Threshold   is (Console_Print, Log_To_Disk, Commit_Disk);

    procedure Show_Log_Thresholds;
    procedure Set_Log_Threshold (Kind : Log_Threshold; Level : Condition_Class);
    function  Get_Log_Threshold (Kind : Log_Threshold) return Condition_Class;



    -- Options on client compactions.
    --
    -- Consistency checking does additional work to assure that the internal
    -- state of the system is as it seems.  This is normally only run when
    -- there are suspected problems.  Consistency checking slows operations
    -- for which it is meaningful by between one and three orders of magnitude.
    --
    -- Access_List_Compaction is the process of removing non-existent groups
    -- from the access lists of objects.  This condition occurs when groups
    -- are removed from the machine.  Access_List_Compaction is only done
    -- for Ada, Directory and File clients.  All other clients reqested will
    -- be silently ignored.  All three must be compacted for any old group
    -- numbers to be freed.
    --
    -- The default is disabled.  The default is restored after
    -- the next appropriate daemon run has completed.

    procedure Set_Consistency_Checking (Client   : String  := "";
                                        On       : Boolean := True;
                                        Response : String  := "<PROFILE>");
    function  Get_Consistency_Checking (Client : String := "") return Boolean;

    procedure Set_Access_List_Compaction (Client   : String  := "";
                                          On       : Boolean := True;
                                          Response : String  := "<PROFILE>");
    function  Get_Access_List_Compaction (Client : String := "") return Boolean;

    pragma Subsystem (Os_Commands);
    pragma Module_Name (4, 3932);

end Daemon;

E3 Meta Data

    nblk1=c
    nid=0
    hdr6=18
        [0x00] rec0=18 rec1=00 rec2=01 rec3=092
        [0x01] rec0=17 rec1=00 rec2=02 rec3=02c
        [0x02] rec0=11 rec1=00 rec2=03 rec3=066
        [0x03] rec0=00 rec1=00 rec2=0b rec3=008
        [0x04] rec0=13 rec1=00 rec2=0c rec3=08a
        [0x05] rec0=01 rec1=00 rec2=04 rec3=044
        [0x06] rec0=14 rec1=00 rec2=05 rec3=03e
        [0x07] rec0=00 rec1=00 rec2=0a rec3=01a
        [0x08] rec0=18 rec1=00 rec2=06 rec3=00a
        [0x09] rec0=00 rec1=00 rec2=09 rec3=018
        [0x0a] rec0=13 rec1=00 rec2=07 rec3=07c
        [0x0b] rec0=14 rec1=00 rec2=08 rec3=000
    tail 0x20100ef367da18d2eacaf 0x42a00088462065003