GlassFish Server Open Source Edition 3.1 - JMS and Message Queue enhancements
Scope of the Project
Feature-ID |
Desired Improvement |
Priority |
Source of requirement |
Comments |
One-pager author or link |
Status |
JMS-01 |
JMS support for embedded GF with an Embedded MQ broker (Broker Embedded + GlassFish Embedded) |
P3 |
Product management |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-02 |
JMS support for embedded GF with a Local MQ broker (GlassFish Embedded + Broker Local) |
P4 |
Product management |
|
Satish (One-pager for GF changes TODO) No MQ changes expected |
Not scheduled (insufficient time) |
JMS-03 |
JMS support for embedded GF with a Remote MQ broker (GlassFish Embedded + Broker Remote) |
P3 |
Product management |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Should technically work but hasn't been tested |
JMS-04 |
Running embedded MQ broker in embedded GF without starting any ports (GlassFish Embedded + Broker Embedded) |
P4 |
Engineering |
|
Nigel (One-pager for MQ changes ) Satish (One-pager for GF changes TODO) |
Not scheduled (too low priority) |
JMS-05 |
Running embedded MQ broker in embedded GF with minimum number of ports (GlassFish Embedded + Broker Embedded) |
P3 |
Engineering |
|
Nigel (One-pager for MQ changes see JMS-4) Satish (One-pager for GF changes TODO) |
Not scheduled (insufficient time) |
JMS-06 |
Support for conventional clustering of MQ brokers in Local mode |
P1 |
Feature parity with GF 2.1 |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-07 |
Support for enhanced clustering of MQ brokers in Local mode |
P1 |
Feature parity with GF 2.1 |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-08 |
Support for conventional clustering of MQ brokers in Remote mode |
P1 |
Feature parity with GF 2.1 |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-09 |
Support for enhanced clustering of MQ brokers in Remote mode |
P1 |
Feature parity with GF 2.1 |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-10 |
Support for conventional clustering of MQ brokers in Embedded mode (Broker Embedded) |
P1 or P2 |
Product management |
|
Nigel/Amy (One-pager for MQ changes ) Satish (One-pager for GF changes ) |
Completed |
JMS-11 |
Support for enhanced clustering of MQ brokers in Embedded mode (Broker Embedded) |
P4 |
Product management |
Not feasible without extensive changes |
|
Not scheduled (technical reasons) |
JMS-12-a |
Improve MQ conventional clustering with master broker |
P2 |
Product management/users |
|
Amy (One-pager for MQ changes ) Satish (One-pager for GF changes ) |
Completed |
JMS-12-b |
MQ conventional clustering without master broker in GlassFish EMBEDED/LOCAL Mode (Broker Embedded or Broker Local) |
P2 |
Product management/users |
|
Amy (One-pager for MQ changes ) Satish (One-pager for GF changes ) |
Completed |
JMS-13 |
Integration with IBM Websphere MQ through GenericJMSRA |
P1 |
Feature parity with GF 2.1 |
|
|
Completed |
JMS-13-a |
Integration with WebLogic MQ through GenericJMSRA |
P1 |
Product management |
|
|
Completed |
JMS-14 |
Direct mode support for additional RAs |
P4 |
Engineering |
Essentially solving a class loader issue in GF |
Satish (One-pager for GF changes TODO) |
Not scheduled (too low priority) |
JMS-15 |
Separation of Life-cycle management components from JMSRA |
P4 |
Engineering |
|
Satish (One-pager for GF changes TODO) Nigel (One-pager for MQ changes ) |
Not scheduled (too low priority) |
JMS-16 |
Enhancements to JMS related Admin commands for cluster support |
P1 |
Feature parity with GF 2.1 |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Completed |
JMS-17 |
Integrating existing JMX based MQ broker metrics with GF monitoring framework |
P3 |
Product management |
|
Satish (One-pager for GF changes ) No MQ changes expected |
Deferred |
JMS-18 |
Integrating existing command-line MQ broker metrics with GF 3 |
P4 |
Engineering |
|
Nigel (One-pager for MQ changes WILLNOTDO) Satish (One-pager for GF changes WILLNOTDO) |
Not scheduled (too low priority) Will not do one-pagers either. |
JMS-19 |
Adding new MQ client-side metrics |
P4 |
Engineering |
|
Nigel (One-pager for MQ changes WILLNOTDO) Satish (One-pager for GF changes WILLNOTDO) |
Not scheduled (too low priority) Will not do one-pagers either. |
JMS-20 |
WebLogic DD support |
(No) |
Product management |
Not feasible without extensive changes |
Defer |
Not scheduled (Technical reasons) |
JMS-21 |
Coherence support |
(No) |
Product management |
Not appropriate |
|
Not scheduled (Technical reasons) |
JMS-22 |
VisualVM Plugin Enhancements |
P4 |
Engineering management |
|
Nigel (One-pager ) |
Now on hold Not scheduled |
JMS-23 |
Glassfish RFE 6893609 (Glassfish MQ LOCAL startup options should be configurable) |
P4 |
Users (JMS-12 will reduce need) |
|
Nigel (One-pager for MQ changes WILLNOTDO) Satish (One-pager for GF changes WILLNOTDO) |
Not scheduled (Too low priority) Will not do one-pagers either. |
JMS-24 |
Glassfish issue 11721 (GF does not allow all required passwords to be passed to managed MQ broker) |
P2 |
Users |
|
Nigel (One-pager for MQ changes ) Satish (One-pager for GF changes TODO) |
|
JMS-25 |
Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster |
P3 |
|
|
Amy/Nigel (One-pager for MQ changes ) Satish (One-pager for GF changes ) |
Completed |
(Note: Broker Embedded = MQ configured to run in same VM as GlassFish, Remote = MQ running on same machine, w/Lifecycle controls, Remote = MQ unmanaged, in remote VM See also GlassFish Embedded Sub-project page; See also EJB-5 from the EJB 3.1 Sub-project page.) Feature Overview JMS support for embedded Glassfish instances
This task involves providing complete JMS support to Glassfish when it is running in an embedded mode. All three modes of MQ integration- embedded/local and remote will be supported. However, MQ clusters will not be supported since cluster service requires some minimum broker properties or commandline parameters and requires portmapper service running.
GlassFish Meessage Queue 4.5 will be integrated into GlassFish Server, Open Source Edition 3.1. Please also see the GlassFish MQ project for more information. Support for different modes of MQ integration within embedded GF: The following subtasks are the first level of support for integrating JMS capabilities with embedded GF. JMS-1: Support for running a stand-alone embedded MQ broker within embedded GlassFish JMS-2: Support for running a stand-alone Local MQ broker within embedded GlassFish JMS-3: Support for running a stand-alone Remote MQ broker within embedded GlassFish Starting MQ with no/minimum ports: MQ currently requires a minimum of four ports to be started- Port mapper, JMS service, Cluster Service and JMS admin. The following two requirements are advanced enhancements to the JMS-1 requirement: JMS-4: Running embedded MQ broker without starting any ports: In cases where the only JMS communication required is within the same JVM, no ports need to be started unnecessarily. Applications would communicate with MQ using the new APIDirect mode. JMS-5: Running embedded MQ broker with minimum number of ports: This would translate into MQ starting only the JMS service and port mapper ports.
Satish, Nigel/Amy
TBD JMS clustering and HA support
This task involves enhancements to GlassFish 3.1 to support MQ's clustering capabilities. MQ currently supports two modes of clustering – conventional clustering (service HA) and enhanced clustering (includes data HA, which relies on a HA database).
JMS-6: Support for conventional clustering of MQ brokers in Local mode. JMS-7: Support for enhanced clustering of MQ brokers in Local mode JMS-8: Support for conventional clustering of MQ brokers in Remote mode JMS-9: Support for enhanced clustering of MQ brokers in Remote mode This is the level of support that has been available in earlier releases of GlassFish.
Clustering of MQ brokers in embedded mode: This has not been supported in earlier releases of GlassFish. To support enhanced cluster in embeded mode, there is an issue with having to restart the MQ broker in the event of a potential split-brain (e.g. under network partition if a broker unable to update its heartbeat within the configured monitor interval). When a potential split-brain is detected, it is very important to terminate any in-flight data access right away hence the broker JVM will need to be halted and restarted. Restarting an embedded broker without exiting the JVM would increase seriously the risk to data integrity. The following two requirements are an extension of this feature: JMS-10: Support for conventional clustering of MQ brokers in Embedded mode JMS-11: Support for enhanced clustering of MQ brokers in Embedded mode JMS-12 Improvements to MQ's conventional clustering (master broker): MQ conventional clustering architecture requires a master broker on creation/update/deletion of durable subscription and physical destination and sync-up with master broker on a broker startup. This imposes the requirement for the master broker to be started before the remaining broker instances can start and function correctly. They have been several complaints from users running into "master broker not started" errors if there are delays in the start-up of the master broker.
Satish, Nigel and Amy Kang
TBD Support for Resource Adapters
GlassFish currently ships with JMSRA as the default resource adapter. JMSRA is a system RA hence in is available out-of-the-box. Currently, JMSRA also manages the broker life-cycle (starting and stopping the broker) in embedded and local modes.
JMS-13: Integration with IBM Websphere MQ through GenericJMSRA: GlassFish also ships GenericJMSRA for integration with other JMS provides. We currently support integration with IBM Websphere MQ.
JMS-14: Direct mode support for RAs: This will allow other RA's to use the 'Direct mode' rather than TCP to connect to an in-process MQ broker. Currently, this feature is only available to JMSRA. Performance test suggests this can approximately double messaging performance compared with TCP mode. JMS-15: Separation of Life-cycle management components from JMSRA: At present, JMSRA functions as both a MQ broker lifecycle management component and as a JCA based resource adapter. This means that even if JMSRA is not required as a RA, it must nevertheless be started in order to perform broker lifecycle management. This work would involve spliting JMSRA into separate RA and lifecycle management components. Post this change, there would not be a need to start JMSRA unless it was actually needed.
Nigel, Satish
TBD Enhancements to JMS related Admin commands for cluster support
JMS-16: Enhance the existing JMS related admin commands (such as - create-jms-host, delete-jms-host, list-jms-hosts, create-jms-resource, delete-jms-resource, list-jms-resources, create-jmsdest, delete-jmsdest, list-jmsdest, flush-jmsdest, jms-ping, etc.) for cluster support.
None
Satish
TBD Integration of MQ's monitoring capabilities with the GlassFish 3 monitoring framework
The task involves leveraging and enhancing MQ's monitoring capabilities so that they can be accessible using the new Glassfish 3 monitoring framework.
JMS-17: Integrating of existing JMX based MQ broker metrics with GF monitoring framework: There are currently exposed through JMX JMS-18: Integrating of existing command-line based MQ metrics with GF 3: Currently these can only be accessed through the MQ command line JMS-19: Adding MQ client-side metrics: There are currently no metics available on the MQ client-side.
Satish, Nigel
TBD WebLogic DD support
JMS-20: Support for weblogic-jms.xml in GlassFish. A detailed feasability study is available here
None
TBD
TBD Coherence support
JMS-21: Enhancement to MQ to use Coherence for high availability in lieu of MySQL.
None
TBD
TBD VisualVM Plugin Enhancements
MQ 4.4U1 currently offers a plugin to VisualVM to allow the state of a running MQ broker to be easily viewed. Description here. Quick start guide here. It is proposed to enhance this to support broker clusters, allow charting of runtime data and provide various other improvements. Proposals here.
JMS-22: VisualVM Plugin Enhancements Other enhancements
JMS-23: Glassfish RFE 6893609 (Glassfish MQ LOCAL startup options should be configurable) JMS-24: Glassfish issue 11721 (GF does not allow all required passwords to be passed to managed MQ broker)) One-pager / Functional Specification
- These will be linked from the table above
Milestone Schedule
Item # |
Date/Milestone |
Feature-ID |
Description |
QA/Docs Handover? |
Status / Comments |
01 |
M1 |
N/A |
All specs completed |
No |
Completed |
02 |
M2 |
JMS-06 |
Support for conventional clustering of MQ brokers in LOCAL broker mode |
No |
Completed |
03 |
M2 |
JMS-07 |
Support for enhanced clustering of MQ brokers in LOCAL broker mode |
No |
Completed |
04 |
M2 |
JMS-08 |
Support for conventional clustering of MQ brokers in REMOTE broker mode |
No |
Completed |
05 |
M2 |
JMS-09 |
Support for enhanced clustering of MQ brokers in REMOTE broker mode |
No |
Completed |
06 |
M3 |
JMS-13 |
Integration with IBM Websphere MQ through GenericJMSRA |
Yes |
Completed |
07 |
M3 |
JMS-16 |
Enhancements to JMS related admin commands for cluster support |
Yes |
Completed |
08 |
M4 |
JMS-10 |
Support for conventional clustering of MQ brokers in EMBEDDED broker mode |
Yes |
Completed |
09 |
M4 |
JMS-12a |
Improve MQ conventional clustering with master broker |
Yes |
Completed |
10 |
M5 |
JMS-12b |
MQ conventional clustering without master broker in EMBEDDED or LOCAL broker mode |
Yes |
Completed |
11 |
M5 |
JMS-01 |
JMS support for embedded Glassfish with an EMBEDDED broker |
Yes |
Completed |
12 |
M5 |
JMS-03 |
JMS support for embedded Glassfish with a REMOTE broker |
Yes |
Not tested but should technically work |
13 |
M5 |
JMS-17 |
Integrating existing JMX-based MQ broker metrics with Glassfish monitoring framework |
Yes |
|
14 |
M5 |
JMS-24 |
Glassfish issue 11721 (GF does not allow all required passwords to be passed to managed MQ broker) |
Yes |
|
15 |
On hold |
JMS-22 |
VisualVM Plugin Enhancements MQ issue 55 |
Yes |
|
16 |
M5 |
JMS-25 |
Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster |
Yes |
Completed |
Dependencies on other Glassfish components: JMS-06, JMS-07, JMS-08, JMS-09, JMS-16, JMS-10 and parts of JMS12a, JMS12b are all dependent on cluster support being added to Glassfish. In particular:
- config-api to access cluster related information
- Listener interfaces for dynamic addition/deletion of instances from a cluster.
Task List
Task |
Target Milestone |
Start |
End Date |
Owner(s) |
Feature ID |
Status / Comments |
Write and review specs |
M1 |
|
|
Nigel, Amy, Satish |
N/A |
Completed |
JMS-06 Support for conventional clustering of MQ brokers in LOCAL broker mode |
M2 |
|
|
Satish |
JMS-6 |
Completed |
JMS-07 Support for enhanced clustering of MQ brokers in LOCAL broker mode |
M2 |
|
|
Satish |
JMS-7 |
Completed |
JMS-08 Support for conventional clustering of MQ brokers in REMOTE broker mode |
M2 |
|
|
Satish |
JMS-8 |
Completed |
JMS-09 Support for enhanced clustering of MQ brokers in REMOTE broker mode |
M2 |
|
|
Satish |
JMS-9 |
Completed |
JMS-10 (MQ part only) Support for conventional clustering of MQ brokers in EMBEDDED broker mode MQ issue 53 |
M3 |
|
|
Nigel |
JMS-10 (MQ part only) |
Completed |
JMS-12a (MQ part only) Improve MQ conventional clustering with master broker MQ issue 52 |
M3 |
|
|
Amy |
JMS-12a (MQ part only) |
Completed |
JMS-13 Integration with IBM Websphere MQ through GenericJMSRA |
M3 |
|
|
Satish |
JMS-13 |
Completed |
JMS-16 Enhancements to JMS related admin commands for cluster support |
M3 |
|
|
Satish |
JMS-16 |
Completed |
JMS-22 VisualVM Plugin Enhancements MQ issue 55 |
On hold |
|
|
Nigel |
JMS-22 |
|
JMS-12b (MQ part) MQ conventional clustering without master broker in EMBEDDED or LOCAL broker mode MQ issue 54 |
M4 |
|
|
Amy |
JMS-12b (MQ part only) |
|
JMS-10 (GF part) Support for conventional clustering of MQ brokers in EMBEDDED broker mode |
M4 |
|
|
Satish |
JMS-10 (completed) |
Completed |
JMS-12a (GF part) Improve MQ conventional clustering with master broker |
M4 |
|
|
Satish |
JMS-12a (completed) |
Completed |
JMS-25 (MQ part) Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster MQ issue 63 |
M4 |
|
|
Amy/Nigel |
JMS-12a (MQ part only) |
|
JMS-12b (GF part) MQ conventional clustering without master broker in EMBEDDED or LOCAL broker mode |
M5 |
|
|
Satish |
JMS-12b (completed) |
Completed |
JMS-01 JMS support for embedded Glassfish with an EMBEDDED broker |
M5 |
|
|
Satish |
JMS-1 |
Completed |
JMS-03 JMS support for embedded Glassfish with a REMOTE broker |
M5 |
|
|
Satish |
JMS-3 |
Should work but not tested |
JMS-17 Integrating existing JMX-based MQ broker metrics with Glassfish monitoring framework |
M5 |
|
|
Satish |
JMS-17 |
|
JMS-24 Glassfish issue 11721 (GF does not allow all required passwords to be passed to managed MQ broker) |
M5 |
|
|
Satish |
JMS-24 |
|
JMS-25 (GF part) Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster |
M5 |
|
|
Satish |
JMS-25 (completed) |
Completed |
Here's the same information in a different form, showing the internal dependency between tasks carried out by the MQ team (left column) and by the GF JMS team (right column):
|
|
|
MQ |
Glassfish |
|
May 14 |
One-pagers: initial drafts |
One-pagers |
One-pagers |
|
May 21 |
One-pagers: review ready |
One-pagers |
One-pagers |
M1 |
May 24 |
Basic infrastructure Phase 2 review with all planning complete |
One-pagers |
One-pagers Prototype for monitoring integration |
M2 |
Jun 21 |
All initial integrations complete Some P1 features complete |
|
*JMS-6* (P1) (Support for conventional clustering of MQ brokers in Local mode) JMS-7 (P1) (Support for enhanced clustering of MQ brokers in Local mode) JMS-8 (P1) (Support for conventional clustering of MQ brokers in Remote mode) JMS-9 (P1) (Support for enhanced clustering of MQ brokers in Remote mode) |
M3 |
Jul 19 |
Most P1 features complete |
*JMS-10* (MQ part only) (P1 or P2) (Support for conventional clustering of MQ brokers in Embedded mode) JMS12a (MQ part only) (P2) (Improve MQ conventional clustering with master broker) |
*JMS-13* (P1) (Integration with IBM Websphere MQ through GenericJMSRA) JMS-16 (P1) (Enhancements to JMS related Admin commands for cluster support) |
M4 |
Aug 16 |
SCF for cluster infrastructure and HA All P1 features complete Low P1 bug count Some P2 features complete |
*JMS12b* (MQ part only) (P2) (MQ conventional clustering without master broker in GlassFish EMBEDED/LOCAL Mode) JMS25 (MQ part only) (P3) (Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster) |
JMS-10 (GF part) (P1 or P2) (Support for conventional clustering of MQ brokers in Embedded mode) JMS12a (GF part) (P2) (Improve MQ conventional clustering with master broker) |
M5 |
Sep 13 |
SCF (zero P1s) All features complete |
|
JMS-12b (GF part) (P2) (MQ conventional clustering without master broker in GlassFish EMBEDED/LOCAL Mode) JMS-24 (P2) (Glassfish issue 11721 (MQ Password file generated by GF supports only a subset of the MQ passwords list)) JMS-1 (P3) (JMS support for embedded GF with an Embedded MQ broker) JMS-3 (P3) (JMS support for embedded GF with a Remote MQ broker) JMS-17 (P3) (Integrating existing JMX based MQ broker metrics with GF monitoring framework) JMS-25 (P3) (Dynamic Sync Broker List of MQ Conventional Cluster with GlassFish Cluster) |
M6 |
Nov 22 |
HCF (zero P1-P3) |
|
|
|
Dev Tests
Quality
Documentation
|