Tuning-Tipps für Applikations-Server

12.10.2006
Von Nikolai Bauer und Peter Mandl
Wie Unternehmen mit J2EE-Plattformen robuste Anwendungen bauen können.

Architekturen für verteilte Anwendungen strukturieren viele Firmen komponentenorientiert mit der J2EE-Plattform. Der Standard enthält die Spezifikation Enterprise Javabeans (EJB), mit der sich Server-seitige Softwarekomponenten entwickeln lassen. Dabei sind einige Punkte zu beachten.

Hier lesen Sie ...

  • was Anwender beim Aufsetzen von J2EE-gestützen Applikationen beachten sollten;

  • welche Methoden zum Datenbankzugriff und zur Transaktionsbehandlung der Java-Standard bietet und wie sie sich unterscheiden;

  • worauf bei Cluster- Systemen zu achten ist;

  • dass Nutzer trotz Standardisierung immer noch an manchen Stellen auf Eigenentwicklungen angewiesen sind.

Datenbankzugriffe

Systemarchitektur eines für 600 Anwender angelegten Buchhaltungssoftware. Eine weitere EJB-Applikation stößt Batch-Prozesse an. Beide Systeme verwalten ihre Informationen in einer gemeinsamen Datenbank.
Systemarchitektur eines für 600 Anwender angelegten Buchhaltungssoftware. Eine weitere EJB-Applikation stößt Batch-Prozesse an. Beide Systeme verwalten ihre Informationen in einer gemeinsamen Datenbank.

Wer verteilte Anwendungen entwickelt, muss vor allem auf die Datenhaltung und den Zugriff auf Daten berücksichtigen. Für die persistente Datenhaltung sieht der EJB-Standard zwei Mechanismen vor: Container-Managed Persistence (CMP) folgt dem Konzept des Object Relational Mapping. CMP verknüpft in einem EJB-Container Java-Objekte mit Tabelleneinträgen einer relationalen Datenbank. Der Entwickler muss Datenbankzugriffe nicht in SQL formulieren, sondern kann Relationen und Zugriffe ent- weder über Java-Annotationen direkt im Code oder in einem Deployment Descriptor in einer eigenen Sprache (EJB-QL) formulieren. Der Container erledigt zur Laufzeit die Datenbankzugriffe.

Alternativ dazu lassen sich in EJB Datenbankabfragen manuell programmieren. Bei dieser Vorgehensweise, die als Beans Managed Persistence (BMP) bezeichnet wird, programmiert ein Entwickler alle SQL-Statements in den Komponenten.

Aufgrund der noch nicht ausgereiften Mechanismen in EJB 2.1 ist CMP erst ab EJB 3.0 zu empfehlen, und selbst dann nur für kleinere Datenbanken. Bei größeren Datenbanken ist es aufwändig, CMP einzurichten. Zudem bietet die Methode wenige Möglichkeiten, um Datenbankzugriffe effizient zu gestalten, da man die SQL-Anweisungen nicht unmittelbar beeinflussen kann. Bei Leistungsengpässen kann dies zu Problemen führen. Daher sollten Anwender auf CMP (noch) verzichten, auch wenn es als eines der wichtigsten Features von EJB angepriesen wird. Stattdessen sollte man selbst eine Persistenzschicht entwickeln.