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

⟦f210c942c⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Daemon, pragma Module_Name 4 3932, pragma Subsystem Os_Commands, seg_02842a

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦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=8
    nid=0
    hdr6=10
        [0x00] rec0=18 rec1=00 rec2=01 rec3=092
        [0x01] rec0=17 rec1=00 rec2=02 rec3=042
        [0x02] rec0=12 rec1=00 rec2=03 rec3=030
        [0x03] rec0=14 rec1=00 rec2=04 rec3=02a
        [0x04] rec0=15 rec1=00 rec2=05 rec3=04a
        [0x05] rec0=18 rec1=00 rec2=06 rec3=026
        [0x06] rec0=14 rec1=00 rec2=07 rec3=032
        [0x07] rec0=11 rec1=00 rec2=08 rec3=000
    tail 0x21722362683c1725a0a76 0x42a00088462060003