Management Processes TimeLine within SOSL


 

SOSL Engine could be used effectively to manage the processes operation’s ‘Time Line’. Parent as well as Child processes operation’s time line could be manipulated and in fact controlled from within each process separately and/or with a separate and possibly a dedicated Watchdog timer process or even multiple Watchdogs with each controlling a segment of the overall management process!

 

Exercising TimeLine controls is mainly used for either one of the following: management process Initiation, Staging, Synchronization, or Termination of the whole or a subset of the Parent or Child management processes.

 

The TimeLine based controls depends on either the host server’s system time directly or on the time differentials between two consecutive polls or events within the overall management process. See the Time and TimeLine related SOSL Engine command functions under Time Handling commands.

 

 

3.1  Process Initiation

 

Process time based initiation is when a process is to be started only at a certain time of the day where the time value is derived from the host server. The main process module checks the time and performs a MODULE-CALL function accordingly.

 

The typical logical flow of the Process Initiation is represented as follows:

 

MODULE <Module_Name> ();

DESCRIPTION “<textual description>”;

BEGIN

…

POLL-FREQ <Iterations Count>

{

…

DEFINE <a variable to store the TimeStamp>;

GETDATE (“<TimeStamp Format>” );

 

            <Store the value of the GETDATE function in the defined Variable>’

 

            IF         (<stored TimeStamp == Administrator pre-defined TimeStamp>)

THEN

            MODULE-CALL <Module_NewName> (Module_Parameters);

…

ENDIF;

…

WAIT (<Time Element>);

…

};

END

 

 

3.2  Process Staging

 

Process time based staging is when a process is to be started only at a certain time of the day where the time value is derived from the host server and then runs for a pre-specified period of time. The main process module checks the time and performs a MODULE-CALL function accordingly; it either passes the time element to the child module or leaves it up to the child to test the time and terminate itself.

 

The typical logical flow of the Process Staging is represented as follows:

 

MODULE <Module_Parent> ();

DESCRIPTION “<textual description>”;

BEGIN

 

…

POLL-FREQ <Iterations Count>

{

…

DEFINE <a variable to store the TimeStamp>;

GETDATE (“<TimeStamp Format>” );

 

            <Store the value of the GETDATE function in the defined Variable>’

 

            IF <stored TimeStamp == Administrator pre-defined TimeStamp >

THEN

            MODULE-CALL <Module_Child> (Module+Time_Parameters);

…

ENDIF;

…

WAIT (<Time Element>);

…

};

END

 

Another logical flow is as follows:

 

MODULE <Module_Parent>();

DESCRIPTION “<textual description>”;

BEGIN

 

…

POLL-FREQ <Iterations Count>

{

…

DEFINE <a variable 1 to store the SystemTime>;

GetSysTime ();

 

            <Store the value of the SystemTime in the defined Variable>’

 

            MODULE-CALL <Module_Child> (Module_Parameters: SystemTime1);

 

};

END

 

Where;

 

MODULE <Module_ Child> (SystemTime1 INT);

DESCRIPTION “<textual description>”;

BEGIN

            …

DEFINE <a variable 2 to store the SystemTime>;

GetSysTime ();

 

            <Store the value of the NEW SystemTime in the defined Variable>’

 

            IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >

THEN

            <SOSL Management Script commands>;

…

ENDIF;

END

 

In both scenarios above; the Child management process runs only for the administrator specified period of time, namely the difference value between the SystemTime2 and the systemTime1 variables. 

 

 

3.3  Process Synchronization

 

Process synchronization spans multiple parent as well as child processes in terms of continuously re-aligning the Polling and the Processing components of each management process with the other management processes running on the same host server. This persistent and engineered alignment is intended to better allocate and distribute host server resources among ALL participating management processes or among a selected subset of the overall management processes.

 

This collaborative resource alignment and synchronization helps to strengthen the overall management solution structure. The key to achieving this goal is by realizing the start and stop points along the time line of each of the process’s Polling and Processing components and manipulating the start point with each cycle/run of the management processes involved. This is further tightened by continuously measuring and reacting to any large variations in the durations of each of the components per running management script and comparing this to the overall network traffic state.

 

Inter-Processes TimeLine Synchronizations could be a very complex and tedious task to setup and to execute. The complexity increases as the number of processes increase and could eventually lead to a state of corrosion in creating a functioning and viable Synchronization. Hence; care should be taken when planning this task by identifying only those processes that contain process components persistent and extensive enough to warrant Synchronization with other process’s components.

 

The task of setting up Inter-Processes TimeLine Synchronization involves the following steps:

 

1)     SystemTime Database variable implantations.

2)     Polling and Processing components Duration calculations.

 

The following flow shows the typical flow of such Processes:

 

MODULE <Module_Name> ();

DESCRIPTION “<textual description>”;

BEGIN

 

…

POLL-FREQ <Iterations Count>

{

…

SystemTime1 = GetSysTime ();

            PollingStartTime = GetObjectTime (SystemTime1);

 

            -Polling Component-

 

            POLL (<MIB_Objects>);

 

            SystemTime2 = GetSysTime ();

            PollingEndTime = GetObjectTime (SystemTime2);

 

            ProcessingStartTime = PollingEndTime;

            PollingDuration = SystemTime2 - SystemTime1;

 

            -Processing Component-  

 

<SOSL Management Script commands>;

 

SystemTime3 = GetSysTime ();

 

            ProcessingEndTime = GetObjectTime (SystemTime3);

            ProcessingDuration = SystemTime3 – SystemTime2;

 

};

END

 

Where SystemTime1, SystemTime2, and SystemTime3 should be defined as Database variables and where the same SystemTime Database variable implantations could be done for all participating processes in the processes TimeLine Synchronization.

 

MODULE <TimeLine_Synchronization> ();

DESCRIPTION “<textual description>”;

BEGIN

            …

 

            MODULE-CALL <Module_Child> (Module_Parameters: SystemTime1);

 

POLL-FREQ <Iterations Count>

{

GETDATE (“<TimeStamp Format>” );

 

SystemTime;

 

            IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >

THEN

            <SOSL Management Script commands>;

…

ENDIF;

};

END

 

MODULE <Module_Name> ();

DESCRIPTION “<textual description>”;

BEGIN

 

…

POLL-FREQ <Iterations Count>

{

…

            IF <(SystemTime2 – SystemTime1) != Administrator pre-defined Time period >

THEN

           

                        -Polling Component-

                        POLL (<MIB_Objects>);

 

…

ENDIF;

 

            -Polling Component-

 

            POLL (<MIB_Objects>);

 

            SystemTime2 = GetSysTime ();

            PollingEndTime = GetObjectTime (SystemTime2);

 

            ProcessingStartTime = PollingEndTime;

            PollingDuration = SystemTime2 - SystemTime1;

 

            -Processing Component-       

 

<SOSL Management Script commands>;

 

SystemTime3 = GetSysTime ();

 

            ProcessingEndTime = GetObjectTime (SystemTime3);

            ProcessingDuration = SystemTime3 – SystemTime2;

 

};

END

 


[White Papers], [Open a Support Ticket], [Report Defects],
[Enhancement Requests], [Beta Solution Program]

[Home], [About], [Solutions Center], [NMS Market], [Products & Services],
[Management Technology], [Technical Support], [Contact us], [Site Map]