Diese Task beschreibt, wie Sie die API "AccessIntent" während der Ausführung der Methoden der BMP-Entity-Bean über das Programm abrufen und aufrufen.
Vorgehensweise
- Suchen Sie die Zugriffsart im Namespace. Beispiel:
InitialContext ic = new InitialContext();
AccessIntentService aiService = ic.lookup("java:comp/websphere/AppProfile/AccessIntentService");
- Rufen Sie über eine Methode aus der Schnittstelle der fernen oder lokalen Komponente
der BMP das aktuelle AccessIntent-Objekt mit javax.ejb.EntityContext ab.
Dieses Objekt wird an die BMP übergeben, wenn der Container die Methode "setEntityContext" aufruft.
Es wird angenommen, dass der "EntityContext" in einer Variablen mit dem Namen "myEntityCtx" gespeichert ist. Beispiel:
AccessIntent ai = aiService.getAccessIntent (myEntityCtx);
- Verwenden Sie die "get()"-Methoden der Schnittstelle "AccessIntent", um die gewünschten Informationen abzurufen. Beispiel:
int concurrency = ai.getConcurrencyControl();
int accessType = ai.getAccessType();
if ( (concurrency == AccessIntent.CONCURRENCY_CONTROL_PESSIMISTIC)
&& (accessType == AccessIntent.ACCESS_TYPE_UPDATE) ) {
int exclusive = ai.getPessimisticUpdateLockHint();
// . . .
}
// . . .
Ein ausführliches Beispiel für die Verwendung der API "AccessIntent" finden Sie im Artikel "Beispiel: Erweiterte IBM APIs zur gemeinsamen Nutzung von Verbindungen zwischen CMP-Beans und BMP-Beans verwenden".
Ergebnisse
Die von der Lookup-Operation für java:comp abgerufene Objektreferenz für die Zugriffsart
ist für die Dauer der Methode gültig, in der sie gefunden wurde. In Abhängigkeit von der Konfiguration des Anwendungsprofils
ist es möglich, dass spätere Aufrufe derselben Methode nicht dieselbe Zugriffsartreferenz abrufen. Sie können die Objektreferenz nur
während des Aufrufs einer BMP-Entity-Bean-Methode suchen.
Während einer Abfrage für eine CMP-Entity-Bean ist die Referenz nicht vorhanden.
Objektreferenzen für Zugriffsarten sollten deshalb nur im Geltungsbereich für die Ausführung
einer gegebenen BMP-Methode zwischengespeichert oder verwendet werden.