Configuration
Configuration de l’antivirus
Désactiver le scan du dossier et des sous-dossiers de la Rendition.
Configuration du cache
Local vs Shared
ARender utilise Hazelcast pour gérer le cache.
Cache local
Par défaut, chaque instance de Rendition maintient son propre cache, ce qui implique que les données en cache ne sont pas partagées entre toutes les instances de Rendition.
Cache partagé
Avec un NFS (Network File System) partagé et un Hazelcast correctement configuré, les données peuvent être partagées entre toutes les instances de Rendition.
Avantages du cache partagé:
- Redondance Améliorée : En cas de panne d’une instance, les autres peuvent toujours accéder aux documents mis en cache sans avoir à les récupérer à nouveau.
- Performance Optimisée : Réduit le temps de récupération des documents, car ceux déjà mis en cache restent disponibles pour toutes les instances, améliorant ainsi la rapidité et la fiabilité dans des environnements multi-instances.
Pour des informations complètes sur Hazelcast, consultez la documentation Hazelcast.
Configuration par Défaut de Hazelcast
Le fichier de configuration (hazelcast.yaml) se trouve dans les ressources de RenditionEngine.
Le chemin pour accéder à la configuration est modules/RenditionEngine/rendition-engine-micro-service-2023.6.0.jar/BOOT-INF/classes/hazelcast.yaml.
hazelcast:
map:
documentAccessors:
max-idle-seconds: 3600
eviction:
eviction-policy: NONE
max-size-policy: PER_NODE
size: 5
network:
join:
auto-detection:
enabled: false
rest-api:
enabled: true
endpoint-groups:
CLUSTER_READ:
enabled: true
HEALTH_CHECK:
enabled: true
WAN:
enabled: true
DATA:
enabled: true
Propriété | Description |
---|---|
max-idle-seconds | Cette propriété permet de définir le temps où le document est gardé en cache. Cette valeur est en seconde. Par défaut, un document reste en cache 1 heure, donc la valeur par défaut est 3600. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast. |
eviction-policy | Cette propriété permet de définir la politique d’éviction des documents en cache lorsque la valeur maximale du cache est dépassé. Par défaut, la valeur est NONE ce qui correspond à aucune éviction et que la taille maximum est ignoré. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast. |
max-size-policy | Cette propriété définie comment Hazelcast va calculer la taille maximum du cache. Par défaut la valeur est PER_NODE qui définie que la taille maximum du cache est appliqué pour chaque membre du cluster. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast. |
size | Cette propriété définie la taille maximum du cache. Par défaut la valeur est 5. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast. |
network.join.auto-detection | Cette propriété permet de définir le mécanisme de détection d’Hazelcast des membres d’un clusters sur le même réseau. Par défaut la valeur est false. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast. |
Nettoyage du répertoire temporaire au démarrage
Bien que Hazelcast gère l’éviction des entrées dans le cache, il est aussi possible de configurer un nettoyage du répertoire de cache au démarrage de l’application en utilisant :
Configuration
default.document.path.startup.clear=true
Paramétrage du Temps de Nettoyage
Par défaut, tous les dossiers créés il y a plus d’un jour sont supprimés.
Vous pouvez ajuster cette valeur en modifiant la configuration ci-dessous :
temp:
files:
folder: ../../tmp/
house-keeping:
expiration:
time: 1
unit: DAYS
Property | Description |
---|---|
time | La valeur numérique du temps |
unit | L’unité de temps associée, qui peut être “SECONDS”, “MINUTES”, “HOURS” et “DAYS” |
rest-api
L’API REST est activé par défaut avec la propriété enabled: true. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast.
endpoint-groups
Cette section permet de définir les endpoint group qui peuvent être utilisés avec l’API REST. Vous pouvez retrouver plus de détails sur la documentation associé d’Hazelcast.
CLUSTER_READ
Permet l’accès aux endpoints suivants :
- /hazelcast/rest/cluster
- /hazelcast/rest/management/cluster/state
- /hazelcast/rest/license (GET)
- /hazelcast/rest/management/cluster/version (GET)
- /hazelcast/rest/management/cluster/nodes
- /hazelcast/rest/instance
- /hazelcast/rest/log-level (GET)
HEALTH_CHECK
Permet l’accès aux endpoints suivants :
- /hazelcast/health/node-state
- /hazelcast/health/cluster-state
- /hazelcast/health/cluster-safe
- /hazelcast/health/migration-queue-size
- /hazelcast/health/cluster-size
- /hazelcast/health/ready
Personnalisation de la Configuration Hazelcast
Pour personnaliser la configuration Hazelcast, créez votre propre fichier hazelcast.yaml et copiez-y la configuration du fichier ARender-Rendition-2023.6.0\modules\RenditionEngine\rendition-engine-micro-service-2023.6.0.jar\BOOT-INF\classes\hazelcast.yaml.
Après avoir créé votre fichier de configuration, modifiez le fichier custom-setenv.bat (ou custom-setenv.sh) pour indiquer le chemin du nouveau fichier.
Ajoutez l’argument suivant à la liste des arguments JVM : -Dhazelcast.config=chemin_vers_votre_fichier.
Si le chemin spécifié est hazelcast.yaml, alors le fichier doit être placé dans le dossier ARender-Rendition-2023.6.0\modules\RenditionEngine.
set ARENDER_BROKER_JVM_ARGS=-Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -Dloader.path="client_libs/" -Dfile.encoding=UTF-8 -Dhazelcast.config=hazelcast.yaml
Paramètres du Répertoire de Cache
Pour des Répertoires de Cache Séparés entre Plusieurs Instances de Rendition
Désactivation de l’Auto-Détection
Assurez-vous que la propriété d’auto-détection est désactivée (c’est le paramètre par défaut).
Configuration du Web-UI
Spécifiez chaque hôte de Rendition dans la configuration du serveur Web-UI. La distribution des tâches sera gérée en fonction de l’état de santé des instances de Rendition.
Les détails de configuration sont disponibles sur la page dédiée.
Pour des Répertoires de Cache Partagés entre Plusieurs Instances de Rendition
Ouverture du port Hazelcast
Par défaut, Hazelcast utilise le port 5701. Assurez-vous que ce port soit ouvert sur tous les serveurs de Rendition pour permettre la communication.
Activation de l’Auto-Détection
Activez l’auto-détection pour permettre à Hazelcast de reconnaître toutes les instances de Rendition.
Emplacement des Instances de Rendition
Vérifiez que toutes les instances de Rendition sont sur le même sous-réseau pour permettre le partage de cache.
Configuration du Répertoire Partagé
Pour utiliser Hazelcast avec plusieurs instances de Rendition et un répertoire partagé, le répertoire doit être hébergé sur un système de fichiers partagé de type NFS.
Chaque microservice doit spécifier l’emplacement du répertoire de cache partagé dans le fichier application.yaml.
temp:
files:
folder: ../../tmp/
shared-files:
sharedPath: ../../tmp/
shared-files:
sharedPath: ../../tmp/
tmp:
dir:
doc: ../../tmp/
shared-files:
sharedPath: ../../tmp/
Load Balancer
Configurer le Web-UI avec un Load Balancer
Cette configuration est nécessaire uniquement si le cache est partagé entre plusieurs instances de Rendition. Voir :
Si un Load Balancer est présent entre le Web-UI et les instances de Rendition, indiquez l’hôte du Load Balancer dans la configuration du serveur Web-UI, au lieu de lister les hôtes des instances de Rendition individuelles.
arender.server.rendition.hosts=LOAD_BALANCER_HOST
Les détails de configuration sont trouvables sur la page dédiée.
Configurer le Web-UI sans Load Balancer
Si aucun Load Balancer n’est utilisé, spécifiez chaque hôte de Rendition dans la configuration du serveur Web-UI. La distribution des tâches sera gérée en fonction de l’état de santé des instances de Rendition.
Vous trouverez la configuration détaillée sur la page dédiée.
Configuration du Système de Fichiers en Réseau (NFS)
Cette configuration est nécessaire uniquement si le cache est partagé entre plusieurs instances de Rendition. Voir :
Une configuration NFS correcte est essentielle pour synchroniser les différents nœuds. Deux optimisations principales peuvent entraîner une désynchronisation des clients NFS :
- Écriture asynchrone (par défaut) : Cette option est activée par défaut.
- Cache de lecture local : La configuration NFS doit inclure les options suivantes pour assurer la synchronisation des clients :
sync,noac,lookupcache=none
Références :
nfs(5) - Linux man page 10.3
NFS Red Hat Enterprise Linux 6
Sélection du backend Office (Optionnel)
ARender propose trois configurations pour la conversion de documents Office en PDF, chacune ayant ses avantages et inconvénients :
-
LibreOffice
- Description : Convertit les documents Microsoft, OpenOffice et LibreOffice.
- Avantages : Gratuit et open-source, compatible avec de nombreux formats.
- Inconvénients : La qualité de conversion peut varier sur les documents complexes ; support limité pour la résolution de problèmes.
-
Microsoft Office
- Description : Convertit les documents Microsoft, OpenOffice et LibreOffice.
- Avantages : Excellente qualité de conversion, particulièrement pour les fichiers Office complexes.
- Inconvénients : Nécessite une licence Microsoft Office, ce qui ajoute un coût supplémentaire.
-
DirectOffice (Recommandé pour une expérience Premium)
- Description : Convertit les documents Microsoft ; utilise LibreOffice pour les fichiers OpenOffice et LibreOffice.
- Avantages : Conversion rapide et de haute qualité ; résolution rapide des problèmes avec le support Uxopian.
- Valeur ajoutée : Idéal pour les entreprises recherchant une qualité constante et un support technique fiable.
Pour activer DirectOffice, il doit être configuré pour être associé aux types MIME souhaités :
- Ouvrez le dossier modules\TaskConversion
- Modifiez application-security.yml
- Ajoutez le contenu suivant :
mimetype:
support:
msoffice: "${mime.type.msoffice.publisher},${mime.type.msoffice.visio},${mime.type.msoffice.rtf},${mime.type.msoffice.project}"
libreoffice: "${mime.type.libreoffice.text},${mime.type.libreoffice.sheet},${mime.type.libreoffice.presentation},${mime.type.libreoffice.graphics}"
directoffice: "${mime.type.msoffice.word},${mime.type.msoffice.excel},${mime.type.msoffice.powerpoint}"
Versions de Microsoft Office compatibles
Microsoft Office 2013 et versions ultérieures. Compatible avec Office 365 si le serveur est connecté à Internet. Nous recommandons également de maintenir Office à jour.
Options d’installation
Installation automatique
- Téléchargez et décompressez AromsCheck
- Exécutez runCheck.bat pour un paramétrage automatique.
Installation manuelle
Ignorez cette installation manuelle si l’installation automatique a réussi.
- Téléchargez et installez les logiciels suivants :
- .Net 4.5 : Télécharger
- Microsoft Visual C++ redistribuable 2010 : Télécharger
- Microsoft Visual C++ redistribuable 2008 : Télécharger
Configuration
Configuration système Windows
Créez les dossiers système ci-dessous
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
Note de configuration importante
- Exécutez le service de rendu avec un compte local : Assurez-vous que le compte utilisé (Administrateur ou non) peut ouvrir Microsoft Office sans fenêtres contextuelles, celles-ci pouvant interrompre le rendu.
- Configuration de conversion Excel : Ouvrez Excel avec l’utilisateur qui lancera ARender Rendition. Une imprimante par défaut doit être configurée dans Excel (par exemple, une imprimante de sortie XPS) ; sinon, Excel ne pourra pas gérer la mise en page et les conversions.
- Évitez les imprimantes de sessions à distance : Ne définissez pas une imprimante de session distante comme imprimante par défaut, car elle se déconnectera en fin de session, interrompant les conversions.
Configuration ARender pour Microsoft Office
Pour configurer le rendu de documents Microsoft Office :
- Ouvrez le dossier suivant : modules\TaskConversion\aroms2pdf
- Modifiez aroms.properties
Propriété | Valeur par défaut | Détail |
---|---|---|
PDF/A | false | PDFs généré par ARender sont des PDF/A |
processAutoKill | false | Termine les anciens processus Office au démarrage de Aroms |
TimeoutS | 120 | Temps maximum de conversion pris par ARender pour générer un PDF via MS Office. Au delà de ce temps, le processus est terminé |
AromsHost | http://localhost:8000/ | URL sur laquelle Aroms est exposé |
LockFields | false | Désactive la mise à jour des champs variable (comme les dates) du document Office |
IgnorePrintAreas | true | Désactive l’impression des lignes vides |
FitSheetOnOnePage | true | True: MS Office va imprimer le document sur une seule page. False: Comportement par défaut de MS Office (découpage en plusieurs page si le document est trop grand). |
PDFOwl : une alternative pour le rendu de documents
Description
Nous avons introduit PDFOwl comme alternative au moteur de rendu de documents standard JNIPdfEngine.
Dans la configuration actuelle du moteur de rendu de documents, des erreurs dans la bibliothèque native peuvent entraîner le crash complet de l’application, ces problèmes se produisant à un niveau bas et ne pouvant pas être interceptés au niveau de l’application.
Pour renforcer la stabilité, PDFOwl adopte une approche résiliente tout en préservant la performance. Il gère les demandes de rendu via des sous-processus, permettant ainsi de traiter les erreurs sans impact sur le processus principal.
Installation
- Accédez à : modules\RenditionEngine,
- Ouvrez ou créez le fichier application.properties,
- Ajoutez la propriété suivante :
micro-services.pdf-renderer=PDFOwl
Configurations
PDFOwl propose plusieurs propriétés configurables avec des valeurs par défaut listées ci-après.
Pour modifier ces valeurs :
- Accédez au dossier : modules\PDFOwl,
- Ouvrez ou créez le fichier application.properties,
- Ajoutez la (ou les) propriété(s) et la (leur) valeur souhaitée.
# Chemin du binaire PdfOwl
pdfowl.path=pdfowl
# Timeout d'exécution des commandes pdfowl en millisecondes
pdfowl.client.watchdog=10000
# Timeout pour les clients pdfOwl inactifs en millisecondes
pdfowl.client.ttl=30000
# Limite mémoire utilisée par un thread pour travailler sur un document unique
pdfowl.memlimit.mb=1024