Spezifikation / Framework-APIBatch2.1
Jakarta Batch
Jakarta Batch definiert Jobs, Steps, Chunks, Readers, Processors, Writers und Job Repository-Konzepte.
Einordnung
Spezifikation / Framework-API
Enterprise-Rolle
Batch ist wichtig für Massendaten, Tagesabschlüsse, Abrechnung, Exporte und wiederholbare Verarbeitung.
Fachliches Verständnis
Batch ist wichtig für Massendaten, Tagesabschlüsse, Abrechnung, Exporte und wiederholbare Verarbeitung. In der Praxis ist wichtig, die Spezifikation nicht mit der konkreten Runtime zu verwechseln. Der Standard beschreibt die portablen APIs, die Implementierung entscheidet über Konfiguration, Performance, Betrieb und Support.
Kernkonzepte
- Job XML.
- Chunk Processing.
- Checkpoint und Restart.
- Batchlet für einfache Schritte.
- JobOperator zur Steuerung.
Typische Einsatzfälle
- Millionen Datensätze verarbeitet.
- Fehlerhafte Jobs wieder aufnehmen.
- Nachtläufe und Tagesabschlüsse modellieren.
Technisches Beispiel
xml
<job id="nightly-billing" xmlns="https://jakarta.ee/xml/ns/jakartaee" version="2.1">
<step id="read-open-orders">
<chunk item-count="100">
<reader ref="openOrderReader"/>
<processor ref="billingProcessor"/>
<writer ref="invoiceWriter"/>
</chunk>
</step>
</job>
Architekturregel: Jakarta APIs gehören an Systemgrenzen und Infrastrukturpunkte. Fachentscheidungen bleiben in Application Services und Domain-Modellen testbar und möglichst unabhängig vom Container.
Enterprise-Fallen
- Batchlogik im Scheduler verstecken.
- Keine Restartfähigkeit.
- Zu große Transaktionschunks.
Legacy-Modernisierung
Cron/Shell/Stored-Procedure-Batches können in standardisierte Jobs mit Restart und Monitoring überführt werden.
Vertiefung: Review-Fragen für Senior-Entwickler
- Welche Spezifikation ist hier wirklich nötig?
- Welche Runtime-Funktion wird genutzt und ist sie portabel?
- Wo liegt die Transaktionsgrenze?
- Sind API-Verträge, DTOs und Domain-Modelle getrennt?
- Ist der Code ohne Application Server testbar?