Skip to content

Commit 0fae90b

Browse files
committed
fix(Database): Set ConnectionActivityMiddleware
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
1 parent 6656fea commit 0fae90b

4 files changed

Lines changed: 20 additions & 1 deletion

File tree

lib/composer/composer/autoload_classmap.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,11 @@
15501550
'OC\\DB\\ConnectionFactory' => $baseDir . '/lib/private/DB/ConnectionFactory.php',
15511551
'OC\\DB\\DbDataCollector' => $baseDir . '/lib/private/DB/DbDataCollector.php',
15521552
'OC\\DB\\Exceptions\\DbalException' => $baseDir . '/lib/private/DB/Exceptions/DbalException.php',
1553+
'OC\\DB\\Middleware\\ConnectionActivityConnection' => $baseDir . '/lib/private/DB/Middleware/ConnectionActivityConnection.php',
1554+
'OC\\DB\\Middleware\\ConnectionActivityDriver' => $baseDir . '/lib/private/DB/Middleware/ConnectionActivityDriver.php',
1555+
'OC\\DB\\Middleware\\ConnectionActivityMiddleware' => $baseDir . '/lib/private/DB/Middleware/ConnectionActivityMiddleware.php',
1556+
'OC\\DB\\Middleware\\ConnectionActivityNotifier' => $baseDir . '/lib/private/DB/Middleware/ConnectionActivityNotifier.php',
1557+
'OC\\DB\\Middleware\\ConnectionActivityStatement' => $baseDir . '/lib/private/DB/Middleware/ConnectionActivityStatement.php',
15531558
'OC\\DB\\MigrationException' => $baseDir . '/lib/private/DB/MigrationException.php',
15541559
'OC\\DB\\MigrationService' => $baseDir . '/lib/private/DB/MigrationService.php',
15551560
'OC\\DB\\Migrator' => $baseDir . '/lib/private/DB/Migrator.php',

lib/composer/composer/autoload_static.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1591,6 +1591,11 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
15911591
'OC\\DB\\ConnectionFactory' => __DIR__ . '/../../..' . '/lib/private/DB/ConnectionFactory.php',
15921592
'OC\\DB\\DbDataCollector' => __DIR__ . '/../../..' . '/lib/private/DB/DbDataCollector.php',
15931593
'OC\\DB\\Exceptions\\DbalException' => __DIR__ . '/../../..' . '/lib/private/DB/Exceptions/DbalException.php',
1594+
'OC\\DB\\Middleware\\ConnectionActivityConnection' => __DIR__ . '/../../..' . '/lib/private/DB/Middleware/ConnectionActivityConnection.php',
1595+
'OC\\DB\\Middleware\\ConnectionActivityDriver' => __DIR__ . '/../../..' . '/lib/private/DB/Middleware/ConnectionActivityDriver.php',
1596+
'OC\\DB\\Middleware\\ConnectionActivityMiddleware' => __DIR__ . '/../../..' . '/lib/private/DB/Middleware/ConnectionActivityMiddleware.php',
1597+
'OC\\DB\\Middleware\\ConnectionActivityNotifier' => __DIR__ . '/../../..' . '/lib/private/DB/Middleware/ConnectionActivityNotifier.php',
1598+
'OC\\DB\\Middleware\\ConnectionActivityStatement' => __DIR__ . '/../../..' . '/lib/private/DB/Middleware/ConnectionActivityStatement.php',
15941599
'OC\\DB\\MigrationException' => __DIR__ . '/../../..' . '/lib/private/DB/MigrationException.php',
15951600
'OC\\DB\\MigrationService' => __DIR__ . '/../../..' . '/lib/private/DB/MigrationService.php',
15961601
'OC\\DB\\Migrator' => __DIR__ . '/../../..' . '/lib/private/DB/Migrator.php',

lib/private/DB/Connection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ class Connection extends PrimaryReadReplicaConnection {
7474

7575
/** @var DbDataCollector|null */
7676
protected $dbDataCollector = null;
77+
/** Seconds the connection may sit idle before the next use re-verifies connectivity */
78+
private const CONNECTION_CHECK_INTERVAL = 30;
7779
private array $lastConnectionCheck = [];
7880

7981
protected ?float $transactionActiveSince = null;

lib/private/DB/ConnectionFactory.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Doctrine\DBAL\Configuration;
1212
use Doctrine\DBAL\DriverManager;
1313
use Doctrine\DBAL\Event\Listeners\OracleSessionInit;
14+
use OC\DB\Middleware\ConnectionActivityMiddleware;
1415
use OC\DB\QueryBuilder\Sharded\AutoIncrementHandler;
1516
use OC\DB\QueryBuilder\Sharded\ShardConnectionManager;
1617
use OC\SystemConfig;
@@ -132,10 +133,16 @@ public function getConnection(string $type, array $additionalConnectionParams):
132133
$eventManager->addEventSubscriber(new SQLiteSessionInit(true, $journalMode));
133134
break;
134135
}
136+
$configuration = new Configuration();
137+
$activityMiddleware = new ConnectionActivityMiddleware();
138+
$configuration->setMiddlewares([
139+
$activityMiddleware,
140+
]);
141+
$connectionParams['activity_notifier'] = $activityMiddleware->getNotifier();
135142
/** @var Connection $connection */
136143
$connection = DriverManager::getConnection(
137144
$connectionParams,
138-
new Configuration(),
145+
$configuration,
139146
$eventManager
140147
);
141148
return $connection;

0 commit comments

Comments
 (0)