Pregunta

En un entorno con un clúster de conmutación de SQL Server o un espejo, ¿cómo prefiere para controlar los errores? Parece que hay dos opciones:

  1. deja de funcionar completamente la solicitud del cliente actual, y dejar que el reintento de usuario
  2. detectar el error en su DAL, y vuelva a intentar no

Cada método tiene sus ventajas y desventajas. La mayoría de las tiendas que he trabajado hacen # 1, pero muchos de ellos también no siguen estrictos límites transaccionales, y me parecen estar quedando abiertos por problemas en caso de fallo. Aún así, estoy teniendo problemas para hablar de ellos en # 2, que también debería dar lugar a una mejor experiencia de usuario (una pega es el potencial a largo retraso mientras la conmutación por error sucede).

Cualquier argumentos de una manera u otra sería apreciada. Si se utiliza el segundo método, ¿tiene un envoltorio estándar que ayuda a simplificar la implementación? De cualquier manera, ¿cómo estructurar su código para evitar problemas tales como los relacionados con la falta de idempotencia en el mandato que ha fallado?

¿Fue útil?

Solución

Número 2 podría ser un bucle infinito. Lo que si está relacionado a la red, o las necesidades locales de PC se reinicia, o lo que sea?

El número 1 es molesto para los usuarios, por supuesto.

Si sólo se permite el acceso a través de un sitio web, entonces usted nunca ve el error de todas formas a menos que la conmutación por error ocurre durante la llamada. Para nosotros, esto es poco probable, y hemos fallado otra vez sin darse cuenta de los usuarios finales.

En la vida real puede que no tenga buen DAL limpia en un servidor web. Es posible que tenga una hoja de Excel de conexión (la mayoría de los valores financieros) o Windows Forms donde la conexión se mantiene abierta, por lo que sólo tiene la opción.

La conmutación por error sólo debe tardar unos segundos de todas formas. Si la recuperación DB requiere más que eso, tiene problemas más grandes de todos modos. Y si sucede a menudo suficiente para tener que pensar en su manejo, así ...

En resumen, sucederá que rara vez que usted quiere saber y el número 1 sería mejor. En mi humilde opinión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top