Actual message delivery happens in three steps :
1) beforeMessageDelivery(Message, MessageListener) This is our chance to
make the message delivery itself part of the instance's global
transaction.
The EJB spec makes a distinction between access to the TimerService
object itself (via EJBContext.getTimerService) and access to the
methods on TimerService, Timer, and TimerHandle.
The EJB spec makes a distinction between access to the TimerService
object itself (via EJBContext.getTimerService) and access to the
methods on TimerService, Timer, and TimerHandle.
A Container stores EJB instances and is responsible for
the lifecycle, state management, concurrency, transactions, security,
naming, resource management, etc.
ContainerFactory creates the appropriate Container instance
(StatefulSessionContainer, StatelessSessionContainer, EntityContainer,
MessageBeanContainer) and initializes it.
Create automatic timers defined by the @Schedule annotation on the EJB bean during
deployment to a cluster or the first create-application-ref call after deployment
to DAS only.
Utility method for deserializing EJBs, primary keys and
container-managed fields, all of which may include Remote
EJB references,
Local refs, JNDI Contexts etc which are not Serializable.
Returns the number of passivated / checkpointed sessions in the store
Note that this includes the sessions passivated / checkpointed by
ohter store maangers in the cluster
InvocationInfo caches various attributes of the method that
is currently held in the invocation object (that is currently executed)
This avoids some of the expensive operations like (for example)
method.getName().startsWith("findByPrimaryKey")
Every container maintains a HashMap of method VS invocationInfo that
is populated during container initialization
This class is necessary because neither Vector nor Hashtable
return a Serializable Enumeration, which can be sent from the
EJB server back to the client.
A utility class that generates stateful session keys using two longs
The session id generated by this class is guarenteed to be unique as
long as the system clock is never reset to a previous value
The hashCode of the SessionKey generated by ScrambledKeyGenerator
also allows uniform distribution of keys when hashed in a HashMap
Utility methods for serializing EJBs, primary keys and
container-managed fields, all of which may include Remote EJB
references,
Local refs, JNDI Contexts etc which are not Serializable.
A utility class that generates stateful session keys using two longs
The session id generated by this class is guarenteed to be unique as
long as the system clock is never reset to a previous value
The hashCode of the SessionKey generated by SimpleKeyGenerator
also allows uniform distribution of keys when hashed in a HashMap
This method picks idle items from a cache which does not have a sorted
LRU list
NRU cache at light loads and FIFO caches do not maintain a LRU list and
hence they have to scan the entire cache and select victims