This is an automated email from the ASF dual-hosted git repository.

nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 59114d3f63a IGNITE-23830 Remove setForceServerMode (#11757)
59114d3f63a is described below

commit 59114d3f63ad798a5219b77b3ab69d6ffe156088
Author: Nikolay <[email protected]>
AuthorDate: Thu Dec 19 14:44:19 2024 +0300

    IGNITE-23830 Remove setForceServerMode (#11757)
---
 .../ignite/configuration/IgniteConfiguration.java  |  1 -
 .../org/apache/ignite/internal/IgniteKernal.java   |  4 --
 .../managers/discovery/GridDiscoveryManager.java   |  8 ----
 .../IgniteAuthenticationProcessor.java             |  6 +--
 .../cache/CacheAffinitySharedManager.java          |  4 --
 .../platform/utils/PlatformConfigurationUtils.java |  2 -
 .../ignite/spi/discovery/tcp/ClientImpl.java       |  3 --
 .../ignite/spi/discovery/tcp/ServerImpl.java       | 44 +++++++++++++++++++++
 .../ignite/spi/discovery/tcp/TcpDiscoveryImpl.java | 45 ----------------------
 .../ignite/spi/discovery/tcp/TcpDiscoverySpi.java  | 40 +------------------
 .../tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java  | 27 -------------
 .../Discovery/Tcp/TcpDiscoverySpi.cs               |  8 ----
 .../IgniteConfigurationSection.xsd                 |  7 ----
 13 files changed, 48 insertions(+), 151 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 8f01002377e..00ed969cce6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -2588,7 +2588,6 @@ public class IgniteConfiguration {
      * {@link DiscoverySpi} in client mode if this property is {@code true}.
      *
      * @return Client mode flag.
-     * @see TcpDiscoverySpi#setForceServerMode(boolean)
      */
     public Boolean isClientMode() {
         return clientMode;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 4361c97edef..0973010aee3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -1251,10 +1251,6 @@ public class IgniteKernal implements IgniteEx, 
Externalizable {
 
                     assert locNode.isClient();
 
-                    if (!ctx.discovery().reconnectSupported())
-                        throw new IgniteCheckedException("Client node in 
forceServerMode " +
-                            "is not allowed to reconnect to the cluster and 
will be stopped.");
-
                     if (log.isDebugEnabled())
                         log.debug("Failed to start node components on node 
start, will wait for reconnect: " + e);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 49dd2284696..d95f0121d7e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -138,7 +138,6 @@ import 
org.apache.ignite.spi.discovery.DiscoverySpiMutableCustomMessageSupport;
 import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator;
 import org.apache.ignite.spi.discovery.DiscoverySpiOrderSupport;
 import org.apache.ignite.spi.discovery.IgniteDiscoveryThread;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
 import org.apache.ignite.spi.systemview.view.ClusterNodeView;
 import org.apache.ignite.spi.systemview.view.NodeAttributeView;
@@ -477,13 +476,6 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
         }
     }
 
-    /** {@inheritDoc} */
-    @Override protected void onKernalStart0() throws IgniteCheckedException {
-        if ((getSpi() instanceof TcpDiscoverySpi) && 
Boolean.TRUE.equals(ctx.config().isClientMode()) && !getSpi().isClientMode())
-            ctx.performance().add("Enable client mode for TcpDiscoverySpi " +
-                "(set TcpDiscoverySpi.forceServerMode to false)");
-    }
-
     /** {@inheritDoc} */
     @Override public void start() throws IgniteCheckedException {
         ctx.addNodeAttribute(ATTR_OFFHEAP_SIZE, requiredOffheap());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/authentication/IgniteAuthenticationProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/authentication/IgniteAuthenticationProcessor.java
index b4a39621e0f..62e7ac2b34b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/authentication/IgniteAuthenticationProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/authentication/IgniteAuthenticationProcessor.java
@@ -287,8 +287,7 @@ public class IgniteAuthenticationProcessor extends 
GridProcessorAdapter implemen
         if (ctx.clientNode()) {
             if (ctx.discovery().aliveServerNodes().isEmpty()) {
                 throw new IgniteAccessControlException("No alive server node 
was found to which the authentication" +
-                    " operation could be delegated. It is possible that the 
client node has been started with the" +
-                    " \"forceServerMode\" flag enabled and no server node had 
been started yet.");
+                    " operation could be delegated.");
             }
 
             AuthenticateFuture fut;
@@ -631,8 +630,7 @@ public class IgniteAuthenticationProcessor extends 
GridProcessorAdapter implemen
                 if (res == null
                     && !ctx.discovery().allNodes().isEmpty()
                     && ctx.discovery().aliveServerNodes().isEmpty()) {
-                    U.warn(log, "Cannot find the server coordinator node. "
-                        + "Possible a client is started with 
forceServerMode=true.");
+                    U.warn(log, "Cannot find the server coordinator node.");
                 }
                 else
                     assert res != null;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
index 7c86726f9b9..b363cbef0ce 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheAffinitySharedManager.java
@@ -77,7 +77,6 @@ import org.apache.ignite.lang.IgniteClosure;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.lang.IgniteUuid;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.jetbrains.annotations.Nullable;
 
 import static org.apache.ignite.cache.CacheRebalanceMode.NONE;
@@ -223,9 +222,6 @@ public class CacheAffinitySharedManager<K, V> extends 
GridCacheSharedManagerAdap
 
         boolean isClient = cctx.discovery().localNode().isClient();
 
-        if (cctx.kernalContext().config().getDiscoverySpi() instanceof 
TcpDiscoverySpi)
-            isClient &= 
!((TcpDiscoverySpi)cctx.kernalContext().config().getDiscoverySpi()).isForceServerMode();
-
         // Skip message if affinity was already recalculated.
         // Client node should just accept the flag from the mutated message.
         boolean exchangeNeeded = (isClient) ? msg.exchangeNeeded() :
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
index 85731d22b07..929b70c9350 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java
@@ -1051,7 +1051,6 @@ public class PlatformConfigurationUtils {
         disco.setNetworkTimeout(in.readLong());
         disco.setJoinTimeout(in.readLong());
 
-        disco.setForceServerMode(in.readBoolean());
         disco.setClientReconnectDisabled(in.readBoolean());
         disco.setLocalAddress(in.readString());
         disco.setReconnectCount(in.readInt());
@@ -1627,7 +1626,6 @@ public class PlatformConfigurationUtils {
         w.writeLong(tcp.getNetworkTimeout());
         w.writeLong(tcp.getJoinTimeout());
 
-        w.writeBoolean(tcp.isForceServerMode());
         w.writeBoolean(tcp.isClientReconnectDisabled());
         w.writeString(tcp.getLocalAddress());
         w.writeInt(tcp.getReconnectCount());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index 2c6b2e2e044..e228345ba4f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -306,9 +306,6 @@ class ClientImpl extends TcpDiscoveryImpl {
         sockReader = new SocketReader();
         sockReader.start();
 
-        if (spi.ipFinder.isShared() && spi.isForceServerMode())
-            registerLocalNodeAddress();
-
         msgWorker = new MessageWorker(log);
 
         new IgniteSpiThread(msgWorker.igniteInstanceName(), msgWorker.name(), 
log) {
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 3359095e8b1..8cb424bab34 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
@@ -2017,6 +2017,50 @@ class ServerImpl extends TcpDiscoveryImpl {
             log.debug("Received metrics from unknown node: " + nodeId);
     }
 
+    /**
+     * @throws IgniteSpiException If failed.
+     */
+    private final void registerLocalNodeAddress() throws IgniteSpiException {
+        long spiJoinTimeout = spi.getJoinTimeout();
+
+        // Make sure address registration succeeded.
+        // ... but limit it if join timeout is configured.
+        long startNanos = spiJoinTimeout > 0 ? System.nanoTime() : 0;
+
+        while (true) {
+            try {
+                spi.ipFinder.initializeLocalAddresses(
+                    U.resolveAddresses(spi.getAddressResolver(), 
locNode.socketAddresses()));
+
+                // Success.
+                break;
+            }
+            catch (IllegalStateException e) {
+                throw new IgniteSpiException("Failed to register local node 
address with IP finder: " +
+                    locNode.socketAddresses(), e);
+            }
+            catch (IgniteSpiException e) {
+                LT.error(log, e, "Failed to register local node address in IP 
finder on start " +
+                    "(retrying every " + spi.getReconnectDelay() + " ms; " +
+                    "change 'reconnectDelay' to configure the frequency of 
retries).");
+            }
+
+            if (spiJoinTimeout > 0 && U.millisSinceNanos(startNanos) > 
spiJoinTimeout)
+                throw new IgniteSpiException(
+                    "Failed to register local addresses with IP finder within 
join timeout " +
+                        "(make sure IP finder configuration is correct, and 
operating system firewalls are disabled " +
+                        "on all host machines, or consider increasing 
'joinTimeout' configuration property) " +
+                        "[joinTimeout=" + spiJoinTimeout + ']');
+
+            try {
+                U.sleep(spi.getReconnectDelay());
+            }
+            catch (IgniteInterruptedCheckedException e) {
+                throw new IgniteSpiException("Thread has been interrupted.", 
e);
+            }
+        }
+    }
+
     /**
      * <strong>FOR TEST ONLY!!!</strong>
      * <p>
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
index 93a4be87827..d8d5164f4af 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
@@ -34,7 +34,6 @@ import org.apache.ignite.cache.CacheMetrics;
 import org.apache.ignite.cluster.ClusterMetrics;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.processors.tracing.NoopTracing;
 import org.apache.ignite.internal.processors.tracing.Tracing;
 import org.apache.ignite.internal.util.typedef.T2;
@@ -384,50 +383,6 @@ abstract class TcpDiscoveryImpl {
         Map<Integer, CacheMetrics> cacheMetrics,
         long tsNanos);
 
-    /**
-     * @throws IgniteSpiException If failed.
-     */
-    protected final void registerLocalNodeAddress() throws IgniteSpiException {
-        long spiJoinTimeout = spi.getJoinTimeout();
-
-        // Make sure address registration succeeded.
-        // ... but limit it if join timeout is configured.
-        long startNanos = spiJoinTimeout > 0 ? System.nanoTime() : 0;
-
-        while (true) {
-            try {
-                spi.ipFinder.initializeLocalAddresses(
-                    U.resolveAddresses(spi.getAddressResolver(), 
locNode.socketAddresses()));
-
-                // Success.
-                break;
-            }
-            catch (IllegalStateException e) {
-                throw new IgniteSpiException("Failed to register local node 
address with IP finder: " +
-                    locNode.socketAddresses(), e);
-            }
-            catch (IgniteSpiException e) {
-                LT.error(log, e, "Failed to register local node address in IP 
finder on start " +
-                    "(retrying every " + spi.getReconnectDelay() + " ms; " +
-                    "change 'reconnectDelay' to configure the frequency of 
retries).");
-            }
-
-            if (spiJoinTimeout > 0 && U.millisSinceNanos(startNanos) > 
spiJoinTimeout)
-                throw new IgniteSpiException(
-                    "Failed to register local addresses with IP finder within 
join timeout " +
-                        "(make sure IP finder configuration is correct, and 
operating system firewalls are disabled " +
-                        "on all host machines, or consider increasing 
'joinTimeout' configuration property) " +
-                        "[joinTimeout=" + spiJoinTimeout + ']');
-
-            try {
-                U.sleep(spi.getReconnectDelay());
-            }
-            catch (IgniteInterruptedCheckedException e) {
-                throw new IgniteSpiException("Thread has been interrupted.", 
e);
-            }
-        }
-    }
-
     /**
      * @param ackTimeout Acknowledgement timeout.
      * @return {@code True} if acknowledgement timeout is less or equal to
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index abffb63f9ec..a2d55b094f5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -130,9 +130,7 @@ import static 
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager
  * TcpDiscoverySpi starts in client mode as well. In this case node does not 
take its place in the ring,
  * but it connects to random node in the ring (IP taken from IP finder 
configured) and
  * use it as a router for discovery traffic.
- * Therefore slow client node or its shutdown will not affect whole cluster. 
If TcpDiscoverySpi
- * needs to be started in server mode regardless of {@link 
IgniteConfiguration#clientMode},
- * {@link #forceSrvMode} should be set to true.
+ * Therefore slow client node or its shutdown will not affect whole cluster.
  * <p>
  * At startup SPI tries to send messages to random IP taken from
  * {@link TcpDiscoveryIpFinder} about self start (stops when send succeeds)
@@ -191,7 +189,6 @@ import static 
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager
  * <li>Thread priority for threads started by SPI (see {@link 
#setThreadPriority(int)})</li>
  * <li>IP finder clean frequency (see {@link 
#setIpFinderCleanFrequency(long)})</li>
  * <li>Statistics print frequency (see {@link 
#setStatisticsPrintFrequency(long)}</li>
- * <li>Force server mode (see {@link #setForceServerMode(boolean)}</li>
  * </ul>
  * <h2 class="header">Java Example</h2>
  * <pre name="code" class="java">
@@ -444,9 +441,6 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDiscovery
     /** */
     protected TcpDiscoveryImpl impl;
 
-    /** */
-    private boolean forceSrvMode;
-
     /** */
     private boolean clientReconnectDisabled;
 
@@ -564,36 +558,6 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDiscovery
         return impl instanceof ClientImpl;
     }
 
-    /**
-     * If {@code true} TcpDiscoverySpi will started in server mode regardless
-     * of {@link IgniteConfiguration#isClientMode()}
-     *
-     * @return forceServerMode flag.
-     * @deprecated Will be removed at 3.0.
-     */
-    @Deprecated
-    public boolean isForceServerMode() {
-        return forceSrvMode;
-    }
-
-    /**
-     * Sets force server mode flag.
-     * <p>
-     * If {@code true} TcpDiscoverySpi is started in server mode regardless
-     * of {@link IgniteConfiguration#isClientMode()}.
-     *
-     * @param forceSrvMode forceServerMode flag.
-     * @return {@code this} for chaining.
-     * @deprecated Will be removed at 3.0.
-     */
-    @IgniteSpiConfiguration(optional = true)
-    @Deprecated
-    public TcpDiscoverySpi setForceServerMode(boolean forceSrvMode) {
-        this.forceSrvMode = forceSrvMode;
-
-        return this;
-    }
-
     /**
      * If {@code true} client does not try to reconnect after
      * server detected client node failure.
@@ -2263,7 +2227,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter 
implements IgniteDiscovery
 
         initFailureDetectionTimeout();
 
-        if (!forceSrvMode && 
(Boolean.TRUE.equals(ignite.configuration().isClientMode()))) {
+        if (Boolean.TRUE.equals(ignite.configuration().isClientMode())) {
             if (ackTimeout == 0)
                 ackTimeout = DFLT_ACK_TIMEOUT_CLIENT;
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
index c0292e53660..3ddc440af78 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinderAdapter.java
@@ -26,8 +26,6 @@ import org.apache.ignite.resources.IgniteInstanceResource;
 import org.apache.ignite.spi.IgniteSpiConfiguration;
 import org.apache.ignite.spi.IgniteSpiContext;
 import org.apache.ignite.spi.IgniteSpiException;
-import org.apache.ignite.spi.discovery.DiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 
 /**
  * IP finder interface implementation adapter.
@@ -95,31 +93,6 @@ public abstract class TcpDiscoveryIpFinderAdapter implements 
TcpDiscoveryIpFinde
         // No-op.
     }
 
-    /**
-     * @return {@code True} if TCP discovery works in client mode.
-     * @deprecated Since 2.8. May return incorrect value if client and server 
nodes shares same {@link
-     * TcpDiscoveryIpFinder} instance.
-     */
-    @Deprecated
-    protected boolean discoveryClientMode() {
-        boolean clientMode;
-
-        Ignite ignite0 = ignite;
-
-        if (ignite0 != null) { // Can be null if used in tests without 
starting Ignite.
-            DiscoverySpi discoSpi = ignite0.configuration().getDiscoverySpi();
-
-            if (!(discoSpi instanceof TcpDiscoverySpi))
-                throw new IgniteSpiException("TcpDiscoveryIpFinder should be 
used with TcpDiscoverySpi: " + discoSpi);
-
-            clientMode = ignite0.configuration().isClientMode() && 
!((TcpDiscoverySpi)discoSpi).isForceServerMode();
-        }
-        else
-            clientMode = false;
-
-        return clientMode;
-    }
-
     /**
      * @return SPI context.
      */
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/Discovery/Tcp/TcpDiscoverySpi.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/Discovery/Tcp/TcpDiscoverySpi.cs
index 154124a6838..edd1b8dff07 100644
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core/Discovery/Tcp/TcpDiscoverySpi.cs
+++ 
b/modules/platforms/dotnet/Apache.Ignite.Core/Discovery/Tcp/TcpDiscoverySpi.cs
@@ -114,7 +114,6 @@ namespace Apache.Ignite.Core.Discovery.Tcp
             NetworkTimeout = reader.ReadLongAsTimespan();
             JoinTimeout = reader.ReadLongAsTimespan();
 
-            ForceServerMode = reader.ReadBoolean();
             ClientReconnectDisabled = reader.ReadBoolean();
             LocalAddress = reader.ReadString();
             ReconnectCount = reader.ReadInt();
@@ -160,12 +159,6 @@ namespace Apache.Ignite.Core.Discovery.Tcp
         /// </summary>
         public TimeSpan JoinTimeout { get; set; }
 
-        /// <summary>
-        /// Gets or sets a value indicating whether TcpDiscoverySpi is started 
in server mode 
-        /// regardless of <see cref="IgniteConfiguration.ClientMode"/> setting.
-        /// </summary>
-        public bool ForceServerMode { get; set; }
-
         /// <summary>
         /// Gets or sets a value indicating whether client does not try to 
reconnect after
         /// server detected client node failure.
@@ -247,7 +240,6 @@ namespace Apache.Ignite.Core.Discovery.Tcp
             writer.WriteLong((long) NetworkTimeout.TotalMilliseconds);
             writer.WriteLong((long) JoinTimeout.TotalMilliseconds);
 
-            writer.WriteBoolean(ForceServerMode);
             writer.WriteBoolean(ClientReconnectDisabled);
             writer.WriteString(LocalAddress);
             writer.WriteInt(ReconnectCount);
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd 
b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
index bde2ad9eded..9dd4779dd99 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
@@ -1125,13 +1125,6 @@
                                 <xs:documentation>Whether client does not try 
to reconnect after server detected client node failure.</xs:documentation>
                             </xs:annotation>
                         </xs:attribute>
-                        <xs:attribute name="forceServerMode" type="xs:boolean">
-                            <xs:annotation>
-                                <xs:documentation>
-                                    Whether TcpDiscoveryspi is started in 
server mode regardless of IgniteConfiguration.ClientMode setting.
-                                </xs:documentation>
-                            </xs:annotation>
-                        </xs:attribute>
                         <xs:attribute name="ipFinderCleanFrequency" 
type="xs:string">
                             <xs:annotation>
                                 <xs:documentation>IP finder clean 
frequency.</xs:documentation>

Reply via email to