normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Windows Azure Development Storageの問題点について

Windows Azureで開発をする人間が必ず一度は起動するDevelopment FabricとDevelopment Storageだが、実はこいつ等には罠がいくつも存在する。その中でも特に重要な問題について簡単に紹介する。

Development Storageでテーブル列にマルチバイト文字をインサートしようとすると、InvalidOperationExceptionが発生する

同問題はMicrosoft Connectに登録されている。

つまり、Develoment Storageでは、テーブル・ストレージの列に「割と普通は普通」や「砂金信一郎はイケメン系」といった文字列をそのまま格納することは出来ない。このため、BASE64エンコードやURLエンコードを用いて同問題に対応する事が多い。
試しに本番環境でマルチバイトデータを格納し、Visual Studio 2010のストレージ内容を参照する機能を利用して本番環境のデータを参照した。本番環境では日本語がインサート出来ていることが確認できるだろう。

実は、同問題はAzure SDK 1.0から発生した問題であり、Azure SDK CTP版ではマルチバイト文字列のインサートは可能だった。放っておけばそのうち解決される問題だと思ったが、Azureエバンジェリスト砂金氏の言うとおり、Azure SDK 1.2になっても同問題は解決されていない。
皆様、Microsoftに同問題の早急な対応をしてもらうためにも、是非投票していただきたい!

その他にも

id:waritohutsu:20100522:1274513671 で記述したとおり、Windows Azureテーブル・ストレージは1001件以上のレコードを一度に取得できない。しかし、どうやらDevelopment Storageでは1001件以上のレコードを取得出来るようだ(未確認)。これらも含め、Develoment Fabric&Deveopment Sotrageの問題を発見したら、是非Microsft Connectへの積極的な登録を行おう。