[jboss-dev-forums] [Design of Clustering on JBoss (Clusters/JBoss)] - Re: JBAS-4180 - HA <-> JMX coupling

bstansberry@jboss.com do-not-reply at jboss.com
Tue Oct 2 17:19:16 EDT 2007


Very quick response:

Note the issue here is whether classes extend ServiceMBeanSupport, not whether they expose a JMX interface.

Also, have a look at http://www.jboss.com/index.html?module=bb&op=viewtopic&t=118608 . Came up a couple weeks back.  Showed me a benefit of subclassing ServiceMBeanSupport -- get to take advantage of the already coded methods that prevent duplicate lifecycle invocations when a MC bean is annotated with @JMX.

"galder.zamarreno at jboss.com" wrote : 
  | + Barrier, BarrierController, HASingletonController, HASingletonSupport and HAServiceMBeanSupport
  | 
  | HASingletonController extends HASingletonSupport which sends notifications related to node becoming coordinator, or node stopping being coordinator. BarrierControler is the listener of these notifications, who's job is to start/stop of dependant services. Barrier is wrapper around the dependant service, which is started/stopped upon BarrierController's command via lifecycle methods. 
  | 
  | 1. BarrierController listens for JMX notifications, so should probably remain the same. Does not seem to make much sense to have JMX pulled out because it's its core business.

Makes sense

anonymous wrote : 
  | 2. Whether Barrier should be JMX aware is debatable. Extends ServiceMBeanSupport directly and does little more. It's a mere delegator.  

No opinion. Not a priority either way.

anonymous wrote : 
  | 3. HASingletonController does nothing JMX related, except publicise (via getters) the configuration options for target start/stop methods. Needs JMX factoring out IMO.
  | 

The barrier counts on the notifications, and other users may be counting on the notifications as well, so if there is a refactoring to provide a non-JMX version, the std HASingletonController class needs to provide the notifications.

anonymous wrote : 
  | 4. HASingletonSupport knows when a node is coordinator or not, and via its parent, sends JMX notifications (only local notifications). HAServiceMBeanSupport can send JMX notifications locally or broadcast them accross the cluster. Both rely heavily on JMX functionality, so could stay the same.
  | 5.- 5.- JBAS-3982 should take in account the decision on HAServiceMBeanSupport, which provides infrastructure for cluster wide notifications"
  | 

Sounds right.

anonymous wrote : 
  | + HASingletonElectionPolicyBase and HASingletonElectionPolicySimple
  | 
  | This is new functionality to decide where to run HA singleton services instead of the coordinator. It makes sense to factor JMX out of these classes to separate functionality from any JMX managed methods. An election policy should be independent, like the load balance policies.
  | 

+1.

anonymous wrote : 
  | + FarmMemberService
  | 

Ignore this.

anonymous wrote : 
  | + ClusterPartition
  | 
  | Does not make sense to have a non JMX version.
  | 

Sure it does.  Again, the issue here is whether classes extend ServiceMBeanSupport, not whether they expose a JMX interface.

That said, changing this isn't a priority.

anonymous wrote : 
  | + UnifiedInvoker and UnifiedInvokerHA
  | 
  | I'm not going to discuss legacy invokers here because they should remain as they are for backwards compatibility. To discuss JMX factoring out, let's focus on the unified invokers. 
  | 

+1.

anonymous wrote : 
  | To factor out JMX from invokers makes sense to help unit testing and potentially make path for them to be migrated to Remoting (there's a JIRA on this) and be used standalone. It would also make my life a lot easier unit testing JBAS-4455 :)
  | 

Sadly, unlikely to happen before beta3 and thus not in 5.0.0.  In any case, this should be driven by what's done with the non-HA version.

anonymous wrote : 
  | + DetachedHANamingService and HANamingService
  | 
  | DetachedHANamingService uses JMX (via Query) to find an HAPartition with a given name via findHAPartitionWithName method. Couldn't find any references to this method and it's not a managed method either. 

That method should be removed; the partition should be dependency injected.  I'm quite sure it already is injected; that method is probably just leftover cruft.

anonymous wrote : 
  | + HASessionStateService
  | 
  | This looks like legacy code, so no need to touch it?
  | 
  | + PingJndi
  | 
  | Once again, legacy code?
  | 

+1 to ignoring both.  Don't even know what PingJndi is.

anonymous wrote : 
  | Thoughts? Comments? Bored? :)

Bored ;-)

Thanks much for this.  Even if we don't change much for 5.0.0 this is most helpful.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4090828#4090828

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4090828



More information about the jboss-dev-forums mailing list