J'ai l'impression que le serveur web mémorise un etat de connexion
sql qui n'est plus valide.
J'ai l'impression que le serveur web mémorise un etat de connexion
sql qui n'est plus valide.
J'ai l'impression que le serveur web mémorise un etat de connexion
sql qui n'est plus valide.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on peut
le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Patrick Philippot wrote:
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on peut
le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on peut
le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s
ça veut dire que quoi qu'il arrive ma connexion sera fermé dans les
30s ?
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s
ça veut dire que quoi qu'il arrive ma connexion sera fermé dans les
30s ?
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s
ça veut dire que quoi qu'il arrive ma connexion sera fermé dans les
30s ?
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> wrote in message
news:u2Wnj$emHHA.3760@TK2MSFTNGP05.phx.gbl...
Patrick Philippot wrote:
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner la
connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration de
la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original peut-être
trouvée (un pb de connectivité, résolution de nom, pb serveur ou autre
???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même un
problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration
de la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original peut-être
trouvée (un pb de connectivité, résolution de nom, pb serveur ou autre
???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même un
problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" <richard.urrutia@ciel.com> a écrit dans le message de
news: eRVpep3mHHA.4132@TK2MSFTNGP02.phx.gbl...
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> wrote in message
news:u2Wnj$emHHA.3760@TK2MSFTNGP05.phx.gbl...
Patrick Philippot wrote:
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration
de la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original peut-être
trouvée (un pb de connectivité, résolution de nom, pb serveur ou autre
???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même un
problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est très
pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite l'expiration
de la connexion dans le pool. Par défaut c'est 4 heures je crois mais on
peut le changer dans la connection string: ";Connection Lifetime0" (en
secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait un
.Close() sur ma connexion et qu'il revient systématiquement par la suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures je
crois mais on peut le changer dans la connection string: ";Connection
Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait un
.Close() sur ma connexion et qu'il revient systématiquement par la suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%23ZIPIGGnHHA.3520@TK2MSFTNGP04.phx.gbl...
Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" <richard.urrutia@ciel.com> a écrit dans le message de
news: eRVpep3mHHA.4132@TK2MSFTNGP02.phx.gbl...
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> wrote in message
news:u2Wnj$emHHA.3760@TK2MSFTNGP05.phx.gbl...
Patrick Philippot wrote:
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures je
crois mais on peut le changer dans la connection string: ";Connection
Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait un
.Close() sur ma connexion et qu'il revient systématiquement par la suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce dernier
cas, ce serait donc des connexions qui ne sont pas correctement fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures je
crois mais on peut le changer dans la connection string: ";Connection
Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Donc à piroir soit la charge est vraiment vraiment importante (je crois me
souvenir que par défaut la taille maxi du pool est de 100 connexions) soit
toutes les connexions ne sont pas forcément fermées (elles sont
apparemment ajoutée/retirée dans une collection (but ?), il devrait donc
être assez facile de voir si elles en sont bien retirées et si non si
elles sont bien fermées...
Je pense qu'il pourrait être également intéressant de revenir au message
d'erreur initial pour voir de quoi il s'agit exactement plutôt que de le
contourner (les deux problèmes ne sont peut-être pas liés mais sait on
jamais...)
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait
un .Close() sur ma connexion et qu'il revient systématiquement par la
suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce
dernier cas, ce serait donc des connexions qui ne sont pas correctement
fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures
je crois mais on peut le changer dans la connection string:
";Connection Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Donc à piroir soit la charge est vraiment vraiment importante (je crois me
souvenir que par défaut la taille maxi du pool est de 100 connexions) soit
toutes les connexions ne sont pas forcément fermées (elles sont
apparemment ajoutée/retirée dans une collection (but ?), il devrait donc
être assez facile de voir si elles en sont bien retirées et si non si
elles sont bien fermées...
Je pense qu'il pourrait être également intéressant de revenir au message
d'erreur initial pour voir de quoi il s'agit exactement plutôt que de le
contourner (les deux problèmes ne sont peut-être pas liés mais sait on
jamais...)
--
Patrice
"Richard Urrutia" <richard.urrutia@ciel.com> a écrit dans le message de
news: OVJCkHJnHHA.668@TK2MSFTNGP05.phx.gbl...
Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait
un .Close() sur ma connexion et qu'il revient systématiquement par la
suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%23ZIPIGGnHHA.3520@TK2MSFTNGP04.phx.gbl...
Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce
dernier cas, ce serait donc des connexions qui ne sont pas correctement
fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" <richard.urrutia@ciel.com> a écrit dans le message de
news: eRVpep3mHHA.4132@TK2MSFTNGP02.phx.gbl...
Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> wrote in message
news:u2Wnj$emHHA.3760@TK2MSFTNGP05.phx.gbl...
Patrick Philippot wrote:
C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures
je crois mais on peut le changer dans la connection string:
";Connection Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Donc à piroir soit la charge est vraiment vraiment importante (je crois me
souvenir que par défaut la taille maxi du pool est de 100 connexions) soit
toutes les connexions ne sont pas forcément fermées (elles sont
apparemment ajoutée/retirée dans une collection (but ?), il devrait donc
être assez facile de voir si elles en sont bien retirées et si non si
elles sont bien fermées...
Je pense qu'il pourrait être également intéressant de revenir au message
d'erreur initial pour voir de quoi il s'agit exactement plutôt que de le
contourner (les deux problèmes ne sont peut-être pas liés mais sait on
jamais...)
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour,
je continue mes tests sur mon problème et cette fois ci j'ai un message
différent.
J'ai utilisé Application Center test pour effectuer un test de charge sur
une page du site qui execute plusieurs requete sur la base et cette fois
ci j'ai le message suivant :
Timeout expired. The timeout period elapsed prior to obtaining a
connection from the pool. This may have occured because all pooled
connections were in use and max pool size was reached.
ce qui est étrange est que j'envoi ce message d'erreur après avoir fait
un .Close() sur ma connexion et qu'il revient systématiquement par la
suite.
voici le code qui génère l'erreur
if(_Connection==null)
_Connection=ConnexionFactory.Instance.CreateConnection();
if (_Connection.State != ConnectionState.Open)
{
try
{
_Connection.Open();
}
catch ( Exception ex )
{
Close();
if( Tracer.IsTraceLevel((int)TracerLevel.SqlError))
Tracer.Instance.TraceMessage( (int)TracerLevel.SqlError, "SQLERROR",
"Traceur","Echec ouverture de connexion", ex.Message );
return false;
}
et voici la méthode close()
public bool Close()
{
if( _Connection==null)
return true;
if( _Transaction !=null)
{
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
throw new Exception("Close sans fermeture d'une transaction");
}
ConnexionFactory.Instance.RemoveConnection(_Connection );
_Connection.Close();
//_Cache=null;
_Transaction=null;
return true;
}
"Patrice" <http://www.chez.com/scribe/> wrote in message
news:%Non plus. Même si la solution de Philippe est mise en oeuvre, il serait
sans doute intéressant de voir si la source du problème original
peut-être trouvée (un pb de connectivité, résolution de nom, pb serveur
ou autre ???)
Déjà vois si il 'agit d'un timeout de connection ou de commande ou même
un problème de pool plein (je crois que le message indique dans ce cas
qu'aucune connexion libre n'est trouvée au bout d'un "timeout" pendant
lequel l'application attends qu'une connexion se libère). Dans ce
dernier cas, ce serait donc des connexions qui ne sont pas correctement
fermées.
En cas d'erreur, il est toujours préférable de poster le message exact
pour que le contexte soit bien restitué.
Bon courage.
--
Patrice
"Richard Urrutia" a écrit dans le message de
news:Bonjour Patrick, et merci de ta réponse.
Est ce que tu as déjà rencontré ce type de problème ? car ce bug est
très pénalisant, il fait planter l'ensemble de mon site !!!
J'ai une question sur le Connection LifeTime. si je le limite à 30s ça
veut dire que quoi qu'il arrive ma connexion sera fermé dans les 30s ?
"Patrick Philippot" wrote in message
news:u2Wnj$Patrick Philippot wrote:C'est peut-être dû au pooling de connexions. Après l'erreur initiale,
appelez ClearPool voire un ClearAllPools sur la connexion et faites
un Close explicite avant de tenter une réouverture. Juste pour
tester. Si ça marche, c'est bien un problème de pooling.
En 1.1, la seule solution pour faire un reset du pool est de retourner
la connexion au pool (Close/Dispose ) et d'attendre ensuite
l'expiration de la connexion dans le pool. Par défaut c'est 4 heures
je crois mais on peut le changer dans la connection string:
";Connection Lifetime0" (en secondes)
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr