You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Carlos Peon Costa <ca...@gmail.com> on 2017/08/18 07:51:32 UTC
Cluster StaticMember (McastService:Required property "tcpListenPort"
is missing)
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Posted by Keiichi Fujino <kf...@apache.org>.
Hi
https://bz.apache.org/bugzilla/show_bug.cgi?id=61448#c2
2017-08-18 20:47 GMT+09:00 Carlos Peon Costa <ca...@gmail.com>:
> Hello,
>
> It seems to me that it's always necessary to initialize
> membershipService, maybe something like that (untested):
>
> --- apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/
> group/ChannelCoordinator.java.original
> 2016-06-15 18:45:51.000000000 +0200
> +++ apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/
> group/ChannelCoordinator.java
> 2017-08-18 13:19:53.342672900 +0200
> @@ -148,6 +148,10 @@
> }
> clusterReceiver.start();
> //synchronize, big time FIXME
> +
> membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
> +
> getClusterReceiver().getPort(),
> +
> getClusterReceiver().getSecurePort(),
> +
> getClusterReceiver().getUdpPort());
> Member localMember = getChannel().getLocalMember(false);
> if (localMember instanceof StaticMember) {
> // static member
> @@ -155,13 +159,6 @@
> 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());
> -
> }
> valid = true;
> }
>
> Regards,
> Carlos.
>
> On Fri, Aug 18, 2017 at 9:51 AM, Carlos Peon Costa <ca...@gmail.com>
> wrote:
> > 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
> > 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());
> >>
> >> }
> >
>
--
Keiichi.Fujino
Re: Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Posted by Carlos Peon Costa <ca...@gmail.com>.
Hello,
It seems to me that it's always necessary to initialize
membershipService, maybe something like that (untested):
--- apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java.original
2016-06-15 18:45:51.000000000 +0200
+++ apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
2017-08-18 13:19:53.342672900 +0200
@@ -148,6 +148,10 @@
}
clusterReceiver.start();
//synchronize, big time FIXME
+
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
+
getClusterReceiver().getPort(),
+
getClusterReceiver().getSecurePort(),
+
getClusterReceiver().getUdpPort());
Member localMember = getChannel().getLocalMember(false);
if (localMember instanceof StaticMember) {
// static member
@@ -155,13 +159,6 @@
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());
-
}
valid = true;
}
Regards,
Carlos.
On Fri, Aug 18, 2017 at 9:51 AM, Carlos Peon Costa <ca...@gmail.com> wrote:
> 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
> 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());
>>
>> }
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org