Processus sql Sever sous vb.net

Processus sql Sever sous vb.net - C#/.NET managed - Programmation

Marsh Posté le 29-07-2004 à 11:48:28    

Bonjour,
 
Je développe une application vb.net qui attaque une base sql server.
A chaque ouverture de connexion, sqlserver crée un processus que l'on peut voir avec la commande sp_who2.
le problème c'est que même après avoir fermé mes connexions, il reste des processus en mode "sleeping".
Ces processus m'empèche d'effacer ma base (DROP DATABASE mabase)
 
J'aurais donc deux questions:
 
Est-il normal que les processus restent même après avoir fermé les connexions?
 
Est-il propre de killer un processus ?
 
Merci d'avance

Reply

Marsh Posté le 29-07-2004 à 11:48:28   

Reply

Marsh Posté le 29-07-2004 à 12:08:43    

- non
- non
 
tu ne fermes pas correctement la connection à mon avis (code ?)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 29-07-2004 à 12:19:11    

Bonjour JagStang et merci pour ta réponse,
 
Je ferme la connexion avec Connexion.close()
 
Merci
 
       

Reply

Marsh Posté le 29-07-2004 à 12:44:55    

un peu plus de code?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 29-07-2004 à 14:16:32    

voila une portion du code :
         
Dim Connex As New SqlClient.SqlConnection
Connex = New SqlClient.SqlConnection
Connex.ConnectionString = "integrated security=SSPI;data source=MonServeur;persist security info=False;database=master"
Try
Connex.Open()
Catch ex As Exception
MsgBox("Erreur lors de la connexion à la base de donnée" )
End Try
 
******************
Dim SqlCommand As SqlClient.SqlCommand
Requete = "CREATE DATABASE MyBase"
SqlCommand = New SqlClient.SqlCommand(Requete,Connex)
SqlCommand.ExecuteNonQuery()
******************
Connex.close
 
 
Par la suite, j'ouvre une connexion de la même manière que précedemment mais sur la nouvelle base crée. Ensuite j'y crée des tables et j'y insère des données puis je ferme la base.
Pour finir, j'ouvre un connexion au serveur sur la base master comme sur le code plus haut puis j'essai d'éxécuter la requête "DROP DATABASE MyBase"
Et hop ça ne marche pas à cause d'un processus en mode sleeping sur cette base
 
Merci encore ;)

Reply

Marsh Posté le 31-07-2004 à 23:02:24    

Jeuneloup a écrit :

voila une portion du code :
         
Dim Connex As New SqlClient.SqlConnection
Connex = New SqlClient.SqlConnection
Connex.ConnectionString = "integrated security=SSPI;data source=MonServeur;persist security info=False;database=master"
Try
Connex.Open()
Catch ex As Exception
MsgBox("Erreur lors de la connexion à la base de donnée" )
End Try
 
******************
Dim SqlCommand As SqlClient.SqlCommand
Requete = "CREATE DATABASE MyBase"
SqlCommand = New SqlClient.SqlCommand(Requete,Connex)
SqlCommand.ExecuteNonQuery()
******************
Connex.close
 
 
Par la suite, j'ouvre une connexion de la même manière que précedemment mais sur la nouvelle base crée. Ensuite j'y crée des tables et j'y insère des données puis je ferme la base.
Pour finir, j'ouvre un connexion au serveur sur la base master comme sur le code plus haut puis j'essai d'éxécuter la requête "DROP DATABASE MyBase"
Et hop ça ne marche pas à cause d'un processus en mode sleeping sur cette base
 
Merci encore ;)


 
et en ajoutant un petit pooling=false dans la chaine de connexion ?

Reply

Marsh Posté le 02-08-2004 à 19:31:34    

Salut,
 
Merci bcp happyharry, ça venait effectivement du pool de connexion.
Une dernière question:
Quel est l'avantage de garder le pool de connexion actif?
 
Merci ;)

Reply

Marsh Posté le 16-08-2004 à 16:41:47    

Le pooling est extrement interessant pour ton application, car une fois ta premiere connexion réalisé par ton application l'ensemble des connexions utilisant la meme chaine de connexion piocheront dans le pooling pour s'ouvrir => ce qui te fait gagner énormément de temps

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed