Je cherche des conseils - j'ai lu les deux autres fils de discussion à ce sujet.
Dans mon fichier server.xml, j'ai deux endroits où maxThreads est défini en deux endroits :
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="100" minSpareThreads="4"/>
ET
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="100" SSLEnabled="true" scheme="https" secure="true" connectionTimeout="600000" keystoreFile="/usr/local/tomcat/conf/keystore.p12" keystorePass="mypassword" clientAuth="false" sslProtocol="TLS" />
L'erreur que nous rencontrons fréquemment avec notre serveur est : " Timeout " : Pool vide. Impossible d'aller chercher une connexion dans 30 secondes, aucune disponible [size:100;busy:100;idle:0;lastwait:30000]". avant un arrêt fatal du système (la machine se réinitialise et redémarre - sur un cluster AWS ECS)
Lorsque j'augmente la valeur maxThreads à 300 dans la deuxième instance listée ici, nous obtenons le même message d'erreur - je ne suis donc pas sûr que la taille de la connexion ait augmenté. Le comportement du système est différent (la machine ne redémarre pas), mais les utilisateurs ne peuvent pas se connecter - un redémarrage manuel est finalement nécessaire.
Comment puis-je obtenir plus de connexions au système ou maintenir la connectivité aussi élevée que possible ?
Dans d'autres messages sur ce sujet, certains suggèrent de diminuer également le nombre de maxThreads (en supposant qu'ils se terminent rapidement) pour obtenir de meilleures performances.
UPDATE
Dans mon fichier de propriétés de l'application, j'avais les paramètres suivants :
spring.datasource.url=jdbc:postgresql://db####
spring.datasource.username=#####
spring.datasource.password=######
spring.datasource.tomcat.max-wait=10000
spring.datasource.tomcat.max-active=60
spring.datasource.tomcat.test-on-borrow=true
spring.jpa.show-sql=false
#spring.jpa.hibernate.ddl-auto=create-drop
#spring.jpa.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.show_sql=false
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.connection.provider_class=org.hibernate.c3p0.internal.C3P0ConnectionProvider
spring.jpa.properties.hibernate.c3p0.min_size=1
spring.jpa.properties.hibernate.c3p0.max_size=30
spring.jpa.properties.hibernate.c3p0.timeout=120
spring.jpa.properties.hibernate.c3p0.max_statements=20