Paramètres de Up ! Object Management System

Paramètre d'exécution...
Configuration d'Up ! Object Management System...
Paramètres de la configuration de chaque entrepôt...
Exemple de configuration d'Up ! Object Management System...

Tous les programmes Up ! Application System possèdent les options énumérées ci-après. Certaines options font référence à des fichiers ou à des chemins d'accès. En ce cas, il est possible d'employer des variables environnement dans l'expression des chemins d'accès. Exemple :

Tmp=${UPS_HOME}/demo/tmp/${UPS_USER}

D'autre part, les séparateurs de répertoire peuvent être indifféremment / ou \.

Les options sont lues successivement dans :

ArchiverFichier permet de spécifier une commande d'archivage d'un fichier journal ou d'un fichier de persistance. Le paramètre NomFichier représente le nom du fichier à archiver. Par convention, le code retour 0 correspond à un fonctionnement correct de la commande d'archivage. Par défaut, il n'y a pas d'archivage des fichiers journaux ou de persistance.

ArchiverFichier=/users/outils/bin/monarchivage ${NomFichier}

EntrepotDefaut permet de spécifier le nom de l'entrepôt de mémoire par défaut dans laquelle seront créés les objets pour lesquels aucun entrepôt particulièr n'est spécifié. Par défaut, il s'agit de l'entrepôt système.

EntrepotDefaut=users

entrepotretour permet de spécifier le nom de l'entrepôt de mémoire dans laquelle seront conservées les valeurs des objets transactionnels avant qu'ils ne soient modifiés. Par défaut, il s'agit de l'entrepôt système.

EntrepotRetour=users

FichierPersistance permet de spécifier le nom du fichier mémorisant le dernier état de persistance du programme. Si le fichier n'existe pas, il s'agit alors de la première exécution du programme. Si le fichier existe, l'exécution du programme à l'état de persistance enregistré dans ce fichier. En ce cas, chaque entrepôt doit être persistant et leurs fichiers doivent dater de la même exécution que le fichier de persistance du programme. A l'issu de l'exécution, l'état du programme est enregistré dans les fichiers de persistance du programme et des entrepôts.

FichierPersistance=${UPS_HOME}/demo/upsoms/${APPLICATION}.uof

GardeVerrou permet de spécifier le temps maximal d'attente en secondes après un verrou lorsqu'il y a une concurrence d'accès entre deux tâches. Par défaut, ce délai est de 60 secondes. Si ce délai est expiré, une erreur est envoyée.

GardeVerrou=120

MaxImageAvant permet de calculer la taille d'un segment de mémoire dédié aux images avants des objets transactionnels en spécifiant le nombre de ces dernières par segment de mémoire. Ce nombre ne peut excéder les capacités du ramasse-miettes défini par la taille d'un bloc de mémoire multiplié par le nombre maximal de blocs contigus. Par défaut, la valeur est 0, ce qui signifie qu'un nombre maximal d'images avants est alloué.

MaxImageAvant=25

MaxObjet permet de calculer la taille d'un segment de mémoire dédié aux objets Objet en spécifiant le nombre de ces derniers par segment de mémoire. Ce nombre ne peut excéder les capacités du ramasse-miettes défini par la taille d'un bloc de mémoire multiplié par le nombre maximal de blocs contigus. Par défaut, la valeur est 0, ce qui signifie qu'un nombre maximal d'objets Objet est alloué.

MaxObjet=25

MaxType permet de calculer la taille d'un segment de mémoire dédié aux objets Type en spécifiant le nombre de ces derniers par segment de mémoire. Ce nombre ne peut excéder les capacités du ramasse-miettes défini par la taille d'un bloc de mémoire multiplié par le nombre maximal de blocs contigus. Par défaut, la valeur est 0, ce qui signifie qu'un nombre maximal d'objets Type est alloué.

MaxType=25

NbSessions permet de spécifier le nombre de sessions à Up ! Object Management System. Chaque tâche a sa propre session. Par défaut, la valeur est 8.

NbSessions=40

NbProcessus permet de spécifier le nombre de processus que Up ! Object Management System sait gérer simultanément sur un noyau d'exécution partagé. Par défaut, la valeur est 4.

NbProcessus=20

Noyau permet de spécifier le fichier contenant la configuration d'exécution de Up ! Object Management System. Par défaut, la valeur est upsoms. Le fichier du noyau d'exécution par défaut est donc ${UPS_HOME}/ini/upsoms.ini ou ${UPS_HOME}/ini/${UPS_USER}/upsoms.ini.

Noyau=monnoyau

PeriodeMoniteur permet de spécifier la période d'activation de la tâche Moniteur. Cette période est exprimée en secondes. Par défaut, la valeur est 0 aussi il n'y a pas de tâche Moniteur.

PeriodeMoniteur=300

PeriodePerformance permet de spécifier la période de mesure des performances du noyau par la tâche Moniteur. Cette période est exprimée en secondes. Par défaut, la valeur est 0 aussi il n'y a pas de mesure des performances.
Ce journal est conservé dans le fichier ${UPS_HOME}/log/${UPS_APPLICATION}-upskrn-${NumeroSession}.log en mode mono-utilisateur ou dans le fichier ${UPS_HOME}/log/${UPS_USER}/${UPS_APPLICATION}-upskrn-${NumeroSession}.log en mode multi-utilisateur.

PeriodePerformance=1

PeriodeSynchronisation permet de spécifier la période de synchronisation entre les fichiers de persistance des entrepôts et les fichiers journaux. Cette période est exprimée en secondes. Par défaut, la valeur est 180.

PeriodeSynchronisation=60

Reprise permet de spécifier le mode de reprise de l'exécution d'un programme suite à une panne ayant occasionné un arrêt brutal. Par défaut, la valeur est automatique.

Sémantique de la valeurValeur de l'option
Le programme ne peut être relancé.Sans
S'il y a des journaux intègres, le mécanisme de reprise est automatiquement activé.
S'il n'y a pas de journaux ou qu'ils ne sont pas intègres, le programme ne peut être relancé.
Automatique
S'il y a des journaux intègres, le mécanisme de reprise est automatiquement activé.
S'il n'y a pas de journaux ou qu'ils ne sont pas intègres, le programme est relancé et ses données sont dans un état inconnu. Le programme risque de mal fonctionner.
Forcer

Reprise=Forcer

Semaphore permet de spécifier le nom du groupe de sémaphores gérant la mémoire partagée. Par défaut, la valeur est ups.

Semaphore=SyncApp

Ce groupe de sémaphore est uniquement utilisé si l'applicatif fonctionne en multi-processus i.e. s'il comporte des entrepôts protégés ou publics. Tmp permet de spécifier le répertoire où sont rangés les fichiers temporaires. Par défaut, le répertoire est le répertoire courant.

Tmp=/tmp

TracerNoyau permet de tracer l'activité de Up ! Object Management System. La valeur par défaut est Non.
Cette trace est inscrite dans le fichier ${UPS_HOME}/log/${UPS_APPLICATION}-upsoms-${NumeroSession}.log en mode mono-utilisateur ou dans le fichier ${UPS_HOME}/log/${UPS_USER}/${UPS_APPLICATION}-upsoms-${NumeroSession}.log en mode multi-utilisateur.

Sémantique de la valeurValeur de l'option
Pas de trace.Non.
Trace de bas niveaux des mouvements de mémoire.BasNiveau
Trace du cycle de vie des objets.CycleDeVie

TracerNoyau=CycleDeVie

VerifierAdresse permet de demander à Up ! Object Management System de vérifier chaque adresse des objets du programme avant de les utiliser. Cela permet de détecter les adresses invalides. Par défaut, la vérification n'a pas lieu.

VerifierAdresse=Oui

Revenir en haut de la page...
La configuration de Up ! Object Management System est enregistrée dans un fichier ini dans le répertoire ${UPS_HOME}/ini en mode mono-utilisateur ou dans le répertoire ${UPS_HOME}/ini/${UPS_USER} en mode multi-utilisateur. Elle est distincte du fichier d'initialisation propre à chaque programme étant donnée qu'elle peut être partagée.

La section UpsOms énumère toutes les entrepôts au moyen des entrées Entrepot?. Le premier entrepôt est obligatoirement l'entrepôt Systeme. Les entrepôts suivants sont les entrepôts de mémoire publique, puis les entrepôts de mémoire protégée et enfin les entrepôts de mémoire privée.

Le fichier de la configuration comporte ensuite une section par entrepôt et portant leur nom.

Revenir en haut de la page...

Voici les entrées possibles de ces sections définissant le paramétrage des entrepôts :

AllocationUnique permet de spécifier que tous les blocs de mémoire de l'entrepôt sont alloués en une unique allocation. L'avantage est de ne plus réaliser d'allocations et de désallocations de mémoire physique en cours d'exécution, ce qui fait moins travailler le système d'exploitation. L'inconvénient est de se réserver toute la mémoire même si une fraction de celle-ci est uniquement utile à un moment donné.

Mode d'allocationValeur de l'option
Allocation unique.Oui
Allocation fractionnée.Non

AllocationUnique=Oui

FichierJournal permet de spécifier le nom générique des fichiers journaux mémorisant les modifications apportées dans la mémoire cache de l'entrepôt. La présence des fichiers journaux permet d'activer le mécanisme de reprise qui sera utilisé si le processus est interrompu suite à un dysfonctionnement ou suite à une panne matérielle. Par défaut, les modifications ne sont pas journalisées.

FichierJournal=${UPS_HOME}/demo/upsoms/${APPLICATION}.ulg

FichierPersistance permet de spécifier le nom du fichier mémorisant le dernier état de persistance de l'entrepôt. Si le fichier n'existe pas, il s'agit alors de la première exécution du programme. Si le fichier existe, l'exécution du programme à l'état de persistance enregistré dans ce fichier. Le fichier doit dater de la même exécution que le fichier de persistance du programme desservant cet entrepôt.

FichierPersistance=${UPS_HOME}/demo/upsoms/systeme.kwf

Fixe permet de spécifier que l'entrepôt est de la mémoire fixe ou de la mémoire mobile. Par défaut, il s'agit de mémoire fixe.

Type de mémoireValeur de l'option
Mémoire fixe.Oui
Mémoire mobile.Non

Fixe=Oui

HashCode permet de spécifier la taille du hash-code permettant de retrouver les blocs de mémoire. La valeur de ce paramètre est proportionnelle aux nombres de blocs dans l'entrepôt, modulé par le nombre moyen de blocs contigus. Par défaut, la valeur est 256 entrées. Plus cette valeur est grande, plus il sera rapide de retrouver un bloc mémoire, donc un objet.

HashCode=512

MaxFichierEchange permet de spécifier la taille maximale d'un fichier d'échange. Cette valeur est exprimée en milliers de blocs. La valeur par défaut est 50, ce qui représente 50 Mo pour des blocs de taille 1024 octets.

MaxFichierEchange=100

MaxFichierJournal permet de spécifier la taille maximale d'un fichier journal. Cette valeur est exprimée en mégaoctets. La valeur par défaut est 50 Mo.

MaxFichierJournal=100

NbBlocs permet de spécifier la taille de l'entrepôt en nombre de blocs, sachant que la taille d'un bloc est fixée par le paramètre taillebloc de Up ! Objetc Management System. Plus ce paramètre est grand, plus l'entrepôt pourra contenir d'objets simultanément en mémoire. Par défaut, la valeur est 64 blocs.

NbBlocs=64

NbBlocsContigus permet de spécifier le nombre de blocs de mémoire contiguë que le ramasse-miettes de Up ! Object Management System sait gérer. Pour les types dont la taille d'allocation est fixée par programmation, ce paramètre n'entre pas en ligne de compte. En revanche, pour les types dont la taille d'allocation est libre, cette dernière est calculée d'après la valeur de ce paramètre. Ainsi, plus la taille de ce paramètre est importante, plus il y a d'objets de ces types d'alloués simultanément. Par défaut, la valeur est 4 et elle ne peut excéder 65536.

NbBlocsContigus=8

NbFichiersJournaux permet de spécifier le nombre de fichiers jounaux que Up ! Object Management System doit gérer pour mémoriser les modifications apportées à la mémoire cache de l'entrepôt. Il doit y avoir au moins deux fichiers journaux, ce qui est la valeur par défaut.

NbFichiersJournaux=4

nbqueues permet de spécifier le nombre de files d'attente que Up ! Object Management System sait gérer simultanément. Ces files d'attente servent pour paralléliser le verrouillage des objets. Plus il y a de files d'attente, moins il y a d'interblocages mais plus il y a de ressources systèmes consommées. Par défaut, la valeur est 16.

NbQueues=32

NbVerrous permet de spécifier le nombre de verrous que Up ! Objetc Management System sait maintenir simultanément sur des blocs de mémoire. Par défaut, la valeur 24 sachant que Up ! Object Management System s'en réserve 12.

NbVerrous=64

PeriodeRetasserFichier permet de spécifier la période en secondes au bout de laquelle Up ! Object Management System doit retasser les fichiers d'échange de cet entrepôt. Selon le type de travaux, il est nécessaire ou non de retasser les blocs libres des fichiers d'échange, sachant que cette opération réalisée en tâche de fond est coûteuse en ressource. Si la valeur est 0, le retassement n'a jamais lieu, ce qui est la valeur par défaut.

PeriodeRetasserFichier=60

PeriodeRetasserMemoire permet de spécifier la période en secondes au bout de laquelle Up ! Object Management System doit retasser la mémoire de cet entrepôt. Selon le type de travaux, il est nécessaire ou non de retasser les blocs de la mémoire de travail, sachant que cette opération réalisée en tâche de fond est coûteuse en ressource. Si la valeur est 0, le retassement n'a jamais lieu, ce qui est la valeur par défaut.

PeriodeRetasserMemoire=60

Serveur permet de spécifier que l'entrepôt est constitué de mémoire protégée ou publique et qu'il est géré par ce processus serveur. Par défaut, il s'agit de mémoire privée au processus, celui-ci étant son propre serveur.

Type de mémoireValeur de l'option
Mémoire publique.Nom du programme serveur@nom de la machine serveur.
Mémoire protégée.Nom du programme serveur.
Mémoire privée.Pas de valeur.

Serveur=SrvFinance

taillebloc permet de spécifier la taille en octets d'un bloc de mémoire alloué par le ramasse-miettes de Up ! Object Management System. Plus la taille est importante, moins il y a d'opérations d'allocations / désallocations de mémoire du système d'exploitation ou d'usage des fichiers d'échange, mais plus le programme est consommateur de mémoire. Par défaut, la valeur est 1024. Sa valeur doit toujours être une puissance de deux.

TailleBloc=512

TacheFichier permet de spécifier que le fichier d'échange de l'entrepôt est géré par une tâche spécialisée. Par défaut, il n'y a pas de tâche spécialisée. Cela est particulièrement pertinent si votre applicatif est multi-tâches ou multi-processus. Par contre, si votre applicatif ne comporte qu'une seule tâche, cela n'est pas recommandé car cela alourdit l'accès aux objets.

Type de gestion des fichiers d'échangeValeur de l'option
Tâche spécialisée.Oui.
Gestion par la tâche cliente.Non.

TacheFichier=Oui

Revenir en haut de la page...

; -------------------------------------------------------------------
; Fichier : upsoms.ini
; Objet : Initialisation d'Up ! Object Management System.
;
; Module : Up ! Application System.
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.
; -------------------------------------------------------------------
; Observations
;
;
; -------------------------------------------------------------------


[UpsOms]
Entrepot1=systeme
Entrepot2=user

[systeme]
NbBlocs=64
AllocationUnique=Oui
Fixe=Oui
PeriodeRetasserMemoire=100

[user]
HashCode=10
AllocationUnique=Oui
Fixe=Non
NbBlocs=40
;Fixe=Oui
;NbBlocs=64
PeriodeRetasserMemoire=0
PeriodeRetasserFichier=0
TacheFichier=Non

Revenir en haut de la page...