Trucsweb.com

Forum de discussion

 Forum « Programmation ASP » (archives)

Re: problème conexion asp, optimiser vos connexions ADO

Envoyé: 4 juin 2004, 8h20 par Oznog


Salut,

Il y a deux façon de faire:

1. Ou bien tu met ta connexion dans une variable application, alors là tous y on accès on ne ferme rien et on utilise toujours la même connexion. C'Est ok mais ça c'est limite.

2. Ou bien tu fais une connexion à chacune des pages (ce que je préconise). SI TU NE FERME PAS TA CONNEXION et que l'internaute change de page, la connexion reste ouvert mais PLUS OPERSONNE N'Y A ACCÈS. Les connexions étant limité c'est probablement ton problème (2 me semble un peut fort normalement access permet seulement 64 peut être 256 connexions simultanées, alors que SQL Serveur c'est de l'ordre du 32 000 connexion, si je me souvient bien).

MAIS PEUT IMPORTE, tout objet et particulièrement une connexion ADO doivent être fermé (et vider). L'espace aloué doit être vider au plus vite!

Ton application limite le serveur, ainsi les bonnes applications libèrent la mémoire pour accélérer les transactions mais toi tu l'engorge annulant ainsi l'effet bénéfique de la bonne programmation!

Pire, dans les meilleurs condition, on ferme la base très rapidement, avant même la fin de la page et même son envoie au navigateur.

Tu as plus d'une connexion, tu réouvre et referme! Et oui.

Un des meilleurs exemple est d'utiliser un getRow dans le recordset. De cette façon le résultat est directement transposé dans une matrice (array) te permettant de fermer ta connexion. Ce qui se passe en nano secondes libérant du coup tout l'espace aloué. Imagine, connexion, recordset ( et tu construit la requête avant la connexion) getRow et close. 4 lignes de code et tout est libéré!

monSQL = "..."
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open monODBC
set oRS=oConn.execute(monSQL)
aMonResultat = oRS.getrows
oRS.close
set oRS=nothing
oConn.close
set oConn=nothing

Si tu ne ferme pas, il attendra le time out, 20 minutes par défaut!

Il ne faut pas avoir peur d'utiliser des objets et sourtout pas avoir peur de les fermer. À la limite, tu peux vider et fermer ton recordset et utiliser la même connexion mais tu ferme la connexion au plus vite aussi.

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@