Sie können Ihre EntityBean-Instanzen so konfigurieren, dass ein Aufruf der Methode "ejbStore" umgangen wird,
wenn die Instanzen während der aktuellen Transaktion nicht geändert wurden.
Informationen zu diesem Vorgang
Es sind zwei Optionen verfügbar, mit denen Sie anzeigen können, dass die Methode ejbStore
für einen bestimmten EJB-Typ nur aufgerufen werden soll, wenn die Bean während der aktuellen Transaktion geändert wurde:
- Sie können eine EJB-Umgebungsvariable im Implementierungsdeskriptor der Bean definieren.
- Sie können von der Implementierungsklasse der Bean eine Markierungsschnittstelle implementieren lassen. Das zweite Verfahren ist hilfreich, wenn Sie eine Reihe von Bean-Implementierungen haben, die eine
gemeinsame Stammklasse erweitern. In diesem Fall können Sie die Markierungsschnittstelle für Kennzeichnung von der
Stammklasse implementieren lassen, damit alle Beans, die diese Klasse erweitern, auch das Verhalten übernehmen.
Vorgehensweise
- Wenn Sie das Verfahren mit der EJB-Umgebungsvariablen verwenden möchten, editieren Sie den
EJB-Implementierungsdeskriptor wie folgt mit einem Java-EE-Standardentwicklungstool (Java™ Platform, Enterprise Edition).
Verwenden Sie die folgenden Schritte als Anleitung. Weitere Informationen finden Sie im Artikel zu den Assembliertools.
- Starten Sie das Tool.
- Wählen Sie den EJB-Implementierungsdeskriptor der Bean aus, die Sie bearbeiten möchten.
- Erstellen Sie eine EJB-Umgebungsvariable mit dem Namen com/ibm/websphere/ejbcontainer/disableEJBStoreForNonDirtyBeans.
- Setzen Sie den Typ dieser Variablen auf java.lang.Boolean.
- Setzen Sie die Variable auf True, um den Aufruf von ejbStore zu verhindern. Wählen Sie den Wert False
aus, wenn Sie das Standardverhalten aktivieren möchten.
- Speichern Sie die Änderungen.
- Wenn Sie eine Markierungsschnittstelle verwenden möchten, codieren Sie die Implementierungsklasse der
Bean so, dass
sie die Schnittstelle com.ibm.websphere.ejbcontainer.DisableEJBStoreForNonDirtyBeans implementiert. Die Implementierungsklasse der Bean muss die Schnittstelle nicht direkt implementieren.
Die Schnittstelle kann auch von einer übergeordneten Klasse implementiert werden.
Lesen Sie die Informationen zum Paket com.ibm.websphere.ejbcontainer im Abschnitt
des Information Center.