20.5.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,
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 20.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 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.