Nun kündigte SAP mit der selbst entwickelten "Shared-Memory"-Technik eine Methode an, die Java-Lösungen zuverlässiger und stabiler machen soll. Nach diesem Konzept werden auf einem Server mehrere gleichartige JVMs gestartet und mit den gleichen Aufgaben betraut, wobei nur wenige Benutzer einer virtuellen Maschine zugeordnet sind. Ein Ausfall einer Ablaufeinheit zieht so nur eine begrenzte Anzahl von Usern in Mitleidenschaft.
JVMs teilen sich Byte-Code und Klassen
Da dies normalerweise enorme CPU-und Speicherressourcen verschlingt, teilen sich die JVMs bestimmte Komponenten, die der Java-Server in einem Shared-Memory-Bereich vorhält. So sind der Byte-Code, die System- und Applikationsklassen sowie der vom Just-in-Time-Compiler erzeugte Code nur einmal im Speicher vorhanden und für alle Engines verfügbar. Auch der Objektbaum, in dem die verschiedenen, zur Laufzeit benötigten Java-Objekte miteinander verkettet sind, wird in den Shared-Memory-Bereich kopiert.
Die JVMs befinden sich in einem speziellen Container. Jede virtuelle Maschine verfügt über eine eigene Garbage Collection, wobei die Module zum Aufräumen des Speichers synchronisiert werden. Abhängig von der CPU-Leistung und dem verfügbaren Arbeitsspeicher könnten auf einem Acht-Wege-Server etwa 40 parallele Java-Maschinen laufen.