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

Die Abschnitte 10.5.3 und 12.1.4.2 der Spezifikationen EJB 2.0 und 2.1 definieren die Anforderung, dass der EJB-Container vor dem Ausführen einer Abfrage im Rahmen einer findBy-Methode (mit Ausnahme von findByPrimaryKey) den Status von übereinstimmenden Entity-Beans, die in der aktuellen Transaktion registriert sind, in einen persistenten Speicher schreibt. In anderen Worten, der Container soll die folgenden Aktionen ausführen:
  1. 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.
  2. Den Status dieser Enterprise-Beans in einen persistenten Speicher schreiben, bevor die Abfrage ausgeführt wird.
Wenn sich der Status einer EJB-Instanz in der aktuellen Transaktion nicht ändert, wird die Speicheroperation für diese Instanz übersprungen. Auf diese Weise wird sichergestellt, dass die Abfrage auf der Basis des aktuellen Status aller persistenten Daten durchgeführt wird und sich damit das Risiko von Datenintegritätsproblemen verringert.

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".


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_disflush
Dateiname:cdat_disflush.html