Tags:
create new tag
, view all tags

Synchronisation ETH-Beziehung -> nethz

Die ETH-Beziehung charakterisiert die gröbste Personenkategorie. Die folgende Tabelle veranschaulicht dies (die Zahlen stammen vom Februar 2010):

ETH-Beziehung Anzahl Personen Beschreibung
Mitarbeiter 10800  
Student 15600  
Hörer 1700 Mitarbeiter und externe, die ausgewählte Vorlesungen besuchen
Dozent 2500  
ETH-nahe 300 Angehöriger einer ETH-nahen Organisation
Emeritus 270 ordentliche Professoren im Ruhestand
Gast 300 Titularprofessoren im Ruhestand
Pensioniert 440 ehemalige Mitarbeiter, welche eine @retired - Emailadresse haben

In nethz existieren einerseits gleichnamige Ngroups, andererseits enthält die Tabelle PERSON Flags wie IS_STUDENT, IS_EMPLOYEE, IS_LECTURER etc., welche diese ETH-Beziehungen reflektieren.

Der Mechanismus für die Synchronisation ist analog zu anderen Synchronisationsprozessen wie z.B. bei AnstellungsdatenSynchronisation:

  1. Der DBMS-Job SYNC_BEZIEHUNG kopiert die aktuellen Daten der View DLDB_BEZIEHUNG und speichert diese in der Tabelle TMP_BEZIEHUNG
  2. Die Tabelle TMP_BEZIEHUNG wird durch denselben DBMS-Job mit der Tabelle BEZIEHUNG abgeglichen
  3. Änderungen auf der Tabelle BEZIEHUNG werden durch die Trigger BEZIEHUNG_INS_AFT und BEZIEHUNG_DEL_AFT registriert und in die Synchronisationstabelle BEZIEHUNG_SYNC geschrieben
  4. Die Synchronisationstabelle wird durch die DBMS-Jobs MAP_BEZIEHUNG_TO_NGROUP und MAP_BEZIEHUNG_TO_PERSON abgearbeitet

Folgende ORACLE-Objekte sind an der Synchronisation beteiligt:

Name Objekt-Typ Beschreibung
DLDB_BEZIEHUNG view Quelle der Daten (auf PDB)
SYNC_BEZIEHUNG procedure Wird als DBMS-Job regelmässig ausgeführt und aktualisiert die Zieltabelle BEZIEHUNG
BEZIEHUNG table lokale Kopie der «Anstellungsdaten» von Angehörigen ETH-naher Organisationen. Enthält nur die aktuellen «Anstellungen»
BEZIEHUNG_INS_AFT trigger schreibt nach einem INSERT auf BEZIEHUNG einen Datensatz in UPDATE_BEZIEHUNG
BEZIEHUNG_DEL_AFT trigger schreibt nach einem DELETE auf BEZIEHUNG einen Datensatz in UPDATE_ETHNAHE
BEZIEHUNG_SYNC table Synchronisations-Tabelle, welche Änderungen an der Tabelle BEZIEHUNG festhält
MAP_BEZIEHUNG_TO_NGROUP procedure Wird als DBMS-Job regelmässig ausgeführt und weist die primären User von ETH-nahen Personen entsprechenden Ngroups zu
MAP_BEZIEHUNG_TO_PERSON procedure Wird als DBMS-Job regelmässig ausgeführt und setzt in der Personen-Tabelle die IS_* und WAS_* - Flags

neuer Synchronisationsmechanismus

Daten von der PDB nach nethz kopieren (mit Karenzfrist)

  1. DLDB_BEZIEHUNG MOVED TO... SYNC_BEZHIEHUNG MOVED TO... BEZIEHUNG_TMP Daten von der remote-Tabelle kopieren. Dabei werden alle Daten mit dem Attribut LAST_CHECKED versehen. Falls ein Eintrag bereits vorhanden ist, wird LAST_CHECKED aktualisiert.
  2. Alle Einträge in BEZIEHUNG_TMP, bei welchen LAST_CHECKED mehr als 30 Tage (Karenzfrist) her ist, werden aus der Tabelle BEZIEHUNG gelöscht.
  3. Diesselben Einträge werden auch aus BEZIEHUNG_TMP entfernt.
  4. Alle neuen Einträge werden in BEZIEHUNG eingetragen.
  5. Es gibt keine UPDATE-Operationen auf der Tabelle BEZIEHUNG

Gruppen-Mitgliedschaften erstellen

  1. BEZIEHUNG MOVED TO... BEZIEHUNG_INS_AFT MOVED TO... NGROUP_PERSON Personen - Ngroup - Beziehung herstellen
  2. BEZIEHUNG MOVED TO... BEZIEHUNG_DEL_AFT MOVED TO... NGROUP_PERSON Personen - Ngroup - Beziehung löschen
  3. Die Trigger auf NGROUP_PERSON bewirken, dass der primäre Uname dieser Person sofort Mitglied der entsprechenden Gruppe wird oder (beim Löschvorgang) sofort aus derselben entfernt wird.
  4. NGROUP_PEROSN MOVED TO... schedule_execute.pl MOVED TO... PERSON / NGROUP_MEMBER: neu angelegte Personen und Unames werden mit den richtigen Gruppen-Zugehörigkeiten angelegt.
  5. NGROUP_PERSON MOVED TO... SYNC_BEZIEHUNG_TO_PERSON MOVED TO... PERSON: Bestehende Personen-Information wird aktualisiert

Topic revision: r4 - 2016-08-29 - SwenVermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback