...
On documente une solution d'un tel paramétrage ici (réalisé sur une centos 7.6) :
On configure apache pour utiliser le module worker et n'avoir qu'un seul process (server) à la fois ce qui permettra d'utiliser la directive max dans le proxypass :
Bloc de code | ||
---|---|---|
| ||
LoadModule mpm_worker_module modules/mod_mpm_worker.so
# ServerLimit à 1 pour pouvoir faire un max=1 dans le proxypass et faire ainsi goulot d'étranglement :
# 1 seule requête à la fois que le WS de siham qui ne supporte pas les appels concurrents
ServerLimit 1
StartServers 1
MaxRequestWorkers 512
ThreadsPerChild 512
MaxClients 512
ThreadLimit 512
# MaxConnectionsPerChild à 1 pour que si ça plante entre apache et tomcat,
# le fait que le thread qui gère cette requête/connexion soit dans un état 'incohérent' ne pose pas de pb :
# chaque thread n'étant utilisé qu'une fois pour 1 requête :
MaxConnectionsPerChild 1
|
Ainsi dans le virtualhost apache, on peut faire du proxypass en précisant qu'on ne laisse passer qu'une requête à la fois pour chacun des web services cibles :
Bloc de code |
---|
# mise en place du goulot d'étranglement pour les WS siham ne supportant pas la concurrence
# conf en lien avec 00-mpm.conf
# flushpackets=on ... à voir l'utilité ?
ProxyPass /DossierAgentDateWebService ajp://sachin.univ-rouen.fr:8010/DossierAgentDateWebService retry=1 timeout=300 max=1 smax=50 flushpackets=on
ProxyPass /ListeAgentsWebService ajp://sachin.univ-rouen.fr:8010/ListeAgentsWebService retry=1 timeout=300 max=1 smax=50 flushpackets=on
ProxyPass / ajp://sachin.univ-rouen.fr:8010/ retry=1 timeout=3600 |
Session Timeout HRAccess
Le Web Service Siham DossierAgentDateWebService.RecupDonneesAgents tombe en erreur au bout d'un certain temps. L'erreur côté serveur mentionne une erreur de "VIRTUAL_SESSION_TIMEOUT" ; le web-service est alors Hors Service.
...