Wichtig
Kleinigkeit
Fehlerbehebung
Wichtig
Verbesserung
(Nutzer-sichtbar)
ConcurrencyManager, ContextScheme, LockingManager, LockingFactory, TokenScheme und alles was dazu gehört wird in einem absurden Format konfiguriert, ist niemandem erklärbar, kann von niemandem erklärt werden und führt ausschließlich zu Meldungen, dass irgendwo ulkige Sachen konfiguriert werden müssen, dass es überhaupt funktioniert - editWrapper und editStructure. Das muss alles weg.
Verbesserung
So funktioniert es jetzt: LockService
Offene Punkte
-
Freigabe aller Sperren bei Session-Ende. -
Lock-Strategien für Strukturen unabhängig von model-search. -
Admin-Sicht für Freigabe von Locks. -
Renew bei "Übernehmen" prüfen. -
Speichern bei abgelaufenem Lock muss fehlschlagen. -
Timeout als Long speichern, da ResultSet.updateTimestamp() nicht mit Zeitzonen arbeitet. -
Konfigurierten Lock-Handler an Komponente wieder einführen. -
TokenService muss SELECTs "FOR UPDATE" machen. -
Umstellung von Einzelfällen: PMTProjectEditTokenHandler. -
Sperren direkt am Typ konfigurieren. -
Tabelle TL_LOCK wird nicht aufgeräumt - es beleiben ungenutzte Einträge übrig.
Code-Migration
- ConcurrencyManager, ContextScheme, LockingManager, LockingFactory, TokenScheme und alles was dazu gehört umstellen auf LockService, TokenService, Lock.
- EditComponent-Konfiguration: tokenHandler -> lockHandler, tokenContextName entfallen, lockOperation neu.
- Umstellen von *ConcurrencyScheme.xml auf Konfiguration des LockService.
Daten-Migration
- Tabelle TOKEN ist entfallen.
- Neue Tabellen in lock.schema.xml aufsetzen.
Test
- test.com.top_logic.model.search.locking.TestLockService