1 Generelt
Ved å benytte hendelsesbasert oppdatering av et gitt målsystem, vil målystemet oppdateres i nær-sanntid, til forskjell fra batch-integrasjoner som kjører med jevne mellomrom. Eksempelvis vil tilslag av AD-spread resultere i at entiteten som får spreadet provisjoneres umiddelbart i AD.
1.1 Ansvarsfordeling for oppfølging av hendelser
I de tilfeller utføring av hendelser feiler permanent (eks. AD er utilgjengelig grunnet strømbrudd eller lignende), må noen ta grep om de hendelsene som har feilet permanent manuelt. Det må avklares hvem av Cerebrum-drift og målsystemeier som har hovedansvar for dette.
1.2 Brukergrensesnitt for administrasjon av hendelser
Det er implementert et knippe kommandoer i bofh som tillater inspeksjon og håndtering av hendelser. Brukerne av denne funksjonaliteten vil være driftspersonellet for Cerebrum og/eller driftspersonellet for det aktuelle målsystem, avhengig av ansvarsfordeling.
1.3 Loggføring av utførte hendelser
Når en hendelse blir utført i målsystemet, er det mulig å lagre en kvittering i Cerebrum, som sier at hendelsen er utført.
Når man utvikler hendelsesbasert oppdatering av et målsystem, må det foreligge en spesifikasjon på hvilke hendelser som skal loggføres.
2 Grensesnitt for administrasjon av hendelser
Det er implementert et knippe funksjoner i BOFH, som kan benyttes til å håndtere hendelser.
2.1 event stat
Kommandoen viser en oversikt over hendelsene tilknyttet et spesifikt målsystem. Eksempelvis kan man gjøre:
bofh> event stat Exchange Total failed: 464 Total locked: 1 Total : 2711
Total er det totale antallet hendelser registrert for målsystemet.
Total locked er antallet hendelser som er låst. Med låst menes det at hendelsen er tatt for oppdatering av hendelseshåndtereren (EventHandler). Hvis hendelseshåndtereren skulle krasje eller bli drept midt i en oppdatering, blir hendelsen stående som låst i fremtiden.
Total failed er antallet hendelser som har feilet permanent (dvs. utførelsen av hendelsen har feilet flere ganger en det maksimale antallet som er satt i konfigurasjonen).
2.2 event list
Kommandoen lister opp hendelser som ligger i kø. Kjøres den slik som dette, vil den liste opp alle hendelser som har feilet, eller er låst:
bofh> event list Exchange Id Type Taken Failed 304279 e_group:add None 10 490267 e_group:add 2014-04-25_12:50:38.00 0 < … >
Her ser vi at en innmelding i en gruppe har feilet mer en ti ganger.
event list kan eventuelt kjøres med argumentet full, da vises det en liste over alle hendelser, selv de som ikke er låst:
bofh> event list Exchange full Id Type Taken Failed 304279 e_group:add None 10 490267 e_group:add 2014-04-25_12:50:38.00 0 1182061 email_address:add_address None 1 1180012 email_address:add_address None 2 < … >
2.3 event force
I de tilfeller en hendelse har feilet permanent, kan man tvinge utførelse av hendelsen:
bofh> event force Exchange 304279 Forcing succeeded
Telleren over hvor mange ganger en hendelse har blitt prøvd, blir da dekrementert med 1, og hendelsen blir køet for utførelse.
2.4 event unlock
Hvis hendelseshåndtereren har blitt avbrutt midt i utførelsen av en hendelse, og hendelsen har fått status som låst, kan man låse opp hendelsen igjen, slik at den blir køet for utførelse igjen:
bofh> event unlock Exchange 490267 Unlock succeeded
I eksempelet over låser vi opp hendelsen som var markert som låst, i de tidligere eksemplene.
2.5 event delete
Hvis det er ønskelig å slette en hendelse, kan dette gjøres slik:
bofh> event delete Exchange 490267 Deleted succeeded
2.6 event info
Til tider vil man ønske å se litt informasjon om en hendelse:
bofh> event info Exchange 294018 (<mx.DateTime.DateTime object for '2014-04-02 02:02:55.00' at 164239d0>, 294018L, xxxL, xxxL, xxxxL, xxxxL, None, xxL, "(dp0\nS'dom_id'\np1\nL1045039L\nsS'lp'\np2\nS'local_part'\np3\ns.")
Denne funksjonaliteten viser en rå dump av hendelsen, men det står på planen å implementere funksjonalitet som presenterer denne informasjonen på et mer menneskeleselig format.
2.7 event search
I enkelt tilfeller er det litt ubekvemt å lete etter enkelte hendelser med event list. Vi kan da søke gjennom hendelser:
bofh> event search Search pattern >? Patterns that can be used: id:0 Returns all events where dest- or subject_entity is set to 0 type:spread:add Returns all events of type spread:add param:Joe Returns all events where the string "Joe" is found in the change params In combination, these patterns form a boolean AND expression Search pattern > param:Joe Id Type SubjectType DestinationType Taken Failed Params 294024 email_address:add_address email_target email_address None 10 "(dp0\nS'dom_id'\np1\nL1044978L\nsS'lp'\np2\nS'Joe'\np3\ns."
Søket ovenfor leter etter strengen "Joe", i hendelsenes metadata. Tilfeldigvis fant vi et tilslag av e-post adresse.