Comment traitez-vous au niveau du transport des erreurs dans SqlConnection?

Chaque maintenant et puis dans un volume élevé .NET application, vous pouvez voir cette exception lorsque vous essayez d'exécuter une requête:

Système.Les données.SqlClient.SqlException: Une erreur de niveau transport a
s'est produite lors de l'envoi de la requête vers le serveur.

D'après mes recherches, c'est quelque chose que "ça arrive" et pas beaucoup peut être fait pour l'empêcher. Il ne se passe pas comme un résultat d'une mauvaise requête, et ne peuvent généralement pas être dupliqué. Il a juste les cultures en place, peut-être une fois tous les quelques jours dans un lieu occupé OLTP système lors de la connexion TCP à la base de données va mal pour une raison quelconque.

Je suis forcé de détecter cette erreur par l'analyse du message de l'exception, et puis de retenter l'ensemble de l'opération à partir de zéro, à inclure l'utilisation d'une nouvelle connexion. Rien de tout cela est joli.

Quelqu'un a des solutions de rechange?

  • Avez-vous des statistiques pour la charge sur votre serveur de base de données lorsque ces erreurs sont jetés? Vous pourriez avoir quelques problèmes de base de données qui sont à l'origine des connexions à l'échec.
  • Cela ne devrait pas arriver, même en cas de fort volume transactionnel. Nous avons une moyenne de 25 000 transactions par seconde sur SQL Server 2005 Standard, et nous n'obtenons pas cette erreur. (À moins que le cluster de basculement, qui est tous les 12 mois et+, pas tous les quelques jours.) Sans plus d'info, ça sonne comme il est un problème de réseau entre votre serveur de base de données et serveurs d'application. Pouvez-vous poster plus d'info?
  • Je soupçonne que c'est en raison de la merde à bord de Dell NIC, je suis obligé d'utiliser depuis mes deux slots PCIe sont pris avec des cartes HBA connecté à mon DAS. Je me suis mise à niveau vers une plus grande machine donc je peux adapter le (beaucoup) mieux NIC Intel. Comment êtes-vous clustering avec l'Édition Standard? C'est une Édition Entreprise fonctionnalité.
  • le clustering, l'envoi de journaux, et de la mise en miroir sont tous disponibles en Standard. http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx
  • Aussi loin que je peux dire, la classe 20 est au niveau transport.
InformationsquelleAutor Eric Z Beard | 2008-08-19