diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index a858bdb5fce0e..7786560ad9089 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -24,6 +24,7 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryLoopbackProblemMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryPingResponseSerializer; +import org.apache.ignite.internal.codegen.TcpDiscoveryRingLatencyCheckMessageSerializer; import org.apache.ignite.plugin.extensions.communication.MessageFactory; import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryCheckFailedMessage; @@ -33,6 +34,7 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingRequest; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryPingResponse; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryRingLatencyCheckMessage; /** Message factory for discovery messages. */ public class DiscoveryMessageFactory implements MessageFactoryProvider { @@ -45,5 +47,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)4, TcpDiscoveryClientPingResponse::new, new TcpDiscoveryClientPingResponseSerializer()); factory.register((short)5, TcpDiscoveryLoopbackProblemMessage::new, new TcpDiscoveryLoopbackProblemMessageSerializer()); factory.register((short)6, TcpDiscoveryConnectionCheckMessage::new, new TcpDiscoveryConnectionCheckMessageSerializer()); + factory.register((short)7, TcpDiscoveryRingLatencyCheckMessage::new, new TcpDiscoveryRingLatencyCheckMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java index da2c1e32b2afc..470fafa4379d3 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java @@ -5423,7 +5423,7 @@ private void processRingLatencyCheckMessage(TcpDiscoveryRingLatencyCheckMessage if (msg.maxHopsReached()) { if (log.isInfoEnabled()) { log.info("Latency check has been discarded (max hops reached) [id=" + msg.id() + - ", maxHops=" + msg.maxHops() + ']'); + ", maxHops=" + msg.maximalHops() + ']'); } return; diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRingLatencyCheckMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRingLatencyCheckMessage.java index 4c66dfc9ff0a4..5a30d6367f035 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRingLatencyCheckMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryRingLatencyCheckMessage.java @@ -18,29 +18,36 @@ package org.apache.ignite.spi.discovery.tcp.messages; import java.util.UUID; +import org.apache.ignite.internal.Order; +import org.apache.ignite.internal.managers.discovery.DiscoveryMessageFactory; import org.apache.ignite.internal.util.typedef.internal.S; +import org.apache.ignite.plugin.extensions.communication.Message; /** * */ -public class TcpDiscoveryRingLatencyCheckMessage extends TcpDiscoveryAbstractMessage { +public class TcpDiscoveryRingLatencyCheckMessage extends TcpDiscoveryAbstractMessage implements Message { /** */ private static final long serialVersionUID = 0L; - /** */ + /** Maximal hops number. */ + @Order(value = 5, method = "maximalHops") private int maxHops; - /** */ - private int curHop; + /** Current hops reached. */ + @Order(value = 6, method = "currentHops") + private int curHops; + + /** Empty constructor for {@link DiscoveryMessageFactory}. */ + public TcpDiscoveryRingLatencyCheckMessage() { + // No-op. + } /** * @param creatorNodeId Creator node ID. - * @param maxHops Max hops for this message. + * @param maxHops Maximal hops number for this message. */ - public TcpDiscoveryRingLatencyCheckMessage( - UUID creatorNodeId, - int maxHops - ) { + public TcpDiscoveryRingLatencyCheckMessage(UUID creatorNodeId, int maxHops) { super(creatorNodeId); assert maxHops > 0; @@ -52,21 +59,41 @@ public TcpDiscoveryRingLatencyCheckMessage( * */ public void onRead() { - curHop++; + curHops++; + } + + /** @return Current hops reached. */ + public int currentHops() { + return curHops; + } + + /** @param curHop Current hops reached. */ + public void currentHops(int curHop) { + curHops = curHop; } /** - * @return Max hops. + * @return Maximal hops number. */ - public int maxHops() { + public int maximalHops() { return maxHops; } + /** @param maxHops Maximal hops. */ + public void maximalHops(int maxHops) { + this.maxHops = maxHops; + } + /** - * @return {@code True} if max hops has been reached. + * @return {@code True} if max hops reached. */ public boolean maxHopsReached() { - return curHop == maxHops; + return curHops == maxHops; + } + + /** {@inheritDoc} */ + @Override public short directType() { + return 7; } /** {@inheritDoc} */