Make Netty messaging timeouts configurable.
Change-Id: I78be9881193a62c0f080c1f6211a6caa3ff9e55e
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
index 80f0a20..f1ad59a 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
@@ -104,14 +104,67 @@
@Component(immediate = true)
@Service
public class NettyMessagingManager implements MessagingService {
- private static final long DEFAULT_TIMEOUT_MILLIS = 500;
+ private static final String DEFAULT_TIMEOUT_PROPERTY = "onos.cluster.messaging.defaultTimeoutMillis";
+ private static final String MIN_TIMEOUT_PROPERTY = "onos.cluster.messaging.minTimeoutMillis";
+ private static final String MAX_TIMEOUT_PROPERTY = "onos.cluster.messaging.maxTimeoutMillis";
+ private static final String CONNECTION_POOL_SIZE_PROPERTY = "onos.cluster.messaging.connectionPoolSize";
+
+ private static final long DEFAULT_DEFAULT_TIMEOUT_MILLIS = 500;
+ private static final long DEFAULT_MIN_TIMEOUT_MILLIS = 250;
+ private static final long DEFAULT_MAX_TIMEOUT_MILLIS = 5000;
+ private static final int DEFAULT_CHANNEL_POOL_SIZE = 8;
+
+ private static final long DEFAULT_TIMEOUT_MILLIS;
+ private static final long MIN_TIMEOUT_MILLIS;
+ private static final long MAX_TIMEOUT_MILLIS;
+ private static final int CHANNEL_POOL_SIZE;
+
+ static {
+ long defaultTimeout;
+ try {
+ defaultTimeout = Long.parseLong(
+ System.getProperty(DEFAULT_TIMEOUT_PROPERTY,
+ String.valueOf(DEFAULT_DEFAULT_TIMEOUT_MILLIS)));
+ } catch (NumberFormatException e) {
+ defaultTimeout = DEFAULT_DEFAULT_TIMEOUT_MILLIS;
+ }
+ DEFAULT_TIMEOUT_MILLIS = defaultTimeout;
+
+ long minTimeout;
+ try {
+ minTimeout = Long.parseLong(
+ System.getProperty(MIN_TIMEOUT_PROPERTY,
+ String.valueOf(DEFAULT_MIN_TIMEOUT_MILLIS)));
+ } catch (NumberFormatException e) {
+ minTimeout = DEFAULT_MIN_TIMEOUT_MILLIS;
+ }
+ MIN_TIMEOUT_MILLIS = minTimeout;
+
+ long maxTimeout;
+ try {
+ maxTimeout = Long.parseLong(
+ System.getProperty(MAX_TIMEOUT_PROPERTY,
+ String.valueOf(DEFAULT_MAX_TIMEOUT_MILLIS)));
+ } catch (NumberFormatException e) {
+ maxTimeout = DEFAULT_MAX_TIMEOUT_MILLIS;
+ }
+ MAX_TIMEOUT_MILLIS = maxTimeout;
+
+ int channelPoolSize;
+ try {
+ channelPoolSize = Integer.parseInt(
+ System.getProperty(CONNECTION_POOL_SIZE_PROPERTY,
+ String.valueOf(DEFAULT_CHANNEL_POOL_SIZE)));
+ } catch (NumberFormatException e) {
+ channelPoolSize = DEFAULT_CHANNEL_POOL_SIZE;
+ }
+ CHANNEL_POOL_SIZE = channelPoolSize;
+ }
+
private static final long HISTORY_EXPIRE_MILLIS = Duration.ofMinutes(1).toMillis();
- private static final long MIN_TIMEOUT_MILLIS = 250;
- private static final long MAX_TIMEOUT_MILLIS = 5000;
private static final long TIMEOUT_INTERVAL = 50;
private static final int WINDOW_SIZE = 100;
private static final double TIMEOUT_MULTIPLIER = 2.5;
- private static final int CHANNEL_POOL_SIZE = 8;
private static final byte[] EMPTY_PAYLOAD = new byte[0];