Si vous utilisez PostgreSQL >= 9.6, il existe une solution encore plus facile. Supposons que vous voulez supprimer toutes les connexions inactives toutes les 5 minutes, il vous suffit d'exécuter la commande suivante :
alter system set idle_in_transaction_session_timeout='5min';
S'il vous est impossible d'accéder en tant que superutilisateur (par exemple sur le cloud Azure), essayez :
SET SESSION idle_in_transaction_session_timeout = '5min';
Cependant, cette dernière ne fonctionnera que pour la session en cours, ce qui n'est probablement pas ce que vous voulez.
Pour désactiver la fonctionnalité,
alter system set idle_in_transaction_session_timeout=0;
ou
SET SESSION idle_in_transaction_session_timeout = 0;
(à propos, 0 est la valeur par défaut).
Si vous utilisez alter system
, vous devez recharger la configuration pour démarrer le changement et le changement est persistant, vous n'aurez pas à exécuter à nouveau la requête si, par exemple, vous redémarrez le serveur.
Pour vérifier l'état de la fonctionnalité :
show idle_in_transaction_session_timeout;