OCEJBCD (SCBCD) - 1Z0-895 - Enterprise JavaBeans Developer Certification
5.1. Understand the advantages and disadvantages of using a singleton session bean
5.1. Understand the advantages and disadvantages of using a singleton session bean
A singleton is a stateless bean whose instance is accessed by all request in the application. Singletons have to be thread safe in order to manage the concurrently access.
Advantages:
- Only one instance. The bean will be created when the application is started and will exist during all application life.
Disadvantages:
- Could cause bottle-neck and performance, if it is not handle accurately.
5.2. Create a singleton session bean
javax.ejb.Singleton
5.3. Describe the life cycle of a singleton session bean
@Singleton public class SingletonBean { ... }
Other annotations that can be used with singleton are:
@Startup (For eager initialization; it means the instance will be created at deployment time)
@DependsOn (For adding dependencies)
5.3. Describe the life cycle of a singleton session bean
5.4. Implement singleton session bean life cycle methods
For a full example using singleton see last section of this post.
5.5. Describe singleton concurrency access
Singleton beans are designed for concurrency access. There are two ways to manage concurrency.
- Container-managed concurrency (by default)
- Bean-managed concurrency
Example:
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER) @Singleton public class ExampleSingletonBean {...}
For managing concurrrency, there are the following annotations to lock blocks of code:
@Lock(LockType.READ)
@Lock(LockType.WRITE)
The following example describes the use of a singleton bean called by a servlet in order to get a random number in the page after clicking a button.
The method that gets the random number can be accessed concurrently and the value will be consistent from different client accesses.
Bean class:
Servlet class:
JSP:
After running the application in the server, when the page is opened in a browser the first time:
If we open another browser (emulating another client), the request accesses the same value of the counter. The counter value is going to be shared by all the requests:
OCEJBCD (SCBCD) - 1Z0-895 - Enterprise JavaBeans Developer Certification
No comments:
Post a Comment