2010-03-16 11 views
6

¿Cómo puedo mantener abierta (conectada) una conexión Sql (o usar otro componente) siempre durante la ejecución de mi aplicación .Net?¿Cómo puedo mantener abierta una conexión Sql siempre

Necesito esto porque mi aplicación necesita para detectar el uso de este commnad

exec sp_who2 

cómo se conectan muchos ejemplos de mi aplicación a MyDatabase, para restringir el acceso (control de licencias).

ejemplo

A) mi aplicación ejecutados desde Location1

  1. comprobar el número de mis aplicaciones conectados al servidor SQL usando exec sp_who2
  2. si el número de mis aplicaciones < MaxLicencesConnected a continuación, inicie mi aplicación y abra una conexión sql

B) mi aplicación ejecutada desde location2

  1. cheque el número de mis aplicaciones conectadas al servidor SQL utilizando exec sp_who2
  2. si el número de mis aplicaciones> = MaxLicencesConnected continuación, cierre mi solicitud

lo siento por mi inglés.

gracias de antemano.

Respuesta

3

¿No sería más fácil simplemente tener una tabla donde se agrega un registro cuando se inicia el programa y eliminarlo cuando el programa se cierra? Mantener una conexión abierta con SQL Server todo el tiempo es bastante caro.

Técnicamente, alguien podría venir a eliminar un registro y comenzar una nueva instancia, pero obviamente si lo hacen, la primera instancia dejará de funcionar (suponiendo que compruebe la presencia de su propio registro de vez en cuando entonces).

0

Myabe puede establecer un objeto de conexión, abrirlo y almacenarlo en una variable global (estática). Creo, también debería establecer el tiempo de espera de la conexión, de lo contrario se cerrará automáticamente si se deja inactivo.

Franly hablando, no creo que mantener una conexión abierta sea una buena idea, ya que son caros.

1

Uso agrupación de conexiones. Establezca Tamaño máximo de la piscina y Tamaño mínimo de la piscina y Agrupando en su cadena de conexión.

Cuestiones relacionadas