users@shoal.java.net

Re: sendMessage is blocked for few minutes after some node leave cluster

From: Joseph Fialli <joe.fialli_at_oracle.com>
Date: Mon, 20 Jun 2011 10:19:03 -0400

  The error that you are observing is due to running a mixture of GMS
client with different versions
on same multicast port. In your case, one GMS client using Shoal GMS
over jxta and other GMS clients using Shoal
GMS over grizzly. Both use UDP multicast for discovering the group. The
magic number is not same between versions.

Try setting the multicast port explicitly in your new GMS clients (or
try to discover the old GMS clients that are still running and kill them)
to a non-default value (or a different value if you are setting it
already.) The default multicastport is 9090.
Below is a minimal code fragment (incomplete but enough to show you how
to set the MULTICASTPORT in your working GMS client).

/Properties configProps = new Properties();
         String APPLICATION_SPECIFIC_MULTICASTPORT = "9098";
         
configProps.put(ServiceProviderConfigurationKeys.MULTICASTPORT.toString(),
APPLICATION_SPECIFIC_MULTICASTPORT);/
         // set other configProps.
         gms = (GroupManagementService)
GMSFactory.startGMSModule(serverName, groupName, memberType, /configProps/);

-Joe

On 6/20/11 8:40 AM, smiki975_at_gmail.com wrote:
> I have download newest Shoal version (1.5.29) and included it in my
> project (i am using maven for project build).
> After starting application under Jetty, i am getting the following
> exception each time i want to send message over shoal :
>
> WARNING: GMS1071: damaged multicast packet discarded
> java.lang.IllegalArgumentException: magic number is not valid
> at
> com.sun.enterprise.mgmt.transport.MessageImpl.parseHeader(MessageImpl.j
> ava:172)
> at
> com.sun.enterprise.mgmt.transport.BlockingIOMulticastSender$MessageProc
> essTask.run(BlockingIOMulticastSender.java:364)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecut
> or.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
> ava:908)
> at java.lang.Thread.run(Thread.java:619)
>
> What i need to do to get this new Shoal version to work
>
> Thanks