|
Vous récupérez donc un WebModule ayant déjà servi.
Si la requête Web précédente à utilisé une requête de
base de données, ou affectée une variable déclarée dans
le WebModule, vous récupérez les valeurs de ces dernières
alors même que le contexte de la requête peut-être complètement
différent et nécessiter d'autres valeurs.
Autre inconvénient du principe, les événements OnCreate
et OnDestroy du WebModule ne sont pas appelés systématiquement. Cet inconvénient,
pour ceux qui ne le savent pas, peut devenir un avantage
pour les personnes informées, en ce sens que la gestion
des Threads proposée par TwebRequestHandler accélère les
traitement en gérant une file d'objet disponibles sans besoin
de les recréer.
Toutefois, dans ce cas la, il est impératif que tous
les objets et variables dont le résultat est susceptible
de changer soient créés et/ou déclarés dans le corps de
l'action.
Evitez de déclarer des variables dans le webModule.
Refermez toujours les requêtes utilisées, mieux créez
les et libérez les dans l'action.
Une autre méthode consiste à affecter False à la variable
CacheConnections dans le corps de la méthode OnCreate.
Application.CacheConnections := False;
Dans ce cas, un WebModule est crée et détruit à chaque
action, ce qui consomme plus de ressources mais qui sécurise
vos applications si vous avez malgré tout besoin de variables
déclarées dans le WebModule. Si vous envisagez de partager
une connexion de base de données entre les différentes instances
de la DLL, créez une unité indépendante, initialisez la
connexion dans une section INITIALIZATION en n'oubliant
pas le pendant FINALIZATION et incluez l'unité par une clause
Uses dans votre projet.
Notez cependant que du fait de l'environnement multi Thread,
vous ne devez pas appeler de méthodes dans cette unité,
sauf à bien connaître les environnements multi threading
et à coder les protections nécessaires.
Le but de ce didacticiel est désormais atteint, vous connaissez
le minimum requis pour créez votre première DLL ISAPI. Nous
vous conseillons vivement de compléter ces informations
par le tutorial de
Jean-Pierre Lamon disponible sur http://www.jpLamon.com
|