2009-06-29 9 views
0

Au cours des derniers mois, nous avons eu un problème avec notre site Web. De temps en temps, diverses requêtes à la base de données, à l'aide d'ADO.NET DataSets, génèrent une erreur ... dont la plus courante est "Echec de l'activation des contraintes: une ou plusieurs lignes contiennent des valeurs non valides, uniques ou étrangères. -key contraintes. "Y a-t-il un problème avec les ensembles de données ADO.NET dans un environnement à charge équilibrée?

Les données sont en réalité correctes car, sans rien changer, l'erreur sera intermittente. En outre, le "correctif" pour cela est de recycler le pool d'applications sur les deux serveurs Web ... donc le problème ne peut pas être de mauvaises données retournées. Une fois que cela est fait, il peut fonctionner correctement pendant des semaines ou se casser trois fois en une journée. Il n'y a pas de consistance à cela ...

Il semble également comme comme les nouveaux moyens d'accès aux données, tels que Linq 2 SQL, fonctionnent très bien ... mais il est difficile de dire que le site utilise les deux en ce moment . (Travailler sur tout pour L2S, mais ne pas avoir beaucoup de temps pour réécrire les vieux composants malheureusement ...)

Alors, est-ce que quelqu'un a déjà eu quelque chose comme ça? Est-ce quelque chose avec l'équilibrage de la charge? Peut-être que quelque chose ne va pas avec les serveurs? (J'ai forcé toutes les connexions à chaque serveur à tour de rôle et j'ai rencontré l'erreur sur chacune d'entre elles.) Est-ce que cela peut poser problème lors de l'exécution d'une VM? Err ... ok, donc la question générale est: Quelle est la cause et comment puis-je résoudre ce problème?

Oh, et le site est en .NET 3.5 ...

Répondre

0

basé sur de ce que vous avez dit, je suppose que cela est lié à la charge subie sur les serveurs au moment de l'erreur .

Si vous le pouvez, configurez un environnement intermédiaire équilibré en charge comme vos serveurs de production. Commencez ensuite à tester l'application.

Assurez-vous également que tous les derniers Service Packs/mises à jour sont appliqués sur vos serveurs de production. MS a tendance à ne pas nous dire tout ce qu'ils réparent. Enfin, regardez sur MS connect pour voir si un correctif résout le problème dont vous parlez.

MISE À JOUR:

Le test de charge peut être aussi simple ou complexe que vous pouvez vous permettre. Ce qu'il doit faire, c'est exécuter une séquence de pages qui effectuent des opérations standard sur votre site de manière répétitive. Vous souhaitez généralement simuler des temps de réflexion entre chaque chargement de page/opération qui correspondent au comportement attendu de l'utilisateur.

Ensuite, vous exécutez le test sous la forme d'un certain nombre d'utilisateurs simultanés. Pendant l'exécution du test, vous devez enregistrer les erreurs et les compteurs de performance des serveurs pour avoir une idée de la performance réelle de l'application.

Some links to load testing tools are here. Another list is here.

En guise de remarque, j'ai vu des applications commencer à présenter un comportement étrange sous une charge de seulement 5 utilisateurs simultanés. Cela dépend vraiment de la façon dont le site est construit.

+0

Je serais très surpris si c'était un problème de charge ... Je ne pense pas que nous ayons beaucoup de trafic. – CodeRedick

+0

semble que les mises à jour sont à jour pour les serveurs ... comment puis-je procéder au test de charge? – CodeRedick