2. Batchverarbeitung
● Verarbeitung von großen Datenmengen ohne
Benutzerinteraktivität.
● Gleiche Schritte werden auf die gleiche Art von
Daten regelmäßig ausgeführt
● Herausforderungen: große Datenmenge,
Automatisch, Robustheit, Zuverlässigkeit und
Performance, Transaktionen
3. Beispiele für Batchverarbeitung
● Verarbeitung von Abrechnungen
● Erstellung von Statistiken
● Kommunikation von verschiedenen
Programmen/Systemen
● Allgemein:
– Große Datenmengen einlesen, verarbeiten, in ein anderes
Format exportieren (XML, CSV, Datenbank)
4.
5. Kurz zu Spring Framework
● Open Source Framework
● AOP
● Convention over configuration
● Dependeny Injection
● Viele Erweiterung (Integration, Boot und Batch)
7. Vorteile Spring Batch
● Hilft den Code zu strukturieren
● Chunk orientierte Verarbeitung (Streaming, parallele
Verarbeitung)
● Viele Out-of-the-box Komponenten
● Transaktionsmanagement
● Hilft bei der Fehlerbehandlung (Überspringen von
fehlerhaften Datensätzen; Retry-Logik; Transaktion
zurück rollen?)
● Automatisches Logging in die Datenbank
● Infrastruktur für Start/Stop/Retry
13. Neustart eines Jobs
● Job + Parameter = JobInstance
– Kann solange gestartet werden bis er einmal fehlerfrei
durchgelaufen ist (JobExecution)
● Fehler korrigieren und neu starten mit gleichen
Parametern
● Probleme: Reihenfolge des Einlesens (z. B. SQL:
ohne „order by“)
14. Transaktion und JDBCReader
● Alle Datensätze auf einmal einlesen
– zu viele Daten im Cache
● Konstant einlesen
– Commit am Ende des Cunks schließt diese Verbindung
● Außerhalb der Transaktion: Für den Reader eine
eigene Transaktion starten
18. Skip im Reader
● Skip-Zähler erhöht, Exception gespeichert
● Kein Rollback
19. Probleme bei Skip
● Der aktuelle Chunk wird in den Cache geladen und
gleichzeitig die Transaktion zurückgerollt
– Queue: Items werden zurück in die Queue gerollt und die
gleichen Items in dem Cache geladen
● Doppelte Verarbeitung!