Réserves de ressources

 

Sur la plupart des systèmes, les modèles d'utilisation de certaines ressources (connexions de bases de données, connexions réseau, fils d'exécution du CPU) peuvent influer directement sur les performances. Dans JMap Server, ces ressources sont utilisées de manière très efficace en faisant appel au principe de la mise en commun, qui se décrit comme suit :

1.Un certain nombre d'instances de ressources sont créées, initialisées au démarrage et mises en réserve (p. ex. 3 connexions de base de données);

2.Lorsqu'une instance de ressource est requise par le système, la ressource est empruntée à la réserve et devient verrouillée (indisponible) pour les autres utilisateurs;

3.Des tâches sont effectuées à l'aide de cette ressource (p. ex. exécution de requêtes SQL);

4.La ressource est retournée en réserve et déverrouillée (disponible) pour les autres utilisateurs;

Ce mécanisme est efficace, car les ressources sont partagées entre différentes parties du système, ce qui réduit leur nombre. En outre, l'initialisation n'a lieu qu'au démarrage, ce qui améliore les performances du système (l'établissement d'une connexion à la base de données prend du temps).

Advenant le cas où une réserve est à court de ressources (elles sont toutes verrouillées), de nouvelles ressources sont automatiquement initialisées (la réserve croît), mais la performance peut être affectée. Si la demande diminue, la réserve reprendra sa taille initiale après un certain temps. Il est donc important de choisir une taille initiale adéquate pour chaque réserve. Vous pouvez aussi indiquer une taille maximale pour une réserve; lorsque cette limite est atteinte, les demandes subséquentes sont mises en attente jusqu'à ce qu'une ressource de la réserve soit de nouveau disponible. Afin de vous aider, certaines statistiques sont affichées dans JMap Admin concernant l'utilisation des réserves : la taille actuelle et la taille la plus élevée atteinte.

Pour les réserves de connexions de base de données, un délai d'inactivité est exigé afin d'automatiser la fermeture et la réouverture des connexions inactives, ce qui empêche les systèmes de gestion de bases de données de fermer les connexions après une certaine période d'inactivité.