La présente rubrique décrit comment extraire et appeler l'API
AccessIntent à l'aide d'un programme lors de l'exécution des méthodes de bean entity BMP.
Procédure
- Recherchez le service de tentative d'accès à partir de l'espace de nom. Par exemple :
InitialContext ic = new InitialContext();
AccessIntentService aiService = ic.lookup("java:comp/websphere/AppProfile/AccessIntentService");
- A partir d'une méthode de l'interface de composant distante ou locale de BMP, extrayez l'objet AccessIntent en cours à l'aide de javax.ejb.EntityContext.
Il est transmis au BMP lorsque le conteneur appelle la méthode setEntityContext. Supposons que EntityContext a été stocké dans une variable nommée myEntityCtx. Par exemple :
AccessIntent ai = aiService.getAccessIntent (myEntityCtx);
- Utilisez les méthodes get() de l'interface AccessIntent pour obtenir les informations voulues. Par exemple :
int concurrency = ai.getConcurrencyControl();
int accessType = ai.getAccessType();
if ( (concurrency == AccessIntent.CONCURRENCY_CONTROL_PESSIMISTIC)
&& (accessType == AccessIntent.ACCESS_TYPE_UPDATE) ) {
int exclusive = ai.getPessimisticUpdateLockHint();
// . . .
}
// . . .
Pour un exemple détaillé de l'utilisation de l'API AccessIntent, consultez la rubrique Exemple : Utilisation des API étendues d'IBM pour partager des connexions entre beans CMP et beans BMP.
Résultats
La référence d'objet de tentative d'accès extraite de
la recherche java:comp est valide pendant la méthode
dans laquelle la référence a été recherchée. Suivant la
manière dont vous avez configuré le profil d'application, les
appels ultérieurs de cette même méthode risquent de ne pas extraire la
même référence de tentative d'accès. Vous ne pouvez rechercher la référence de l'objet que lors de l'appel d'une
méthode d'un bean entity BMP ; la référence n'existe pas lors d'une demande sur
un bean entity CMP.
Par conséquent, les références d'objet des tentatives d'accès
ne doivent pas être placées en mémoire cache ou être utilisées
en dehors de la période d'exécution de la méthode BMP spécifiée.