les profils d'application
Un profil d'application est un ensemble de stratégies de tentative d'accès qui doivent être appliquées de manière sélective à une unité de travail particulière (une transaction ou ActivitySession).
La définition d'un profil d'application permet d'exécuter des applications dans différents ensembles de stratégies en fonction de la tâche active dans laquelle fonctionne l'application.
La tâche active dépend du mécanisme de l'unité de travail en cours. Si l'unité de travail en cours est une transaction globale, alors la tâche correspond au nom associé à cette transaction. Si la transaction globale n'est pas nommée lors de son lancement, alors aucune tâche active ne se trouve dans la portée de cette transaction.
Si l'unité de travail en cours est une transaction locale associée à une ActivitySession, la tâche correspond au nom associé à cette ActivitySession. Si ActivitySession n'est pas nommée lors de son lancement, alors aucune tâche active n'est liée à cette ActivitySession pour aucune transaction locale. Si l'unité de travail en cours est une transaction locale non associée à une ActivitySession, la tâche correspond au nom associé à cette transaction locale. Si la transaction locale n'est pas associée à une tâche lors de son lancement, alors il n'y a aucune tâche active pour la durée de cette transaction locale. En d'autres termes, la tâche active est la tâche associée à l'unité de travail de l'unité d'exécution qui coordonne les ressources de la base de données. Si l'unité de travail de contrôle n'est pas associée à une tâche lors de son lancement, alors il n'y a aucune tâche active dans la portée de cette unité de travail.
Pour qu'un client Version 6.x puisse interagir avec des applications exécutées sous le mode de compatibilité Application Profiling 5.x, vous devez attribuer à la propriété système appprofileCompatibility la valeur true dans le processus client. Ceci peut être fait en spécifiant l'option -CCDappprofileCompatibility=true lors de l'appel de la commande launchClient.
Supposons qu'une application centralise les données des étudiants dans un secteur scolaire. Ces données sont fréquemment consultées par l'administration scolaire afin de générer des rapports. Le processus de génération de rapports peut être optimisé si aucun verrou n'est appliqué au niveau du système dorsal, et si les données peuvent être consultés en mémoire avec un minimum d'opérations effectuées au niveau du système dorsal. Cependant, les données sont mises à jour de temps en temps par les professeurs. S'il ne peut pas faire la différence entre des transactions, le développeur est forcé d'imaginer le pire scénario et de verrouiller toutes les données de toutes les transactions.
L'utilisation du service de définition de profil d'application permet au développeur de configurer de différentes manières, selon les différents besoins, la tentative d'accès permettant de charger les données des étudiants. Dans un profil, les données peuvent être configurées avec une tentative de mise à jour pessimiste exclusive, non seulement en verrouillant les transactions concurrentes, mais aussi en évitant la suppression de l'étudiant du système avant la fin de la transaction. Dans un autre profil, les données peuvent être configurées avec une tentative optimiste dans le cadre d'un objet graphique lu depuis le système dorsal dans une seule opération sur la base de données. La tâche représentée par le profil pessimiste reçoit la sémantique de verrouillage solide requise pour certaines transactions, tandis que la tâche représentée par le profil optimiste reçoit les avantages de performances appropriés aux autres transactions.