Betriebsmodus "Lightweight Local Mode" für Entity-Beans
WebSphere Application Server stellt einen speziellen Betriebsmodus mit dem Namen Lightweight Local Mode bereit, der die Leistung von Entity-Bean-Methoden verbessern kann. Sie können festlegen, welche Entity-Beans in Ihrer Anwendung in diesem Modus ausgeführt werden sollen.
Im Modus "Lightweight Local Mode" optimiert der Container die Verarbeitung, die er vor und nach jeder Methode in der lokalen Home-Schnittstelle und in der lokalen Geschäftsschnittstelle der Bean ausführt. Die Optimierung kann eine verbesserte Leistung zur Folge haben, wenn Entity-Bean-Operationen lokal aus einer Anwendung aufgerufen werden. Da im Lightweight Local Mode bestimmte Verarbeitungsschritte weggelassen werden, kann dieser Modus nur in bestimmten Szenarien verwendet werden.
Lightweight Local Mode ist in gewisser Weise wie das Entity-Modell Plain Old Java Object (POJO) in der Spezifikation Enterprise JavaBeans (EJB) 3.0 strukturiert. Bei Verwendung des Lightweight Local Mode können Sie Leistungsverbesserungen des POJO-Entity-Modells erzielen, ohne dass Sie den vorhandenen Anwendungscode von EJB 2.x in das neue POJO-Modell umwandeln müssen. Sie können den Lightweight Local Mode sowohl für CMP- als auch für BMP-Entitys anwenden, die die speziellen Kriterien erfüllen.
Wann sollte der Lightweight Local Mode verwendet werden?
Der Lightweight Local Mode ist für Entity-Beans vorgesehen, die unter Verwendung des Musters der Sitzungsfassade erstellt, gesucht und aufgerufen werden. Unter diesem Muster werden die lokalen Home- und Geschäftsmethoden der Entity-Beans aus Methoden einer Stateless-Session-Bean oder einer Stateful-Session-Bean aufgerufen. Die Session-Bean-Methoden, die fern oder lokal aufgerufen werden können, stellen eine Sicherheitssteuerung und Transaktionsdemarkation für die Entity-Beans bereit, die über die Session-Bean aufgerufen werden.
- Die Bean implementiert eine lokale EJB-Schnittstelle.
- In den Methoden der lokalen Home- bzw. Geschäftsschnittstelle der Entity-Bean ist keine Sicherheitsberechtigung definiert.
- In den lokalen Home- oder Geschäftsmethoden ist kein Run-As-Sicherheitsattribut definiert.
- Die Klassen für die aufrufende Bean und die aufgerufene Entity-Bean werden von demselben Java-Klassenlader geladen.
- Der für WebSphere Application Server spezifische Service zur Internationalisierung oder der Arbeitsbereichsservice wird von den Methoden der Entity-Bean nicht aufgerufen.
Das erste Kriterium verhindert, dass CMP 1.x-Beans den Lightweight Local Mode unterstützen, weil diese Beans keine lokalen Schnittstellen haben können.
- Eine globale Transaktion ist bereits in Kraft getreten, wenn die Home- oder Geschäftsmethode der Entity-Bean aufgerufen wird. Normalerweise wird diese Transaktion durch die aufrufende Session-Bean gestartet.
- Die lokalen Geschäftsschnittstellenmethoden und die lokalen Home-Methoden der Entity-Bean verwenden nur die folgenden Transaktionsattribute: REQUIRED, SUPPORTS oder MANDATORY.
Wenn eine im Lightweight Local Mode ausgeführte Entity-Bean-Methode eine globale Transaktion starten muss, funktioniert die Bean zwar weiterhin normal, aber eine Leistungsverbesserung wird nur zum Teil realisiert.
Sie können eine Entity-Bean, die zusätzlich zur lokalen Schnittstelle eine ferne Schnittstelle oder eine TimedObject-Schnittstelle definiert, zwar für die Verwendung des Lightweight Local Mode definieren. Allerdings ist eine Leistungsverbesserung nur dann sichtbar, wenn die Bean über ihre lokales Schnittstelle aufgerufen wird.