Hi Bong Jae,
I will run your patch on our test bed and let you know asap.
Thanks
Sheetal
On Jun 16, 2008, at 5:14 PM, Bongjae Chang wrote:
> Hi Mohamed and Shreedhar.
> Thanks for reviewing my patch.
> As Shreedhar's advice, I will wait for Sheetal to confirm this patch.
> Thanks.
>
> --
> Bongjae Chang
>
>
> ----- Original Message -----
> From: "Shreedhar Ganapathy" <Shreedhar.Ganapathy_at_Sun.COM>
> To: <dev_at_shoal.dev.java.net>
> Sent: Tuesday, June 17, 2008 12:40 AM
> Subject: Re: [Shoal-Dev] Strange behavior about join notifications.
>
>
>> Hi Bongjae
>> Lets wait for Sheetal to confirm this patch on our test harness. We
>> usually do run each such checkin through the test in order to confirm
>> that there no other side effects.
>> We are currently gate keeping checkins until we create a branch
>> that is
>> needed for a Sailfin related interim release.
>> Please wait for Sheetal's email on this.
>>
>> Cheers
>> Shreedhar
>>
>> Mohamed Abdelaziz wrote:
>>> Bongjae,
>>>
>>> Thank you for the detailed response. Please commit your changes
>>> when
>>> you get the time.
>>>
>>>
>>> Regards,
>>> Mohamed
>>>
>>>
>>> Bongjae Chang wrote:
>>>> Hi Mohamed.
>>>> Please see the following descriptions.
>>>>
>>>> 1. Testing scenarios
>>>> Testing scenarios are simple. Shoal(with Jxta) don't support
>>>> multiple
>>>> members becoming part of the same group from the same JVM.
>>>> So, each member should join the group with separate process
>>>> (JVM). You
>>>> can test this manually with executing "SimpleJoinTest" I
>>>> attached ago.
>>>> Whenever you execute "SimpleJoinTest", new member(node) can join
>>>> the
>>>> "TestGroup".
>>>>
>>>> I tested this with creating multiple "SimpleJoinTest"s. You maybe
>>>> need 3 or 4 "SimpleJoinTest"'s processes.
>>>> a) In the beginning, there is no member and no group.
>>>> b) I executed multiple "SimpleJoinTest"s in the separate process
>>>> (JVM)
>>>> concurrently.
>>>> c) I saw each log. I observed "Signal.getMemberToken()"
>>>> particularly.
>>>> ex) "****JoinNotification received: GroupLeader = false,
>>>> Signal.getMemberToken() = e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>> ServerName = a2ed5cb6-3cc7-4060-91d6-3fc8b6854049, Leader =
>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96"
>>>>
>>>> Strictly speaking, we can't execute multiple processes
>>>> simultaneously. But because each member has the discovery timeout,
>>>> this is an acceptable error range.
>>>> In other words, if you execute "SimpleJoinTest" when other
>>>> "SimpleJoinTest"s are waiting for the discovery timeout, you can
>>>> reproduce strange results.
>>>>
>>>>
>>>>
>>>> 2. How does the new code behave during the discovery phase?
>>>> I also made an effort to preserve original logic and codes if
>>>> possible.
>>>> Before I expain how the new code behave during the discovery
>>>> phase, I
>>>> want to explain my patch.
>>>>
>>>> Assume "A", "B" and "C" will become members of the group.
>>>> In my scenario, "A", "B" and "C" will wait for the discovery
>>>> timeout
>>>> because there is no master in the group.
>>>> Before they enter discovery phase, they first set the master
>>>> advertisement as own advertisement. But masterAssigned is mostly
>>>> false at this time.
>>>> Mostly masterAssigned can be set as true by the following method:
>>>> - In MasterNode.appointMasterNode()
>>>> - In MasterNode.processMasterNodeResponse()
>>>> - In MasterNode.processMasterNodeAnnouncement()
>>>>
>>>> a) In MasterNode.appointMasterNode()
>>>> This case is that master is not assigned after the discovery
>>>> timeout.
>>>> ex) there is no master in the group.
>>>> Then we use the discovery view which has other members if other
>>>> members sent any messages to me in order to put up a cadidate as
>>>> master.
>>>> Of course, because the discovery view always has own advertisement,
>>>> own advertisement can become the candidate.
>>>>
>>>> a-1) when own advertisement becomes the master
>>>> First, if the cadidate is own advertisement and the discovery view
>>>> has other members, clusterViewManager.setMaster() is called with
>>>> discovery view's snapshot.
>>>> This is edited. Original code call clusterViewManager.setMaster()
>>>> with only own view snapshot. But because the master was already
>>>> determined as own advertisement, I think that calling
>>>> clusterViewManager.setMaster() with discovery view's snapshot is
>>>> better than with only own view's snapshot. Of course, Calling
>>>> clusterViewManager.setMaster() without discovery view's snapshot
>>>> has
>>>> no problem because when other members receive
>>>> processMasterNodeAnnouncement() by master's announceMaster(), they
>>>> can call sendSelfNodeAdvertisement(). But if discovery view has
>>>> them
>>>> and setMaster() is called with discovery view,
>>>> sendSelfNodeAdvertisement() is unnecessary at this case because
>>>> master view already has them. So they can set the master directly
>>>> without sendSelfNodeAdvertisement().
>>>>
>>>> And I edited another code about calling announceMaster().
>>>> -----------------------------------------------------
>>>> [original appointMasterNode() in MasterNode.java]
>>>> ...
>>>> if (madv.getID().equals(localNodeID)) {
>>>> ...
>>>> if(clusterViewManager.getViewSize() > 1) {
>>>> announceMaster(manager.getSystemAdvertisement());
>>>> }
>>>> ...
>>>> }
>>>> -----------------------------------------------------
>>>>
>>>> I edited this as the following code
>>>> -----------------------------------------------------
>>>> if (madv.getID().equals(localNodeID)) {
>>>> ...
>>>> //if(clusterViewManager.getViewSize() > 1) {
>>>> announceMaster(manager.getSystemAdvertisement());
>>>> //}
>>>> ...
>>>> }
>>>> -----------------------------------------------------
>>>> In other words, if own advertisement becomes the master,
>>>> announceMaster() is always called. When I am debuging this, though
>>>> one more member joined the group, sometimes
>>>> clusterViewManager.getViewSize() could be equal to 1 in a short
>>>> time.
>>>> So for safety I edited it. Though announceMaster() is called when
>>>> clusterViewManager.getViewSize() is equal to 1, it is no problem
>>>> because we don't receive own message.
>>>>
>>>> a-2) when other member's advertisement becomes the master
>>>> Original code always set the master without notification. Then
>>>> sometimes master's view can't be updated. see the following code.
>>>> -----------------------------------------------------
>>>> [appointMasterNode() method in MasterNode.java]
>>>> ...
>>>> clusterViewManager.setMaster(madv, false);
>>>> ...
>>>> -----------------------------------------------------
>>>>
>>>> -----------------------------------------------------
>>>> [setMaster(advertisement, notify) method in
>>>> ClusterViewManager.java]
>>>>
>>>> if ( !advertisement.equals(masterAdvertisement)) {
>>>> ...
>>>> // notify
>>>> }
>>>> ----------------------------------------------------- As you
>>>> see, if
>>>> current member already set the master, notify is not called. If
>>>> first
>>>> we already called setMaster(advertisement, false) in
>>>> MasterNode.appointMasterNode(), when master sends new view to me
>>>> later and I receive the view through
>>>> processMasterNodeAnnouncement()
>>>> or processMasterNodeResponse(), notifying new view is not called,
>>>> though setMaster() can be called with new view because current
>>>> masterAdvertisement is already same to master's advertisement.
>>>> So I edited it. If cadidate is other member, I don't call
>>>> setMaster(advertisement, false). Though we don't set the master
>>>> now,
>>>> we can receive the master change event through
>>>> processMasterNodeAnnouncement() or processMasterNodeResponse()
>>>> later.
>>>>
>>>> b) In MasterNode.processMasterNodeResponse():
>>>> MASTER_CHANGE_EVENT is notified with master view's snapshot by
>>>> Issue
>>>> #60(https://shoal.dev.java.net/issues/show_bug.cgi?id=60)
>>>> Additional patch is that when sendSelfNodeAdvertisement() is
>>>> called,
>>>> MASTER_CHANGE_EVENT also is notified with master view's snapshot.
>>>>
>>>> c) In MasterNode.processMasterNodeAnnouncement(): This is very
>>>> similar to above b). Like b) I edited this method.
>>>>
>>>>
>>>> So now I want to describe how the new code behaves during the
>>>> discovery phase.
>>>> Actually, new code behaves like old code's original purpose.
>>>> There is
>>>> no big changes.
>>>>
>>>> 1) If "A", "B" and "C" joined the group concurrently and when all
>>>> member are waiting for the discovery timeout.
>>>>
>>>> 1-1) If all members receive no other member's message and discovery
>>>> view doesn't have any members, all members try to become the
>>>> master.
>>>> So all members call announceMaster(). Then All members receive
>>>> master's announcements and become aware of master's collision
>>>> through
>>>> checkMaster().
>>>> Master's collision can be resolved by ID. When the member affirms
>>>> master node role or resign master node role, the member notify
>>>> MASTER_CHANGE_EVENT.
>>>> Though original code didn't notify MASTER_CHANGE_EVENT when the
>>>> member affirms master node role, I edited it. Above a-1) though the
>>>> member already called setMaster() and notified MASTER_CHANGE_EVENT
>>>> and master was not changed, we should notify MASTER_CHANGE_EVENT
>>>> because master's view already was changed by collision. If we don't
>>>> notify the event, we can't become aware of view changes quickly in
>>>> the collision case. Of course, if another event will be occurred
>>>> later, this member(master) can become aware of view changes. But I
>>>> think view changes should be applied as soon as possible. So I
>>>> edited
>>>> it.
>>>>
>>>> 1-2) If all members receive each other member's message and
>>>> discovery
>>>> view has all members, candidate is selected from discovery view by
>>>> TreeMap's ordering sort.
>>>> If all members select the same cadidate, the cadidate member will
>>>> send master announcement. other members will process
>>>> processMasterNodeAnnouncement() and set the master with current
>>>> master's view snapshot.
>>>>
>>>> If some members receive each other member's message and some
>>>> members
>>>> don't receive, 1-1) and 1-2) are mixing.
>>>>
>>>> 2) If some nodes joined the group late
>>>> If some members join the group and there is already master, new
>>>> members will send master node query to all members and the master
>>>> node will process processMasterNodeQuery(). Then the master node
>>>> will
>>>> send master response with master view's snapshot and new members
>>>> will
>>>> process processMasterNodeResponse() and set the master with current
>>>> master's view.
>>>>
>>>>
>>>>
>>>> 3. How the code behaves when a node is shutdown and :
>>>> I think my patch don't have an effect on shutdown algorithm. I know
>>>> shutdown and failure case are connected with HealthMonitor.
>>>> I think I didn't edit codes lead to controversy about original
>>>> HealthMonitor logic.
>>>> But I edited some code about startup in HealthMonitor. When node is
>>>> starting and HealthMonitor is started, MasterNode.probeNode()
>>>> can be
>>>> called by HealthMonitor.
>>>> In "1-1) If all members receive no other member's message and
>>>> discovery view doesn't have any members, all members try to become
>>>> the master"'s case and master collision case,
>>>> if MasterNode.probeNode() is called by HealthMonitor,
>>>> processMasterNodeResponse() can be processed. Because
>>>> processMasterNodeResponse() doesn't assume collision case, sometime
>>>> unexpected results can be occurred in the master selection
>>>> algorithm.
>>>> So I edited some code in HealthMonitor. The change is that health
>>>> monitor can only start after master discovery was finished.
>>>> So this change don't have an effect on shutdown.
>>>>
>>>> When a node which is not mater restarted before it is determined to
>>>> be failed, master's view is same. So members which already
>>>> joined the
>>>> group don't receive any changes.
>>>> The node which restarted receives all members' join
>>>> notifications by
>>>> master's response.
>>>> When a node which is not master restared after it has been ejected
>>>> from the cluster, master's view is changed. So members which
>>>> already
>>>> joined the group only receive failed node's join notification
>>>> because
>>>> master already removed the node from master's view . The node which
>>>> restarted receives all members' join notifications by master's
>>>> response.
>>>>
>>>> When a node which is master restarted before it is determined to be
>>>> failed, the node which was master sends discovery messages to all
>>>> members and waits for the discovery timeout.
>>>> Maybe because other members are not master, the master node don't
>>>> receive any messages. So the master node sends master announcement
>>>> included only own advertisement to members. Then because members
>>>> know
>>>> that master's view only has master advertisement, members call
>>>> sendSelfNodeAdvertisement(). Then master can become aware of
>>>> existing
>>>> members through processNodeResponse(). The master node can receive
>>>> join notifications of all members. Other members don't receive any
>>>> changes because they first call sendSelfNodeAdvertisement() and
>>>> return before setMaster().
>>>>
>>>> When a node which is master restarted after it has been ejected
>>>> from
>>>> the cluster, members already elected new master. When master was
>>>> failed and new master was elected, because members' view had no
>>>> additional member, members don't receive any join events. But
>>>> when a
>>>> node which was master restarted, the node sends master discovery
>>>> message and receives new master's response. So the node receives
>>>> all
>>>> existing members' join notifications from new master and other
>>>> members receives only failed member's join notification.
>>>>
>>>> That's all. :-)
>>>>
>>>> I am caring about my reply whether you are satisfied with my
>>>> descriptions or not.
>>>>
>>>
>>> Yes it has.
>>>
>>>> If you find any ambiguous descriptions or errors, please point
>>>> out it.
>>>> And if I misunderstood your questions, please expalin questions
>>>> again.
>>>>
>>>> Thanks
>>>> --
>>>> Bongjae Chang
>>>>
>>>>
>>>> ----- Original Message ----- From: "Mohamed Abdelaziz"
>>>> <Mohamed.Abdelaziz_at_Sun.COM>
>>>> To: <dev_at_shoal.dev.java.net>
>>>> Sent: Saturday, June 14, 2008 1:59 AM
>>>> Subject: Re: [Shoal-Dev] Strange behavior about join notifications.
>>>>
>>>>
>>>>
>>>>> Thanks for patch Bongjae.
>>>>> The changes are ok. Can you describe your testing scenarios?
>>>>>
>>>>> I am interested in finding how the new code behaves during the
>>>>> discovery phase where :
>>>>> - Nodes are started at the time
>>>>> - Nodes start time varies, but with the discovery timeout
>>>>> - Late (after discovery phase) startup for some nodes
>>>>>
>>>>> Also how the code behaves when a node is shutdown and :
>>>>> - restarted before it is determined to be failed
>>>>> - restated after it has been ejected from the cluster
>>>>> - and finally, the same as above, for the master node
>>>>>
>>>>> Thanks,
>>>>> Mohamed
>>>>>
>>>>>
>>>>> Bongjae Chang wrote:
>>>>>
>>>>>> Hi Sheetal.
>>>>>> I changed a litle code, so if possible, I want you to review
>>>>>> these
>>>>>> newly later.
>>>>>> I am very sorry for sending patches again.
>>>>>>
>>>>>> changed code is only "void addToView()" in
>>>>>> ClusterViewManager.java.
>>>>>> See the following comment.
>>>>>> ---------------------------------------------------------------
>>>>>> void addToView(final List<SystemAdvertisement> newView,
>>>>>> final boolean authoritative,
>>>>>> final ClusterViewEvent cvEvent) {
>>>>>> //TODO: need to review the use cases of the callers of
>>>>>> method
>>>>>> if (cvEvent == null) {
>>>>>> return;
>>>>>> }
>>>>>>
>>>>>> if (authoritative) {
>>>>>> // 2008.06.13, edited by carryel
>>>>>> // this addToView() method can be called with no
>>>>>> changes of view by MasterNode.processChangeEvent() method
>>>>>> // if we only notify listeners when there are
>>>>>> changes,
>>>>>> sometimes some events can be missed.
>>>>>> // ex) members should receive JOINED_AND_READY_EVENT
>>>>>> though there are not changes.
>>>>>> // though we always notify listeners regardless of
>>>>>> changes, notification's duplication can be checked in ViewWindow
>>>>>> // ex) ADD_EVENT
>>>>>> addToView( newView );
>>>>>> notifyListeners( cvEvent );
>>>>>> /*
>>>>>> boolean changed = addToView( newView );
>>>>>> if (changed) {
>>>>>> //only if there are changes that we notify
>>>>>> notifyListeners(cvEvent);
>>>>>> }
>>>>>> */
>>>>>> }
>>>>>> }
>>>>>> ---------------------------------------------------------------
>>>>>>
>>>>>> Original code(not my patch) had no problems about
>>>>>> JOINED_AND_READY_EVENT notification.
>>>>>> Of course, original code had problems about other notifications.
>>>>>> ex) ADD_EVENT can be duplicated
>>>>>>
>>>>>> Original code's intension is "only if there are changes, we
>>>>>> notify
>>>>>> listeners". But the logic of detecting changes was strange. The
>>>>>> following is original code.
>>>>>> ---------------------------------------------------------------
>>>>>> In addToView() method
>>>>>>
>>>>>> boolean changed = false;
>>>>>> reset();
>>>>>> viewLock.lock();
>>>>>> ...
>>>>>> for( SystemAdvertisement elem : new View ) {
>>>>>> if( !view.containsKey( elem.getID().toString() ) ) {
>>>>>> changed = true;
>>>>>> }
>>>>>> ...
>>>>>> }
>>>>>> ---------------------------------------------------------------
>>>>>> if we call reset() before detecting changes, the result will
>>>>>> always
>>>>>> be "change = true" because reset() method will clear TreeMap.
>>>>>>
>>>>>> So I edited this. The following is my code.
>>>>>> ---------------------------------------------------------------
>>>>>> private boolean addToView( final List<SystemAdvertisement>
>>>>>> newView ) {
>>>>>> boolean changed = false;
>>>>>> // 2008.06.10, removed and edited by carryel
>>>>>> // We need old view's snapshot for becoming aware of
>>>>>> changes before reset()
>>>>>> // Though reset() also uses viewLock for view.clear(),
>>>>>> // if reset() is called before addToView() acquires the
>>>>>> viewLock, view can be changed in a short time
>>>>>> // If view was changed in a short time, unexpected result
>>>>>> occurred in becoming aware of changes
>>>>>> // So for safety, if we need to become aware of real
>>>>>> changes, snapshooting and view.clear() should be called in
>>>>>> addToView()'s viewLock
>>>>>> //LOG.log( Level.FINER, "Resetting View" );
>>>>>> //reset();
>>>>>> lockLog( "addToView()" );
>>>>>> viewLock.lock();
>>>>>> // old view's snapshot
>>>>>> TreeMap oldView = (TreeMap)view.clone();
>>>>>> // we should clear view after old view's snapshot
>>>>>> view.clear();
>>>>>> view.put(advertisement.getID().toString(),
>>>>>> advertisement);
>>>>>> try {
>>>>>> // 2008.06.10, commented by carryel, we don't need
>>>>>> put
>>>>>> manager.getSystemAdvertisement(). this operation is maybe
>>>>>> duplicated. if( !newView.contains(
>>>>>> manager.getSystemAdvertisement() ) ) {
>>>>>> view.put(
>>>>>> manager.getSystemAdvertisement().getID().toString(),
>>>>>> manager.getSystemAdvertisement() );
>>>>>> }
>>>>>> for( SystemAdvertisement elem : newView ) {
>>>>>> LOG.log( Level.FINER,
>>>>>> new StringBuffer().append( "Adding " )
>>>>>> .append( elem.getID() ).append
>>>>>> ( "
>>>>>> to view" )
>>>>>> .toString() );
>>>>>> if( !changed && !oldView.containsKey(
>>>>>> elem.getID().toString() ) ) {
>>>>>> //if( !changed && !view.containsKey(
>>>>>> elem.getID().toString() ) ) {
>>>>>> changed = true;
>>>>>> }
>>>>>> // Always add the wire version of the adv
>>>>>> view.put( elem.getID().toString(), elem );
>>>>>> }
>>>>>> } finally {
>>>>>> viewLock.unlock();
>>>>>> }
>>>>>> return changed;
>>>>>> }
>>>>>> ---------------------------------------------------------------
>>>>>> This code works well in detecting changes. But there was
>>>>>> side-effect as I explained above. So I changed a little. :-)
>>>>>>
>>>>>> PS) members receive JOINED_AND_READY_EVENT from
>>>>>> MasterNode.processChangeEvent() except master.
>>>>>> Though there is no changes in view, master uses only
>>>>>> VIEW_CHANGE_EVENT for sending members JOINED_AND_READY_EVENT. I
>>>>>> think this is some strange.
>>>>>>
>>>>>> --
>>>>>> Bongjae Chang
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> *From:* Sheetal Vartak <mailto:Sheetal.Vartak_at_Sun.COM>
>>>>>> *To:* dev_at_shoal.dev.java.net <mailto:dev_at_shoal.dev.java.net>
>>>>>> *Sent:* Wednesday, June 11, 2008 4:25 AM
>>>>>> *Subject:* Re: [Shoal-Dev] Strange behavior about join
>>>>>> notifications.
>>>>>>
>>>>>> Hi Bongjae,
>>>>>>
>>>>>> Thanks for looking into this. Your previous code changes
>>>>>> look good and can be checked in. But
>>>>>> please wait for now since I am in the middle of
>>>>>> integrating the
>>>>>> Shoal code into Glassfish. Once I am done, I will let you
>>>>>> know
>>>>>> when you can check in your changes.
>>>>>> For the new changes that you sent today, I will need
>>>>>> sometime to
>>>>>> review them due to some other issues I am looking at.
>>>>>>
>>>>>> Thanks a bunch for contributing.
>>>>>> Sheetal
>>>>>>
>>>>>> On Jun 10, 2008, at 8:32 AM, Bongjae Chang wrote:
>>>>>>
>>>>>>
>>>>>>> Hi Shreedhar.
>>>>>>> I also try to test members for a join notification
>>>>>>> in the
>>>>>>> concurrent case.
>>>>>>> In other words, when "A" and "B" joined the group
>>>>>>> concurrently ,
>>>>>>> some problems also occurred.
>>>>>>> (a) sometimes, join notifications are duplicated
>>>>>>> (b) sometimes, any member as well as group leader didn't
>>>>>>> receive
>>>>>>> some join notifications.
>>>>>>> The following is error log.
>>>>>>> ["A"'s log]
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:04:58
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>> 2008. 6. 10 오후 11:04:58
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> initializeGMS
>>>>>>> 정보: Initializing Shoal for member:
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049 group:TestGroup
>>>>>>> 2008. 6. 10 오후 11:04:58
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Registering for group event notifications
>>>>>>> 2008. 6. 10 오후 11:04:58
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Joining Group TestGroup
>>>>>>> 2008. 6. 10 오후 11:04:59
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:04:59
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> ServerName = a2ed5cb6-3cc7-4060-91d6-3fc8b6854049, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96
>>>>>>> *2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : ADD_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() =
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> ServerName = a2ed5cb6-3cc7-4060-91d6-3fc8b6854049, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96
>>>>>>> *2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : ADD_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:10
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() =
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> ServerName = a2ed5cb6-3cc7-4060-91d6-3fc8b6854049, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96*
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> "A" received duplicated
>>>>>>> JoinNotifications(a2ed5cb6-3cc7-4060-91d6-3fc8b6854049).
>>>>>>> ["B"'s log]
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:04:54
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>> 2008. 6. 10 오후 11:04:54
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> initializeGMS
>>>>>>> 정보: Initializing Shoal for member:
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96 group:TestGroup
>>>>>>> 2008. 6. 10 오후 11:04:55
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Registering for group event notifications
>>>>>>> 2008. 6. 10 오후 11:04:55
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Joining Group TestGroup
>>>>>>> 2008. 6. 10 오후 11:04:56
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:04:56
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:01
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:01
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:04
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = true,
>>>>>>> Signal.getMemberToken() =
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> ServerName = e9d80499-0f8b-4e2d-8856-3f31dcc25f96, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96
>>>>>>> *2008. 6. 10 오후 11:05:09
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:09
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : ADD_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:12
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = true,
>>>>>>> Signal.getMemberToken() =
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> ServerName = e9d80499-0f8b-4e2d-8856-3f31dcc25f96, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96
>>>>>>> *2008. 6. 10 오후 11:05:12
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: e9d80499-0f8b-4e2d-8856-3f31dcc25f96,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE2E6E148CC1DB479EA7
>>>>>>> D0C6A0AF50B5A103
>>>>>>>
>>>>>>> 2: MemberId: a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC3B82201E1B545DB8E
>>>>>>> 9ECF621244468F03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 11:05:12
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : ADD_EVENT
>>>>>>> 2008. 6. 10 오후 11:05:15
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = true,
>>>>>>> Signal.getMemberToken() =
>>>>>>> a2ed5cb6-3cc7-4060-91d6-3fc8b6854049,
>>>>>>> ServerName = e9d80499-0f8b-4e2d-8856-3f31dcc25f96, Leader =
>>>>>>> e9d80499-0f8b-4e2d-8856-3f31dcc25f96
>>>>>>> *
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> "B" also received duplicated
>>>>>>> JoinNotifications(a2ed5cb6-3cc7-4060-91d6-3fc8b6854049).
>>>>>>> And because "B" is group leader, "B" don't receive own join
>>>>>>> notification as I reported before.
>>>>>>> When "A", "B" and "C" joined the group
>>>>>>> concurrently, the
>>>>>>> following is error log
>>>>>>> ["A"'s log]
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> initializeGMS
>>>>>>> 정보: Initializing Shoal for member:
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3 group:TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Registering for group event notifications
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Joining Group TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2: MemberId: 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE9D818A456DA94CB5B5
>>>>>>> 3CB024FD26DA8B03
>>>>>>>
>>>>>>> 3: MemberId: 468996ee-2d54-4c58-af46-72d903154e31,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEBCDB7FE3F44D47DE94
>>>>>>> 4388A09B8081BE03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:53
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = true,
>>>>>>> Signal.getMemberToken() = 0c3c5b33-9a7d-4d85-
>>>>>>> ba1d-7a09a52d4e4b,
>>>>>>> ServerName = 197c66d7-f56c-4119-8b1e-18dc330e39d3, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3
>>>>>>> *2008. 6. 10 오후 10:17:53
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = true,
>>>>>>> Signal.getMemberToken() = 468996ee-2d54-4c58-
>>>>>>> af46-72d903154e31,
>>>>>>> ServerName = 197c66d7-f56c-4119-8b1e-18dc330e39d3, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3
>>>>>>>
>>>>>>> *---------------------------------------------------------------
>>>>>>> ---------
>>>>>>>
>>>>>>> ["B"'s log]
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> initializeGMS
>>>>>>> 정보: Initializing Shoal for member:
>>>>>>> 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b group:TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Registering for group event notifications
>>>>>>> 2008. 6. 10 오후 10:17:41
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Joining Group TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE9D818A456DA94CB5B5
>>>>>>> 3CB024FD26DA8B03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2: MemberId: 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE9D818A456DA94CB5B5
>>>>>>> 3CB024FD26DA8B03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() = 197c66d7-
>>>>>>> f56c-4119-8b1e-18dc330e39d3,
>>>>>>> ServerName = 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3
>>>>>>> *2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2: MemberId: 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE9D818A456DA94CB5B5
>>>>>>> 3CB024FD26DA8B03
>>>>>>>
>>>>>>> 3: MemberId: 468996ee-2d54-4c58-af46-72d903154e31,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEBCDB7FE3F44D47DE94
>>>>>>> 4388A09B8081BE03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() = 468996ee-2d54-4c58-
>>>>>>> af46-72d903154e31,
>>>>>>> ServerName = 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3*
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> ["C"'s log]
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> initializeGMS
>>>>>>> 정보: Initializing Shoal for member:
>>>>>>> 468996ee-2d54-4c58-af46-72d903154e31 group:TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Registering for group event notifications
>>>>>>> 2008. 6. 10 오후 10:17:42
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> runSimpleSample
>>>>>>> 정보: Joining Group TestGroup
>>>>>>> 2008. 6. 10 오후 10:17:43
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 468996ee-2d54-4c58-af46-72d903154e31,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEBCDB7FE3F44D47DE94
>>>>>>> 4388A09B8081BE03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:43
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2: MemberId: 468996ee-2d54-4c58-af46-72d903154e31,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEBCDB7FE3F44D47DE94
>>>>>>> 4388A09B8081BE03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() = 197c66d7-
>>>>>>> f56c-4119-8b1e-18dc330e39d3,
>>>>>>> ServerName = 468996ee-2d54-4c58-af46-72d903154e31, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3
>>>>>>> *2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> getMemberTokens
>>>>>>> 정보: GMS View Change Received for group TestGroup :
>>>>>>> Members in
>>>>>>> view for (before change analysis) are :
>>>>>>> 1: MemberId: 197c66d7-f56c-4119-8b1e-18dc330e39d3,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE7D33395A50CC479CAA
>>>>>>> 67ACEEEBD3BDDC03
>>>>>>>
>>>>>>> 2: MemberId: 0c3c5b33-9a7d-4d85-ba1d-7a09a52d4e4b,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE9D818A456DA94CB5B5
>>>>>>> 3CB024FD26DA8B03
>>>>>>>
>>>>>>> 3: MemberId: 468996ee-2d54-4c58-af46-72d903154e31,
>>>>>>> MemberType:
>>>>>>> CORE, Address:
>>>>>>>
>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEBCDB7FE3F44D47DE94
>>>>>>> 4388A09B8081BE03
>>>>>>>
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>> newViewObserved
>>>>>>> 정보: Analyzing new membership snapshot received as part
>>>>>>> of event
>>>>>>> : MASTER_CHANGE_EVENT
>>>>>>> 2008. 6. 10 오후 10:17:47
>>>>>>>
>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>> $JoinNotificationCallBack
>>>>>>>
>>>>>>> processNotification
>>>>>>> 정보: ****JoinNotification received: GroupLeader = false,
>>>>>>> Signal.getMemberToken() = 0c3c5b33-9a7d-4d85-
>>>>>>> ba1d-7a09a52d4e4b,
>>>>>>> ServerName = 468996ee-2d54-4c58-af46-72d903154e31, Leader =
>>>>>>> 197c66d7-f56c-4119-8b1e-18dc330e39d3
>>>>>>>
>>>>>>> *---------------------------------------------------------------
>>>>>>> ---------
>>>>>>>
>>>>>>> All members missed some join notification.
>>>>>>> I also tried to fix these problems.
>>>>>>> I think it is so difficult that I explain all contents in
>>>>>>> detail
>>>>>>> about solutions.
>>>>>>> So I attached patch codes included comments. When I
>>>>>>> try to
>>>>>>> test it, it seems that all problems which I
>>>>>>> reported till now are fixed.
>>>>>>> If you can afford to review these codes, please
>>>>>>> point out my
>>>>>>> mistakes.
>>>>>>> I hope this patch will be of a little help and I am looking
>>>>>>> forward to your feedback.
>>>>>>> Thanks.
>>>>>>> --
>>>>>>> Bongjae Chang
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> *From:* Bongjae Chang <mailto:carryel_at_korea.com>
>>>>>>> *To:* dev_at_shoal.dev.java.net
>>>>>>> <mailto:dev_at_shoal.dev.java.net>
>>>>>>> *Sent:* Friday, June 06, 2008 1:07 AM
>>>>>>> *Subject:* Re: [Shoal-Dev] Strange behavior about join
>>>>>>> notifications.
>>>>>>>
>>>>>>> Hi Shreedhar.
>>>>>>> I attached my patch. Attached files are
>>>>>>> MasterNode.java and
>>>>>>> ClusterViewManager.java
>>>>>>> In MasterNode.java, only
>>>>>>> /processMasterNodeResponse()/
>>>>>>> method changed.
>>>>>>> In ClusterViewManager.java, /setMaster( List ,
>>>>>>> SystemAdvertisement)/ and /addToView( List )/ method
>>>>>>> added
>>>>>>> newly.
>>>>>>> I made effort to preserve original logic and
>>>>>>> codes if possible.
>>>>>>> Thanks.
>>>>>>> --
>>>>>>> Bongjae Chang
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> *From:* Shreedhar Ganapathy
>>>>>>> <mailto:Shreedhar.Ganapathy_at_Sun.COM>
>>>>>>> *To:* dev_at_shoal.dev.java.net
>>>>>>> <mailto:dev_at_shoal.dev.java.net>
>>>>>>> *Sent:* Thursday, June 05, 2008 11:32 PM
>>>>>>> *Subject:* Re: [Shoal-Dev] Strange behavior about
>>>>>>> join
>>>>>>> notifications.
>>>>>>>
>>>>>>> Excellent investigation!
>>>>>>> Solution sounds reasonably good.
>>>>>>> Could you send us a patch and we can try it out
>>>>>>> in our
>>>>>>> internal test setup?
>>>>>>>
>>>>>>> Bongjae Chang wrote:
>>>>>>>
>>>>>>>> I reviewed join notification's logic
>>>>>>>> about (b).
>>>>>>>> /(b) when new member joined, this
>>>>>>>> member
>>>>>>>> don't receive
>>>>>>>> some members' join notifications.(In other
>>>>>>>> words, this
>>>>>>>> member receives only own notification and group
>>>>>>>> leader's
>>>>>>>> notification)/
>>>>>>>> This is normal case. e.g) member "B"'s
>>>>>>>> behavior
>>>>>>>> 1. When new member("C") joins the
>>>>>>>> group,
>>>>>>>> the group
>>>>>>>> leader(master) sends MASTERNODERESPONSE to group
>>>>>>>> members
>>>>>>>> with ADD_EVENT(about "C") and own view's snapshot
>>>>>>>> finally.
>>>>>>>> 2. Members receive MASTERNODERESPONSE
>>>>>>>> and process
>>>>>>>> processMasterNodeResponse().
>>>>>>>> 3. In processMasterNodeResponse(),
>>>>>>>> ADD_EVENT notified
>>>>>>>> with master view's snapshot by ClusterViewManager.
>>>>>>>> 4. Then, ViewWindow analyzes the event
>>>>>>>> packet(ADD_EVENT).
>>>>>>>> 5. Finally, members receive a join
>>>>>>>> notification about
>>>>>>>> new member(about "C").
>>>>>>>> But In new
>>>>>>>> memeber("C"), some problem occurred. There is
>>>>>>>> no logic about notifying other members'
>>>>>>>> ADD_EVENT(about "B")
>>>>>>>> 1. When new member("C") joins the
>>>>>>>> group,
>>>>>>>> the group
>>>>>>>> leader(master) sends MASTERNODERESPONSE to group
>>>>>>>> members
>>>>>>>> with ADD_EVENT and own view's snapshot finally.
>>>>>>>> [same
>>>>>>>> above]
>>>>>>>> 2. "C" receive MASTERNODERESPONSE and
>>>>>>>> process
>>>>>>>> processMasterNodeResponse()[same above]
>>>>>>>> 3. In processMasterNodeResponse(),
>>>>>>>> MASTER_CHANGE_EVENT
>>>>>>>> notified *without master view's snapshot* because
>>>>>>>> current master is self.
>>>>>>>> 4. Then, ViewWindow analyzes the
>>>>>>>> event
>>>>>>>> packet(MASTER_CHANGE_EVENT). Of course when
>>>>>>>> ViewWindow receives MASTER_CHANGE_EVENT, ViewWindow
>>>>>>>> notifies join notifications based on view
>>>>>>>> history if
>>>>>>>> previous view doesn't have any members. Maybe
>>>>>>>> this is
>>>>>>>> the logic for notifying other members' join
>>>>>>>> notifications in new member("C"). But *current
>>>>>>>> view based on event packet(MASTER_CHANGE_EVENT)
>>>>>>>> is not
>>>>>>>> master view unfortunately*. Current view has
>>>>>>>> only "C"'s
>>>>>>>> local view(currently only master member and own
>>>>>>>> member
>>>>>>>> added). So only master's join notification
>>>>>>>> occurred.
>>>>>>>> 5. In processMasterNodeResponse(), ADD_EVENT
>>>>>>>> notified
>>>>>>>> with master view's snapshot by
>>>>>>>> ClusterViewManager.[same
>>>>>>>> above]
>>>>>>>> 6. Then, ViewWindow analyzes the event
>>>>>>>> packet(ADD_EVENT).[same above]
>>>>>>>> 7. new member("C") receives own join
>>>>>>>> notification.[same
>>>>>>>> above]
>>>>>>>> So, I think
>>>>>>>> this problem can be fixed *if
>>>>>>>> MASTER_CHANGE_EVENT notified with master view's
>>>>>>>> snapshot
>>>>>>>> *above 3. Then above 4, ViewWindow can find that
>>>>>>>> previous view doesn't have other members as well as
>>>>>>>> master member. And then above 5, In
>>>>>>>> processMasterNode(),
>>>>>>>> ClusterViewManager can notifies only ADD_EVENT
>>>>>>>> without
>>>>>>>> master view's snapshot because MASTER_CHANGE_EVENT
>>>>>>>> included master view's snapshot already notified .
>>>>>>>> Actually, I tried to apply this
>>>>>>>> patch, I
>>>>>>>> could verify
>>>>>>>> that this problem(b) is resolved.
>>>>>>>> If this issue(b) is indentified as
>>>>>>>> a bug
>>>>>>>> and my
>>>>>>>> suggestion doesn't have a mistake or error
>>>>>>>> logically, I
>>>>>>>> will send the patch code to the dev alias.
>>>>>>>> Please point out mistakes and I ask
>>>>>>>> you
>>>>>>>> for advice.
>>>>>>>> Thanks.
>>>>>>>> --
>>>>>>>> Bongjae Chang
>>>>>>>>
>>>>>>>> ----- Original Message -----
>>>>>>>> *From:* Bongjae Chang
>>>>>>>> <mailto:carryel_at_korea.com>
>>>>>>>> *To:* dev_at_shoal.dev.java.net
>>>>>>>> <mailto:dev_at_shoal.dev.java.net>
>>>>>>>> *Sent:* Thursday, June 05, 2008 2:38 PM
>>>>>>>> *Subject:* [Shoal-Dev] Strange behavior
>>>>>>>> about join
>>>>>>>> notifications.
>>>>>>>>
>>>>>>>> Hi.
>>>>>>>> When I tried to test join notifications, I
>>>>>>>> found some problems.
>>>>>>>> Assuming that "A", "B" and "C"
>>>>>>>> are members in
>>>>>>>> "TestGroup". Sometimes when new member join,
>>>>>>>> this
>>>>>>>> member can't receive join notifications of
>>>>>>>> others
>>>>>>>> that already joined.
>>>>>>>> This scenario is following.
>>>>>>>> 1. First, "A" joined and became a group leader.
>>>>>>>> 2. after 1, "B" joined. Then "B" received
>>>>>>>> "A"'s a
>>>>>>>> join notification and own("C") join
>>>>>>>> notification in
>>>>>>>> "B". No problem.
>>>>>>>> 3. after 2, "C" joined. At this time, "C" must
>>>>>>>> receive "A", "B" and "C" join notifications
>>>>>>>> in "C".
>>>>>>>> But "C" didn't receive "B"'s a join
>>>>>>>> notification.
>>>>>>>> Like above, assuming that "A",
>>>>>>>> "B", "C" and "D" are
>>>>>>>> members in "TestGroup", "D" didn't receive
>>>>>>>> "B" and
>>>>>>>> "C"'s join notifications.
>>>>>>>> I think there are some bugs.
>>>>>>>> (a) above 1, the group leader don't receive
>>>>>>>> own join
>>>>>>>> notification.
>>>>>>>> (b) above 3, when new member joined, this
>>>>>>>> member
>>>>>>>> don't receive some members' join
>>>>>>>> notifications.(In
>>>>>>>> other words, this member receives only own
>>>>>>>> notification and group leader's notification)
>>>>>>>> You can also see this result
>>>>>>>> from following logs.
>>>>>>>> /"A"(the group leader): member
>>>>>>>> id="6a92713c-d83e-49a8-8aaa-ad12046a1acb"/
>>>>>>>> /"B": member
>>>>>>>> id="77ff0a1c-b9a1-417a-b04c-0028ef6da921"/
>>>>>>>> /"C": member
>>>>>>>> id="6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a"/
>>>>>>>> /When memebers receive a join notification,
>>>>>>>> "***JoinNotification received: ServerName =
>>>>>>>> [MY_MEMBER_ID], Signal.getMemberToken() =
>>>>>>>> [MEMBER_ID]" printed./
>>>>>>>> ["A"'s log]
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:17
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>>> 2008. 6. 5 오후 1:36:18
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> initializeGMS
>>>>>>>> 정보: Initializing Shoal for member:
>>>>>>>> 6a92713c-d83e-49a8-8aaa-ad12046a1acb
>>>>>>>> group:TestGroup
>>>>>>>> 2008. 6. 5 오후 1:36:18
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Registering for group event
>>>>>>>> notifications
>>>>>>>> 2008. 6. 5 오후 1:36:18
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Joining Group TestGroup
>>>>>>>> 2008. 6. 5 오후 1:36:18
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:18
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : MASTER_CHANGE_EVENT
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 2: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : ADD_EVENT
>>>>>>>> 2008. 6. 5 오후 1:36:44
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 6a92713c-d83e-49a8-8aaa-ad12046a1acb,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921
>>>>>>>> *2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a8e7161-92ef-4b9e-a5e1-
>>>>>>>> d9a8c7665b4a,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE0F6B7D5CD8CC44718
>>>>>>>> 0F2D059E273AD5103
>>>>>>>>
>>>>>>>> 2: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 3: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : ADD_EVENT
>>>>>>>> 2008. 6. 5 오후 1:37:03
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 6a92713c-d83e-49a8-8aaa-ad12046a1acb,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a*
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> "A"'s log don't have own join
>>>>>>>> notification(6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb).
>>>>>>>> ["B"'s log]
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:40
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>>> 2008. 6. 5 오후 1:36:40
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> initializeGMS
>>>>>>>> 정보: Initializing Shoal for member:
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921
>>>>>>>> group:TestGroup
>>>>>>>> 2008. 6. 5 오후 1:36:40
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Registering for group event
>>>>>>>> notifications
>>>>>>>> 2008. 6. 5 오후 1:36:40
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Joining Group TestGroup
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : MASTER_CHANGE_EVENT
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 2: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : MASTER_CHANGE_EVENT
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 6a92713c-d83e-49a8-8aaa-ad12046a1acb
>>>>>>>> *2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 2: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : ADD_EVENT
>>>>>>>> 2008. 6. 5 오후 1:36:41
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921
>>>>>>>> *2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a8e7161-92ef-4b9e-a5e1-
>>>>>>>> d9a8c7665b4a,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE0F6B7D5CD8CC44718
>>>>>>>> 0F2D059E273AD5103
>>>>>>>>
>>>>>>>> 2: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 3: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : ADD_EVENT
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 77ff0a1c-b9a1-417a-b04c-0028ef6da921,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a*
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> ["C"'s log]
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:36:59
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Starting SimpleJoinTest....
>>>>>>>> 2008. 6. 5 오후 1:36:59
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> initializeGMS
>>>>>>>> 정보: Initializing Shoal for member:
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a
>>>>>>>> group:TestGroup
>>>>>>>> 2008. 6. 5 오후 1:36:59
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Registering for group event
>>>>>>>> notifications
>>>>>>>> 2008. 6. 5 오후 1:36:59
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> runSimpleSample
>>>>>>>> 정보: Joining Group TestGroup
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a8e7161-92ef-4b9e-a5e1-
>>>>>>>> d9a8c7665b4a,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE0F6B7D5CD8CC44718
>>>>>>>> 0F2D059E273AD5103
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : MASTER_CHANGE_EVENT
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a8e7161-92ef-4b9e-a5e1-
>>>>>>>> d9a8c7665b4a,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE0F6B7D5CD8CC44718
>>>>>>>> 0F2D059E273AD5103
>>>>>>>>
>>>>>>>> 2: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : MASTER_CHANGE_EVENT
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 6a92713c-d83e-49a8-8aaa-ad12046a1acb
>>>>>>>> *2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> getMemberTokens
>>>>>>>> 정보: GMS View Change Received for group
>>>>>>>> TestGroup :
>>>>>>>> Members in view for (before change analysis)
>>>>>>>> are :
>>>>>>>> 1: MemberId: 6a8e7161-92ef-4b9e-a5e1-
>>>>>>>> d9a8c7665b4a,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE0F6B7D5CD8CC44718
>>>>>>>> 0F2D059E273AD5103
>>>>>>>>
>>>>>>>> 2: MemberId: 6a92713c-d83e-49a8-8aaa-
>>>>>>>> ad12046a1acb,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CE15F3706F0E794BF59
>>>>>>>> 5FCEE9EEA90FCE103
>>>>>>>>
>>>>>>>> 3: MemberId: 77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921,
>>>>>>>> MemberType: CORE, Address:
>>>>>>>>
>>>>>>>> urn:jxta:uuid-0836778E36C54F728D5B934A965395CEC9482BF0C6A44D55B
>>>>>>>> 407E7E3A8D1339803
>>>>>>>>
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.ViewWindow
>>>>>>>> newViewObserved
>>>>>>>> 정보: Analyzing new membership snapshot
>>>>>>>> received as
>>>>>>>> part of event : ADD_EVENT
>>>>>>>> 2008. 6. 5 오후 1:37:00
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest
>>>>>>>> $JoinNotificationCallBack
>>>>>>>>
>>>>>>>> processNotification
>>>>>>>> *정보: ***JoinNotification received:
>>>>>>>> ServerName =
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a,
>>>>>>>> Signal.getMemberToken() =
>>>>>>>> 6a8e7161-92ef-4b9e-a5e1-d9a8c7665b4a*
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> "C"'s log don't have "B"'s join
>>>>>>>> notification(77ff0a1c-b9a1-417a-
>>>>>>>> b04c-0028ef6da921).
>>>>>>>> And I attached a simple
>>>>>>>> test code.
>>>>>>>> PS) When I
>>>>>>>> call
>>>>>>>> GMSFactory.startGMSModule()
>>>>>>>> without properties param(like null), simple NPE
>>>>>>>> occurred. The following is exception.
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> Exception in thread "main"
>>>>>>>> java.lang.NullPointerException
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.jxtamgmt.ClusterManager.<init>
>>>>>>>> (ClusterManager.java:161)
>>>>>>>>
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.GroupCommunicationProviderI
>>>>>>>> mpl.initializeGroupCommunicationProvider
>>>>>>>> (GroupCommunicationProviderImpl.java:138)
>>>>>>>>
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.ee.cms.impl.jxta.GMSContext.join
>>>>>>>> (GMSContext.java:122)
>>>>>>>>
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.ee.cms.impl.common.GroupManagementServiceImp
>>>>>>>> l.join(GroupManagementServiceImpl.java:331)
>>>>>>>>
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest.runSimpleSampl
>>>>>>>> e(SimpleJoinTest.java:40)
>>>>>>>>
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.sun.enterprise.shoal.jointest.SimpleJoinTest.main
>>>>>>>> (SimpleJoinTest.java:20)
>>>>>>>>
>>>>>>>> at
>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0
>>>>>>>> (Native
>>>>>>>> Method)
>>>>>>>> at
>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke
>>>>>>>> (Unknown
>>>>>>>> Source)
>>>>>>>> at
>>>>>>>>
>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>>>>>>> Source)
>>>>>>>> at java.lang.reflect.Method.invoke(Unknown
>>>>>>>> Source)
>>>>>>>> at
>>>>>>>>
>>>>>>>> com.intellij.rt.execution.application.AppMain.main
>>>>>>>> (AppMain.java:90)
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> In
>>>>>>>> ClusterManager.java:161
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> /this.bindInterfaceAddress =
>>>>>>>>
>>>>>>>> (String)props.get
>>>>>>>> (JxtaConfigConstants.BIND_INTERFACE_ADDRESS.toString());/
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> Maybe, this is "Fix for the
>>>>>>>> power outage issue"'s
>>>>>>>> side-effect by sheetalv. :-)
>>>>>>>> --
>>>>>>>> Bongjae Chang
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ---------
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------
>>>>>>>> ------
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail:
>>>>>>>> dev-unsubscribe_at_shoal.dev.java.net
>>>>>>>> For additional commands, e-mail:
>>>>>>>> dev-help_at_shoal.dev.java.net
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> --------
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> -----
>>>>>>> To unsubscribe, e-mail: dev-
>>>>>>> unsubscribe_at_shoal.dev.java.net
>>>>>>> <mailto:dev-unsubscribe_at_shoal.dev.java.net>
>>>>>>> For additional commands, e-mail: dev-
>>>>>>> help_at_shoal.dev.java.net
>>>>>>> <mailto:dev-help_at_shoal.dev.java.net>
>>>>>>>
>>>>>>>
>>>>>>> <HealthMonitor.java><MasterNode.java><ViewWindow.java><ClusterVi
>>>>>>> ewManager.java><SimpleJoinTest.java>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> -----
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_shoal.dev.java.net
>>>>>>> <mailto:dev-unsubscribe_at_shoal.dev.java.net>
>>>>>>> For additional commands, e-mail: dev-help_at_shoal.dev.java.net
>>>>>>> <mailto:dev-help_at_shoal.dev.java.net>
>>>>>>>
>>>>>> -----------------------------------------------------------------
>>>>>> -------
>>>>>>
>>>>>>
>>>>>> -----------------------------------------------------------------
>>>>>> ----
>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_shoal.dev.java.net
>>>>>> For additional commands, e-mail: dev-help_at_shoal.dev.java.net
>>>>>>
>>>>> ------------------------------------------------------------------
>>>>> ---
>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_shoal.dev.java.net
>>>>> For additional commands, e-mail: dev-help_at_shoal.dev.java.net
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>> --------------------------------------------------------------------
>>> -
>>> To unsubscribe, e-mail: dev-unsubscribe_at_shoal.dev.java.net
>>> For additional commands, e-mail: dev-help_at_shoal.dev.java.net
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_shoal.dev.java.net
>> For additional commands, e-mail: dev-help_at_shoal.dev.java.net
>>
>>
>>
>>