Nous avons une application qui envoie des messages aux utilisateurs pour qu'ils accèdent à notre serveur (Apache tomcat) via une connexion HTTPS avec leurs appareils. Le problème est que l'application de l'utilisateur garde la connexion vivante (ou ouverte) dans notre serveur Tomcat.
Pour tenter de résoudre ce problème, nous avons configuré notre connecteur avec les éléments suivants maxThreads="2700"
y connectionTimeout="20000"
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
maxThreads="2700" scheme="https" secure="true"
keystoreFile="********" keystorePass="*****"
clientAuth="false" sslProtocol="TLS" connectionTimeout="20000"
ciphers="[lots of ciphers here]"/>
Le problème est que notre serveur est très occupé et que nous ne pouvons même pas accéder à la page du gestionnaire. La dernière fois que nous avons pu y accéder, la section http-nio-8443 de la page manager était :
"http-nio-8443"
Max threads: 2700 Current thread count: 1356 Current thread busy: 1354
Keeped alive sockets count: 1 Max processing time: 46426 ms Processing time: 6766.788 s
Request count: 73225 Error count: 1415 Bytes received: 17.77 MB Bytes sent: 12.28 MB
Et en dessous, une liste de tous les clients connectés avec les détails de leurs connexions. Ils sont marqués dans cette section par un "S" de service.
Dans notre système, nous savons que ces connexions ne devraient plus être actives (nous savons que nous avons un problème soit dans l'application téléphonique, soit dans notre serveur).
Ma question est donc la suivante : sans tuer le tomcat, existe-t-il un moyen de supprimer ces connexions dans le tomcat ? Je ne sais pas si c'est possible, mais c'est une bonne idée.