2010-03-16 7 views
6

Comment maintenir une connexion SqlConnection (ou utiliser un autre composant) ouverte (connectée) toujours pendant l'exécution de mon application .Net?Comment maintenir un SqlConnection ouvert toujours

J'ai besoin parce que mon application doit détecter à l'aide de cette commnad

exec sp_who2 

nombre d'instances de mon application sont connectés à myDatabase, de limiter l'accès (contrôle des licences).

exemple

A) mon application exécutée à partir location1

  1. vérifier le nombre de mes applications connectées au serveur SQL en utilisant exec sp_who2
  2. si le nombre de mes applications < MaxLicencesConnected puis démarrez mon application et ouvrez une connexion sql

B) mon application exécutée à partir location2

  1. vérifier le nombre de mes applications connectées au serveur SQL en utilisant exec sp_who2
  2. si le nombre de mes applications> = MaxLicencesConnected puis fermez mon application

désolé pour mon anglais.

merci d'avance.

Répondre

3

Ne serait-il pas plus simple d'avoir une table où vous ajoutez un enregistrement lorsque le programme démarre et le supprimez lorsque le programme se termine? Garder une connexion à SQL Server ouverte tout le temps est assez cher. Techniquement, quelqu'un pourrait venir supprimer l'enregistrement et démarrer une nouvelle instance, mais évidemment si c'est le cas, alors la première instance va cesser de fonctionner (en supposant qu'elle vérifie la présence de son propre enregistrement chaque fois et puis).

0

Myabe vous pouvez définir un objet de connexion, l'ouvrir et le stocker dans une variable globale (statique). Je crois, vous devrez également définir le délai d'attente de la connexion, sinon il sera automatiquement fermé si laissé inactif. Franly parlant, je ne pense pas que garder une connexion ouverte est une bonne idée, car elles sont chères.

1

Utiliser une connexion mise en commun. Set Taille maximale du pool et Taille minimale du pool et Pooling dans votre chaîne de connexion.

Questions connexes