[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: JBMESSAGING-674 - Propagating changes on ClusteredConnec
clebert.suconic@jboss.com
do-not-reply at jboss.com
Fri Jan 19 11:43:54 EST 2007
anonymous wrote :
| 1. ServerConnectionFactoryEndpoint sends a view update to ALL active connections returned by the ConnectionManager instance. Why does it send it to all? Didn't you mention that this has to be sent on a "filtered" list of connections? This JIRA issue (http://jira.jboss.com/jira/browse/JBMESSAGING-759 ) is about this.
oops... fixing it... easy fix.
We need a testcase that uses two connectionFactory though.
anonymous wrote : 2. Why the code that sends the view update (currently hosted by ServerConnectionFactoryEndpoint) is not located at ConnectionManager level? Seems more appropriate to be there...
|
I was wondering if we should lock the factory while updating the clients or not. Since there is that possibility we would require a ReadWriteLock on the CFEndpoint. Since there is a possibility of locking the CF that was an indication for me the right place for the update would be the CFEndpoint itself.
anonymous wrote : 3. Why do you keep a different "activeConnections" set at ConnectionManger level? Speed reasons? You got all the information you need in the "endpoints" map already. Keep in mind that cluster view update events are very rare events, considering the time scale at which messaging operates. Why would you need to optimize that, risking cache desynchronization?
|
The active connection list is on a three levels HashMap list VMId->ClientId->Connection. It seemed simpler to have a simple HashSet, managed by the very same routines. I can change that if you like.
anonymous wrote : 4. What's the difference between a LoadBalancingPolicy and a LoadBalancingFactory? Why do you configure a ConnectionFactory service with the latter instead of the former?
The LoadBalancingPolicy is not static any more.. you need a Policy per Connection created. This was working before because Serialization was creating new instances for you... and besides you had a comment about not making it static any more.
anonymous wrote : 5. What is this:
| Code:
|
| // FailoverNodeID is not on the map, that means the ConnectionFactory was updated
| // by another connection in another server.. So we will have to guess the failoverID
| // by numeric order. Case we guessed the new server wrongly we will have to rely on
| // redirect from failover
|
|
|
| (ClusteringAspect.java line 211).
| Why do we need to guess the failover ID?
|
Take a look on the 4th message at this thread (Posted: Mon Jan 15, 2007 17:35 PM) and some others after that.
Case the Factory is updated before failover happens, there is a change the failoverID is not on the MAP any more.
On that case we would require a random node to try a hopping. Instead of a random node I'm guessing the node... and if it fails hopping will take care of it.
anonymous wrote : 6. ClusterViewUpdateTest.testUpdateConnectionFactory() fails.
I executed the whole testsuite about two times between yesterday and today.. and didn't get any failures. Maybe you have a local problem?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4003910#4003910
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4003910
More information about the jboss-dev-forums
mailing list