Caut un sfat - am citit celelalte două fire despre asta
în fișierul meu server.xml am două locuri unde maxThreads sunt definite în două locuri:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="100" minSpareThreads="4"/>
ȘI
<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" />
Eroarea cu care ne confruntăm frecvent cu serverul nostru este:
„Timeout: Pool empty. Imposibil de preluat o conexiune în 30 de secunde, nu este disponibilă [size:100;busy:100;idle:0;lastwait:30000]”
înainte de o oprire fatală a sistemului (mașina resetează și pornește din nou - pe un cluster AWS ECS)
Când cresc valoarea maxThreads la 300 în a doua instanță listată aici, primim același mesaj de eroare - așa că nu sunt sigur dacă dimensiunea conexiunii a crescut deloc. Comportamentul sistemului este diferit (mașina nu repornește), dar atunci utilizatorii nu se pot conecta - în cele din urmă necesită repornire manuală.
Cum pot realiza mai multe conexiuni la sistem sau pot menține conectivitatea cât mai ridicată?
În alte postări despre acest subiect, unii sugerează că și scăderea maxThreads (presupunând că se completează rapid) ar putea oferi performanțe mai bune.
ACTUALIZAȚI:
în fișierul meu de proprietăți ale aplicației aveam următoarele setări:
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=fals
#spring.jpa.hibernate.ddl-auto=create-drop
#spring.jpa.hibernate.ddl-auto=validare
spring.jpa.properties.hibernate.show_sql=fals
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