Domanda

I miei sguardi server.xml come il seguente:

<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<Executor  name="tomcatThreadPool" 
           namePrefix="catalina-exec-"
           maxThreads="200" 
           minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="10000"
           maxKeepAliveRequests="1"
           redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Tuttavia, il manager di Tomcat ( http: // localhost / manager / stato ) dimostra di seguito

http-8080: Max threads: -1 Current thread count: -1 Current thread busy: -1
jk-8009: Max threads: 200 Current thread count: 4 Current thread busy: 1

Per qualche ragione sembra http-8080 non utilizza l'esecutore, anche se è diretto troppo e jk-8009 utilizza l'esecutore, anche se non è incaricato di. È il manager appena dichiarazioni inesatte o non l'ho configurato correttamente il pool di thread?

È stato utile?

Soluzione

La mia ipotesi è che il gestore sta riportando i valori che sono stati impostati come parte delle defintions connettore, e non riportando i valori da l'esecutore. L'esecutore wil lavoro come previsto, è solo che non ha riportato correttamente nel gestore.

Il valore 200 per il connettore AJP è fuorviante qui, dal momento che 200 è il valore predefinito per maxThreads (come definito qui ); perché non è stato specificato maxThreads per il connettore AJP, questo è il valore che viene utilizzato.

Il connettore HTTP sta riportando i valori senza senso perché sta delegando la sua gestione dei thread per l'esecutore.

Per verificare se questo è tutto vero, provare a cambiare il valore maxThreads dell'esecutore ad un valore diverso. Si dovrebbe vedere maxThreads del soggiorno connettore AJP a 200 (perché questo è il suo valore di default).

Altri suggerimenti

Il numero massimo di thread di elaborazione richieste da creare da questo connettore, che determina quindi il numero massimo di richieste simultanee che possono essere gestiti. Se non specificato, questo attributo è impostato su 200. Se un esecutore è associato a questo connettore, questo attributo viene ignorato come il connettore eseguire compiti usando l'esecutore anziché una piscina filettatura interna. Si noti che se un esecutore è configurato alcun valore impostato per questo attributo verrà registrato correttamente ma sarà segnalato (ad esempio tramite JMX) come -1 per rendere chiaro che non viene utilizzato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top