aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main
diff options
context:
space:
mode:
authorJozsef Csongvai <jozsef.csongvai@bell.ca>2022-06-13 08:53:19 -0400
committerJozsef Csongvai <jozsef.csongvai@bell.ca>2022-06-29 17:40:31 -0400
commit5baa1ed97c1d2b98952a025c3bc76f60587e9670 (patch)
treebaa4fbf040c19c7ade2cb9feb602dff4906bbe9b /common/src/main
parent366a173f798422b956625aa83d81fc863e0914a5 (diff)
Enable long-running processes in ControllerExecutionBB
Instead of blocking a thread while waiting for controller response, ControllerExecutionBB is now using camunda receive task to support long running processes without increasing the camunda job timeout. A new property was added to configure the gRPC client's keep alive ping mechanism, which will identify connection issues and prevent the process getting stuck when the controller crashes. Issue-ID: SO-3953 Signed-off-by: Jozsef Csongvai <jozsef.csongvai@bell.ca> Change-Id: Iaf6438dba76e715dba846bf45ef47b6a91239c4a
Diffstat (limited to 'common/src/main')
-rw-r--r--common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java2
-rw-r--r--common/src/main/java/org/onap/so/client/cds/CDSProperties.java17
2 files changed, 17 insertions, 2 deletions
diff --git a/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java b/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
index e40b936daa..6e27b85863 100644
--- a/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
+++ b/common/src/main/java/org/onap/so/client/cds/CDSProcessingClient.java
@@ -28,6 +28,7 @@ import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLException;
import javax.net.ssl.TrustManagerFactory;
import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
@@ -107,6 +108,7 @@ public class CDSProcessingClient implements AutoCloseable {
log.info("Configure Basic authentication");
builder.intercept(new BasicAuthClientInterceptor(props)).usePlaintext();
}
+ builder.keepAliveTime(props.getKeepAlivePingMinutes(), TimeUnit.MINUTES);
this.channel = builder.build();
this.handler = new CDSProcessingHandler(listener);
log.info("CDSProcessingClient started");
diff --git a/common/src/main/java/org/onap/so/client/cds/CDSProperties.java b/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
index db566fa3de..f47a70976b 100644
--- a/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
+++ b/common/src/main/java/org/onap/so/client/cds/CDSProperties.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,6 +20,7 @@
package org.onap.so.client.cds;
+import java.util.concurrent.TimeUnit;
import org.onap.so.client.RestProperties;
public interface CDSProperties extends RestProperties {
@@ -35,4 +36,16 @@ public interface CDSProperties extends RestProperties {
boolean getUseSSL();
boolean getUseBasicAuth();
+
+ /**
+ * Gets grpc keep alive ping interval, which is useful for detecting connection issues when the server dies
+ * abruptly. If the value is set lower than what is allowed by the server (default 5 min), the connection will be
+ * closed after a few pings.
+ *
+ * If no value is set this method will default to 6 min (server default minimum + 1)
+ *
+ * @see io.grpc.netty.NettyChannelBuilder#keepAliveTime(long, TimeUnit)
+ * @return
+ */
+ long getKeepAlivePingMinutes();
}