Question

Quelles sont les options pour recycler l'objet d'état d'application ASP.Net? J'utilise cet objet pour stocker des files d'attente de connexions de base de données pour une couche d'accès aux données desservie par le Web. Je crains que, sur des jours / semaines / mois, je finisse par allouer des sommes de mémoire croissantes sur des connexions à des bases de données qui ne sont plus utilisées. Les connexions sont générées automatiquement en fonction des besoins. Leur conservation n’est donc pas extrêmement importante.

Il serait bien d'analyser de manière sélective l'état de l'application et de supprimer ce dont je n'ai pas besoin. Mais sur le plan pratique, tout simplement laisser tomber tout l’objet et recommencer à zéro fonctionnerait tout aussi bien. Cependant, je dois faire attention à ce que le processus de purge ne tue pas les connexions actuellement utilisées.

Était-ce utile?

La solution

Que s'est-il passé avant que vous ne commenciez à mettre en cache les connexions? Leur mise en cache a-t-elle entraîné une amélioration mesurable des performances ou de l'utilisation des ressources? Je serais un peu surpris si c'était le cas, étant donné qu'ADO.NET met en pool la connexion pour vous.

Il n'y a pas d'options de recyclage pour l'état de l'application. C'est par serveur, par AppDomain.

Pour une autre option de mise en cache, envisagez l'utilisation de l'objet Cache. Il s’agit également d’une application à l’autre, mais vous pouvez définir l’expiration des entrées du cache après un certain temps.

Autres conseils

J'ai fait quelques tests et il apparaît que l'objet d'application réside dans le pool d'applications. (Le recyclage du pool d'applications a effacé les données de l'objet d'application.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top