2008/08/26

ついにiPhoneが故障した

大騒ぎだった iPhone 発売日から 1 ヶ月半。
あのときに 3 時間も並んでゲットした iPhone 16GB White が壊れてしまいました。

それまでは何も問題なく使えていたのですが、メールチェックしようと取り出してみると画面が真っ白になってしまって、何を操作しても一向に改善されません。しかし、どうやらボタン操作 (ホームボタンなど) は正常に動くようで、ボタンを押したときのサウンドは聞こえます。
その後いろいろ試してみて、画面タッチ自体も認識しているようです。
(ちなみに iTunes からの復元も何度も試してみましたが直りません)

どうやら液晶そのものが逝ってしまわれたようなので、もう手の施しようがありません。
仕方なく最寄りの SoftBank Shop に行って相談してみると、「こちらでももう一度復元を試してみます」ということで、預けて様子を見てみることに…。30分ほどして奥から担当の方が怪訝そうな顔をしながら登場。

「こちらで復元しても直りませんでした。ですので無償交換いたします。」

とのこと!
最悪の場合交換してくれるんだろうな、とは思っていましたが、こんなにもすんなり無償交換になるとは驚きました。

この不具合が発生している (していた) 人って他にいるんでしょうか?
私がググってみた段階では情報を得られませんでした。

第 2 号 iPhone 大切にします。

2008/08/21

H2 Databaseのクラスタリング構成に挑戦

H2 Database Engine
http://www.h2database.com/

H2 Database のクラスタリングに挑戦したのでそのときのメモです。
利用する環境は次の通りです。

OS: Windows XP Professional SP3
Java: JDK 6 Update 7
H2: Version 1.0.77 (2008-08-16)

1. 仮想 2 台構成サーバを再現する
今回は 2 台のサーバを用意できないのでローカルマシンで H2 Server を 2 つ起動して確認します。
まず適当なディレクトリに clustertest というフォルダを作成し、その中に h2.jar をコピーします。さらに server1 ディレクトリと server2 ディレクトリも作成します。
+ [clustertest]
+ h2.jar
+ [server1]
+ [server2]
2. H2 Server を起動する
コマンドプロンプトを 2 つ起動してカレントディレクトリを clustertest にします。
server1 となる H2 を 9101 ポートで起動します。
java -cp h2.jar org.h2.tools.Server
-tcp
-tcpPort 9101
-baseDir server1
続いて server2 となる H2 を 9102 ポートで起動します。
java -cp h2.jar org.h2.tools.Server
-tcp
-tcpPort 9102
-baseDir server2
3. クラスタリングモードにする
新たにコマンドプロンプトを起動して clustertest に移動します。
java -cp h2.jar org.h2.tools.CreateCluster
-urlSource jdbc:h2:tcp://localhost:9101/test
-urlTarget jdbc:h2:tcp://localhost:9102/test
-user sa
-serverlist localhost:9101,localhost:9102
このとき、正常にクラスタリングできれば何もエコーはありません。問題があれば何かしらの Exception が発生すると思います。
また、正常にクラスタリングできている状態でもう一度同じコマンドを実行すると、「クラスタリングエラー - データベースはクラスターモードで動作しています」というエラーが返ってくると思います。

4. 接続してみる
上の 3. で使用したコマンドプロンプトで構わないので、次のコマンドを実行して H2 Server に接続します。
java -cp h2.jar org.h2.tools.Shell
-url jdbc:h2:tcp://localhost:9101,localhost:9102/test
-user sa
「sql>」と出て入力待機状態になれば成功です。

5. テーブルを作成してデータを投入する
クラスタリングを確認するために簡単なテーブルを作成します。
create table hoge (id int, name varchar, primary key (id));
insert into hoge values (1, 'Bill Gates');
insert into hoge values (2, 'Steve Jobs');
insert into hoge values (3, 'Linus Benedict Torvald');
データを確認します。
sql> select * from hoge;
ID |NAME
1 |Bill Gates
2 |Steve Jobs
3 |Linus Benedict Torvald
(3 rows, 0 ms)
6. server1 をダウンさせる
server1 を起動したコマンドプロンプトで Ctrl+C を押すと H2 Server を停止できます。
停止した状態で再度 SELECT してみると…おお、SELECT できました。
さらに server2 を停止して SELECT してみると…
sql> select * from hoge;
Error: org.h2.jdbc.JdbcSQLException: 接続が壊れています
Connection is broken [90067-77]
当然ながらエラーになりました。

実際には 1 台のサーバ上で 2 つの H2 Server を起動するのではなく 2 台以上のサーバでこの構成を作成することになると思いますが、恐らく問題ないのではないでしょうか (実験したら報告します)。
現時点で問題 (というか不明なこと) は一度落ちてしまった H2 Server を起動し直してあげても接続中のコンソールにはその復帰状況伝わっていないということです。下に簡単に例を挙げると…
  • server1 と server2 を起動
  • クラスタリング構成開始
  • コンソール (もしくはアプリケーション) が接続
  • server1 を停止
  • server1 を起動
  • server2 を停止
この状態ではコンソールから操作できません。一度コンソール切断の後、再接続するとつながります。

2008/08/07

Gmailサービスが復活

かれこれ 14 時間ほど Gmail サービスが利用できませんでしたが、つい先ほど復活しました。

Update: our engineers have made some progress and we are expecting to
see some users back in their accounts shortly. Updates will continue
to get posted as we work to resolve this issue for everyone. Thanks
for your patience.

これほど長い時間 Gmail が使えなかったことはなかったですが、今回改めて自分が Gmail に依存しているなぁ、と感じました。

Gmailが利用不可になって困った話

昨日 (2008/08/06) の夜、iPhone から Gmail を読もうと思ったらアカウント情報が…云々というエラーになってしまいました。しかし、眠かったので特に原因を調べるでもなくそのまま放置。

そして今日 PC のブラウザから Gmail を開こうとしたら「一時的なエラー (502)」と表示されてしまって利用することができません。「数分後にもう一度アカウントにアクセスしてみてください」なんて書かれてるもんだから、少し時間をおいて何度も何度も挑戦するも解決せず。

Gmail_Error502

Google Help (英語バージョン) を覗いてみたら「Gmail Updates and Alerts」という赤い文字。翻訳サイトで内容を訳してみると、どうやら新機能リリース時に下手こいたらしい。もうかれこれ 10 時間くらいこんな状態が続いてるみたいなので、相当大きな障害なんだろうと思います。

Gmail_HelpCenter_Notification

いまは復旧を待つのみ。
しかし、天下の Google でもこんな失敗があるんですね。