programmera.net -> ejb -> normal för utskrift | info@programmera.net |
SessionContext för en sessionsböna med tillstånd
1. SessionContext 2. Tillåtna anrop på SessionContext och övriga externa resurser |
1. SessionContext
En sessionsböna kommunicerar med behållaren genom klassen SessionContext. En referens till en instans av SessionContext tilldelas bönan genom att behållaren anropar setSessionContext() då bönan initieras. SessionContext ärver av EJBContext och tillför två egna metoder, se bilden:
2. Tillåtna anrop på SessionContext och övriga externa resurser
Metoderna i SessionContext kan inte anropas var som helst i en sessionsböna med tillstånd. Nedan visas vilka anrop som är tillåtna för en sessionsböna mot SessionContext och övriga externa resurser:
SessionContext och externa resurser Constructor setSessionContext() ejbCreate() ejbRemove() ejbActivate() ejbPassivate() affärsmetod Tillgång till JNDI Nej Ja Ja Ja Ja Tillgång till andra bönor Nej Nej Ja Ja Ja Tillgång till resurshanterare Nej Nej Ja Ja Ja getEJBHome() Nej Ja Ja Ja Ja getEJBLocalHome() Nej Ja Ja Ja Ja getCallerPrincipal() Nej Nej Ja Ja Ja isCallerInRole() Nej Nej Ja Ja Ja getUserTransaction() [BMT] Nej Nej Ja Ja Ja getRollbackOnly() [CMT] Nej Nej Nej Nej Ja setRollbackOnly() [CMT] Nej Nej Nej Nej Ja
För sessionsbönor med tillstånd som nyttjar CMT finns möjligheten att implementera gränssnittet "SessionSynchronization". Om bönan impelementerar gränssnittet "SessionSynchronization" så tillkommer tre extra callbackmetoder. Du har följande rättigheter i dessa metoder:
SessionContext och externa resurser afterBegin() beforeCompletion() afterCompletion() Tillgång till JNDI Ja Ja Tillgång till andra bönor Ja Nej Tillgång till resurshanterare Ja Nej getEJBHome() Ja Ja getEJBLocalHome() Ja Ja getCallerPrincipal() Ja Ja isCallerInRole() Ja Ja getUserTransaction() [BMT] Ja Ja getRollbackOnly() [CMT] Ja Nej setRollbackOnly() [CMT] Ja Nej
Om du gör ett anrop som inte är tillåtet kommer undantaget java.lang.IllegalStateException att kastas.