SQL Serverフェールオーバークラスターまたはミラーを備えた環境で、エラーをどのように処理しますか?2つのオプションがあるようです。
- 現在のクライアント要求全体を失敗させ、ユーザーに再試行させます
- DALでエラーをキャッチし、そこで再試行します
それぞれのアプローチには長所と短所があります。私が一緒に仕事をしたほとんどの店は#1を行っていますが、それらの多くは厳密な取引の境界に従わず、失敗した場合に問題を抱えているように見えます。それでも、#2に話しかけるのに問題があります。これにより、ユーザーエクスペリエンスも向上するはずです(フェイルオーバーが発生するまでの遅延が長くなる可能性があります)。
いずれかの方法での議論をいただければ幸いです。2番目のアプローチを使用する場合、実装を簡素化するのに役立つ標準ラッパーがありますか?いずれにせよ、失敗したコマンドのべき等性の欠如に関連する問題などを回避するために、コードをどのように構成しますか?