For sure you have to make modifications yourself.
The actual service topology is controlled by the
org.jboss.ha.framework.server.DistributedReplicantManagerImpl, which is a sub-component of
the HAPartition.
The JGroups view that's passed into HAPartition.viewAccepted() provides the list of
nodes that have connected to the JGroups channel. But JGroups view != service topology,
since not all nodes may have a particular service deployed, and there are timing
differences during startup/shutdown of a server. That is, HAPartition connects the
channel, so a node appears in the view, and then a service that uses HAPartition is
deployed on that node, at which time the node appears in the service topology. The
DistributedReplicantManagerImpl deals with that stuff.
A lot of AS clustering stuff works by getting notifications from
DistributedReplicantManager when the topology for a service changes. For example, the
org.jboss.ha.singleton.HASingletonSupport class uses those notifications to trigger
election of an HASingleton master. The org.jboss.ha.framework.server.HATarget class uses
the notifications to provide the correct topology to server-side interceptors like
org.jboss.aspects.remoting.ReplicantsManagerInterceptor and to the clustered invokers like
org.jboss.invocation.unified.server.UnifiedInvokerHA. Those classes advise remote clients
when the service topology changes. The proxy factories a la
org.jboss.proxy.generic.ProxyFactoryHA listen for notifications and respond by publishing
a new version of the proxy in JNDI, so clients doing a lookup get a proxy with the current
topology.
So what you're trying to do is to get the topology in the desired order. With that
many different places receiving notifications, I don't think you want each one
ordering the topology. Rather it's more logical to have the
DistributedReplicantManagerImpl order things in the way you want before issuing the
notifications.
There are no hooks or configuration points to let you plug in how things are ordered.
You'd have to customize to add that. If you are able to come up with a solution that
is generally useful, let me know, perhaps we could add it to the AS codebase.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4267130#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...