Version 9.6
 —  CentraSite Application Framework  —

Multi-User Scenarios

In order to address multi-user scenarios successfully, several aspects of the framework should be noted.

A SessionContext is an expensive-to-create, threadsafe object intended to be shared by all application threads. It is created once, usually on application startup, from a Configuration instance. A BeanPool is an inexpensive, non-threadsafe object that should be used once, for a single request (single unit of work) and then discarded. The CurrentBeanPoolContext interface defines the contract for implementations which knows how to scope the notion of a current bean pool. ThreadLocalCurrentBeanPoolContext, which maintains current bean pools for the given execution thread, is provided as an example implementation of this interface.

The specification of JAXR does not support transactions or locking. CSAF and CentraSite's implementation extend the API with some locking and transaction capabilities. Here are some points to note:

In general, the application should minimize the time a registry object is kept locked in the database, i.e., the time during which there are ongoing modifications on it.

Top of page