@@ -48,6 +48,10 @@ public class IoConfig {
48
48
public static final boolean DEFAULT_TCP_KEEPALIVE_ENABLED = true ;
49
49
public static final Duration DEFAULT_TCP_KEEPALIVE_TIME = Duration .ofSeconds (60 );
50
50
public static final Duration DEFAULT_CONFIG_POLL_INTERVAL = Duration .ofMillis (2500 );
51
+
52
+ @ Stability .Volatile
53
+ public static final boolean DEFAULT_CONFIG_NOTIFICATIONS = true ;
54
+
51
55
public static final NetworkResolution DEFAULT_NETWORK_RESOLUTION = NetworkResolution .AUTO ;
52
56
public static final int DEFAULT_NUM_KV_CONNECTIONS = 1 ;
53
57
public static final int DEFAULT_MAX_HTTP_CONNECTIONS = AbstractPooledEndpointServiceConfig .DEFAULT_MAX_ENDPOINTS ;
@@ -63,6 +67,7 @@ public class IoConfig {
63
67
64
68
private final boolean mutationTokensEnabled ;
65
69
private final Duration configPollInterval ;
70
+ private final boolean configNotifications ;
66
71
private final CircuitBreakerConfig kvCircuitBreakerConfig ;
67
72
private final CircuitBreakerConfig queryCircuitBreakerConfig ;
68
73
private final CircuitBreakerConfig viewCircuitBreakerConfig ;
@@ -93,6 +98,7 @@ private IoConfig(Builder builder) {
93
98
configPollInterval = Optional
94
99
.ofNullable (builder .configPollInterval )
95
100
.orElse (DEFAULT_CONFIG_POLL_INTERVAL );
101
+ configNotifications = builder .configNotifications ;
96
102
kvCircuitBreakerConfig = builder .kvCircuitBreakerConfig .build ();
97
103
queryCircuitBreakerConfig = builder .queryCircuitBreakerConfig .build ();
98
104
viewCircuitBreakerConfig = builder .viewCircuitBreakerConfig .build ();
@@ -377,6 +383,11 @@ public Duration configPollInterval() {
377
383
return configPollInterval ;
378
384
}
379
385
386
+ @ Stability .Volatile
387
+ public boolean configNotifications () {
388
+ return configNotifications ;
389
+ }
390
+
380
391
/**
381
392
* Lists the services on which traffic should be captured.
382
393
*
@@ -481,6 +492,7 @@ public static class Builder {
481
492
482
493
private boolean mutationTokensEnabled = DEFAULT_MUTATION_TOKENS_ENABLED ;
483
494
private Duration configPollInterval ;
495
+ private boolean configNotifications = DEFAULT_CONFIG_NOTIFICATIONS ;
484
496
private CircuitBreakerConfig .Builder kvCircuitBreakerConfig = CircuitBreakerConfig .builder ().enabled (false );
485
497
private CircuitBreakerConfig .Builder queryCircuitBreakerConfig = CircuitBreakerConfig .builder ().enabled (false );
486
498
private CircuitBreakerConfig .Builder viewCircuitBreakerConfig = CircuitBreakerConfig .builder ().enabled (false );
@@ -576,6 +588,24 @@ public Builder configPollInterval(Duration configPollInterval) {
576
588
return this ;
577
589
}
578
590
591
+ /**
592
+ * Call this with a value of false to disable server-initiated
593
+ * cluster topology change notifications.
594
+ * <p>
595
+ * This setting is independent of {@link #configPollInterval(Duration)},
596
+ * which controls the interval of client-initiated topology change detection.
597
+ * <p>
598
+ * Please leave this setting at the default unless advised by
599
+ * Couchbase Technical Support.
600
+ * <p>
601
+ * Defaults to true.
602
+ */
603
+ @ Stability .Volatile
604
+ public Builder configNotifications (boolean enabled ) {
605
+ this .configNotifications = enabled ;
606
+ return this ;
607
+ }
608
+
579
609
/**
580
610
* Configures whether mutation tokens will be returned from the server for all mutation operations.
581
611
*
0 commit comments