GlassFish Server Open Source Edition 3.1 - EJB Improvements

Scope of the Project

Feature-ID Desired Improvement Priority Comments Issue Link Eng Response
EJB-1 SFSB Checkpointing P1 Support for high availability of SFSB state 12200 YES
EJB-2 EJB Timer Cluster/Failover Support P1 Port V2 Timer functionality, including migrate-timers command and --target option of list-timers command. Only new behavior is support for automatic timer creation. Might not be able to fully support automatic timer migration due to automatic tx recovery work being assigned P2 12201 YES
EJB-3 Additional DTrace Probes P2 Cover Java EE API - javax.ejb.*   No (next release)
EJB-4 Support Weblogic EJB descriptor P3 It's only feasible to support a subset of the elements that map to existing behavior. Specifically, those marked as "low impact" in DD analysis   No (next release)
EJB-5 Full EJB 3.1 API support and libraries in classpath in Embeddable EJB API P3 Add support for missing EJB 3.1 functionality ( Web Service endpoints, MDBs, Timer Service ) and support for packaging subset of non-EJB classes into libraries in Embeddable EJB API 12202 , 12151 YES (lower priority than EJB-1, EJB2)
EJB-6 Retain SFSB / EJB Timer state during redeployment P3 Similar to web container Http Session retaining feature but for application-state associated with EJB components in an application 12203 May be (lower priority than EJB1, EJB2, EJB-5)
EJB-7 User-specified thread-pools for EJB timers / async P3 Provide an option to select which thread pool should be used for async and timer callbacks. 7138 Next release
EJB-8 Option to disable V2 Vendor-specific JNDI names P3 Now that EJB 3.1 has portable EJB JNDI names, there is less need for the old vendor-specific names. By default, vendor-specific default JNDI names are applied automatically for backward compatibility, but that can lead to some ease-of-use issues. 11729 Yes (lower priority than EJB-5, EJB-6)
EJB-9 EJB 3.1 Singleton support P2 No new work is needed to support the EJB 3.1 spec behavior of per-JVM singleton instance creation. We evaluated using the EJB Singleton component as the basis of a new per-cluster Singleton, but the programming model is not a good fit. 12205 Partial (per-JVM only)

Note : There will be some ejb/naming work to support the IIOP Loadbalancing/failover feature. See http://kenai.com/projects/gf-corba-v3-mirror/pages/TableVersion for details.

Milestone Mappings

Item # Date/Milestone Feature-ID Description QA/Docs Handover? Status/Comments
1 Milestone 4 EJB-1 SFSB Checkpointing YES Depends on HA store implementation and admin/deployment cluster support
2 Milestone 4 EJB-2 EJB Timer Cluster/Failover support YES Depends on admin/deployment cluster support and GMS
3 Full support dropped EJB-5 Full EJB 3.1 support and libraries in classpath in Embeddable EJB API YES Depends on Embedded GlassFish , JMS, Web Service modules
4 Milestone 6 EJB-6 Retain SFSB / EJB Timer state during redeployment YES  
5 Dropped EJB-7 User-specified thread-pools for EJB timers / async YES Depends on ORB pool API.
6 Milestone 3 EJB-8 Option to disable GlassFish-specific JNDI names YES No dependencies outside module.

Task List

Task Target Milestone Start Date End Date Owner(s) Feature ID Status / Comments
Implement SFSB Tx checkpointing MS4     Mahesh EJB-1-1 This is done by MS3
Implement SFSB method checkpointing MS4     Mahesh EJB-1-2 Done. Have a manual test. Converting it into a script based test
glassfish-ejb-jar.xml checkpointing elements in DOL MS4     Cheng EJB-1-3 Done
Serialization/Deserialization of all EJB reference types stored in SFSBs and HTTP Sessions MS4     Mahesh EJB-1-4 Done by MS3. A new class JavaEEIOUtils provides the contract that can be used by containers to serialize / deserialize states. This internally uses Sahoo's OSGiIOFactory class. Tested (during MS3) by keeping ejb references in web sessions.
Implement client side of HA store SPI MS3     Mahesh EJB-1-5 Done
Write new SFSB checkpointing/failover tests MS4     Mahesh EJB-1-6 Done
migrate-timers command MS4     Cheng EJB-2-1 Done
--target option of list-timers command MS4     Cheng EJB-2-2 Done
Enable GMS failure notifications for auto timer migration MS4     Marina EJB-2-3 Done
Coordination with tx module for correct behavior during auto tx recovery MS5     Marina EJB-2-4 Done
Automatic timer creation during deployment MS4     Marina EJB-2-5 Done
Write new clustered timer tests MS5     Marina/Cheng EJB-2-6 Done
Support for libraries in classpath in EJB Embeddable API MS3     Marina EJB-5-1 Done
MDB support in EJB Embeddable API MS6     Marina EJB-5-2 Depends on JMS support in Embedded GlassFish
WS Endpoint support in EJB Embeddable API MS6     Marina EJB-5-3 Partial support is available
Timer Service support in EJB Embeddable API MS3     Marina EJB-5-4 Done
Use non-default ports for Remote EJBs, JMS, etc. MS6     Marina EJB-5-5 Dropped
Retain unique app. id / ejb ids across redeployment MS5     Mahesh EJB-6-1 Done by MS3
New command-line arg for asadmin --keepstate MS5     Hong EJB-6-2 Done
Skip deletion of SFSB persistent state if --keepstate=true MS6     Mahesh / Cheng EJB-6-3 Done
Preserve EJB Timers accross redeployments if --keepstate=true MS6     Cheng / Marina EJB-6-4 Done
Container changes to use configured thread pool MS5     Mahesh / Cheng EJB-7 Dropped
New ejb-container property for disabling GlassFish-specific JNDI names MS3     Cheng EJB-8-1 Done
Container changes to skip GlassFish-specific JNDI names MS3     Cheng EJB-8-2 Done

Dropped Features

EJB-4 Support Weblogic EJB descriptor  
EJB-3 Additional DTrace probes  
EJB-5 Full EJB 3.1 API support in Embeddable EJB API Note: partial support is available
EJB-7 User-specified thread-pools for EJB timers / async  

Feature Overview

One-pager / Functional Specification

Dev Tests

Quality

  • Link to Test Plans

Documentation

  • Link to Documentation

References / Links

Email Alias



EJB_v31_onepager4.html.pdf (application/pdf)