1 / 8

Primary Redundancy Task

Primary Redundancy Task. Redundancy Monitor Process. Control Update Process. SNL Update Process. Control Exec. SNL Exec. Q U E. Q U E. SNL Program Context. Scan Task. SNL Program Context. Scan Task. : :. SNL Program Context. Scan Task. I/O Driver. I/O Driver.

keena
Download Presentation

Primary Redundancy Task

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Primary Redundancy Task Redundancy Monitor Process Control Update Process SNL Update Process Control Exec SNL Exec Q U E Q U E SNL Program Context Scan Task SNL Program Context Scan Task : : SNL Program Context Scan Task I/O Driver I/O Driver I/O Driver

  2. Backup Redundancy Task LAN Redundancy Monitor Process Control Update Process SNL Update Process Control Exec SNL Exec Q U E Q U E SNL Program Context Database SNL Program Context : : SNL Program Context I/O Driver I/O Driver I/O Driver I/O

  3. On Initialization – Read the database • getCurrentRedundState () as a variant of dbDumpRecords • NOTE: This example is similar but not identical to the actual dbDumpRecords routine. • void dbDumpRecords(DBBASE *pdbbase) • { • DBENTRY *pdbentry; • long status; • pdbentry = dbAllocEntry(pdbbase); • status = dbFirstRecordType(pdbentry); • if(status) {printf("No record descriptions\n");return;} • while(!status) { • printf("record type: %s",dbGetRecordTypeName(pdbentry)); • status = dbFirstRecord(pdbentry); • if(status) printf(" No Records\n"); • else printf("\n Record:%s\n",dbGetRecordName(pdbentry)); • while(!status) { • status = dbFirstField(pdbentry,TRUE); • if(status) printf(" No Fields\n"); • while(!status) { • printf(" %s:%s",dbGetFieldName(pdbentry), • dbGetString(pdbentry)); • status=dbNextField(pdbentry,TRUE); • } • status = dbNextRecord(pdbentry); • } • status = dbNextRecordType(pdbentry); • } • printf("End of all Records\n"); • dbFreeEntry(pdbentry); • }

  4. “PS01:SCAN”, “1 Sec” “PS01.DTYP”,”.ECPSC” “PS01.I”,”PS01:I” “PS01.V”.”PS01:V” Synch Start Time stamp? “PS01:SCAN”, “1 Sec” “PS01.DTYP”,”.ECPSC” “PS01.I”,”PS01:I” “PS01.V”.”PS01:V” Event Data Trigger Data “PS01:VAL”,”On” “PS01:I:VAL”,”.5” “PS01:I:SEVR”,”Minor” “PS01:V:VAL”,”9” “PS01:V:SEVR”,”Major” “PS02:VAL”,”Fault” “PS02:SEVR”,”Major” “PS02:OVRTMP”,”True” “BPM1:X.VAL”, “.05” Synch Stop Posting Data For Servers – V4 Database Monitor Queue Scan Task dbPostEvent

  5. Synch Start Time stamp? Event Data Trigger Data “PS01:VAL”,”On” “PS01:I:VAL”,”.5” “PS01:I:SEVR”,”Minor” “PS01:V:VAL”,”9” “PS01:V:SEVR”,”Major” “PS02:VAL”,”Fault” “PS02:SEVR”,”Major” “PS02:OVRTMP”,”True” “BPM1:X.VAL”, “0.05” Synch Stop Monitor Task to the Continuous Control Executive (Redundancy) Redundancy Backup All fields ever changed Flag since last backup Monitor Queue PS1 VAL Changed On I Changed .5 V Changed 9 SEVR Not Changed ok Cont Cntrl Exec PS1:I VAL Changed .5 SEVR Changed Minor PS1:V VAL Changed 9 SEVR Changed Major . .

  6. Field Update Structure • Outgoing Cache • Red_Record_List • Pointer Point to local Record • Short Local Point Type • Pointer First Field • Character Sent Once (Cleared on New Session) • Int Handle • Red_Field_List • Short Field Number • Pointer Next Field or 0 • Char Needs to be Sent • Pointer Local Address of Field • Pointer Address of Field Descriptor • Short Number of elements • Short Type • Short Size in Bytes of Data • Character Field Data Buffer[Size] • Incoming Field Update List (Cleared on New Session) • Array of Red_in_Msg Structures • Red_in_Msg Structure • Int Partner Handle • Pointer Local Cache Pointer • Short Error Code • Pointer Pointer to Name

  7. Diagnostic Data • Maximum Time a send update took • Maximum Number of records in a send update not in a traverse • Maximum Number of fields in a send update not in a traverse • Maximum Number of bytes in a send update not in a traverse

  8. Continuous Control Exec - Status Control Update Process Control Update Process Control Exec Q U E Control Exec Q U E Database Scan Task Backup Scan Task : : Scan Task Primary

More Related