Bewährte Verfahren für die Entwicklung von Enterprise-Beans
Beachten Sie folgende Richtlinien bei Entwurf und Entwicklung von Enterprise-Beans.
- Verwenden Sie eine Stateless-Session-Bean als Eingangspunkt für Geschäftslogik.
- Entity-Beans müssen CMP (Container-managed Persistence, über Container realisierte Transaktionspersistenz) verwenden.
- Verwenden Sie in einer EJB-Umgebung der Version 2.x oder höher lokale Schnittstellen, um
die Kommunikation zwischen Enterprise-Beans auf derselben JVM (Java Virtual Machine) zu verbessern.
Lokale Aufrufe vermeiden den Systemaufwand, der für RMI/IIOP erforderlich ist, da sie eine Semantik verwenden, die auf der Übergabe der Daten nach Referenz (pass-by-reference) und nicht nach Wert (pass-by-value) basiert. Bei jedem Aufruf verwenden die Caller-Bean und die Callee-Bean den Parameterstatus gemeinsam. Beans der EJB-Version EJB 2.x oder höher können eine lokale Schnittstelle und eine ferne Schnittstelle besitzen, im Normalfall besitzen sie jedoch nur eine der beiden Schnittstellen.
- Für die Kommunikation mit fernen Clients müssen Sie eine ferne Schnittstelle und ein ferne Home-Schnittstelle bereitstellen. Für die Kommunikation mit lokalen Clients wie Servlets, Entity-Beans und MDBs müssen Sie eine lokale Schnittstelle und eine lokale Home-Schnittstelle bereitstellen.
Stapelorientierte Befehle für containergesteuerte Persistenz
Mit JDBC 2.0 und höher können PreparedStatement-Objekte eine Liste von Befehlen verwalten, die im Batch-Verfahren übergeben werden können. Anstelle mehrerer Datenbankabfragen kann nur eine Datenbankabfrage für alle Anforderungen im Batch abgesetzt werden.
Sie können die Verwendung dieses Feature für EJB-CMP aktivieren. Wenn Sie diese Option auswählen, verschiebt die Laufzeit ejbStore/ejbCreate/ejbRemove oder die entsprechenden Anforderungen für Datenbankpersistenz auf den Zeitpunkt, zu dem diese Aktionen benötigt werden. Dies kann am Ende der Transaktion sein oder wenn eine Flush-Operation für finder erforderlich ist, die sich auf diesen EJB-Typ beziehen. Wenn die Persistenzoperation durchgeführt wird, sammelt die Laufzeit die Datenbankanforderungen und verwendet die JDBC-Operation PreparedStatement, um einen einzelnen JDBC-Aufruf für mehrere Zeilen derselben Operation abzusetzen.
Sie können im Produkt dieselben Einstellungen vornehmen wie in Assembliertools.
Verzögerte Erstellung für containergesteuerte Persistenz
Für CMP (Container-Managed Persistence, über Container realisierte Transaktionspersistenz) bei ejbCreate-Methoden kann der EJB-Container die Darstellung der Entität in der Datenbank sofort oder zu einem späteren Zeitpunkt erstellen.
Sie können diese Option auf Seite der CMP-EJB aktivieren. Wenn Sie diese Option auswählen, wird die Methode ejbCreate bzw. die entsprechende Anforderung für Datenbankpersistenz zur Laufzeit auf den Zeitpunkt verschoben, zu dem diese Aktion benötigt wird. Dies kann am Ende der Transaktion sein oder wenn eine Flush-Operation für finder erforderlich ist, die sich auf diesen EJB-Typ beziehen. Damit können zwei Verarbeitungsgänge für die neu erstellte Entität (einfügen und aktualisieren) auf einen Verarbeitungsgang (einfügen) verringert werden.
Sie können im Produkt dieselben Einstellungen vornehmen wie in Assembliertools.