Anwendungsleistung und Entity-Bean-Verhalten
In WebSphere Application Server können Sie zwei Verhaltensmuster überschreiben, die von der EJB-Spezifikation vorgeschrieben werden, da Ihre Anwendung davon profitieren kann, wenn diese Aspekte der Verwaltung von Bean-Daten anders gehandhabt werden.
Anwendungsgesteuerte Synchronisation des persistenten Speichers für findBy-Methoden
- Eine Liste der Beans erstellen, die in der aktuellen Transaktion registriert sind und denselben Typ haben wie die Beans, die von der Methode findby zurückgegeben werden.
- Den Status dieser Enterprise-Beans in einen persistenten Speicher schreiben, bevor die Abfrage ausgeführt wird.
Es gibt jedoch Szenarien, in denen es ineffizient und sinnlos ist, wenn der EJB-Container diese Aktion für jede findBy-Methode automatisch ausführt. Beispiele hierfür sind, wenn die Anwendung selbst sicherstellt, dass nur die aktuellen Daten in findBy-Abfragen verwendet werden, oder die Anwendung einige nicht aktuelle Daten in den Abfrageergebnissen tolerieren kann.
WebSphere Application Server ermöglicht Ihnen, den Synchronisationsprozess unter Steuerung der Anwendung einzuleiten und die containergesteuerte Synchronisation für bestimmte EJB-Typen in Ihrer Anwendung zu inaktivieren. Durch eine sorgfältige Verwendung dieser Funktionen können Sie die Leistung Ihrer Anwendung verbessern, ohne die Datenintegrität zu gefährden. Weitere Informationen finden Sie im Artikel "Synchronisation von Entity-Beans und Datenspeichern bearbeiten".
ejbStore-Aufrufe in nicht geänderten Entity-Bean-Instanzen vermeiden
Die EJB-Spezifikation erfordert, dass der EJB-Container die benutzerdefinierte Methode ejbStore in allen Entity-Beans einer Transaktion aufruft, wenn diese Transaktion festgeschrieben wird. Diese Operation ist für CMP-Beans im Gegensatz zu BMP-Beans in der Regel nicht erforderlich, weil diese Methode in CMP-Beans häufig leer ist. Selbst wenn die Methode nicht leer ist, ist der Aufruf der Methode für eine Anwendung unter Umständen nur dann erforderlich, wenn der persistente Status der Bean während der aktuellen Transaktion geändert wird.
WebSphere Application Server stellt einen Mechanismus bereit, mit dem Sie festlegen können, ob Sie dieses Verhalten für bestimmte EJB-Typen in der Anwendung wünschen. Weitere Informationen finden Sie im Artikel "ejbStore-Aufrufe in nicht geänderten EntityBean-Instanzen vermeiden".