Legacy events

Introduksjon til intern event-kø, og hendelsesbasert oppdatering av målsystemer (exchange) fra Cerebrum.

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.

Publisert 27. juli 2026 16:04