FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
The JDK 8 end of public updates and the Java SE subscription
1. Wartung älterer Oracle JDK-Versionen mit der Java SE Subscription
JDK 8 End of Public Updates (EoPU)
von Wolfgang Weigend
Durch die Einführung kürzerer Java-Release-Zyklen, mittels Time-Based-Release-
Versionierung im JDK-Enhancement-Vorschlag JEP 322, werden zwei JDK-
Versionen pro Jahr von Oracle veröffentlicht, wie in der Abbildung 1 dargestellt. Der
Rhythmus gibt vor, dass nach dem Oracle JDK 8, alle drei Jahre ein weiteres Oracle
JDK als Long-Term-Support-Release (LTS) folgt, für das die Benutzer den Oracle
Support als Java SE Subscription [1] erwerben können, wenn sie das Oracle JDK im
Produktivbetrieb einsetzen möchten. Das Oracle JDK 8 ist ein LTS-Release und
nach Anwenderangaben, befinden sich damit ca. 85% der Java-Applikationen im
Produktivbetrieb. Die öffentliche Verfügbarkeit von Java Sicherheits-Updates, für das
Oracle JDK 8 im Unternehmenseinsatz, ist bis zum Januar 2019 vorgesehen, siehe
Oracle Java SE Support Roadmap [2] mit End of Public Updates für Oracle JDK 8.
Sollte der Umstieg vom Oracle JDK 8 auf eine höhere Java-Version bis zu diesem
Zeitpunkt nicht möglich sein, wird empfohlen, die Oracle Java SE Subscription [3] in
Betracht zu ziehen, damit weiterhin Java Sicherheits-Updates für das Oracle JDK 8
eingespielt werden können.
Abbildung 1: JDK Feature Release und Critical Patch Update (CPU)
Übergang vom Java SE Advanced Support zur Java SE Subscription
Der bisherige Java SE Advanced Support [4] wird durch die Java SE Subscription [5]
abgelöst. Existierende Java SE Advanced Support-Verträge bleiben weiter
bestehen. Der Java SE Subscription Support erstreckt sich über drei Phasen:
Premier Support, Extended Support und Sustaining Support. Für das Oracle JDK 8
wird der Premier Support bis März 2022 angeboten, der Extended Support ist bis
März 2025 erhältlich (siehe Tabelle 1). Der Premier Support läuft fünf Jahre ab dem
Erscheinungsdatum vom JDK LTS-Release und bietet neben den beschriebenen
Eigenschaften in den Oracle Lifetime Support Richtlinien [6], auch den Umgang mit
Sicherheits-Alerts [7] und die Erstellung von Critical Patch Updates. Gleiches gilt für
den Extended Support, jedoch ohne weitere Release-Zertifizierung für neue
Produkte von Drittherstellern und Oracle. Darüber hinaus kann der Sustaining
Support für unbestimmte Zeit ausgewählt werden. Nach ca. 10 Jahren verringert sich
die Fehleranzahl drastisch und damit auch die Wahrscheinlichkeit zur Erstellung
neuer Critical Patch Updates in der Sustaining Support-Phase. Der Oracle Java SE
Subscription Support kann für das Oracle JDK LTS-Release abgeschlossen werden.
Dabei ist zu beachten, dass man auch für ein Oracle JDK Non-LTS-Release, wie
bespielsweise Oracle JDK 12,13,14,15,16, ebenfalls den Java SE Subscription
Support abschliessen kann, aber die Non-LTS-Releases sind nur 6 Monate
verfügbar. Neben der grundsätzlichen Absicherung mit der Java SE Subscription, ist
2. der Zugang zu künftigen Java Critical Patch Updates für ältere Java Versionen [8]
das Hauptargument, um bestehende Java-Anwendungen, die Aufgrund von
technischen Abhängigkeiten noch mit dem JDK 8 betrieben werden müssen, gegen
mögliche Sicherheitsprobleme zu schützen. Bislang kann die Beschaffung vom
früheren Oracle Java SE Advanced Support online mit der Auswahlreihenfolge:
Software, Fusion Middleware, Java SE Advanced über den Oracle Store [9] erfolgen
oder durch direkte Kontaktaufnahme zum deutschen Java Vertrieb. Im Gegensatz
zum Oracle Java SE Advanced Support beinhaltet die neue Oracle Java SE
Subscription eine Java SE Lizenz inklusive Support in einer monatlichen
Subskription und folgt damit dem Linux-Distributionsmodell. Die Oracle Java SE
Subscription gilt für Desktop-Arbeitsplätze, Server und Cloud-Deployments. Die Java
SE Subscription berechnet sich separat für die Desktop-Clients gemäß der Metrik
Named-User-Plus (NUP) und für die Server oder Cloud-Deployments nach Anzahl
der Prozessoren. Ab Juli 2018 sind zusätzliche Preisinformationen für die Oracle
Java SE Subscription direkt vom Oracle Java Vertrieb erhältlich und die Online-
Subskriptionsbestellung wird aktiviert. Die Subskriptionslaufzeit im Online-Angebot
beträgt ein bis drei Jahre, aber es werden auch andere Varianten vom Java Vertrieb
angeboten.
Java SE
Release
Erscheinungs-
datum
Premier Support
erhältlich bis
Extended Support
erhältlich bis
Sustaining
Support
6 Dezember 2006 Dezember 2015 Dezember 2018 unbestimmt
7 Juli 2011 Juli 2019 Juli 2022 unbestimmt
8 (LTS) März 2014 März 2022 März 2025 unbestimmt
9 September 2017 März 2018 Nicht verfügbar unbestimmt
10 März 2018 September 2018 Nicht verfügbar unbestimmt
11 (LTS) September 2018 September 2023 September 2026 unbestimmt
12 März 2019 September 2019 Nicht verfügbar unbestimmt
Tabelle 1: Oracle Java SE Support Roadmap mit Java SE Subscription Support
JDK und OpenJDK
Oracle Java soll komplett Open Source werden, sodass es mit der JDK Version 11
keine Unterschiede zwischen dem Oracle JDK und OpenJDK mehr geben wird.
Durch die Gleichstellung des Oracle JDK mit dem OpenJDK wird der kontinuierliche
Halbjahresrhythmus mit dem OpenJDK unter der GPLv2 & CPE Lizenz fortgeführt,
bis ein weiteres Oracle JDK als LTS-Release erscheint [10]. Die öffentliche
3. Verfügbarkeit von Java Critical Patch Updates ist auf sechs Monate festgelegt und
bedeutet für die Anwender ohne Java SE Subscription, dass sie nach diesen sechs
Monaten das nächste OpenJDK verwenden sollten, um kontinuierliche Java-
Sicherheits-Patches zu erhalten. Mit dem Technologietransfer vom Oracle JDK sind
die Sicherheits- und Performance-Optimierungen als Open-Source-Implentierungen
in das OpenJDK geflossen. Damit wird das OpenJDK gestärkt und es ist
wünschenswert, dass sich mehr Entwickler als OpenJDK-Kontributoren beteiligen,
um den Java-Code stetig zu verbessern. Für das Oracle Support-Engineering-Team
ist es im Support-Fall wichtig, die Java-Software-Bereiche exakt einzugrenzen und
das gelingt nur mit dem Oracle JDK LTS in Kombination mit der Oracle Java SE
Subscription. Die Nutzung vom Oracle JDK 11 in Produktivumgebungen ist nur für
Kunden mit dem Java SE Subscription Support vorgesehen. Ohne Java SE
Subscription darf das Oracle JDK nur für die Entwicklung, Testing, Prototyping oder
für Demonstrationszwecke verwendet werden. Im Gegensatz dazu, kann das
äquivalente Oracle OpenJDK in allen Umgebungen ohne Oracle Java SE
Subscription eingesetzt werden. Das OpenJDK mit der GPLv2 & CPE Lizenz,
gebündelt mit eigener Anwendungslogik, kann frei verteilt werden und damit entfällt
der zweckgebundene Einsatz von Java beim OpenJDK.
Fazit
Die Erfahrungen beim Umstieg von JDK 7 nach JDK 8 haben gezeigt, dass die
Variante „Just run“ praktisch nutzbar ist. D.h. existierende Java-Anwendungen sind
dank Abwärtskompatibilität [11] ohne Modifikation mit dem höheren Java-Release
ablauffähig. Dennoch muß man in seltenen Fällen die Möglichkeit einer
Unverträglichkeit in Betracht ziehen, wenn auch nur in Randbereichen. Mit der
Variante „Neukompilieren und Quell-Code anpassen“, wird der alte Java-Code
immer auf dem aktuellen Stand der Technik gehalten und durch die gängigen
Entwicklungsumgebungen bestmöglich unterstützt. Der Oracle JDK Migration Guide
[12] bietet Umstiegshilfe bei der Migration vom JDK 8 auf JDK 10.
Nach verschiedenen Befragungen bei Unternehmen ist ein Trend zu erkennen, bei
dem nahezu 90% den direkten Umstieg vom JDK 8 (LTS) auf JDK 11 (LTS) für
Produktivsysteme anstreben. Lediglich 3% verblieben beim JDK 7 und den darunter
liegenden JDK-Versionen. Auf das vorwärts gerichtete Deployment vom JDK 9
entfielen 5% und immerhin 2% verwenden das aktuelle JDK 10. Daraus läßt sich
eine pragmatische Vorgehensweise ableiten, bei dem die Unternehmen zweigleisig
fahren, indem sie zu 90% auf ein LTS-Release des JDK‘s setzten. Aber gleichzeitig
beschäftigen sich die Entwickler mit dem Einsatz vom JDK 9 & JDK 10, den
Zwischen-Releases, die ohne Übergangszeiten alle sechs Monate erscheinen.
Man sollte sich die Frage stellen, ob die Produktivumgebungen ohne eine Support-
Absicherung den künftigen Sicherheitsanforderungen standhalten können. Es ist
ratsam, die betroffenen JDK 8 Anwendungen mit der Java SE Subscription
auszustatten, um weitere Java Critical Patch Updates im Produktivbetrieb so lange
einspielen zu können, bis ein Umstieg auf das JDK 10 oder das JDK 11 (LTS)
vollzogen werden kann.
4. Referenzen und Quellen:
[1] http://www.oracle.com/technetwork/java/javaseproducts/javasesubscription-data-sheet-
4891969.pdf
[2] http://www.oracle.com/technetwork/java/eol-135779.html
[3] https://blogs.oracle.com/java-platform-group/a-quick-summary-on-the-new-java-se-
subscription
[4] http://www.oracle.com/technetwork/java/javaseproducts/overview/index.html
[5] http://www.oracle.com/technetwork/java/javaseproducts/overview/javasesubscriptionfaq-
4891443.html
[6] http://www.oracle.com/us/support/lifetime-support-068561.html
[7] https://www.oracle.com/technetwork/topics/security/alerts-086861.html
[8] http://www.oracle.com/technetwork/java/javase/archive-139210.html
[9] https://shop.oracle.com/
[10] https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-
cadence
[11] http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
[12] https://docs.oracle.com/javase/10/migrate/JSMIG.pdf
Autor:
Wolfgang Weigend arbeitet als Sen. Leitender Systemberater bei der Oracle
Deutschland B.V. & Co. KG. Er beschäftigt sich mit Java-Technologie und
Architektur für unternehmensweite Anwendungsentwicklung.