SQL Azure

SQL Serverと異なるSQL AzureのConnection問題

 

SQL Azureは、高可用性を維持するためにロードバランスして、データベースがサーバーを移動します。
データベースが別のサーバーに移動すると、コネクションプールは、無効になります。

SQL Connectionを再接続(retry)しない場合、リクエストが失敗しエラーが発生します。
SQL Azureでは、再接続(retry)を組み込むことが重要になります。

接続(connection)が閉じると、問題を解決するためにconnection objectをcloseとopenするのに、数百msから数秒待つ必要があります。ごくまれに、再接続に失敗することがあります。

retry処理を組み込んだコード例が、「SQL Azure Connection Retry」(SQL Azure Connection Retry Updateの方が見やすいですね~)で紹介されています。

参考

Windows Azure

Microsoft IT Starts Migration of Microsoft.com to Windows Azure Platform」で、microsoft.com上で提供されているVideo ShowcaseをWindows Azureへ移行した話が紹介されています。
移行結果は、Video Showcaseのアプリを作成する時に、Windows Azureを適材適所で利用しコスト削減と可用性を向上させています。オンプレミスとクラウドの連携となっています。

Video Showcaseは、製品情報を紹介する5分程度のビデオを8000ほど提供しており、主にマイクロソフトのマーケット部門の人間が利用します。機能としては、ビデオの提供以外にも、レーティング、コメント投稿機能、スパム防止機能、分析機能などを備えています。

microsoft.com上で提供しているサービスをWindows Azure上に移行した最初のサービスがVideo Showcaseです。Video ShowcaseをWindows Azureに移行する為に開発されたのが、Social eXperience Platform(以後、SXP)です。

SXPは、microsoft.com内でソーシャルメディアを提供できるように開発されたマルチテナント型のWebサービスです。SXPは、オンプレミスとクラウド両方の長所を採用したサービスです。SXPは、Windows AzureとSQL Azure上で動作していますが、Video ShowcaseのWebサーバはマイクロソフト内のデータセンターにあるmicrosoft.com上に立てています。組み合わせることで、総合運用性の高い、高セキュリティと管理の容易性を実現しています。

SXP Web Servicesは、VS2010と.NET Framework 3.5で作成しています。
SXP Web Servicesは、3つのMediumインスタンス上で1つのWeb Roleが動作しています。SXPチームは、高可用性と、micorsoft.comのエンタープライズwebサイトとしてのスケーラビリティを提供するために3つのインスタンスを選択しました。通常、5%程度の利用率なので、必要以上の性能を持っています。

SXPはマルチテナント型なので、micorosoft.com上の複数のサブサイトで、利用することができます。テナントごとに、SQL Azureデータベースを分けてテナントを作成します。複数データベースを利用することで、DBの分離の利点を享受できます。複数DBを利用することで可用性を高めています。SXPでは、ログの保存にWindows Azure Storageを利用しています。

Windows Azure

Deploying Existing Silverlight Application (Deep Zoom) on Windows Azure」で、Deppzoom Composerで作成したSilverlightアプリケーションのDeep ZoomをWindows Azureにデプロイする方法が紹介されています。

Deepzoom Composer

Deepzoom Composerは、「Microsoft Wave – Deepzoom Composer」で公開されており、SilverlightのDeepzoomを手軽に作成することができる。マウスで、画像を追加し、画面上に配置しリンクなどを設定するだけでDeepzoomを作成できる。

20101005012617

紹介記事では、Deepzoom ComposerからエクスポートしたDeepzoomをWindows Azureにデプロイしている。

Windows Azureへのデプロイ準備

既存のSilverlightアプリケーション(Deepzoom)をWindows AzureのWeb Roleへデプロイする。

  1. Visual StudioでWeb Roleを追加する。
  2. Deepzoomのディレクトリをプロジェクトに追加する。
  3. web.configを修正し、規定のドキュメントにtest.htmlを設定する。以下のコードを<system.Webserver>配下に追加する。

    <defaultDocument>
    <files>
    <add value=”Test.html”/>
    </files>
    </defaultDocument>

以上でWindows AzureへのSilverlightアプリケーションのデプロイ準備が完了する。後は、デプロイして完了。具体的な手順は、「Deploying Existing Silverlight Application (Deep Zoom) on Windows Azure – Mingfei’s Code Block」にてスクリーンショット付きで紹介されている。

実際にWindows Azure上にデプロイされたデモアプリが、Silverlight Project Test Pageで公開されている。

ダウンロード

知っていました?マイクロソフトの製品ロゴが配布されていることを。

使用許諾条件を確認して、使っちゃいましょうな。

Microsoft PressPass – Image Gallery: Microsoft Logos:

20100929222500

もちろんAzureのロゴもありますよ。

SQL Azure Team Blog

Creating Tables with Project Houston – SQL Azure Team Blogの内容を簡単に紹介する投稿です。

マイクロソフトのプロジェクト コード名 ”Houston” 入門シリーズ(Part1)2つ目の投稿です。パート1では、基本的なログインと遷移について紹介しました。このエントリーでは、Houstonでテーブルデザイナーの使用方法について紹介します。マイクロソフトのプロジェクト コード名 “Houston”は、SQL Azure用の手軽なデータベース管理ツールで、CTP(コミュニティー テクノロジー プレビュー)版です。Houstonは、権限管理、クエリの実行、データベーススキーマのデザインと編集、テーブルデータの編集などの基本的なデータベース管理ラスクをすることができます。

今のところ、SQL Server Management Studio 2008 R2はSQL Azure用のテーブルデザイナーを提供していません。SQL Server Management Studio 2008 R2でテーブルを作成するには、CREATE TABLE文を実行することになります。プロジェクト Houstonはwebベースのテーブルデザイナーを提供しています。でもHoustonはCTP版ではあるが。。。

Houstonを使用するには、Microsoft Project Code-Named “Houston” CTPにアクセスします。(SQL Azure ラボでは、CTP版、もしくは実験的プロジェクトを扱います。)

 

テーブル構造の編集

 

ログインすると、左上にデータベース ナビゲーションバーが表示されます。

clip_image001

新しいテーブルの作成:

  1. “New Table”を選択します。
  2. ナビゲーションバーがテーブル ナビゲーションに変わります。

     

    clip_image002

  3. メインウィンドーにテーブルデザイナーモードで、新しいテーブルが表示されます。

    clip_image004

    タイトルの前にある星は、新しいテーブルで保存されていないことを示します。Houstonは、新しいテーブルに自動的に3つのカラムを追加します。必要に応じて、名前を変更したり、データ型を変更することができます。追加された新しいカラムを消したい場合は、名前を選択し、リボンバーのColumnsのDeleteボタンを選択します。

カラムを追加したい場合は、 +Columボタンを選択するかリボンバーにあるColumnsのNewボタンを選択します。

Houstonで使用している単語を、SQL Serverのツールで使用されている単語に置き換えられるように説明します。

  • Is Required? nullを登録することはできません。必ずデータを登録する必要があるカラムであることを意味します。
  • Is Primary Key? カラムが主キーであることを示し、クラスター化インデックスが作成されます。
  • Is Identity? 自動インクリメント列です。通常、主キーと連携します。bigint, int, decimal, float, smallint, tinyint データ型のみで提供されます。

 

保存

テーブルデザインのSQL Azureへのcommit準備ができたら、リボンバーの Save ボタンで保存する必要があります。

clip_image005

既知の幾つかの制限があります。複数行の主キーの作成は失敗します。テーブル名やカラム名を変更し、保存しようとすると失敗することがあります。

フィードバック

プロジェクトHoustonは通常のMicrosoftサポートサービスのサポートを受けることはできません。コミュニティベースのサポートは、SQL Azure Labs Support Forumに質問を投稿することができます。プロダクトチームが回答します。

 

バグの登録の仕方

  1. フィードバック | Microsoft Connectに移動する。
  2. すでにフィードバックが報告されていないか検索し確認してください。
  3. まだ報告されていない場合は、ページの一番下に移動し、オレンジの「Submit Feedback」をクリックしてください。
  4. 「Select Feedback」上の、「SQL Server Suggestion Form」をクリックします。
  5. バグフォームで、「Category」=Tools(Houston)を選択します。
  6. 質問を入力します。
  7. マイクロソフトに送信するため「Submit」をクリックします。

フィードバックの仕方

  1. フィードバック | Microsoft Connectに移動する。
  2. すでに問題が報告されていないか検索し確認してください。
  3. まだ報告されていない場合は、ページの一番下に移動し、オレンジの「Submit Feedback」をクリックしてください。
  4. 「Select Feedback」上の、「SQL Server Bug Form」をクリックします。
  5. バグフォームで、「Version」=Houston build CTP 1 – 10.50.9610.34を選択します。
  6. バグフォームで、「Category」=Tools(Houston)を選択します。
  7. 質問を入力します。
  8. マイクロソフトに送信するため「Submit」をクリックします。