cs_Snoop
Messages postés12Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention17 avril 2008
-
3 avril 2008 à 16:29
scottmat
Messages postés438Date d'inscriptionsamedi 24 mai 2003StatutMembreDernière intervention23 janvier 2011
-
17 avril 2008 à 17:32
Bonjour,
Je travaille actuellement sur un site ASP.net (hebergé par IIS) développé sous Visual Studio 2005 et s'appuyant sur une base My SQL.
Je viens de réaliser une modification sur une dll qu'utilise le site. Et depuis j'ai de gros ralentissement sur le site. Etant novice sur cette technologie , je vous sollicite pour savoir si vous n'auriez pas une idée? Etant donné le peu de modif que j'ai réalisé sur la DLL je pense que c'est plutot une option de publication ou un truc du genre...
cs_Snoop
Messages postés12Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention17 avril 2008 7 avril 2008 à 09:05
Hello !
Voici le code concerné :
J'ai en fait crée la fonction DeleguePar et modifier la Procedure InfoMailDestinataire. Les modifications apportées sont contenus entre DEBUT MODIF ET FIN MODIF (Trés originale hein ! )
Merci à vous ;)
*********
Protected
Function DeleguePar(
ByVal psAgent
As
String)
As
String
Dim lsRqSql
As
String
Dim loMySqlCmd
As MySqlCommand
Dim loMySqlReader
As MySqlDataReaderlsRqSql =
String.Format(
"SELECT NUM_DELEGATION FROM dwh.sto_delegations WHERE NUM_AGENT = '{0}'", psAgent)
Try loMySqlCmd New MySqlCommand(lsRqSql, goMysqlConn) loMySqlReader loMySqlCmd.ExecuteReader()
Catch ex
As MySqlException
Throw
New WorkflowException(
"1.DeleguePar: Impossible d'éxécuter la requête Sql dans la base de donnée dwh")
End
Try
If (loMySqlReader.Read())
Then
' Numéro du Délégataire DeleguePar = loMySqlReader(
"NUM_DELEGATION") &
""
Else
' Si le N+1 n'est pas absent alors on n'envoie pas de mail DeleguePar =
""
End
IfloMySqlReader.Close()
End
Function
***********************************
Protected
Sub InfoMailDestinataire(
ByVal piEtape
As
Integer,
ByVal psSujet
As
String,
ByVal psMessage
As
String)
Dim lsRqSql
As
String
Dim loMySqlCmd
As MySqlCommand
Dim loMySqlReader
As MySqlDataReader
Dim loMail
As MailMessage
Dim losmtp
As SmtpClient
Dim lsNumDestinataire
As
String
Dim lsTpEmetteur
As
String
Dim lsTpDestinataire
As
String
Dim lsSvEmetteur
As
String
Dim lsSvDestinataire
As
String
Dim csAgent
As
String
Dim csAgentN1
As
String
Dim csDelegataire
AsStringcsAgent "agent"csAgentN1
'Création de l'instance d'une nouvelle classe MailMessage loMail =
New MailMessage()
' -------------------------------------------
'Sélectionne l'E-mail du destinataire lsRqSql =
String.Format(
"SELECT NOM, PRENOM, MAIL FROM dwh.ref_ldap_agent WHERE NUM_AGENT = '{0}';", lsNumDestinataire)
Try loMySqlCmd New MySqlCommand(lsRqSql, goMysqlConn) loMySqlReader loMySqlCmd.ExecuteReader()
Catch ex
As MySqlException
Throw
New WorkflowException(
"2.InfoMailDestinataire : Impossible d'éxécuter la requête Sql")
Throw
New WorkflowException(
String.Format(
"3.InfoMailDestinataire : Impossible de récupèrer l'adresse mail de l'agent {0}", lsNumDestinataire))
End
If loMySqlReader.Close()
' -------------------------------------------
' -------------------------------------------
'Sélectionne l'E-mail de l'émetteur lsRqSql =
String.Format(
"SELECT NOM, PRENOM, MAIL FROM dwh.ref_ldap_agent WHERE NUM_AGENT = '{0}';", gsAgentConnecter)
Try loMySqlCmd New MySqlCommand(lsRqSql, goMysqlConn) loMySqlReader loMySqlCmd.ExecuteReader()
Catch ex
As MySqlException
Throw
New WorkflowException(
"4.InfoMailDestinataire : Impossible d'éxécuter la requête Sql")
New System.Net.Mail.SmtpClient(
"localhost") losmtp.UseDefaultCredentials =
True
Try losmtp.Send(loMail)
Catch exMail
As SmtpFailedRecipientsExceptio
Throw
New WorkflowException(
String.Format(
"6.InfoMailDestinataire : Impossible d'envoyer le mail à l'adresse suivante : {0} <{1} >", loMail.To(0).DisplayName, loMail.To(0).Address))
Catch ex
As SmtpException
Throw
New WorkflowException(
"7.InfoMailDestinataire : Impossible d'envoyer le mail, La connexion au serveur SMTP a échoué.")
End
Try
Else
'Si lNumDestinataire alors il n'y a pas de Mail à envoyer
End
If
Else
Throw
New WorkflowException(
String.Format(
"9.InfoMailDestinataire : Impossible d'accéder à l'état N°{0} pour l'ordre N°{1}", giEtape - 1, giNumOrdre))
cs_Snoop
Messages postés12Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention17 avril 2008 17 avril 2008 à 17:07
Hello
Après plusieurs pistes de recherche voila ce que j'ai trouvé :
Au début j'ai pensé que c'était un response.redirect qui était trop long , car si je fais le redirect sur une url exterieure (google ;) le traitement est instantané.
J'ai donc cherché a savoir pourquoi le serveur mettait autant de temps a faire la redirection.
Lors du chargement de ma page default.aspx le l'utilisation CPU monte en fleche a 100 % (Et redescends a la normale une fois la page chargée! )!!! Et c'est mysql qui utilise toute la ressource.
C'est donc de la que vient le soucis.
Mais qu'est ce qui pourrait solliciter autant le processeur (1Go pourtant) ??? C'est la ou je bloque un peu, si vous avez des pistes ca m'aiderait pas mal.... En oubliant pas qu'avant que je modifie l'appli les traitements n'etait pas aussi long....
scottmat
Messages postés438Date d'inscriptionsamedi 24 mai 2003StatutMembreDernière intervention23 janvier 20111 17 avril 2008 à 17:32
Ton code à l'air bon pourtant. quand je travail avec les base de données je préfére travailler avec procédure sotckée, mais bon je ne vois d'erreur. Bizarre.
A ta place j'excuterai ton code en procédure pas à pas afin de voir à quel ligne sa te bouffe toute la ressource de ton pc.