Optimisation de documents en ligne d’entrée et impacts sur la mémoire JVM

Si vous traitez régulièrement des documents de petite taille, vous pouvez améliorer les performances associées à la vitesse de transfert des documents et à l’espace de stockage. Pour ce faire, implémentez les configurations de produit AEM forms suivantes :

  • Augmentation de la taille maximale de la ligne d’entrée (document par défaut) d'AEM forms afin qu’elle soit supérieure à la taille de la plupart des documents.

  • Pour le traitement de fichiers plus volumineux, spécification de répertoires de stockage situés sur un système de disque à grande vitesse ou un disque RAM.

La taille maximale de la ligne d’entrée et les répertoires de stockage (répertoire des fichiers temporaires et répertoire de stockage global d'AEM forms) sont configurés dans Administration Console.

Taille du document et taille maximale de la ligne d’entrée

Lorsque la taille d’un document à traiter avec AEM forms est inférieure ou égale à la taille maximale de la ligne d’entrée du document par défaut, le document est stocké sur le serveur de la ligne d’entrée et sérialisé sous la forme d’un objet Adobe Document. Le stockage de documents de ligne d’entrée peut considérablement accroître les performances. Toutefois, si vous utilisez le processus des formulaires, le contenu peut également être stocké dans la base de données à des fins de suivi. Par conséquent, une augmentation de la taille maximale de la ligne d’entrée peut affecter la taille de la base de données.

Un document dont la taille est supérieure à la taille maximale de la ligne d’entrée est stocké dans le système de fichiers local. L’objet Adobe Document transféré au serveur ou par ce dernier n’est qu’un pointeur permettant de localiser ce fichier.

Lorsque le contenu du document est en ligne d’entrée (c’est-à-dire qu’il est inférieur à la taille maximale de la ligne d’entrée), il est enregistré dans la base de données (dans le cadre de la charge utile de sérialisation du document). Par conséquent, une augmentation de la taille maximale de la ligne d’entrée peut affecter la taille de la base de données.

Modification de la taille maximale de la ligne d’entrée

  1. Dans Administration Console, cliquez sur Paramètres > Paramètres de Core System > Configurations.

  2. Saisissez une valeur dans le champ Taille maximale par défaut de la ligne d’entrée du document, puis cliquez sur OK.

Remarque : la taille maximale par défaut de la ligne d’entrée équivaut à 65 536 octets.

Taille de tas maximale de la JVM

L’augmentation de la taille maximale de la ligne d’entrée nécessite plus de mémoire pour le stockage des documents sérialisés. Une augmentation de la taille maximale du tas de la JVM est donc généralement nécessaire.

Un système lourdement chargé et traitant un grand nombre de documents peut rapidement saturer la mémoire du tas JVM. Pour éviter de saturer la mémoire (OutOfMemoryError), vous devez augmenter la taille maximale du tas de la JVM d’un volume correspondant à la taille des documents de la ligne d’entrée multipliée par le nombre de documents généralement exécutés à un moment donné.

Taille maximale du tas de la JVM = (taille des documents de ligne d’entrée) x (nombre moyen de documents traités)

Calcul de la taille maximale du tas de la JVM

Dans cet exemple, la taille maximale actuelle du tas de la JVM est de 512 Mo et la taille maximale de la ligne d’entrée, de 64 Ko. Vous devez configurer le serveur pour le scénario suivant : 10 tâches sont exécutées simultanément et chacune compte 9 fichiers d’entrée et un fichier de résultats (soit un total de 10 fichiers par tâche et 100 fichiers traités simultanément). La taille de chaque fichier ne dépasse pas 512 Ko.

Pour stocker tous les fichiers dans la ligne d’entrée, la taille maximale de cette dernière doit être de 512 Ko au minimum.

Utilisez l’équation suivante pour calculer l’augmentation requise de la taille maximale du tas de la JVM :

(512 Ko) x (100) = 51 200 Ko ou 50 Mo

Vous devez augmenter la taille maximale du tas JVM de 50 Mo pour un total de 562 Mo.

Fragmentation du tas

Si vous réglez la taille des documents de ligne d’entrée sur de grandes valeurs, vous augmentez le risque d’apparition d’erreurs OutOfMemoryError sur les systèmes sujets à la fragmentation du tas. Pour stocker un document de ligne d’entrée, il faut que la mémoire du tas JVM dispose d’un espace contigu suffisant. Certains systèmes d’exploitation, JVM et algorithmes collecteurs sont sujets à la fragmentation du tas. La fragmentation réduit la quantité d’espace de tas contigu et peut générer un message de mémoire saturée (OutOfMemoryError) même si l’espace disponible total est suffisant.

Par exemple, les précédentes opérations sur le serveur d’applications ont laissé le tas JVM dans un état fragmenté et le collecteur est incapable de compresser suffisamment le tas pour récupérer de grands blocs d’espace libre. Une erreur OutOfMemoryError peut se produire même si vous augmentez la taille maximale du tas JVM en fonction de la ligne d’entrée.

Pour éviter une fragmentation du tas, la taille du document de ligne d’entrée ne doit pas dépasser la taille totale du tas de plus de 0,1 %. Par exemple, une taille maximale du tas JVM de 512 Mo peut prendre en charge une taille maximale de ligne d’entrée de 512 Mo x 0,001 = 0,512 Mo, soit 512 Ko.