]> git.mxchange.org Git - friendica.git/commitdiff
Database connections: When we now check for user values we check the system values...
authorMichael Vogel <icarus@dabo.de>
Fri, 12 Feb 2016 10:04:25 +0000 (11:04 +0100)
committerMichael Vogel <icarus@dabo.de>
Fri, 12 Feb 2016 10:04:25 +0000 (11:04 +0100)
include/poller.php

index d68e8081cac7f39d13eca0674118b3aa0f46a24c..90e94ede9e05af23ba0bd56791569bbc6e0e1125 100644 (file)
@@ -161,35 +161,42 @@ function poller_max_connections_reached() {
                $used = count($r);
 
                logger("Connection usage (user values): ".$used."/".$max, LOGGER_DEBUG);
-       } else {
-               // Since there are no user specific limitations we will now check for the system values
-               $r = q("SHOW VARIABLES WHERE `variable_name` = 'max_connections'");
-               if (!$r)
-                       return false;
 
-               $max = intval($r[0]["Value"]);
-               if ($max == 0)
-                       return false;
+               $level = $used / $max;
 
-               $r = q("SHOW STATUS WHERE `variable_name` = 'Threads_connected'");
-               if (!$r)
-                       return false;
+               if ($level >= (3/4)) {
+                       logger("Maximum level (3/4) of user connections reached: ".$used."/".$max);
+                       return true;
+               }
+       }
 
-               $used = intval($r[0]["Value"]);
-               if ($used == 0)
-                       return false;
+       // We will now check for the system values.
+       // This limit could be reached although the user limits are fine.
+       $r = q("SHOW VARIABLES WHERE `variable_name` = 'max_connections'");
+       if (!$r)
+               return false;
 
-               logger("Connection usage (system values): ".$used."/".$max, LOGGER_DEBUG);
-       }
+       $max = intval($r[0]["Value"]);
+       if ($max == 0)
+               return false;
+
+       $r = q("SHOW STATUS WHERE `variable_name` = 'Threads_connected'");
+       if (!$r)
+               return false;
+
+       $used = intval($r[0]["Value"]);
+       if ($used == 0)
+               return false;
+
+       logger("Connection usage (system values): ".$used."/".$max, LOGGER_DEBUG);
 
        $level = $used / $max;
 
        if ($level < (3/4))
                return false;
 
-       logger("Maximum level (3/4) of connections reached: ".$used."/".$max);
+       logger("Maximum level (3/4) of system connections reached: ".$used."/".$max);
        return true;
-
 }
 
 /**