Bläddra i källkod

Merge pull request #9022 from jakesmith/hpcc-14655

HPCC-14655 Handle environment connection reload failure

Reviewed-By: Attila Vamos <attila.vamos@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 9 år sedan
förälder
incheckning
a391f7791f
1 ändrade filer med 14 tillägg och 1 borttagningar
  1. 14 1
      common/environment/environment.cpp

+ 14 - 1
common/environment/environment.cpp

@@ -1552,7 +1552,20 @@ void CLocalEnvironment::clearCache()
     if (conn)
     {
         p.clear();
-        conn->reload();
+        unsigned mode;
+        try
+        {
+            conn->reload();
+        }
+        catch (IException *e)
+        {
+            EXCLOG(e, "Failed to reload connection");
+            e->Release();
+            mode = conn->queryMode();
+            conn.clear();
+        }
+        if (!conn)
+            conn.setown(querySDS().connect(xPath, myProcessSession(), mode, SDS_LOCK_TIMEOUT));
         p.setown(conn->getRoot());
     }
     cache.kill();