Le traitement des bases ======================= Certaines opérations traitent dans leur intégralité les bases JEVEUX, elles sont indispensables pour initier le système de gestion de mémoire, mais sont aussi utilisées en fin de processus. Attention, le contenu des bases est systématiquement enrichie lors de l'exécution de la commande Aster POURSUITE, et il est indispensable de terminer l'exécution par la commande FIN pour fermer proprement les fichiers d'accès direct. Seul un arrêt avec un message UTMESS du type permet au SUPERVISEUR de valider les concepts créés et de fermer proprement les fichiers d'accès directs par appel à la routine JEFINI **L'ouverture d'une base** La longueur des enregistrements du fichier d'accès direct et la longueur initiale du répertoire de noms restent les seuls paramètres réglables associés aux bases JEVEUX. Ils sont précisés lors de l'appel à la routine JEINIF, on indique aussi le statut de la base en début de travail pour éventuellement rouvrir un fichier existant, le statut en fin de travail permet d'éviter des entrées/sorties superflues si la base n'est pas conservée. La réouverture d'une base (commande POURSUITE dans le *Code_Aster* ou lecture du catalogue des éléments compilés) requiert la connaissance de la longueur des enregistrements du fichier d'accès direct et du contenu de certains objets système, le premier enregistrement contient les données indispensables à la reconstitution de ces diverses informations. La routine JXLIR1 est chargée de relire le début du premier enregistrement : on ouvre le fichier d'accès direct (avec un index dont la taille est fixée à 11), on lit les informations en début d'enregistrement, puis on referme le fichier. On peut ensuite ouvrir le fichier d'accès direct avec un tableau d'index de longueur convenable, et relire le contenu des objets système stocké sur disque lors de la précédente exécution. **La fermeture d'une base** L'opération de fermeture d'une base, réalisée par la routine JELIBF, consiste à libérer l'ensemble des objets qui y sont rattachés, avec éventuellement écriture sur disque et à actualiser les objets système. Deux boucles sont nécessaires pour libérer les objets : la première traite les collections, la seconde traite les objets simples. Les objets système sont ensuite déchargés, les adresses disque sont traitées en dernier, les tampons d'entrée/sortie sont vidés, enfin on actualise les caractéristiques de la base sur le premier enregistrement. Le fichier d'accès direct est ensuite fermé par appel à la routine JXFERM. **Le retassage d'une base** Lors des opérations de destruction d'objet JEVEUX, l'espace disque associé est marqué libre mais n'est pas systématiquement récupéré. Le retassage permet "combler" les vides en "remontant" les enregistrements. Il est donc nécessaire de modifier l'attribut adresse disque des objets contenus dans les enregistrements à déplacer. Cette opération est immédiate pour les objets simples, concernant les collections il faut avoir accès à l'objet système contenant les adresses disque (qui lui-même peut être situé l'enregistrement à déplacer!). Il n'y a pas de réorganisation au sein des enregistrements contenant les images de petits objets. On utilise la routine JETASS et on fait appel à la variante "JETASS" de la routine de libération JJLIDE. Cet utilitaire peut être directement appelé par la commande FIN dans le *Code_Aster* . **La recopie des bases** Cette opération doit être effectuée pour prendre en compte effectivement le retassage, les fichiers d'accès direct WRITDR ne pouvant être réduits en place. La routine JXCOPY travaille à partir de bases fermées et les restitue dans le même état. Cette utilitaire peut être appelé par la commande FIN dans le *Code_Aster* .