JDK-5108776 : Add reliable event handling to the JMX API
  • Type: Enhancement
  • Component: core-svc
  • Sub-Component: javax.management
  • Affected Version: 5.0,6,6u10
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris_9
  • CPU: generic,sparc
  • Submitted: 2004-09-29
  • Updated: 2017-05-16
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7 b34Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
The JMX API and JMX Remote API define clear semantics for notifications.  If you listen for notifications remotely, you are guaranteed either to receive all the notifications you are listening for, or to be told that you may have missed some.

This guarantee is not necessarily enough, although ultimately it is never possible to provide an absolute guarantee of anything better.

The JMX API could define an event-handling mechanism with greater reliability.  One possibility would be an event-handling MBean that receives all notifications sent by other MBeans in the same MBean Server.

This MBean could do two things with those notifications, not mutually exclusive.  One would be to maintain a list of interested clients, and store up the notifications for each client until the client claims them.  A complete end-to-end acknowledgement would ensure that a client that fails after receiving a notification but before handling it does not lose that notification.  The behaviour of the MBean in this scheme is not very different from the existing fetchNotifications mechanism defined by the standard connectors in the JMX Remote API, but since the MBean knows which notifications are still of interest it can respond better to heavy notification traffic.  The fetchNotifications mechanism has to hold on to all notifications for as long as it can, because by design it never knows when a notification is no longer of interest to anyone.

The second possibility would be for the event-handling MBean to have pluggable treatment of notifications.  For example, you could plug in a JMS bridge that would send notifications of interest to a JMS topic or event queue.  Because JMS is not part of the J2SE platform, such a bridge could not be supplied by default.

Comments
EVALUATION One real problem that people have signaled with the existing remote notification architecture is that, with the RMI or JMXMP connector, a client must maintain a permanently open connection to every server it wants to get notifications from. If it is connected to hundreds of servers, then it has hundreds of open connections, even if notifications are very rare. The ability to use something like JMS here would be very valuable.
2005-09-14

PUBLIC COMMENTS .
2004-09-30

EVALUATION May be somewhat ambitious for Mustang. Have not yet received feedback indicating real problems with the existing remote notification architecture defined by the JMX Remote API. ###@###.### 2004-09-29
2004-09-29