IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Erreur incompréhensible sur schémas et résultats renvoyés par des requêtes SQL


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Erreur incompréhensible sur schémas et résultats renvoyés par des requêtes SQL
    Bonjour à tous,


    Je rencontre depuis quelques jours déjà sans avoir aucune idée de l'origine du problème une erreur qui pourra vous paraître commune:

    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
    Merci de ne pas me répondre qu'il y a une incohérence dans les résultats type:
    - Une colonne non null qui est renvoyée à null
    - Une clé primaire absente ou en double
    - Un clé étrangère incohérente
    - etc.

    Là où l'erreur est incompréhensible:
    - Elle se produit au bout d'un certain temps d'utilisation de l'application ASP.NET sans que je puisse identifier l'origine de ce qui déclenche cette erreur
    - Elle se produit sur TOUTES les requêtes SQL effectuées par l'application et ce quelque soit l'utilisateur, le navigateur et le poste tentant d'accéder à l'application
    - Même lorsqu'elle survient, si un autre répertoire virtuel : ayant les mêmes droits, les mêmes accès, pointant sur les mêmes fichiers et ayant une adresse web similaire et des paramètres similaire existe. Alors celui-ci continue de fonctionner sans qu'aucune erreur du même genre ne soit remontée.

    À l'heure actuelle la seule "alternative" que j'ai trouvé pour résoudre le problème se résume à forcer une recompilation du site (ne serait-ce qu'en modifiant le fichier Web.config).

    Si quelqu'un avait la moindre idée... ? Je ne sais plus quoi faire..
    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Peux-tu nous fournir plus de détail tel que le nom exact de l'erreur ?
    Tu ne sais pas pourquoi elle survient mais sais-tu où histoire d'avoir quelques lignes de code ?

    Se produit-elle au remplissage (enfin plus largement manipulation) d'un DataSet sur lequel tu as défini des contraintes ? Dans ce cas tu as la possibilité de dire de ne pas utiliser les contraintes.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Effectivement, je n'ai pas fourni de code. Mais je ne l'ai pas fait car cela se produit sur chacune des requêtes effectuée par l'application.

    N'importe quel DataSet avec un simple Select, n'importe quelle SqlCommand également..

    Exemple:
    Un select de type
    SELECT * FROM MATABLE WHERE MONID=@ID*
    Utilisant un DataSet où le Schéma n'est défini que par la Table "MATABLE"
    où @ID est : Convert.ToInt32(Request.QueryString["ID"])

    Une fois que l'application a commencé a générer les fameuses erreurs, cette requête lèvera également l'exception
    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
    Même si je le test par moi-même dans une page où je donne bien entendu un querystring "ID" avec une valeur correcte.

    Là où c'est assez bizarre, c'est que que si j'effectue cette requête sur
    http://mondomaine.com/monapplication1/mapage.aspx?ID=3 par exemple et que c'est ici que ça plante
    puis sur
    http://mondomaine.com/monapplication2/mapage.aspx?ID=3 : ça ne plantera pas.

    Pourtant aucun doute sur le fait que la requête exécutée est identique. (Mêmes fichiers, même base de données, les 2 répertoires virtuels pointent exactement au même endroit) .

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Quel base de données utilisez vous ?

    Avez vous mis des traces dans votre application ? si oui, que disent-elles ?

    Dans le cas contraire, comment gérez vous vos connexions à la base ?

    Sur le profiler , les requêtes arrivent-elles sur le SGBD ? Quid de l'état des connexions ?

    (en absence de code, on est obligé de partir de questions basiques).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse,

    Je ne demande effectivement pas mieux que l'on commence même par les questions basiques en espérant que justement j'ai probablement oublié quelque chose de basique..

    J'utilise SQL Server 2005, je n'ai pas de Profiler sur la base de données et les Logs d'exceptions sont toujours toujours de même ressort:
    - Une erreur de contrainte sur une extraction via DataSet
    - Une erreur type "la COLONNE Y n'existe pas" (ce qui est impossible, au pire 0 ligne, mais impossible que dans une commande type SELECT MON_ID FROM MYTABLE WHERE ID=@ID le résultat ne renvoie pas la colonne MON_ID)

    J'aimerais vous fournir du code un peu plus concret mais l'application représente des dizaines de milliers de lignes.
    L'erreur peut arriver à n'importe quel endroit où une requête sql est exécutée.

    En ce qui concerne l'état des connexions, qu'entendez vous par là ?
    J'avoue que lorsque je fais une requête j'exécute quelquechose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSet1.MYTABLE DataTable = new DataSet1TableAdapters.MYTABLETableAdapter.GetDataByID(10);
    Sachant que le DataSet via l'interface de Visual studio 2005 en choisissant simplement une ConnectionStrings disponibles via le Web.config qui est telle que suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <add name="BD_PNDV_connectionString" connectionString="Data Source=NTDD2159;Initial Catalog=BD_MABASE;Persist Security Info=True;User ID=CONNECT_MA_BASE;Password=monpassword" providerName="System.Data.SqlClient" />

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par n1cky Voir le message
    Merci de votre réponse,

    Je ne demande effectivement pas mieux que l'on commence même par les questions basiques en espérant que justement j'ai probablement oublié quelque chose de basique..

    J'utilise SQL Server 2005, je n'ai pas de Profiler sur la base de données
    Si,si : le profiler est standard. DataBase Tools -> Sql Server Profiler

    et les Logs d'exceptions sont toujours toujours de même ressort:
    - Une erreur de contrainte sur une extraction via DataSet
    - Une erreur type "la COLONNE Y n'existe pas" (ce qui est impossible, au pire 0 ligne, mais impossible que dans une commande type SELECT MON_ID FROM MYTABLE WHERE ID=@ID le résultat ne renvoie pas la colonne MON_ID)
    Je ne parlais pas des logs d'exception. Avez vous des traces applicatives que vous pouvez activer ?

    En ce qui concerne l'état des connexions, qu'entendez vous par là ?
    J'avoue que lorsque je fais une requête j'exécute quelquechose du genre
    Profiler et utiliser ls proc stoc système de Sql Server pour voir si les connexions s'ouvrent et se ferment correctement.


    <add name="BD_PNDV_connectionString" connectionString="Data Source=NTDD2159;Initial Catalog=BD_MABASE;Persist Security Info=True;User ID=CONNECT_MA_BASE;Password=monpassword" providerName="System.Data.SqlClient" />
    Ca ne me dit pas comment vous gérez les connexions :
    de manière normale (en gros on instancie et on ouvre la connexion quand on charge chaque page, on ferme le plus tôt possible dès que les évenement sont traités) ou de manière plus "baroque" ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Sachant que ce que vous dites là
    Là où c'est assez bizarre, c'est que que si j'effectue cette requête sur
    http://mondomaine.com/monapplication1/mapage.aspx?ID=3 par exemple et que c'est ici que ça plante
    puis sur
    http://mondomaine.com/monapplication2/mapage.aspx?ID=3 : ça ne plantera pas.
    est tout à fait normal

    Les deux applications tournent sur des contextes différents.

    En fait quel est votre code pour vous connecter ?
    Avez-vous essayé d'englober vos appels à la BDD dans un try et de forcer la fermeture de la connexion dans le finally ?

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je n'ai toujours pas trouvé le SQL Profiler dont vous parlez (DataBase Tools -> Sql Server Profiler). La version de SQL Server 2005 utilisée n'est apparemment pas complète (ou peut-être ai-je réellement du mal à trouver ?).

    Sur les traces applicatives, je ne saisis pas bien de quoi vous parlez?

    Sur les procédures stockées système. Quelle type de procédure dois-je utiliser?

    Enfin, en ce qui concerne ma connexion à la base de données.
    Voici ci-dessous un exemple en l'état d'une requête qui a déjà levé une exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Int32 ApplicationUserId = 0;
    [..] Récupération de l'ID
    DtStBackOfficeTableAdapters.VW_UTILISATEURTableAdapter VwUser = new DtStBackOfficeTableAdapters.VW_UTILISATEURTableAdapter();
                    DtStBackOffice.VW_UTILISATEURDataTable Dtbl = VwUser.GetDataByID(ApplicationUserId);
    où GetDataByID est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT     VW_UTILISATEUR.*
    FROM         VW_UTILISATEUR
    WHERE UTILISATEUR_ID=@UTILISATEUR_ID
    et où VW_UTILISATEUR est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT dbo.UTILISATEUR.*, dbo.UTILISATEUR_SEMINAIRE.*
    FROM dbo.UTILISATEUR INNER JOIN dbo.UTILISATEUR_SEMINAIRE ON dbo.UTILISATEUR.UTILISATEUR_ID = dbo.UTILISATEUR_SEMINAIRE.UTILISATEUR_SEMINAIRE_UTILISATEUR_ID

    Comme vous le voyez, je n'ai pas de code pour ouvrir la connexion et la refermer, je compte sur le DataSet pour se charger de cela. Ce qui, sauf erreur de ma part est pris en charge par ce dernier?

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par n1cky Voir le message
    Je n'ai toujours pas trouvé le SQL Profiler dont vous parlez (DataBase Tools -> Sql Server Profiler). La version de SQL Server 2005 utilisée n'est apparemment pas complète (ou peut-être ai-je réellement du mal à trouver ?).
    Menu Démarrer -> Sql Server 2005 -> DataBase Tools
    Vous avez cela je suppose ?

    Sur les traces applicatives, je ne saisis pas bien de quoi vous parlez?
    Ben je présume, peut être à tort, que vous ne développez pas une applications de plusieurs dizaines de milliers de lignes de codes (je vous cite) sans traces (pour savoir où vous passer dans certaines circonstances) et sans instrumentation (contrôle des performances de l'application, enregistrement des "trap" même si ils sont catchés, etc ....)

    Sur les procédures stockées système. Quelle type de procédure dois-je utiliser?
    Pour commencer, les

    sys.sp_who
    sys.sp_who2
    sys.sp_lock

    etc ....

    Enfin, en ce qui concerne ma connexion à la base de données.
    Voici ci-dessous un exemple en l'état d'une requête qui a déjà levé une exception :
    Désolé, mais je ne comprends pas grand chose à votre code, n'utilisant jamais les TableAdapters, (qui implique des DataSet typés, que je considère personnellement comme une barbarité entrainant une violation de la régle de séparation des couches, mais c'est juste mon opinion et ce n'est pas le débat ici).

    Comme vous le voyez, je n'ai pas de code pour ouvrir la connexion et la refermer, je compte sur le DataSet pour se charger de cela. Ce qui, sauf erreur de ma part est pris en charge par ce dernier?
    Les DataSet étant des objets conçus pour travailler en mode déconnecté, il y a peu de chances pour qu'ils gérent le cycle de vie d'une connexion.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Les DataSet étant des objets conçus pour travailler en mode déconnecté, il y a peu de chances pour qu'ils gérent le cycle de vie d'une connexion.
    C'est tout à fait exact. Ce sont les TableAdapters qui font ça.

    Peux-tu dans ton code mettre l'exécution des requêtes comme je l'ai dit dans un try, et dans le finally accéder à la connexion du TableAdapters pour vérifier son état.

    Au fait, il est tout à fait possible de faire du pas à pas pour vérifier l'état de la connexion, dans le menu débuggage, il faut faire Attacher et c'est au process w3wp ou un truc approchant.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Menu Démarrer -> Sql Server 2005 -> DataBase Tools
    Vous avez cela je suppose ?
    Malheureusement non.. je l'ai sur mon serveur de développement mais pas sur le serveur en production.

    Pour le suivi pas à pas, effectivement je pourrais m'attacher à w3wp.exe, le seul souci est que je ne peux absolument pas debug car ce problème n'arrive qu'en production lors d'une forte utilisation de l'application.

    J'ai eu beau essayé de monter en charge mon serveur de développement rien n'y fait ce bug ne s'est jamais produit ici..

    Enfin, je veux bien essayer de mettre un try catch finally pour chacune des requêtes effectuée par l'application mais je ne comprends toujours pas en quelle circonstance la connection pourrait être fermée car les TableAdapters sont censés l'utiliser si elle est ouverte et l'ouvrir si elle ne l'est pas. Enfin d'après les spécifications de Microsoft. (i.e. http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx ).

    If you are working with TableAdapters, DataAdapters, or DataCommands, you do not have to explicitly open and close a connection. When you call a method of these objects (for example, an adapter's Fill or Update method), the method checks whether the connection is already open. If not, the adapter opens the connection, performs its logic, and closes the connection again.
    Question:
    Est-ce qu'une erreur type:
    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
    Peut-être entrainée par une perte de connexion avec le Serveur SQL ?

    Merci à tous pour votre aide

  12. #12
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Sinon as-tu la stacktrace pour savoir qui lève précisément cette erreur !

    Pour moi, un SELECT ne peut faire ce problème, essaye de ton coté de mettre la propriété du DataSet EnforceConstraint (ou un nom pas loin, aujourd'hui j'ai plus de mémoire) à False

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Oui, chaque exception levée est sauvegardée. La dernière en date avant arrêt complet de toute requête SQL est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Int32 SemCode = 0;
    Int32.TryParse(Request.Params["e"], SemCode);
    using (SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["BD_PNDV_connectionString"].ConnectionString))
    {
        using (SqlCommand myCMD = new SqlCommand(string.Format("SELECT LIBELLE_PUBLICATION_SEMINAIRE, LIEU_SEMINAIRE,DATE_DEBUT_SEMINAIRE,DATE_FIN_SEMINAIRE,DATE_OUVERTURE_INSCRIPTION_SEMINAIRE,DATE_CLOTURE_INSCRIPTION_SEMINAIRE, SEMINAIRE_MODULE.* FROM [SEMINAIRE] LEFT JOIN [SEMINAIRE_MODULE] ON SEMINAIRE.CODE_SEMINAIRE=SEMINAIRE_MODULE.SEMINAIRE_MODULE_CODE_SEMINAIRE WHERE ([CODE_SEMINAIRE] = {0}) ", SemCode), myConn))
        {
            SqlDataReader myReader = myCMD.ExecuteReader();
     
            if (myReader.HasRows && myReader.Read())
            {
     
                if (myReader.GetSqlDateTime(2).Value.ToShortDateString() != myReader.GetSqlDateTime(3).Value.ToShortDateString())
                {
        	      [..]
        	    }
            }
            myReader.Close();
        }
        myConn.Close();
    }
    à la ligne myReader.GetSqlDateTime(2) où l'exception levée est : InvalidCastException. Ce, sachant que bien entendu DATE_DEBUT_SEMINAIRE et DATE_FIN_SEMINAIRE sont DateTime et ne sont jamais NULL. Au pire, aucune ligne n'est retournée..

    Ceci est une des erreurs qui est levée, mais lorsque le bug survient, il arrive en réalité sur toutes les requêtes SQL effectuées sur le serveur.
    Que ce soit avec des SqlCommand

  14. #14
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Ok,

    Peux-tu nous dire quel est le type des champs date dans la base ?

    Sinon un petit workaround sera de mettre le if en tant que clause where de la requête.

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    ostenhard, les champs sont bien évidemment des DateTime (et j'ai simplifié la requête SQL et le code qui suit pour simplement illustrer le problème rencontré, je ne fais pas une requête simplement afin de comparer 2 dates dans le code behind )

    Je pense avoir trouvé l'origine du problème.
    Il viendrait d'après d'autres posts sur Internet, d'accès concurrents à un objet quelconque accédant à la base de données et, coïncidence nous avons quelques static TableAdapters.
    Il sont désormais toujours static mais instanciés à chaque appel, j'attends désormais de voir.

    Je reviendrai d'ici quelques jours poster afin de vous dire si les problèmes continuent ou s'ils se sont arrêtés. Cette solution me semble tout à fait cohérente et corrélée à la montée en charge des accès que subit notre application.

    Merci à tous

  16. #16
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Intéressant,

    Mais c'est vrai que faire des TableAdaptor static c'est quand même dangereux, non ?

    Par exemple, j'ai un tableadaptor que j'appelle tA qui a une selectcommand.
    Un utilisateur 1 fait appel à la selectcommand et la requête met 10 secondes à s'exécuter,
    Au bout de 2 secondes (du premier appel), un utilisateur 2 fait le même appel et la requête met autant de temps (en théorie).

    L'appel au tA par l'utilisateur 2 va ressembler à :
    • La connexion est ouverte : cool ça de moins à faire pas de problème
    • Je lance ma requête
    • Au bout de 8 secondes, le tA a fini le premier appel donc celui veut fermer la connexion
    • Il la ferme rien ne lui interdit
    • Le 2nd appel est dans la m................. jusqu'au coup

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/05/2010, 23h55
  2. Résultat renvoyé par Ajax
    Par PsychedeChed dans le forum jQuery
    Réponses: 6
    Dernier message: 13/04/2009, 22h20
  3. Réponses: 1
    Dernier message: 28/02/2009, 11h04
  4. Réponses: 2
    Dernier message: 11/04/2008, 23h23
  5. [JRE] Erreur incompréhensible sur solaris
    Par Yoops dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2006, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo