Asp.net => Réponses permutées
Le
ngtliem
Bonjour,
J'ai développé une application asp.net qui consite à recevoir des requêtes
en flux XML, les traiter, puis renvoyer la réponse ( toujours en flux XML )
En global, tout se passe très bien, sauf un petit soucis ( de taille ) car
de temps en temps, l'application permute les réponses c.à.d qu'elle ne répond
pas au bon client.
Ex: Elle reçoit presqu'en même temps une requête ( en flux XML ) du client A
et une autre du client B. Elle les traite sans pb, mais elle envoie la
réponse destinée au client A à un autre client( en l'occurence client B ) et
inversement.
Ce pb ne se produit pas systématiquement, juste quelques cas dans la journée
mais me cause bcp de soucis car je travaille dans la production donc en temps
réel.
J'ai beau chercher mais je n'ai tourjours pas compris pourquoi.
Auriez vous une petite idée de ce qui se passe?
Merci d'avance
Je mets ici un petit résumé de mon code pour donner une idée
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim xmlDoc As XmlDocument = Nothing
'Vider le contenu de la réponse
Response.Clear()
'Go
Try
'Chargement initial
xmlDoc.Load(New XmlTextReader(Request.InputStream))
'Analyser le flux xml
'Analyze => vérifie juste la validité du flux capté : données
Analyze(xmlDoc)
xmlDoc = Nothing
'Traitement
'Traitement => retourne le résultat en XML
xmlDoc = Traitement()
Catch ex As Exception 'Pb
'La procédure xmlError retourne une erreur en XML
xmlDoc = xmlError()
Finally 'Fin de traitement
'Répondre
'xmlDocumentToStr => retourne le résultat en text
Response.ContentType = "text/xml"
Response.Write(xmlDocumentToStr(xmlDoc))
'RAZ
xmlDoc = Nothing
'Mettre fin de la réponse
Response.End()
End Try
End Sub
* Du coté client, comment les flux XML sont construits et envoyés, celà ne
nous concerne pas car c'est une autre entité de production qui assure la
conception de ce programme. Mais une chose est sure c'est que mon programme
capte parfaitement bien ces flux.
* Le serveur IIS est un Dual Core et l'application a été écrite en vb.net
J'ai développé une application asp.net qui consite à recevoir des requêtes
en flux XML, les traiter, puis renvoyer la réponse ( toujours en flux XML )
En global, tout se passe très bien, sauf un petit soucis ( de taille ) car
de temps en temps, l'application permute les réponses c.à.d qu'elle ne répond
pas au bon client.
Ex: Elle reçoit presqu'en même temps une requête ( en flux XML ) du client A
et une autre du client B. Elle les traite sans pb, mais elle envoie la
réponse destinée au client A à un autre client( en l'occurence client B ) et
inversement.
Ce pb ne se produit pas systématiquement, juste quelques cas dans la journée
mais me cause bcp de soucis car je travaille dans la production donc en temps
réel.
J'ai beau chercher mais je n'ai tourjours pas compris pourquoi.
Auriez vous une petite idée de ce qui se passe?
Merci d'avance
Je mets ici un petit résumé de mon code pour donner une idée
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim xmlDoc As XmlDocument = Nothing
'Vider le contenu de la réponse
Response.Clear()
'Go
Try
'Chargement initial
xmlDoc.Load(New XmlTextReader(Request.InputStream))
'Analyser le flux xml
'Analyze => vérifie juste la validité du flux capté : données
Analyze(xmlDoc)
xmlDoc = Nothing
'Traitement
'Traitement => retourne le résultat en XML
xmlDoc = Traitement()
Catch ex As Exception 'Pb
'La procédure xmlError retourne une erreur en XML
xmlDoc = xmlError()
Finally 'Fin de traitement
'Répondre
'xmlDocumentToStr => retourne le résultat en text
Response.ContentType = "text/xml"
Response.Write(xmlDocumentToStr(xmlDoc))
'RAZ
xmlDoc = Nothing
'Mettre fin de la réponse
Response.End()
End Try
End Sub
* Du coté client, comment les flux XML sont construits et envoyés, celà ne
nous concerne pas car c'est une autre entité de production qui assure la
conception de ce programme. Mais une chose est sure c'est que mon programme
capte parfaitement bien ces flux.
* Le serveur IIS est un Dual Core et l'application a été écrite en vb.net

Poser une question


m'attendais plutôt à ce que l'on lui passe le xmlDoc qui a déjà eté lu par
exemple...
"ngtliem" groupe de discussion :
Effectivement, on passe en paramètre xmlDoc dans la procédure Traitement(
xmlDoc ). Excusez-moi donc, c'est un résumé d'où cette erreur. Voici le code
corrigé :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim xmlDoc As XmlDocument = Nothing
'Vider le contenu de la réponse
Response.Clear()
'Go...
Try
'Chargement initial...
xmlDoc.Load(New XmlTextReader(Request.InputStream))
'Analyser le flux xml
'Analyze => vérifie juste la validité du flux capté : données
Analyze(xmlDoc)
'xmlDoc = Nothing
'Traitement...
'Traitement => retourne le résultat en XML
xmlDoc = Traitement(xmlDoc)
Catch ex As Exception 'Pb...
'La procédure xmlError retourne une erreur en XML
xmlDoc = xmlError()
Finally 'Fin de traitement
'Répondre...
'xmlDocumentToStr => retourne le résultat en text
Response.ContentType = "text/xml"
Response.Write(xmlDocumentToStr(xmlDoc))
'RAZ
xmlDoc = Nothing
'Mettre fin de la réponse
Response.End()
End Try
End Sub
Merci pour votre remarque. Si vous aviez une petite idée merci de la poster.
Merci encore
* Une petite chose, après un IISReset, tout semble redevenir normal.
"Patrice" wrote:
"shared" qui sont accessibles par tous les utilisateurs et non pas propres à
chaque utilisateur....
--
Patrice
"ngtliem" groupe de discussion :
Merci d'avoir soufflé. J'ai effectivement trouvé une variable shared, couplé
avec les logs depuis 2 semaines, ça correspond bien au pb.
On a corrigé le programme et ça repart...
Merci encore pour votre aide.
"Patrice" wrote: