## 6.4 Infrastructure Working Group

In addition to SIF messages and strictly infrastructure-related objects like `SIF_ZoneStatus`, the Infrastructure Working Group occasionally defines data model objects that either do not fall neatly within the purview of currently existing data model working groups (e.g. the Authentication object) or that can be provided by the ZIS and agents alike—typically metadata about a zone as opposed to data directly originating from the K-12 instructional and administrative environment (e.g. `SIF_LogEntry`).

### 6.4.1 SIF_LogEntry

This object captures an occurrence within a SIF node (ZIS or agent)—error, warning or information—for storage in an optionally provided zone log. SIF_LogEntry Adds are reported and are used to post new log entries to the provider of the log. Of course, subscribing agents may also filter incoming Adds as part of their own logging mechanism. Any Change or Delete SIF_Events should be ignored at the agent level, but should be routed by the ZIS (though this should not be necessary). Use of the log is optional and voluntary, except where noted as mandatory in this specification. Nodes may post as much or as little log data as required with the expectation that if there is a provider of SIF_LogEntry that the logged entries be available for a provider-defined amount of time subject to provider-defined restrictions on the quantity of data logged by any given node.

SIF_Events are reported for this object.

Figure 6.4.1-1: SIF_LogEntry

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_LogEntry |  | This object captures an occurrence within a SIF node (ZIS or agent)—error, warning or information—for storage in an optionally provided zone log. SIF_LogEntry Adds are reported and are used to post new log entries to the provider of the log. Of course, subscribing agents may also filter incoming Adds as part of their own logging mechanism. Any Change or Delete SIF_Events should be ignored at the agent level, but should be routed by the ZIS (though this should not be necessary). Use of the log is optional and voluntary, except where noted as mandatory in this specification. Nodes may post as much or as little log data as required with the expectation that if there is a provider of SIF_LogEntry that the logged entries be available for a provider-defined amount of time subject to provider-defined restrictions on the quantity of data logged by any given node. |
@ | Source | M | The SIF node that logged this entry. | values: Agent ZIS
@ | LogLevel | M | The level of the log entry herein described. | values: Info Warning Error
| SIF_LogEntryHeader | M | This is a copy of the SIF_Event/SIF_Header in the message that added this SIF_LogEntry to the zone. This copy facilitates querying log entries with regard to source, time, optionally destination, etc. |
| SIF_LogEntryHeader/SIF_Header | M |  | SIF_Header
| SIF_OriginalHeader | O | If this log entry references a previous SIF_Message, this element contains a copy of the referenced message's SIF_Header. |
| SIF_OriginalHeader/SIF_Header | M |  | SIF_Header
| SIF_Category | C | A SIF_LogEntry category. May be omitted for informational-type postings, where typically a textual description will suffice. Note that categories may be combined with the Source attribute of SIF_LogEntry to differentiate agent error conditions from ZIS error conditions. | values: 1 Success 2 Data Issues with Success Result 3 Data Issues with Failure Result 4 Error Conditions
| SIF_Code | O | A SIF_LogEntry code with regard to SIF_Category above. May be omitted for informational-type postings, where typically a textual description will suffice. If a SIF_Code is included, SIF_Category must be included as well. | union of: SIF_LogEntrySuccessCategoryType SIF_LogEntryDataIssuesWithSuccessResultType SIF_LogEntryDataIssuesWithFailureResultType SIF_LogEntryAgentErrorConditionType SIF_LogEntryZISErrorConditionType
| SIF_ApplicationCode | O | An error code specific to the application posting the entry. Can be used by vendors to query log entries for errors specific to their applications. If a SIF_ApplicationCode is included, SIF_Category must be included as well; i.e., application-specific error codes should fall within one of the defined log entry categories. | xs:normalizedString
| SIF_Desc | M | A textual description of the error. | xs:string
| SIF_ExtendedDesc | O | Any extended error description. | xs:string
| SIF_LogObjects | O |  | List
| SIF_LogObjects/SIF_LogObject | MR | Any SIF data objects to which this log entry may apply. | SIF_ResponseObjectType
@ | ObjectName | M | The name of the SIF object referenced (e.g. StudentPersonal). | SIF_RequestObjectNamesType
| SIF_Metadata | O |  | SIF_Metadata
| SIF_ExtendedElements | O |  | SIF_ExtendedElements

Table 6.4.1-1: SIF_LogEntry
<SIF_LogEntry Source="Agent" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>83252CE5C5F14FD88607F645224E4CAA</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:36:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_Category>4</SIF_Category> <SIF_Code>1</SIF_Code> <SIF_Desc>Agent has run out of memory and will shut down</SIF_Desc> <SIF_ExtendedDesc>OutOfMemoryException: ...</SIF_ExtendedDesc> </SIF_LogEntry>
Example 6.4.1-1: SIF_LogEntry when an agent encounters a system failure
<SIF_LogEntry Source="Agent" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>BA86894B795A4EB7A45093AD1CDBA54C</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:39:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_OriginalHeader> <SIF_Header> <SIF_MsgId>74234DCB460A4BCB8937B07467EA73CC</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:29:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyLibraryAgent</SIF_SourceId> </SIF_Header> </SIF_OriginalHeader> <SIF_Category>3</SIF_Category> <SIF_Code>2</SIF_Code> <SIF_ApplicationCode>-33</SIF_ApplicationCode> <SIF_Desc>Could not delete student Sonya Harris due to business rule</SIF_Desc> <SIF_LogObjects> <SIF_LogObject ObjectName="LearnerPersonal"> <LearnerPersonal RefId="53E6F4C0109FDE4DC7E11DB9C0100163"> <LocalId>032134</LocalId> <PersonalInformation> <Name Type="B"> <FamilyName>Harris</FamilyName> <GivenName>Sonya</GivenName> <PreferredFamilyName>Harris</PreferredFamilyName> <PreferredGivenName>Sonya</PreferredGivenName> </Name> <Demographics> <EthnicityList> <Ethnicity> <Code>WENG</Code> <Source>P</Source> </Ethnicity> </EthnicityList> <Gender>F</Gender> <BirthDate>1990-06-23</BirthDate> <LanguageList> <Language> <Code>ENG</Code> <TypeList> <Type>F</Type> </TypeList> </Language> </LanguageList> </Demographics> <Email Type="School">sonya.harris@myschool.co.uk</Email> <Address Type="Current"> <PAON> <StartNumber>17</StartNumber> </PAON> <Street>Bushmaster Close</Street> <Town>Castle Vale</Town> <AdministrativeArea>Birmingham</AdministrativeArea> <PostCode>B35 7PH</PostCode> <Country>GBR</Country> </Address> </PersonalInformation> <UPN>F330950043367</UPN> <UPNAllocationDate>2001-08-27</UPNAllocationDate> <FormerUPNList> <UPN>C936846321107</UPN> </FormerUPNList> <ULN>1234567890</ULN> <FamilyStructure>A</FamilyStructure> <InCare> <Current>No</Current> <Type>WP</Type> <LAId>330</LAId> <AtCurrentSchool>Yes</AtCurrentSchool> <PersonalEducationPlan>No</PersonalEducationPlan> </InCare> <ConnexionsAgreement>Yes</ConnexionsAgreement> <ChildProtectionRegister> <IsRegistered>Yes</IsRegistered> <LAId>330</LAId> <SiblingRegistered>No</SiblingRegistered> </ChildProtectionRegister> <GiftedTalented>No</GiftedTalented> <HomeLA>330</HomeLA> <LearnerIdentity>ENG</LearnerIdentity> <Pregnant>No</Pregnant> <SiblingList> <Sibling> <LearnerPersonalRefId>6219B1684CF9B799640234CBB9992134</LearnerPersonalRefId> <UIPI>034887</UIPI> </Sibling> </SiblingList> <UniformAllowance>No</UniformAllowance> <CurrentSchoolEnrolment LearnerSchoolEnrolmentRefId="010C6038DC7E11DB9C010016353E6F4C"> <LAId>330</LAId> <EstablishmentId>5530</EstablishmentId> <NCYearGroup>9</NCYearGroup> </CurrentSchoolEnrolment> <PreviousEstablishmentList> <PreviousEstablishment> <EstablishmentId>2117</EstablishmentId> <EstablishmentName>Allbury Primary School</EstablishmentName> <LAId>936</LAId> <EntryDate>1999-08-20</EntryDate> <ExitDate>2001-06-14</ExitDate> <ExitType>MS</ExitType> <LastSchool>Yes</LastSchool> </PreviousEstablishment> </PreviousEstablishmentList> </LearnerPersonal> </SIF_LogObject> </SIF_LogObjects> </SIF_LogEntry>
Example 6.4.1-2: SIF_LogEntry when an agent fails to delete a student
<SIF_LogEntry Source="Agent" LogLevel="Info"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>64B0CC6CFB314A328E520A102229CBC8</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:46:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_Desc>Agent starting synchronization</SIF_Desc> </SIF_LogEntry>
Example 6.4.1-3: SIF_LogEntry when an agent starts synchronizing data
<SIF_LogEntry Source="ZIS" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>BC1D982CEC5F49D998169930FE5B271C</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:49:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_OriginalHeader> <SIF_Header> <SIF_MsgId>74234DCB460A4BCB8937B07467EA73CC</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:29:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyLibraryAgent</SIF_SourceId> </SIF_Header> </SIF_OriginalHeader> <SIF_Category>4</SIF_Category> <SIF_Code>2</SIF_Code> <SIF_Desc>Could not deliver StudentPicture Add to RamseyLibraryAgent (127,546 bytes) due to maximum buffer size of 16,384 bytes.</SIF_Desc> </SIF_LogEntry>
Example 6.4.1-4: SIF_LogEntry when a ZIS fails to deliver a message due to buffer size limitations