Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.6.4. Mode de pagination

Quand les messages qui sont envoyés à une adresse dépassent la taille configurée, cette adresse va en "page/paging mode".

Note

La pagination est faîte individuellement par adresse. Si vous configurez un max-size-bytes d'adresse, cela signifie que chaque adresse correspondante aura une taille maximum que vous aurez spécifiée. Cependant, cela ne veut pas dire que la taille de toutes les adresses correspondantes soit limitée à max-size-bytes,
Même en mode page, le serveur peut se bloquer en raison d'une erreur d'insuffisance de mémoire. HornetQ conserve une référence à chaque fichier d'échange sur le disque. Dans une situation où on a des millions de fichiers d'échange, HornetQ peut faire face à un épuisement de la mémoire. Pour minimiser ce risque, il est important de définir l'attribut page-size-bytes à une valeur appropriée. Vous devez configurer une mémoire de serveur JBoss EAP 6 supérieure à (nombre de destinations)*(max-size-bytes), sinon une erreur « out-of-memory » (insuffisance de mémoire) peut se produire.
Vous pouvez configurer la taille maximum en bytes (max-size-bytes) pour une adresse dans les fichiers de configuration du serveur (standalone.xml et domain.xml) :
<address-settings>
   <address-setting match="jms.someaddress">
      <max-size-bytes>104857600</max-size-bytes>
      <page-size-bytes>10485760</page-size-bytes>
      <address-full-policy>PAGE</address-full-policy>
   </address-setting>
</address-settings>
Le tableau suivant décrit les paramètres utilisés pour la configuration de l'adresse :

Tableau 18.4. Configuration des paramètres de l'adresse de pagination

Élément Valeur par défaut Description
max-size-bytes 10485760
Ceci est utilisé pour indiquer la taille maximum de la mémoire que l'adresse peut avoir avant d'entrer en mode de pagination.
page-size-bytes 2097152
Cela est utilisé pour spécifier la taille de chaque fichier de pagination sur le système de pagination.
address-full-policy PAGE
Cette valeur de cet attribut est utilisée pour les décisions de pagination. Vous pouvez définir n'importe quelle de ces valeurs pour cet attribut : PAGE : pour activer la pagination et les messages de pagination au delà de la limite définie sur le disque, DROP : pour supprimer silencieusement les messages qui excèdent la linite définie, FAIL : pour supprimer les messages et envoyer une exception aux producteurs de messages au client, BLOCK : pour bloquer les producteurs de messages client quand ils envoient des messages au delà de la limite définie
page-max-cache-size 5
Le système conservera des fichiers de pagination à hauteur de page-max-cache-size en mémoire pour optimiser l'Input/Output pendant la navigation de pagination

Important

Si vous ne souhaitez pas paginer des messages quand la taille maximum est atteinte, vous pouvez configurer une adresse pour pouvoir supprimer les messages tout simplement, supprimer les messages avec une exception côté client ou bloquer les producteurs de messages pour qu'ils cesent d'envoyer des messages supplémentaires, en définissant address-full-policy à DROP, FAIL ou BLOCK respectivement. Dans la configuration par défaut, toutes les adresses devront être configurées pour paginer les messages une fois qu'une adresse atteint max-size-bytes.
Adresses avec files d'attente multiples

Quand un message est rerouté vers une adresse ayant plusieurs files d'attente, il n'y aura qu'un message en mémoire. Chaque file d'attente gère une référence du message. Ainsi, la mémoire n'est libérée que quand toutes les files d'attente référençant le message auront délivré le message.

Note

Un abonnement/ ou file d'attente lazy peuvent réduire la performance Input/Output de toute l'adresse car toutes les files d'attente auront des messages envoyés par l'intermédiaire d'un stockage supplémentaire dans le système de pagination.