クラウド(Windows Azure)で作ったアプリでデータがでない場合がある?そうかクラウドのデータベース(SQL Azure)はロードバランサーにより移動するのだ!!

クラウド(Windows Azure)にてアプリを動作させているのですが、

自分の操作中は問題ないのですが、たまに他の人から、データ出てこないよと言われます。

え、なんか操作ミスじゃないかと思っていました!!

しかしながら、今日、その謎がとけました!!

理由

クラウドのデータベース(SQL Azure)は可溶性を保つために、ロードバランサーがデータベースの間にはいっており、適時切り替えられます。

ということは、プログラムから接続したセッション(コネクションプール)が無効になっており、再度セッションを張る必要があります。

なので、データ取得の再にエラーになった場合は、セッションが無効になっているので、再度セッションを張るプログラムが必要になる。

参考

  1. SQL Azureへの接続(ADO.NET)では、再接続を考慮する
    http://sqlazure.jp/b/sqlazure/207/
  2. Entity framework 6でのretry方法
    http://shiba-yan.hatenablog.jp/entry/20130913/1379048007

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です