質問

SQL Server フェールオーバー クラスターまたはミラーを備えた環境では、エラーをどのように処理することを好みますか?次の 2 つのオプションがあるようです。

  1. 現在のクライアントリクエスト全体を失敗させ、ユーザーに再試行させます
  2. DAL でエラーを見つけて、そこで再試行してください

それぞれのアプローチには長所と短所があります。私がこれまでに協力したショップのほとんどは 1 を実践していますが、その多くも取引上の厳格な境界を遵守しておらず、失敗した場合に問題が発生する可能性を残しているように私には思えます。それでも、私はそれらを #2 に伝えるのに苦労しています。これにより、ユーザー エクスペリエンスも向上するはずです (フェイルオーバーの発生中に潜在的に長い遅延が発生する可能性があるという問題点があります)。

いずれにしても、いかなる議論も歓迎いたします。2 番目のアプローチを使用する場合、実装を簡素化する標準ラッパーはありますか?いずれにせよ、失敗したコマンドの冪等性の欠如に関連する問題などを回避するには、コードをどのように構成すればよいでしょうか?

役に立ちましたか?

解決

番号2無限ループであってもよいです。それは、ネットワーク関連、または再起動ローカルPCのニーズ、または何でも何か?

ナンバー1はもちろん、ユーザーに迷惑です。

あなただけのフェイルオーバーが通話中に発生した場合を除き、あなたはとにかくエラーを参照してくださいことは決してないだろう、ウェブサイト経由でのアクセスを許可する場合。私たちにとって、これはそうであり、我々は、エンドユーザーが実現することなくフェイルオーバています。

実際の生活では、Webサーバー上の素敵なきれいなDALを持っていないかもしれません。あなたは、接続が開いたままにされる(最も財務)やリサイズを接続するExcelシートを有することができるので、あなたは、唯一のオプションがあります。

とにかく数秒だけ取る必要があります。

フェイルオーバーします。 DBの回復はそれ以上かかる場合は、とにかく大きな問題を抱えています。そして、それが取り扱いについて考える必要がするのに十分な頻度で発生した場合、それ、よく...

要約すると、あなたが知りたいことはめったにことが起こるんだろうと数1が良いだろう。私見ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top