Précédent   Forum des professionnels en informatique > Dotnet > Développement Web > Services Web
Services Web Forum d'entraide sur le développement de services web. Avant de poster -> Articles Services Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 07/09/2010, 09h09   #1
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 50
Points : 30
Points : 30
Par défaut Services Web et connexion Bdd ?

Bonjour à tous !

Voilà, je compte développer une application (type client lourd en WPF) qui fonctionnerait avec un service web.

Au démarrage du client, je compte récupérer tout un tas de données depuis le serveur web.

J'ai commencé un peu le développement de mon application et je me suis rendu compte d'un truc, c'est le nombre d'accès à la base de données !

Si au lancement de mon client je fais :
- getClients();
- getCommandes();
- getMachin();
- getTruc();
- etc.

Pour chaque fonction, j'ouvre une connexion à la Bdd, je fais ma requête, je retourne un flux XML et je ferme la connexion... et donc ça se produit près d'une 10aine de fois !

En supposant que mon application soit utilisé par une 100aine d'utilisateurs en même temps, est-ce que tous ces accès et requêtes ne vont pas mettre à genoux mon serveur de Bdd ?

Y'a-t-il un problème de conception ou simplement une astuce à mettre en place pour éviter ce genre de problème ?

Merci d'avance pour votre aide !
Lionel.
pot2yaourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2010, 09h12   #2
Membre confirmé
 
Inscription : février 2005
Messages : 288
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 288
Points : 256
Points : 256
Salut pot2yaourt,

si je serais toi, je ferais un pool de connexion, au lieu de créer chaque fois une nouvelle connexion dans chaque méthode!

Cédric
Cédric B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2010, 10h14   #3
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 50
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 50
Points : 30
Points : 30
Salut !

Euh... je vois pas bien comment faire pour garder la connexion à la Bdd ouverte puisqu'à chaque appel d'une méthode de mon service web, c'est une nouvelle instance qui se crée.

Il y'a peut-être une manip avec des Cookies je crois... mais je ne saurais pas trop comment y mettre en place.

Lionel.
pot2yaourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2010, 14h16   #4
Membre confirmé
 
Inscription : février 2005
Messages : 288
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 288
Points : 256
Points : 256
Voici un exemple parmi tant d'autre:


J'avais une classe sqlConnect qui se charge de créer la connexion à SQL Serveur comme suit:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
	public class SqlConnect
	{
		SqlConnection myConnection;
 
		public SqlConnect(string UserId, string Pwd, string Server, string DataSrc, string Db, bool Security)
		{
			myConnection = new SqlConnection();
			myConnection.ConnectionString = "user ID=" + UserId + ";pwd=" + Pwd + ";server=" + Server + ";data source=" + DataSrc + ";database=" + Db + ";integrated security=" + Security + ";Asynchronous Processing=true";
		}
 
		public SqlConnection getSqlConnection()
		{
			return myConnection;
		}
	}
Ensuite j'avais une autre classe "acheteur" qui a la méthode insert pour insérer un nouvel acheteur

Code :
1
2
3
4
5
6
7
8
9
10
 
		public int insert(SqlConnection myConnection)
		{
 
			myConnection.Open();
                                      ....
                                      //Exécuter la requête
 
			myConnection.Close();
		}
Es-ce que cela éclairci tes idées?

Cédric
Cédric B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web