sorry, ignore previous post, it's failing on this operation:

socket.setInterface(mcastBindAddress);

There is a small chance that Window's doesn't allow multicast sockets to be bound to an IP
try removing the "bind" attribute
Filip



On 12/23/2009 06:48 AM, Filip Hanik - Dev Lists wrote:
address="224.0.0.0"

that's not an IP, the last 0 is not allowed, must be 1-254

Filip

On 12/22/2009 05:36 PM, John Tangney wrote:
We run two tomcats on the same Windows Server 2008 box. They have their
server.xml tweaked so that they use unique ports. Here's a diff:

$ diff server.xml /cygdrive/c/Program\ Files/Apache\ Software\
Foundation/Tomcat\ 6.0/conf/server.xml
22c22
< <Server port="8105" shutdown="SHUTDOWN">
---
<Server port="8005" shutdown="SHUTDOWN">
67c67
< <Connector port="8180" protocol="HTTP/1.1"
---
<Connector port="8080" protocol="HTTP/1.1"
69c69
<                 redirectPort="8543" />
---
                redirectPort="8443" />
88c88
< <Connector port="8109" protocol="AJP/1.3" redirectPort="8543" />
---
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
100c100
< <Engine name="WinBox_Temp" defaultHost="localhost"
jvmRoute="WinBox_temp">
---
<Engine name="WinBox" defaultHost="localhost" jvmRoute="WinBox">
If we have one of the tomcats broadcast its multicast packets on 228.0.0.0
while the second broadcasts on 224.0.0.0, everything works fine and they
each cluster with other nodes that use those multicast addresses. (Think
"staging" and "prod" clusters)

But when we want two tomcats on the same machine to join the _same_ cluster
(224.0.0.0), we get this in the log file:

SEVERE: Unable to start cluster.
org.apache.catalina.tribes.ChannelException: java.net.SocketException: An
operation was attempted on something that is not a socket; No faulty
  members identified.
         at
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:169)
         at
org.apache.catalina.tribes.group.ChannelCoordinator.start(ChannelCoordinator.java:97)
         at
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:149)
         at
org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.start(MessageDispatchInterceptor.java:147)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:149)
         at
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:149)
         at
org.apache.catalina.tribes.group.GroupChannel.start(GroupChannel.java:407)
         at
org.apache.catalina.ha.tcp.SimpleTcpCluster.start(SimpleTcpCluster.java:669)
         at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1035)
         at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
         at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
         at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.SocketException: An operation was attempted on something
that is not a socket
at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
         at
java.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:299) at java.net.MulticastSocket.setInterface(MulticastSocket.java:420)
         at
org.apache.catalina.tribes.membership.McastServiceImpl.setupSocket(McastServiceImpl.java:206)
         at
org.apache.catalina.tribes.membership.McastServiceImpl.init(McastServiceImpl.java:173)
         at
org.apache.catalina.tribes.membership.McastServiceImpl.<init>(McastServiceImpl.java:169)
         at
org.apache.catalina.tribes.membership.McastService.start(McastService.java:356)
at
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:154)
... 18 more

Here's the juicy part of server.xml:
<Membership
className="org.apache.catalina.tribes.membership.McastService"
                                address="224.0.0.0"
                                bind="10.5.1.102"
                                port="45564"
                                frequency="500"
                                dropTime="3000"/>

Naturally, I have googled the exception, but the only hits I have found go on about corrupted winsock registry entries, which seems irrelevant since
everything works when the two tomcats use separate multicast addresses.

Note that 10.5.1.102 is a statically-assigned IP on this box's second NIC.

So...
a) Is it possible to run two tomcat nodes in the same cluster on the same
windows box?
b) If so, what's the magic to keep windows happy? It _appears_ that windows
won't let the two tomcats bind to the same multicast address/port. (Same
config works fine on Linux.)

Thanks!
--johnt


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to