|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Didier CabaléConseil - Consultant en systèmes d'information Inscription : août 2004 Messages : 102 ![]() |
Bonjour,
j'ai développé un CGI installé sur MS IIS. Ce CGI est amené à lire /écrire sur divers fichiers xml. Supposons qu'une 10aine de requêtes HTTP soient envoyées en même temps (par différents internautes) sur mon CGI. Comment risque-t-il de réagir? Tous les internautes seront-ils servis en même temps? Si non, quel pourait être le délai d'attente? Autre manière de voir les choses: IIS +CGI sont-ils: Mono-thread: -> existence d'une file d'attente système -> temps de réponse long pour les derniers servis, mais appli sécurisée? Multi-thread: -> temps de réponse court, mais risque de conflit sur les écritures fichiers? Merci pour votre aide Didier |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 2 161 ![]() |
je vais peut être me planter mais je pense que le principe est le même que si plusieurs personnes interroge en même temps une page ASP non ?
|
|
|
00
|
|
|
#3 | |
|
Membre régulier
![]() Didier CabaléConseil - Consultant en systèmes d'information Inscription : août 2004 Messages : 102 ![]() |
Citation:
Mais admettons que j'exécute une page ASP, quid des requêtes en lecture /écriture concurrentes? Merci Didier |
|
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : octobre 2002 Messages : 471 ![]() |
Je te confime que IIS est MultiThread (il gère chaque appel sur un thread), donc il faut l'intégrer dans le développement.
__________________
Qui va piano va sano... |
|
|
00
|
|
|
#5 | |
|
Membre régulier
![]() Didier CabaléConseil - Consultant en systèmes d'information Inscription : août 2004 Messages : 102 ![]() |
Citation:
2. permettez-moi de soumettre ma question à nouveau: si je ne me fais pas de soucis pour la lecture d'un fichier texte en processus multithread, qu'en est-il de l'écriture ? Merci |
|
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : octobre 2002 Messages : 471 ![]() |
Ben ce qui est clair,c'est que si tu modifie un fichier quand un autre est en train de le lire tu risque d'avoir des problème.
Moi je te conseille pour l'écriture d'ouvrir le fichier en mode exclusif, et chaque thread de lecture et d'écriture attend jusqu'a ce qu'il puisse l'ouvrir. Par contre ça risque de ralentir ton CGI car il va y avoir des demandes qui vont attendre pour pouvoir lire ou écrire. Ca dépend beaucoup des fréquences d'écritures. Tous tes fichiers peuvent-êtres modifiés ? ou seulement certains.
__________________
Qui va piano va sano... |
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Didier CabaléConseil - Consultant en systèmes d'information Inscription : août 2004 Messages : 102 ![]() |
Citation:
J'ai 2 fichiers en lecture /écriture: - le fichier des logs: on y lit lors de chaque requête http, càd très fréquemment, et on y écrit lors de chaque ouverture de session. - le fichier des commandes: on y lit quand on veut consulter les commandes, et on y écrit à chaque fois qu'on enregistre une commande. Donc si je comprend bien, tu me recommanderais de veiller à l'accès exclusif sur le fichier lors de l'écriture. Mais que se passerait-il si un utilisateur demande à lire un fichier qui est en cours d'écriture? Windows le mettra-t-il en file d'attente, puis permettra la lecture quand l'écriture sera réalisée? ou bien renverra-t-il un message d'erreur? Merci pour votre aide Didier |
|
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() Inscription : octobre 2002 Messages : 471 ![]() |
Oui ->
Citation:
Citation:
En fait c'est à toi de gérer dans to cgi l'endormissement du thread tant que le fichier n'est pas ouvrable. Sinon, moi dans une DLL ISAPI, j'ouvrai un fichier log en mode "Append", mais dans certains cas, quand j'avais plusieurs instructions "Write", les lignes étaient intercallées. Le mieux c'est de faire des tests. Cela dit si tu as vraiement beaucoup de requêtes, il vaudrai peut-être mieux utiliser une base de données.
__________________
Qui va piano va sano... |
||
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Didier CabaléConseil - Consultant en systèmes d'information Inscription : août 2004 Messages : 102 ![]() |
Citation:
Citation:
Merci pour ton aide, Matazz |
||
|
|
00
|
|
|
#10 |
|
Membre éprouvé
![]() Inscription : octobre 2002 Messages : 471 ![]() |
de rien
__________________
Qui va piano va sano... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com