Hello,

Cluster static members seem to fail since version 7.0.70 (also
reproduced in 8.0.45):

SEVERE: The required Server component failed to start so Tomcat is
unable to start.
...
Caused by: org.apache.catalina.tribes.ChannelException:
java.lang.IllegalArgumentException: McastService:Required property
"tcpListenPort" is missing.; No faulty members identified.
        at 
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:200)
        at 
org.apache.catalina.tribes.group.ChannelCoordinator.start(ChannelCoordinator.java:100)
        at 
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162)
        at 
org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor.start(StaticMembershipInterceptor.java:168)
        at 
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162)
        at 
org.apache.catalina.tribes.group.GroupChannel.start(GroupChannel.java:431)
        at 
org.apache.catalina.ha.tcp.SimpleTcpCluster.startInternal(SimpleTcpCluster.java:689)
        ... 15 more
Caused by: java.lang.IllegalArgumentException: McastService:Required
property "tcpListenPort" is missing.
        at 
org.apache.catalina.tribes.membership.McastService.hasProperty(McastService.java:360)
        at 
org.apache.catalina.tribes.membership.McastService.start(McastService.java:379)
        at 
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:182)
        ... 21 more

The reason could be here:

$ diff -r 
apache-tomcat-7.0.69-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
28a29,30
> import org.apache.catalina.tribes.membership.StaticMember;
> import org.apache.catalina.tribes.transport.ReceiverBase;
143a146,148
>                 if (clusterReceiver instanceof ReceiverBase) {
>                     ((ReceiverBase)clusterReceiver).setChannel(getChannel());
>                 }
146,149c151,165
<
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
<
getClusterReceiver().getPort(),
<
getClusterReceiver().getSecurePort(),
<
getClusterReceiver().getUdpPort());
---
>                 Member localMember = getChannel().getLocalMember(false);
>                 if (localMember instanceof StaticMember) {
>                     // static member
>                     StaticMember staticMember = (StaticMember)localMember;
>                     staticMember.setHost(getClusterReceiver().getHost());
>                     staticMember.setPort(getClusterReceiver().getPort());
>                     
> staticMember.setSecurePort(getClusterReceiver().getSecurePort());
>                 } else {
>                     // multicast member
>                     
> membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
>                             getClusterReceiver().getPort(),
>                             getClusterReceiver().getSecurePort(),
>                             getClusterReceiver().getUdpPort());
>
>                 }

but I can't see why and go forward alone ;). If I'm not wrong, posting
in this mailing list is the proper way to go.

Regards,
Carlos.

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

Reply via email to