Windows Azure

Windows Azure SDK for .NET11月版がリリースされました。VS Toolsもいくつか変更が入ったようです。

てことで、一年ぶりぐらいにAzureにでぽろーーーい!してみましょうかね。

Visual Studio上で、ほぼほぼ完結できるようになっています。
証明書もばっちりGUIで作成でき、複数のサブスクリプションを管理できて配置先も簡単に選べる。
ホステッドサービスの作成、ストレージアカウントの作成もVS上でできちゃいませ!旦那
リモートデスクトップの設定もチェックボックスにチェック入れれば、設定画面でますよ。

あ、そうそう。Windows Azure SDK名称変わったから。Windows Azure SDK for .NETに。
あっちこちの人がうげっと呻きそうですねw

image

SNAGHTML17001fa

SNAGHTML1707bcb

SNAGHTML1709469

SNAGHTML170a9fc

SNAGHTML170bdca

SNAGHTML170d31e

SNAGHTML170f888[4]

SNAGHTML1713b81

SNAGHTML1715dcf

SNAGHTML1717861

SNAGHTML1718c9c

image

SQL Azure

注意事項

コピー元のSQL Azureサーバーとコピー先のSQL Azureサーバーは、同じDCを選択していますか?違うデータセンターの場合、次のエラーが発生し悩みまくります。

メッセージ 40532、レベル 11、状態 1、行 1
Cannot open server "lx88a7fkwl" requested by the login.  The login failed.

エラー内容から、異なるDC間でコピーしようとして失敗したっと気づくのは至難の業なのでご注意を。

コピー元SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② コピー元データベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ コピー元データベースのユーザーにdb_onwerロールを付与
EXEC sp_addrolemember ‘db_owner’, ‘test’
GO

コピー先SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② masterデータベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ ユーザーにロール付与
EXEC sp_addrolemember ‘dbmanager’, ‘test’;
GO

データベースのコピーを実行

–CREATE DATABASE コピー先データベース名 AS COPY OF (コピー元サーバ名).データベース名
–(例)
CREATE DATABASE test AS COPY OF rvpqy0fvb2.test

–実行状況の確認
SELECT * FROM sys.dm_database_copies

詳細

データベース・コピーを使用してSQL Azureデータベースをバックアップするを参照してください。

補足

コピーしたデータベースを運用するには、ログインとユーザーマッピングをし直す必要があるので、コピーだけして安心しないように。

SQL Azure

注意事項

コピー元のSQL Azureサーバーとコピー先のSQL Azureサーバーは、同じDCを選択していますか?違うデータセンターの場合、次のエラーが発生し悩みまくります。

メッセージ 40532、レベル 11、状態 1、行 1
Cannot open server "lx88a7fkwl" requested by the login.  The login failed.

エラー内容から、異なるDC間でコピーしようとして失敗したっと気づくのは至難の業なのでご注意を。

コピー元SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② コピー元データベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ コピー元データベースのユーザーにdb_onwerロールを付与
EXEC sp_addrolemember ‘db_owner’, ‘test’
GO

コピー先SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② masterデータベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ ユーザーにロール付与
EXEC sp_addrolemember ‘dbmanager’, ‘test’;
GO

データベースのコピーを実行

–CREATE DATABASE コピー先データベース名 AS COPY OF (コピー元サーバ名).データベース名
–(例)
CREATE DATABASE test AS COPY OF rvpqy0fvb2.test

–実行状況の確認
SELECT * FROM sys.dm_database_copies

詳細

データベース・コピーを使用してSQL Azureデータベースをバックアップするを参照してください。

SQL Azure

バージョンアップ内容

2011年8月9日にマイクロソフトがリリースした.NET Framework4の信頼性に関する更新1(http://support.microsoft.com/kb/2533523)で、本問題の改善が図られています。

基本的に、SqlClientがアプリケーションにプールを返す前に、プールのコネクションが無効化されていないかを確認します。もしコネクションが無効の場合、SqlClientは単純にアプリケーションにコネクションを返す前に再接続処理をします。

この修正は、サーバのラウンドトリップを増やしません。代わりに、TCPレイヤでソケット状態を確認するので、速く効果的です。しかし、この修正は再接続処理の代わりになるわけではありません。特にSQL Azureに接続する場合、再接続処理の実装は、まだ必要なプラクティスとして推奨します。この改善により、SQL ServerとSQL Azureへの接続時に、節奥に失敗する機会を減らしました。

導入背景

SQL Azureに接続した時に、よく遭遇するエラーの一つが、「A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 – An established connection was aborted by the software in your host machine.)」です。このエラーは、SqlClientがプールから無効なコネクションを取得したときに発生し、アプリケーションに返されます。。プール上のコネクションは、ネットワークやSQL Azureで制限されて無効化されます。結果的に、たとえば実行コマンドなどでSqlException例外が発生します。

以下のようなコードを検討しましょう。

try

{

    // Let’s assume the connection string uses default connection pool set to true

    // and the connection pool was already previously created for this same

    // connection string

    using (SqlConnection connection = new SqlConnection("…"))

    {

        // If the connection pool in not empty,

        // even if the connection returned above is dead,

        // the SqlConnection.Open command below executes succesfully.

        connection.Open();

 

        SqlCommand command = new SqlCommand("select product_name from products");

        command.Connection = connection;

        command.CommandTimeout = 3;

 

        // The Sqlexception gets thrown here,

        // when it tries to send the command to SQL Server.

        SqlDataReader reader = command.ExecuteReader();

 

        while (reader.Read())

        {

            …

        }

    }

}

catch (SqlException ex)

{

    MessageBox.Show(ex.Message);

}

この例では、Openメソッドがいつでも成功します。アプリケーションからSQL Azureに接続する旅に、再接続処理を追加しています。

情報源

MSDNのBlogに掲載されたMinimizing Connection Pool errors in SQL Azureをざっくり意訳した投稿です。

SQL Azure

SQL Azure Labsが装いも新たに、まるっと過去を清算して新たなサービス展開を模索し始めましたよ。

image

今、SQL Azure Labsで担当しているのは、「Data Explorer」と「Social Analytics」の2つ。そのうち、「Social Analytics」が使用できるようになったので、早速触ってみたぞ。

image

上記画像が、Sosical Analyticsの実行状況。まぁ簡単に言うとこれがすべて。
現在のところ、フィルタリングできるのは、ビル・ゲイツとWindows 8のみでユーザが任意に追加することはできない。

何するもの?

再集計として提示されているのは、各種ソーシャルサービスから特定キーワードで情報を収集してくる。

image

収集してきた情報を一覧表示にする。
また、収集した情報を集計・分析し、活発にRTやメンションされている発言をカウントしランキング表示する。その発言に対して、ネガティブ発言数・ポジティブ発言数をカウントし表示する。その発言にたいする会話についてを、さらにピックアップする。

まぁ、ソーシャルな発言を収集して分析して、把握しやすいようにしてやろう!っというサービスなのかな?

各パネルの説明

image

image

参考情報