4

La documentation Azure manque et les articles sont souvent obsolètes.Gestion des erreurs transitoires avec azure de façon durable

J'ai lu que "le traitement des défauts transitoires" (TFH) pour les services Azure (ServiceBus, FileStorage ...) est maintenant entièrement géré. Il semble maintenant qu'il n'y ait rien à mettre en œuvre du côté client. Dans le passé, nous pouvions utiliser Enterprise Library pour gérer de tels objectifs, mais il est retiré. Pour accéder à Base de données SQL, une stratégie est implémentée pour Entity Framework (https://msdn.microsoft.com/en-us/data/dn456835.aspx).

Voici mes questions:

  • est-il nécessaire d'utiliser Azure SDK sur ServiceBus et FileStorage bénéficier de politiques qui sont maintenant mises en œuvre sur Azure?
  • Comment est-il possible de gérer TFH lors de l'accès à des données avec quelque chose qui n'est pas EF?

Nous devons nous assurer que nos composants (que l'utilisation WebClient, cru ...) ADO.NET fonctionnement correct d'une manière maintanable.

+0

'J'ai lu que" Transient Fault Handling "(TFH) pour les services Azure (ServiceBus, FileStorage ...) est maintenant entièrement géré. Il semble maintenant qu'il n'y a rien à mettre en œuvre côté client. »- Pouvez-vous partager un lien ou une source d'où vous avez lu ceci? –

+0

J'ai reçu une réponse à votre commentaire. :-) Voici le lien: [4 - Persévérance, secret de tous les triomphes] (https://msdn.microsoft.com/fr-fr/library/dn440719 (v = pandp.60) .aspx) 'La bibliothèque Azure Storage Client version 2 inclut des stratégies de nouvelle tentative pour Azure Storage Services et il est recommandé d'utiliser ces stratégies intégrées de préférence au bloc d'application de gestion des erreurs transitoires.» Ainsi, je suppose que ** Azure Storage Client Library version 2 **, dans la mesure où il incorpore des stratégies intégrées, est désormais recommandé pour accéder aux services Azure? –

Répondre

5

J'ai lu que "le traitement des défauts transitoires" (TFH) pour les services Azure (ServiceBus, FileStorage ...) est maintenant entièrement géré. Il semble maintenant que ne soit rien à mettre en œuvre du côté client.

Ceci n'est pas correct. Le service en lui-même ne gérera pas les erreurs transitoires. Il est de la responsabilité du client de gérer les erreurs transitoires. Si vous regardez Storage Client Library (> = version 2.0), vous y trouverez des stratégies de réessai à l'aide desquelles vous pouvez indiquer à votre code client de gérer les erreurs transitoires.

Venons-en maintenant à vos questions:

est-il nécessaire d'utiliser Azure SDK sur ServiceBus et FileStorage à profit des politiques qui sont maintenant mises en œuvre sur Azure?

Il n'est certainement pas nécessaire d'utiliser les SDK pour gérer les erreurs transitoires, mais cela facilite votre travail. Les SDK proposent différentes manières de gérer les erreurs transitoires (plus vous pouvez étendre les fonctionnalités disponibles dans le SDK pour élaborer votre propre stratégie de gestion des transitoires). Pour élaborer, considérons la bibliothèque Storage Client qui est un wrapper sur l'API REST Azure Storage. Maintenant, cette bibliothèque a défini quelles erreurs doivent être considérées comme transitoires (code d'état HTTP 500+) et quelles erreurs ne doivent pas être considérées comme transitoires (code d'état HTTP 400 - 499). En outre, il existe différents types de logique de réessai: Exponentiel (par défaut), Linéaire ou Aucun. En tant que développeur, vous pouvez décider quelle logique de réessai doit être utilisée en cas d'erreur transitoire et la mettre dans votre code. Si vous n'utilisez pas ces SDK, tout doit être fait par vous à partir de laquelle les erreurs doivent être considérées comme transitoires et comment la nouvelle tentative doit être implémentée. Les SDK facilitent simplement votre travail.

Comment est-il possible de gérer TFH lors de l'accès à des données avec quelque chose de qui n'est pas EF?

Si vous utilisez ADO.Net et vous obtenez une exception, ce que vous pouvez faire est de jeter un oeil à la ErrorCode retourné par le service et déterminer si l'erreur est transitoire ou non. Pour obtenir la liste des codes d'erreur SQL, consultez ce lien: https://azure.microsoft.com/en-in/documentation/articles/sql-database-develop-error-messages/. Je recommande également fortement de lire cet article ainsi que la façon dont vous allez mettre en œuvre votre propre TFH: https://azure.microsoft.com/en-in/documentation/articles/sql-database-connectivity-issues/.

+0

Merci beaucoup, bonne réponse. –