Esta tarea describe cómo recuperar y llamar a la API AccessIntent a través de
programa durante la ejecución de métodos de bean de entidad de persistencia gestionada
por bean (BMP).
Procedimiento
- Busque el servicio de intento de acceso en el espacio de nombres. Por
ejemplo:
InitialContext ic = new InitialContext();
AccessIntentService aiService = ic.lookup("java:comp/websphere/AppProfile/AccessIntentService");
- Desde un método de la interfaz de componentes remotos o locales del
BMP, obtenga el objeto AccessIntent actual con javax.ejb.EntityContext.
Este objeto se pasa al BMP cuando el contenedor llama al método setEntityContext. Supongamos que EntityContext se ha almacenado en una variable denominada myEntityCtx. Por
ejemplo:
AccessIntent ai = aiService.getAccessIntent (myEntityCtx);
- Utilice los métodos get() de la interfaz AccessIntent para obtener la información
deseada. Por
ejemplo:
int concurrency = ai.getConcurrencyControl();
int accessType = ai.getAccessType();
if ( (concurrency == AccessIntent.CONCURRENCY_CONTROL_PESSIMISTIC)
&& (accessType == AccessIntent.ACCESS_TYPE_UPDATE) ) {
int exclusive = ai.getPessimisticUpdateLockHint();
// . . .
}
// . . .
Para obtener un ejemplo detallado del uso de la API AccessIntent, consulte el tema Ejemplo: Uso de API ampliadas de IBM para compartir conexiones entre beans CMP y beans BMP.
Resultados
La referencia a objeto de intento de acceso recuperado de la consulta java:comp
es actual para la duración del método en que se ha consultado la referencia. En función de cómo ha configurado el perfil de aplicación, es posible que las llamadas subsiguientes del mismo método no recuperen la
misma referencia de intento de acceso. Sólo puede consultar la referencia a objeto durante la llamada del método del bean de entidad BMP; la referencia no existe durante una solicitud en beans de entidad de persistencia gestionada por contenedor (CMP). Por lo tanto, no copie en caché las referencias a objeto de intento de acceso más allá, ni utilizarse fuera de, el ámbito de la ejecución de cualquier método BMP dado.