Last modified by Aurelie Bertrand on 2025/10/03 09:39

Show last authors
1 {{ddtoc/}}
2
3 ----
4
5 DigDash Enterprise fournit un service de maintenance composé :
6
7 * D’un nettoyeur de fichiers (connu aussi en tant que Files GC) nettoyant l'ensemble des fichiers inutilisés : vieux fichiers de l'historique, cubes et autres fichiers dépendant des flux.
8 * D’une sauvegarde automatique de la configuration
9
10 = Nettoyeur de fichiers =
11
12 Le nettoyeur nettoie les fichiers non utilisés par les portefeuilles des utilisateurs et des rôles.
13
14 Le nettoyage parcourt les index de tous les utilisateurs, ainsi que le disque, afin de trouver les fichiers qui ne sont plus liés aux index. Les fichiers identifiés sont supprimés. Les fichiers effacés sont les suivants : fichiers de cubes (.dcg), fichiers js des cubes (cube_data_id.js), modèles (cube_dm_id.js) et flux (cube_view_id_js).
15
16 Cette opération présente l'avantage de libérer de l'espace disque et potentiellement d'accélérer les recherches de fichiers js, qui peuvent devenir non négligeables sur des volumétries importantes (nombre de cubes personnels * nb historiques > 100000)
17
18 Selon l'âge du serveur et la volumétrie des fichiers concernés (nombre de rafraîchissements effectués...), l'opération peut prendre beaucoup de temps lors de sa première exécution (sur certains déploiements comportant beaucoup d'utilisateurs et beaucoup de cubes personnalisés, une à deux heures).
19
20 Ensuite, si le nettoyage est fait de manière régulière, le temps d'exécution sera moins long. Ce temps dépend énormément de la performance du système de fichiers et de la machine, ce qui le rend difficilement estimable.
21
22 = Sauvegarde automatique =
23
24 La sauvegarde automatique est effectuée avant le nettoyage des fichiers. Le fichier généré est copié dans le Répertoire de travail (AppData): **<digdash.appdata>/Enterprise Server/<domaine>/backups/<date du jour>.zip.**
25 Cette sauvegarde n'inclut pas les sources de données afin de limiter le volume des fichiers.
26
27 Par défaut, la maintenance se fait tous les jours à minuit.
28
29 (% class="box errormessage" %)
30 (((
31 **Important :**
32
33 Par défaut le service de maintenance ne se lance que si aucune session utilisateur n'est active à ce moment. De plus, pendant son fonctionnement aucun utilisateur ne peut se connecter à DigDash Enterprise. Attention donc à bien le programmer pour qu'il n'interfère pas avec l'utilisation normale de DigDash Enterprise par les utilisateurs, ni par l'ordonnanceur. Selon les cas nous conseillons de programmer le service de maintenance la nuit, et à des plages horaires différentes des plages de l'ordonnanceur.
34 )))
35
36 = Activation, désactivation et/ou nettoyage au démarrage =
37
38 Ce paragraphe décrit comment activer et programmer le service de maintenance.
39 L'activation du nettoyeur de fichiers peut se faire de deux manières :
40
41 == Depuis la page état du serveur ==
42
43 La page **Etat du serveur** est accessible depuis la page d'accueil de DigDash Enterprise puis en cliquant successivement sur les boutons **Configuration **et **Etat du serveur**.
44
45 Dans la rubrique **Etat du nettoyeur de fichiers**, cliquez sur la flèche bleue figurant à côté de **Service de maintenance démarré** pour démarrer le nettoyeur :
46
47 [[image:Maintenance_service_FR.png||alt="Service maintenance"]]
48
49 Dans cet exemple, le prochain nettoyage aura lieu à minuit. C'est l'heure de nettoyage par défaut si aucune n'est définie dans **system.xml**, par le paramètre **FILESGC_SCHEDXML**. Consultez le paragraphe [[Programmation et options de la maintenance automatique>>doc:||anchor="Options_auto"]] pour plus de détails sur la programmation du nettoyeur.
50 Pour démarrer le nettoyeur de fichiers immédiatement, cliquez sur l’icône [[image:1700040675471-344.png]].
51
52 Cette activation du service de maintenance a un comportement spécifique équivalent à l'évènement interne //FORCE_FILESMAINTENANCE : //il est demandé au nettoyeur de fichier de démarrer une opération de nettoyage. Toutes les sessions courantes sont fermées. Le gestionnaire de sessions et l'ordonnanceur sont arrêtés et redémarrés une fois l'opération terminée.
53
54 == Depuis le fichier digdash.properties ==
55
56 Fichier modifié : **digdash.properties**
57 Voir le chapitre "[[Externalisation des paramètres dans un fichier properties>>doc:Digdash.deployment.configuration.advanced_system_guide.other_advanced_parameters.WebHome||anchor="externalisation"]]" pour effectuer cette manipulation.
58
59 Active ou non le module Files GC et/ou lance le nettoyage au démarrage du serveur.
60
61 (% class="box infomessage" %)
62 (((
63 ℹ Les tâches en cours (tâches planifiées) entraîneront l'annulation du service de maintenance. Une nouvelle tentative sera effectuée 1h plus tard. Au bout de 5 tentatives en échec, le service ne passera plus (5 nouvelles tentatives maximum) et sera reporté à la prochaine date de maintenance planifiée.
64 )))
65
66 Paramètres disponibles :
67
68 * //Nom// : **ddenterpriseapi.startCleaner**
69 //Valeur// : booléen (défaut : false)
70 //Description// :
71 ** true : nettoyage automatique des fichiers programmé.
72 //Note: l'heure du nettoyage est définie dans **system.xml**, par le paramètre **FILESGC_SCHEDXML**.
73 L'heure de nettoyage par défaut (si aucune n'est spécifiée dans system.xml, FILESGC_SCHEDXML) est tous les jours à 0:00//
74 ** false (défaut) : pas d'utilisation du nettoyeur de fichiers
75 * //Nom// : **ddenterpriseapi.cleanOnStart**
76 //Valeur// : booléen (défaut : false)
77 //Description// :
78 ** true : nettoie les fichiers inutilisés au démarrage du serveur (fichiers de l'historique, cubes, fichiers résultats,...)
79 ** false (défaut) : ne nettoie pas les fichiers inutilisés au démarrage du serveur
80 * //Nom// : **ddenterpriseapi.autoBackup**
81 //Valeur// : booléen (défaut : false)
82 //Description// :
83 ** ***. true : active la sauvegarde automatique programmée**
84 ** false (défaut) : n’active pas la sauvegarde automatique programmée
85
86 (% class="box warningmessage" %)
87 (((
88 Dans le fichier **digdash.properties**, tous les paramètres sont préfixés du nom de l'application concernée.
89 Ici par défaut il s'agit de ddenterpriseapi (ddenterpriseapi.war).
90 Si vous avez renommé cette application, par exemple en **ddapi_dev.war**, les paramètres deviennent **ddapi_dev.startCleaner**, **ddapi_dev.cleanOnStart, ...**
91 )))
92
93 = Programmation et options de la maintenance automatique{{id name="Options_auto"/}} =
94
95 Fichier modifié : **system.xml**.
96
97 Les paramètres disponibles sont listés ci-dessous.
98
99 (% class="wikigeneratedid" id="HFILESGC_SCHEDXML" %)
100 **FILESGC_SCHEDXML**
101
102 //Valeur// : phrase XML (encodée) (défaut : aucune)
103 //Description// : Ce paramètre contient une phrase XML //encodée// décrivant la fréquence de programmation.
104
105 Exemple :
106
107 {{code cssClass="notranslate" language="xml"}}
108 <Property key="FILESGC_SCHEDXML"
109 value="&lt;Schedule frequency=&quot;daily&quot;
110 fromDay=&quot;11&quot; fromHour=&quot;0&quot;
111 fromMinute=&quot;0&quot; fromMonth=&quot;7&quot;
112 fromYear=&quot;2021&quot; periods=&quot;1&quot;
113 time=&quot;0:0&quot;/&gt;"></Property>
114 {{/code}}
115
116 Les attributs sont les suivants :
117
118 * **frequency **:  **hourly**, **daily, weekly **ou **monthly**.
119 * **fromDay**, **fromHour**, **fromMinute, fromMonth**, **fromYear** : date de démarrage (❗//fromMonth// commence à 0 pour janvier). En général, il faut mettre une date dans le passé.
120 * **periods **:** **nombre d'heures, jours ou mois (selon la fréquence choisie) entre 2 nettoyages.
121 * **time** (heure du nettoyage pour les fréquences daily, weekly et monthly.
122
123 L'exemple ci-dessus signifie ainsi tous les jours (frequency="daily" et periods="1") à 0:00 (time="0:0").
124
125 Pour une fréquence hebdomadaire (weekly), on aura un attribut supplémentaire **weekDays** avec les valeurs suivantes (à additionner pour un déclenchement plusieurs jours de la semaine. Par exemple, lundi et mercredi : 2 + 8 = 10) :
126
127 * dimanche : 1
128 * lundi : 2
129 * mardi : 4
130 * mercredi : 8
131 * jeudi : 16
132 * vendredi : 32
133 * samedi : 64
134
135 Par exemple, pour une programmation toutes les 2 semaines, le lundi et le jeudi, à 18:00, à partir du 1er janvier 2025 00:00, la propriété aura la valeur suivante :
136
137 {{code language="xml"}}
138 <Property key="FILESGC_SCHEDXML"
139 value="&lt;Schedule frequency=&quot;weekly&quot;
140 fromDay=&quot;1&quot; fromHour=&quot;0&quot;
141 fromMinute=&quot;0&quot; fromMonth=&quot;0&quot;
142 fromYear=&quot;2025&quot; periods=&quot;2&quot;
143 time=&quot;0:0&quot; weekDays=&quot;18&quot;/&gt;">
144 </Property>
145 {{/code}}
146
147 **FILESGC_SESSIONSCHECK**
148
149 //Valeur// : true/false (booléen) (défaut : aucune, équivaut à true)
150 //Description// : Ce paramètre indique si le nettoyeur de fichiers doit vérifier les sessions actives (utilisateurs connectés) avant de se lancer (true), ou s'il se lance quel que soit le statut des sessions actives (false). Dans ce dernier cas, toutes les sessions seront déconnectées instantanément.
151
152 Exemple :
153
154 {{code language="xml" cssClass="notranslate"}}
155 <Property key="FILESGC_SESSIONSCHECK" value="false"></Property>
156 {{/code}}
157
158 (% id="cke_bm_783S" style="display:none" %)** **(%%)**FILESGC_TASKSCHECK{{id name="task"/}}**
159
160 //Valeur// : true/false (booléen) (défaut : aucune, équivaut à true)
161 //Description// : Ce paramètre indique si le nettoyeur de fichiers doit vérifier les tâches actives avant de se lancer (true), ou s'il se lance quel que soit le statut des tâches actives (false). Dans ce dernier cas, toutes les tâches seront interrompues.
162
163 Exemple :
164
165 {{code language="xml" cssClass="notranslate"}}
166 <Property key="FILESGC_SESSIONSCHECK" value="false"></Property>
167 {{/code}}
168
169 (% class="box" %)
170 (((
171 💡 **Combinaison des paramètres //FILESGC_SESSIONSCHECK// et //FILESGC_TASKSCHECK//**
172
173
174 * __Cas 1 __: //FILESGC_SESSIONCHECK = true// et //FILESGC_TASKCHECK = true// (comportement par défaut).
175 ➡ Le service de maintenance passe uniquement si aucune session utilisateur et aucune tâche n'est active.
176 * __Cas 2 __: //FILESGC_SESSIONCHECK = false// et //FILESGC_TASKCHECK = true//.
177 ➡ Le service de maintenance passe quel que soit le statut des sessions mais est annulé si des tâches sont actives.
178 * __Cas 3 __: //FILESGC_SESSIONCHECK = false// et //FILESGC_TASKCHECK = false//.
179 ➡ Le service passe quel que soit le statut des sessions et des tâches. Les sessions actives dont déconnectées et les tâches actives sont interrompues.
180 * __Cas 4 __: //FILESGC_SESSIONCHECK = true// et //FILESGC_TASKCHECK = false//.
181 ➡ Le service de maintenance passe s'il n'y a aucune session active (utiilisateur connecté), quel que soit l'état des tâches. Le cas échéant, les tâches sont interrompues.
182 )))
183
184 **USEAUTOBACKUP{{id name="auto"/}}**
185
186 //Valeur// : true/false (booléen) (défaut : aucune, équivaut à false)
187 //Description// : Ce paramètre indique si le service de maintenance effectue aussi une sauvegarde complète de la configuration avant d’exécuter le nettoyage des fichiers.
188
189 (% class="box" %)
190 (((
191 💡** Programmation de la sauvegarde automatique**
192 \\La sauvegarde automatique est effectuée selon la programmation définie pour la maintenance automatique (paramètre //FILESGC_SCHEDXML)// quel que soit le statut des sessions ou des tâches. Il est ainsi possible que la sauvegarde automatique soit effectuée mais que le nettoyage des fichiers ne soit pas exécuté. Par exemple, dans le cas où le service de maintenance vérifie les tâches actives avant de se lancer et qu'il en existe.
193 La sauvegarde automatique ne sera pas effectuée lors des nouvelles tentatives de nettoyage des fichiers.
194 )))
195
196 **PROP_FILESGC_MIN_FILE_AGE**
197
198 //Valeur// : nombre (minutes) (défaut : 0)
199 //Description// : Ce paramètre indique l'age minimum en minutes qu'un fichier doit avoir pour être effacé (s'il doit être effacé). Si le fichier est plus récent que cette valeur alors il ne sera pas effacé.
200
201 **PROP_FILESGC_FASTMODE**
202
203 //Valeur// : true/false (booléen) (défaut : aucune, équivaut à false)
204 //Description// : Ce paramètre indique si le service de maintenance doit ouvrir une session pour chaque utilisateur du système (false, le cas normal) ou s'il peut s'en passer (true). S'il est activé, alors le scan des fichiers à nettoyer est plus rapide mais au risque de ne pas effacer certains fichiers, par exemple ceux des flux et modèles qui ont été supprimés mais qui ont encore des données sur le disque.
205
206 **PROP_FILESGC_MAXTIME**
207
208 //Valeur// : nombre (minutes) (défaut : -1, équivaut à aucune limite)
209 //Description// : Ce paramètre indique le temps maximum dédié au nettoyage des fichiers. Si le temps est dépassé, alors le nettoyage des fichiers est interrompu et il restera des fichiers à nettoyer pour la fois suivante. //Attention : si ce temps est déraisonnablement court, le nettoyeur peut ne rien faire. Cette valeur est très dépendante de la configuration de Digdash et doit être réglée en fonction des temps de nettoyage complet constatés en moyenne.//
210
211 **PROP_FILESGC_RETRY_MAX_TIME**
212
213 //{{id name="retry"/}}Valeur// : nombre (minutes) (défaut : 360)//
214 Description// : Ce paramètre indique la durée maximale pendant laquelle le nettoyeur de fichiers effectue des tentatives de nettoyage dans le cas où celui-ci a échoué (en raison de sessions ou tâches actives).
215 Par exemple, si la valeur est définie à 360, il va effectuer des tentatives pendant 6 heures maximum après la première tentative.
216
217 **PROP_FILESGC_RETRY_PERIOD**
218
219 //Valeur// : nombre (minutes) (défaut : 60)//
220 Description// : Ce paramètre indique le temps entre 2 tentatives de nettoyage des fichiers dans le cas où celui-ci a échoué (en raison de sessions ou tâches actives).
221 Par exemple, si la valeur est définie à 60, il va repasser toutes les heures en cas d'échec de la tentative précédente et ce, pendant la durée maximale définie dans le paramètre //PROP_FILESGC_RETRY_MAX_TIME//.