Jerry Raj wrote:
> Any suggestions?
> Or at least a way to check whether join is complete before calling send?
>
Jerry,
It is not that join is not complete for the sender, the sender is
definitely part of the group when join returns.
It could be the other members of the group probably have not joined yet.
However, there is not enough information in your original post to
confirm or deny this.
You could delay sending a message to the group until there is certain
number of members joined or
you could wait for all members to have joined via JoinNotification event.
Pull API:
List<String> members = gms.getGroupHandle().getAllCurrentMembers();
<wait to send first message until all expected number of members have
joined>
Event driven API:
gms.addActionFactory( new JoinNotificationActionFactoryImpl( new
JoinNotificationCallBack( serverName ) ) );
gms.join();
<wait till all expected instances have joined before sending message;
use info calculated from JoinNotificationCallback>
private class JoinNotificationCallBack implements CallBack {
private String serverName;
public JoinNotificationCallBack( String serverName ) {
this.serverName = serverName;
}
// called for every instance joining the gms group.
public void processNotification( Signal notification ) {
<record instance has joined>;
}
}
A non-coding way to check this out is to start all your receiving
clients first.
Wait 10 seconds (like your initial test).
Then start your sending gms client.
There is no need a sleep between the join and send since all the other
members
will have already joined. Hope this helps.
-Joe
> Thanks
> -Jerry
>
> Jerry Raj wrote:
>
>> Hello,
>> I have code like this:
>> <snip>
>> gms.join();
>> // Commented: Thread.sleep(10000);
>> GroupHandle gh = gms.getGroupHandle();
>>
>> gh.sendMessage(blah);
>>
>> </snip>
>>
>> This used to work fine in Shoal 1.0. The node would join the group and the
>> message would be recd by other members in the group. But this does not happen
>> with Shoal 1.1 unless I uncomment the sleep(10000) between join() and send(). I
>> expect this is because the join operation has not completed successfully when
>> send() is called. Is there a way to be notified when join is complete? I tried
>> looking at JoinedAndReadyNotificationActionImpl but that does not seem to work?
>>
>> I'm using Shoal 1.1 from the download link on the front page of the Shoal website.
>>
>> -Jerry
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_shoal.dev.java.net
> For additional commands, e-mail: users-help_at_shoal.dev.java.net
>
>