DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦a8017d632⟧ TextFile

    Length: 7563 (0x1d8b)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

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;