Paramètres du pool de sessions

Cette page permet de définir les paramètres du pool de sessions.

La page de la console d'administration est commune à plusieurs types de ressource, comme les fabriques de connexions de file d'attente JMS. Pour afficher cette page, le chemin dépend du type de ressource, mais en général, vous devez sélectionner une instance du fournisseur de ressources, puis une instance du type de ressource, puis vous cliquez sur Pool de sessions. Par exemple, cliquez sur Ressources > Fournisseurs JMS WebSphere > Fabriques de connexions de file d'attente WebSphere > fabrique_connexion > Pool de sessions.

Onglet Configuration

Portée
Indique à quel niveau cette définition de ressource est visible : cellule, noeud ou serveur.

Des ressources telles que les fournisseurs JDBC, les liaisons d'espace de noms et les bibliothèques partagées peuvent être définies à plusieurs niveaux. Dans ce cas, pour une ressource donnée, la définition figurant au niveau le plus spécifique (par exemple, le serveur) l'emporte sur l'éventuelle définition homologue figurant à un niveau plus général (par exemple, la cellule).

Notez que quelle que soit la portée d'une ressource définie, les propriétés de cette ressource s'appliquent uniquement au niveau d'un serveur individuel. Par exemple, si vous définissez la portée d'une source de données au niveau cellule, tous les utilisateurs de cette cellule peuvent rechercher et utiliser cette source de données, laquelle est unique au sein de cette cellule. Cependant, les propriétés de la ressource sont locales à chaque serveur de la cellule. Par exemple, si vous attribuez la valeur 10 à la propriété Nombre maximal de connexions, chaque serveur de cette cellule pourra avoir 10 connexions.

Cellule
Niveau de portée le plus général. Les ressources définies au niveau cellule sont visibles depuis tous les noeuds et serveurs de cette cellule, sauf si elles sont redéfinies à un niveau inférieur. Pour visualiser les ressources définies au niveau cellule, ne spécifiez pas de nom de serveur ni de nom de noeud dans le formulaire de sélection de portée.
Noeud
Portée par défaut de la plupart des types de ressources. Les ressources définies au niveau noeud l'emportent sur les éventuelles définitions homologues figurant au niveau cellule et sont visibles depuis tous les serveurs du noeud considéré, sauf si elles sont redéfinies à un niveau serveur sur ce noeud. Pour visualiser les ressources définies au niveau d'un noeud, ne spécifiez pas de serveur dans le formulaire de sélection de portée ; spécifiez simplement le nom du noeud concerné.
Serveur
Niveau de portée le plus spécifique pour la définition des ressources. Les ressources définies au niveau d'un serveur l'emportent sur les éventuelles définitions homologues apparaissant au niveau de la cellule parente ou du noeud parent ; elles sont visibles uniquement depuis ce serveur. Pour visualiser les ressources définies au niveau d'un serveur, spécifiez le nom de ce serveur ainsi que celui de son noeud parent dans le formulaire de sélection de portée.

Lorsque des ressources sont créées, elles le sont toujours dans la portée en cours, c'est-à-dire celle qui est sélectionnée dans le formulaire. Pour afficher les ressources d'autres portées, spécifiez un noeud ou un serveur différent dans le formulaire de sélection de portée.

Type de données Chaîne
Délai d'expiration de connexion
Spécifie le délai, en secondes, au terme duquel une demande de connexion expire et une exception ConnectionWaitTimeoutException est émise.

L'attente peut être nécessaire lorsque le nombre maximal de connexions à un pool particulier (paramètre Nombre maximal de connexions) est atteint. Par exemple, si le paramètre Délai d'expiration de connexion est réglé sur 300 et que le nombre maximal de connexions est atteint, le gestionnaire du pool attend 300 secondes qu'une connexion physique devienne disponible. Si, passé ce délai, aucune connexion physique n'est disponible, le gestionnaire du pool lance une exception ConnectionWaitTimeoutException. Il n'y a généralement pas lieu de retenter la méthode getConnection(), car si une attente plus longue est nécessaire pour l'obtention d'une connexion, vous devez augmenter la valeur du paramètre Délai d'expiration de connexion. Par conséquent, si cette exception est interceptée par l'application, l'administrateur doit étudier l'usage attendu de l'application et ajuster en conséquence les paramètres du pool de connexions et de la base de données.

Si le délai d'expiration de connexion est réglé sur 0, le gestionnaire du pool attend aussi longtemps que nécessaire qu'une connexion soit allouée (cela se produit lorsque le nombre de connexions chute en-deçà de la valeur du paramètre Nombre maximal de connexions).

Si le paramètre Nombre maximal de connexions est réglé sur 0, ce qui autorise un nombre illimité de connexions physiques, la valeur du délai d'expiration de connexion est ignorée.

Type de données Entier
Unités Secondes
Valeur par défaut 180
Plage 0 à max (nombre entier)
Nombre maximal de connexions
Spécifie le nombre maximal de connexions physiques qui peuvent être créées dans le pool.

Il s'agit de connexions physiques à une ressource dorsale. Une fois ce nombre atteint, aucune nouvelle connexion physique n'est créée et le demandeur doit attendre qu'une connexion physique en cours d'utilisation soit renvoyée au pool ou qu'une exception ConnectionWaitTimeoutException soit lancée.

Par exemple, si le paramètre Nombre maximal de connexions est réglé sur 5 et qu'il y a cinq connexions physiques en cours d'utilisation, le gestionnaire de pool attend qu'une connexion physique se libère pendant la durée spécifiée par le paramètre Délai d'expiration de connexion.

Si le paramètre Nombre maximal de connexions est réglé sur 0, la valeur du délai d'expiration de connexion est ignorée.

Les meilleurs résultats sont obtenus lorsque la valeur de la taille du pool de connexions est inférieure au nombre maximal de connexions défini dans le conteneur Web. Des valeurs basses (entre 10 et 30 connexions) permettent de meilleures performances que des valeurs hautes (100, par exemple).

Si des clones sont utilisés, il existe un pool de données par clone. Il est important de connaître le nombre de pools de données lors de la configuration du nombre maximal de connexions à la base de données.

Vous pouvez utiliser Tivoli Performance Viewer pour déterminer le nombre optimal de connexions dans un pool. Si le nombre de demandeurs simultanément en attente d'êtres servis est supérieur à 0, mais que la charge CPU n'est pas proche de 100 %, pensez à augmenter la taille du pool de connexion. Si la valeur Pourcentage utilisé est est constamment faible et en dessous de la charge de travail normale, diminuez le nombre de connexions du pool.

Type de données Entier
Valeur par défaut 10
Plage 0 à max (nombre entier)
Nombre minimal de connexions
Spécifie le nombre minimal de connexions physiques à maintenir.

Tant que ce nombre n'est pas atteint, l'unité d'exécution (thread) de maintenance du pool n'élimine aucune connexion physique. Cependant, aucune tentative n'est faite pour que le nombre de connexions atteigne cette valeur plancher. Si vous spécifiez une valeur pour le paramètre Délai dépassé, le nombre minimal de connexions n'est pas maintenu. Toutes les connexions périmées du fait de leur âge sont supprimées.

Par exemple, si le paramètre Nombre minimal de connexions est réglé sur 3 et qu'une seule connexion physique est créée, cette connexion n'est pas supprimée suite au dépassement du Délai d'inutilisation. De même, l'unité d'exécution ne crée pas automatiquement deux connexions physiques supplémentaires pour atteindre la valeur du paramètre Nombre minimal de connexions.

Type de données Entier
Valeur par défaut 1
Plage 0 à max (nombre entier)
Intervalle de ramassage
Spécifie l'intervalle, en secondes, entre deux exécutions consécutives de l'unité d'exécution (thread) de maintenance du pool de connexions.

Par exemple, si l'intervalle de ramassage est réglé sur 60, l'unité d'exécution de maintenance du pool s'exécutera toutes les minutes. L'intervalle de ramassage a un impact sur l'exactitude des paramètres Délai d'inutilisation et Délai dépassé. Plus l'intervalle est court, plus ces paramètres peuvent être exacts. Si l'unité d'exécution de maintenance du pool est activée, réglez le délai de ramassage sur une valeur inférieure à celles des paramètres Délai d'inutilisation et Délai dépassé. Lorsque l'unité d'exécution de maintenance du pool s'exécute, elle élimine les connexions qui sont restées inutilisées plus longtemps que la valeur fixée par le paramètre Délai d'inutilisation, jusqu'à ce que le nombre de connexions spécifié par le paramètre Nombre minimal de connexions soit atteint. L'unité d'exécution de maintenant élimine également les connexions qui sont restées actives plus longtemps que la valeur spécifiée par le paramètre Délai dépassé.

L'intervalle de ramassage a également un impact sur les performances. Plus il est court, plus l'unité d'exécution de maintenance du pool est sollicitée, ce qui a pour conséquence de dégrader les performances.

Pour désactiver l'unité d'exécution de maintenance du pool, réglez le délai de ramassage sur 0 ou mettez à zéro les paramètres Délai d'inutilisation et Délai dépassé. La méthode recommandée pour désactiver l'unité d'exécution de maintenance du pool est de régler le délai de ramassage sur 0, auquel cas les paramètres Délai d'inutilisation et Délai dépassé sont ignorés. Cependant, si le délai d'inutilisation et le délai dépassé sont réglés sur 0, l'unité d'exécution de maintenance du pool s'exécute, mais seules les connexions physiques qui sont en dépassement de délai en raison d'un délai d'attente non nul sont éliminées.

Type de données Entier
Unités Secondes
Valeur par défaut 180
Plage 0 à max (nombre entier)
Délai d'inutilisation
Spécifie le délai, en secondes, au terme duquel une connexion inutilisée ou au repos est éliminée.

Pour des performances optimales, réglez le délai d'inutilisation sur une valeur plus grande que celle du délai de ramassage. Les connexions physiques inutilisées sont éliminées uniquement si elles sont en nombre supérieur à la valeur du paramètre Nombre minimal de connexions. Par exemple, si la valeur du délai d'inutilisation est 120 secondes et que l'unité d'exécution de maintenance du pool est activée (délai de ramassage différent de 0), toute connexion physique qui reste inutilisée plus de deux minutes est éliminée. Sachez que l'exactitude de ce délai ainsi que les performances sont affectées par la valeur de l'intervalle de ramassage. Pour plus d'informations, reportez-vous à la section Intervalle de ramassage.

Type de données Entier
Unités Secondes
Valeur par défaut 1800
Plage 0 à max (nombre entier)
Délai dépassé
Spécifie le délai, en secondes, au terme duquel une connexion physique est éliminée en raison de son "âge".

Si le paramètre Délai dépassé est réglé sur 0, les connexions physiques actives sont conservées dans le pool indéfiniment. Pour des performances optimales, réglez le délai dépassé sur une valeur plus grande que celle de l'intervalle de ramassage. Par exemple, si la valeur du délai dépassé est 1200 secondes (20 minutes) et que le délai de ramassage est différent de 0, toute connexion physique qui existe pendant plus de 20 minutes est éliminée du pool. Sachez que l'exactitude de ce délai ainsi que les performances sont affectées par la valeur de l'intervalle de ramassage. Pour plus d'informations, reportez-vous à la section Intervalle de ramassage.

Type de données Entier
Unités Secondes
Valeur par défaut 0
Plage 0 à max (nombre entier)
Règle de purge
Spécifie comment purger les connexions périmées (stale) ou présentant une erreur fatale.

Les valeurs possibles sont Totalité du pool et Connexion défaillante uniquement. Vous pouvez définir l'une ou l'autre option pour les sources de données JCA. Les sources de données WebSphere version 4.0 sont systématiquement configurées avec la règle de purge Totalité du pool.

Type de données Chaîne
Valeur par défaut FailingConnectionOnly
Plage
Totalité du pool
Toutes les connexions actuellement dans le pool sont alors marquées comme périmées. Toute connexion qui n'est pas en cours d'utilisation est immédiatement fermée. Une connexion en cours d'utilisation est fermée et une exception StaleConnectionException est lancée lors de l'opération suivante sur cette connexion. Les demandes getConnection émises subséquemment par l'application conduisent à l'ouverture de nouvelles connexions à la base de données. Lorsque cette règle de purge est utilisée, il existe une possibilité que certaines connexions du pool soient fermées inutilement parce qu'elles ne sont pas périmées. Cependant, la probabilité d'une telle situation reste très faible. Dans la plupart des cas, la règle de purge Totalité du pool est le meilleur choix.
FailingConnectionOnly
Seule la connexion à l'origine de l'erreur StaleConnectionException est fermée. Si ce choix permet d'éviter que des connexions valides ne soient fermées inutilement, il a pour inconvénient de rendre la reprise plus compliquée du point de vue de l'application. Comme la connexion défaillante est la seule a être fermée, il existe une très forte probabilité que la demande getConnection suivante de l'application renvoie une connexion du pool qui est également périmée, ce qui conduit à la génération d'autres exceptions StaleConnectionException.

Informations connexes

Boutons de la console administrative
Caractéristiques de la page de la console d'administration