7月25日の金曜日、ぶらりと秋葉原のヨドバシへ立ち寄ったところ、iPhoneが入荷している、とのアナウンス。思わず購入してしまいました。購入したのは16Gの黒。
まさかこんなに早く購入できると思っていなかったので、何の事前調査もしておらず、適当にデフォルトのプランで購入。後になって、分割払いではなく一括購入にしておけば良かったかなぁ、とかも思いましたが、まぁ、良いかな、と。
対応してくださった店員さんも iPhone の販売は初めてとのことで、SIMカードの挿入などに四苦八苦していらっしゃいました。また、説明事項も数多く、これは、売り側も大変なデバイスだなぁ、と...。
普段iPod Classicをケースも液晶保護シートもないまま乱雑に使っている私ですが、iPhone は手に持って使うことが多いと思われるので、購入直後に落としたら怖いな、と、隣で販売していたELECOM のシリコンケース(MPA-SCAPHBK)を適当に購入。しかし、製品自体に文句はないものの、ケースに着けたままではDockに刺さらないこと(当たり前)、また、装着した後の見た目がいまひとつなことから、サッサと使うのを辞めてしまいました。落とした時に後悔しそうだな...。
一方液晶保護シートには、Palm時代からの愛用品であるOverLay Brilliantを。こちらは、珍しく一発で綺麗に張ることが出来、また、違和感なく使えています。
さてデバイスの感想ですが、iPhoneを「(おまけで通話も出来る)インターネット接続機能付きPDA」として見ていた大変満足です。過去、ネットワークに自由に繋がるPDAを求めて、古くはPalmPilot+SnapConnectから、W-ZERO3[es]まで、いろいろ試してきましたが、残念ながら、いまひとつしっくり来るモノがありませんでした。W-ZERO3 は面白い端末ではありましたが、通信機能の弱さと、ActiveSync の脆弱さがどうにも...。また、ブラウザのレンダリング能力不足も悩みの種でした。最近は、P905iのフルブラウザを活用していましたが、今度は画面の狭さと、テンキーによる文字入力、また、PC環境とのSync能力不足などがネックとなり、結局iPaq112との併用とならざるを得ませんでした。
こういった視点から捉えると、MacOS X + iPhone の組み合わせは大変快適に使えます。ブラウザのレンダリング能力も問題ありませんし(flashの使えないのが少し辛いですが)、各種SyncもiTunesを経由して、iCal/アドレスブック/iPhotoと一発です。しかもメイルは GMail がそのまま使えますから、最近 IMAP を全面的に活用している身として、まさに願ったりです。
購入前から分かっていた問題点は、メモの Sync が出来ないこと。私は結構PDAのメモ機能を使うので、この機能がないとiPAQからの完全以降は、ちょっと難しい。そんなわけで、現在は iPhone + iPaqという体制です。
また、意外だったのが、iPod機能でのミュージックビデオの扱いが、iPod Classic と異なること。私はミュージックビデオの所有数が多く、それを音楽代わりに聞く、という使い方をよくしています。iPod Classic の場合、ビデオ種別をミュージックビデオにしておくことで、ミュージックビデオを通常楽曲と同じ扱いにすることが可能なのですが、iPhoneでは、ミュージックビデオの扱いは、あくまでもビデオに準じるようで、再生中に本体をSleepにしてしまうと、楽曲再生が止まってしまいます。また、同じ理由からか、単一プレイリスト中に楽曲とミュージックビデオが同居している場合、シャッフル再生を行うと、ミュージックビデオだけがスキップされてしまいます。これは、iPod機能をiPhoneで賄おうと考えていた私には誤算でした。Genreから楽曲リストへ入り、楽曲を再生させることで、その後はミュージックビデオも楽曲として扱ってくれる為、回避策がないことはないのですが、Playlistでは、この機能が働かないようで、また、ミュージックビデオ再生中に一旦停止してしまい、再度再生を行うと、今度はビデオ扱いになってしまいます。というわけで、今しばらくはiPod Classic を手放すことも難しいのかも知れません。
当初から iPhoneで通話/ケータイメイルを使う気のなかった私は、P905iとの2台体制で挑むつもりでしたが、蓋を開けてみたら、おまけで iPaq112 + iPod Classic も併用対象になってしまい、ちっとも集約できてない気が (^^;
まぁ、これらの問題は、そのうち iPhone の機能が成熟してくるにつれて、だんだんと良い落としどころに向かって行くのだろうな、と、楽観視しています。まだまだ、iPhone のファームは改善途上だと思いますし、進化して行くところがミニコンピュータとしてのiPhone の魅力でもありますし。
想像していなかった魅力的な点としては、iPod機能の音質が iPod Classic よりも良いように感じられること。音質にこだわりはないので、気のせい、と言われればそれまでですが、同じヘッドフォンを使っても、音の感じが違います。
また、WebSiteへのダイレクトリンクを他のアイコンと同じようにホームメニューへ設置/整理できるのも予想以上に便利でした。各種Googleサービスへのリンクを置いておくことで、Webサービスも内蔵アプリケーションも、全く同じ感覚で使えます。
まだまだ、新しいデバイスだけに、幾つか不具合や改善してもらい点もありますが、私の使い方には大変に良く合致した、魅力的なデバイスです。十分に楽しもうと思います。
2008/08/03
Outlook の修復
最近本当に iPaq 112の調子が悪くて困っています。正確には、「Outlook とメモの同期が上手くいかない」問題なので、ActiveSync の問題なのですが。
現象は「x項目が競合しています」という大変良く目にするものです。この現象が起こった場合、今までは、
しかし、何時の頃からかこの方式が使えなくなり、「競合の解決」を選択すると、「デバイスでファイルが使われているかデバイスのメモリ不足」というメッセージがでるようになってしまいました。最後にはお決まりの、「状態の表示」エラーになり「デスクトップで問題が発生しました。サポート コード:85010014」が繰り返されることに。
この場合も解決策は決まっていて、
しかも、最もよく分からないのが、「上手く行くことがある」こと。何度かデバイスの再起動やOutlookの修復を繰り返すと、スルっと上手く行ってしまうことがあります。しかも、これ以後も、そのまま上手く行くようになるか、再び発生してしまうかは、運次第だというのが嫌らしいところです...。
特に私は自宅と勤務先の二か所で sync しているので、更にややこしく、片方では上手く行っても、もう片方はだめだった、という事は頻発します。
現在は、競合したメモを全て退避、削除した後、再度 sync を行うことで、なんとか折り合いをつけているのですが、確実な現象の切り分けと回避策を見つけたわけではないので、ドキドキです...。
この辺り、PalmOSでは困ったことがなかったので、流石に良く出来ていたな、と改めて感心してしまいました。
現象は「x項目が競合しています」という大変良く目にするものです。この現象が起こった場合、今までは、
- PC側のメモをどこかへ退避
- 「競合の解決」を選択
- PDA側で情報を上書き
- 両ファイル差分を確認
- 手マージして、再度 sync
しかし、何時の頃からかこの方式が使えなくなり、「競合の解決」を選択すると、「デバイスでファイルが使われているかデバイスのメモリ不足」というメッセージがでるようになってしまいました。最後にはお決まりの、「状態の表示」エラーになり「デスクトップで問題が発生しました。サポート コード:85010014」が繰り返されることに。
この場合も解決策は決まっていて、
- デバイスを再起動する
- Outlookを終了させた後、タスクマネージャで Outlook プロセスを探し、残っている場合には、強制的に終了させる
- Outlook の「ヘルプ」から「アプリケーションの自動修復」
- ActiveSync で「モバイルデバイスの削除」を選んで、再度コネクションを設定する
- ActiveSyncを再インストールする
しかも、最もよく分からないのが、「上手く行くことがある」こと。何度かデバイスの再起動やOutlookの修復を繰り返すと、スルっと上手く行ってしまうことがあります。しかも、これ以後も、そのまま上手く行くようになるか、再び発生してしまうかは、運次第だというのが嫌らしいところです...。
特に私は自宅と勤務先の二か所で sync しているので、更にややこしく、片方では上手く行っても、もう片方はだめだった、という事は頻発します。
現在は、競合したメモを全て退避、削除した後、再度 sync を行うことで、なんとか折り合いをつけているのですが、確実な現象の切り分けと回避策を見つけたわけではないので、ドキドキです...。
この辺り、PalmOSでは困ったことがなかったので、流石に良く出来ていたな、と改めて感心してしまいました。
2008/03/22
2008/02/27
ActiveSync TIPs
ActiveSync で PC と iPAQ を sync していると、たまーに、メモが競合状態になってしまうことがあります。
ここで「競合解決」を選択をすると、
「PCを見てもOutlookは起動していないし、iPAQを見てもメモリは足りているし...、おかしいなぁ」という場合には、素直に、「Windows タスク マネージャ」を調べてみましょう。恐らく Outlook.exe がこっそり起動している筈です。こいつを「プロセスの終了」ボタンで殺してやれば、OK(!?)。再度 ActiveSync の同期を試してみましょう。
手動で強制的に殺している為、保存前のOutlookのデータが消失する可能性が高いです。試す場合には、ぜひ、気をつけて...。
ここで「競合解決」を選択をすると、
このメモは現在使われているか、デバイスのメモリが不足していますみたいなメッセージが出て、やっぱり競合が解決できない、という事態に陥ってしまうことがあります。
「PCを見てもOutlookは起動していないし、iPAQを見てもメモリは足りているし...、おかしいなぁ」という場合には、素直に、「Windows タスク マネージャ」を調べてみましょう。恐らく Outlook.exe がこっそり起動している筈です。こいつを「プロセスの終了」ボタンで殺してやれば、OK(!?)。再度 ActiveSync の同期を試してみましょう。
手動で強制的に殺している為、保存前のOutlookのデータが消失する可能性が高いです。試す場合には、ぜひ、気をつけて...。
2008/02/17
ActiveSync on Bluetooth
お手頃価格だったので、Bluetooth アダプタを買ってきました。プラネックスのBT-Mini2EDRWです。というわけで、早速 ActiveSync を実験してみました。
...こ、これは難しい。恐らく私が Bluetooth 機器を使うのが初めてだからなのでしょうが、設定項目に関する勘が働きません。しかも、初めて故に、いじらないで良いところを変更し、混乱に拍車をかけてしまいます。仕方がない、諦めて、マニュアルでも読むか...(おぃ)。
というわけで、「(多分)これだけで ActiveSync on BT 出来るはず」という設定を以下にまとめておきます。後から思い出しながら/再現しながら書いているので、漏れがあったらすみません。
ちなみに PC 側にインストールしたのBluetoothスタックは「Bluetooth Stack for Windows by Toshiba Version v5.10.08」というもので、PC側のOSは WindowsXP です。また、ActiveSyncは
4.5.0(ビルド5096)を使っています。
まずはPCの設定です。
次にiPAQ側の設定をします。
するとPC側で「Bluetooth パスキー(PINコード):」が求められますので、適当に入力しましょう。しばらく入力しないで放置していると接続が切られますので、迅速に。
この後iPAQ側で同じく「Bluetooth 認証」としてPINコードの入力が求められますので、同じ値を入力します。
これで、接続する準備が整いました。iPAQ側の Bluetoothマネージャには「(PC名)とのActiveSync」というアイコンが作られている筈です。そのアイコンをタップ&ホールドし、「プロパティ」を開いてください。「サービス名」として「COM7」などと出来ているはずです。この「COMn」を覚えておきましょう。覚えたら、右上のokを選んでこの画面から抜けて構いません。
再度PC側に戻り ActiveSync の設定です。
再びiPAQへ戻ります。
さて、肝心のActiveSync on Bluetoothの感想ですが、ケーブルレスで接続できる点は素晴らしいのですが、私のように、常時PCを立ちあげておき、且つそのPCとiPAQをUSBケーブルで接続しているような
人間には、正直「びみょー」です。どうせUSBで接続しているのだから、そちらで、ActiveSyncしても、特に困っていないし... (^^;
とは言え、PCからの給電ではなく、付属のACアダプタで充電している人には、結構便利かな、と思いました。iPAQ 112も、充電クレードルがあれば感想はまた違ったのでしょうね。
...こ、これは難しい。恐らく私が Bluetooth 機器を使うのが初めてだからなのでしょうが、設定項目に関する勘が働きません。しかも、初めて故に、いじらないで良いところを変更し、混乱に拍車をかけてしまいます。仕方がない、諦めて、マニュアルでも読むか...(おぃ)。
というわけで、「(多分)これだけで ActiveSync on BT 出来るはず」という設定を以下にまとめておきます。後から思い出しながら/再現しながら書いているので、漏れがあったらすみません。
ちなみに PC 側にインストールしたのBluetoothスタックは「Bluetooth Stack for Windows by Toshiba Version v5.10.08」というもので、PC側のOSは WindowsXP です。また、ActiveSyncは
4.5.0(ビルド5096)を使っています。
まずはPCの設定です。
- PCにBluetoothアダプタを差します。
- 付属の CD からドライバをインストールします。多分Reboot必須。
- タスクトレイに「Bluetooth Manager」アイコンが常駐しているのを確認します。
- 「Bluetooth Manager」アイコンを右クリックして「オプション」を選びます。
- 下の方にある「有効にするサービス」で、「Bluetooth COMポート サービス」にチェックが入っていることを確認しましょう。
- 「Bluetooth モジュールの電源状態」でBluetoothをオンにします(電源ボタンのような大きなアイコンをクリックする、というなかなか、シュールなインターフェイスです...)。
- ここで「OK」を押してオプションを閉じて構いません。
次にiPAQ側の設定をします。
- USBでPCとActiveSyncの接続が確立していないことを確認します。接続が確立している場合には、ひとまずUSBケーブルiPAQからを抜いて下さい。
- [スタート]->[ActiveSync]を選びます。
- [メニュー]から[接続...」を選びます。
- 「次の接続方法ですべてのPCを同期する:」にチェックを付け、その下のプルダウンメニューから「`BlueTooth ActiveSync」を選びます(Tが大文字だよ...)。
- 再度[スタート]から[設定]->[接続]->「HP iPAQ Wireless」を選びます。
- 「Bluetooth」タブを選びます
- 「ステータス:オフ」をタップし「ステータス:オン」にします。
- 「Bluetooth接続」をタップします。
- 「新規作成」から「Bluetooth経由でActiveSync」を選びます。
- 「次へ」を2回選びます。
- 接続先のPCが表示されますので、それをタップし、「終了」を選びます。
するとPC側で「Bluetooth パスキー(PINコード):」が求められますので、適当に入力しましょう。しばらく入力しないで放置していると接続が切られますので、迅速に。
この後iPAQ側で同じく「Bluetooth 認証」としてPINコードの入力が求められますので、同じ値を入力します。
これで、接続する準備が整いました。iPAQ側の Bluetoothマネージャには「(PC名)とのActiveSync」というアイコンが作られている筈です。そのアイコンをタップ&ホールドし、「プロパティ」を開いてください。「サービス名」として「COM7」などと出来ているはずです。この「COMn」を覚えておきましょう。覚えたら、右上のokを選んでこの画面から抜けて構いません。
再度PC側に戻り ActiveSync の設定です。
- 「Microsoft ActiveSync」を起動しましょう。もし、既にUSB経由でActiveSync接続が確立している場合には、USBケーブルを抜きます。
- 「ファイル」メニューから「接続の設定」を開きます。
- 「以下のいずれかの接続を有効にする」を選び、先ほどの「COMn」を選びます。私の例では「COM7」でした。
- 「OK」で確定します。
再びiPAQへ戻ります。
- 「(PC名)とのActiveSync」をタップし、接続を選びます。
さて、肝心のActiveSync on Bluetoothの感想ですが、ケーブルレスで接続できる点は素晴らしいのですが、私のように、常時PCを立ちあげておき、且つそのPCとiPAQをUSBケーブルで接続しているような
人間には、正直「びみょー」です。どうせUSBで接続しているのだから、そちらで、ActiveSyncしても、特に困っていないし... (^^;
とは言え、PCからの給電ではなく、付属のACアダプタで充電している人には、結構便利かな、と思いました。iPAQ 112も、充電クレードルがあれば感想はまた違ったのでしょうね。
2008/02/12
再度ActiveSync
懲りずに ActiveSync の話。
会社で ActiveSync が通らなかったのは、単純に Packet Filtering のせいでした。会社のPCには、最初から AntiVirus ソフトウェアがインストールされているのですが(しかも、管理者しか設定変更ができない)、いつの頃からか、そいつが Pakcet Filteringもするようになっていたのに気がつかなかった、という間抜けなオチでした。情けなさすぎる...。
iPAQ112(というか、Windows Mobile 5.0/6なのだと思いますが、一応、以後iPAQとしておきます)、[スタート]->[設定]->[接続]->[PCへのUSB接続]で選べる「高度なネットワーク機能を有効にする」をチェックすると、USBを物理層としたTCP/IPネットワークでActiveSyncコネクションを実行しようとします。これは、無線LANやBluetoothによる同期処理を同一のSchemeで実現しようとした、非常に全うな考え方に基づく結果なのだと思います(その割には、無線LANのActiveSyncは廃止されましたが...)。
この状態でPCとUSBケーブルで接続すると、例えばWindowsXPの場合、「デバイスマネージャ」の「ネットワーク アダプタ」に「Windows Mobile-based Device」という端点が作られます。

「ネットワーク接続」で見ると、これに呼応して「ローカル エリア接続 7」などが作られます(普通は2とかでしょうね...)。このプロパティを選んでみると、使用インターフェイスへ、先ほどの「Windows Mobile-based Device#6」などが使われていることを確認できます。

この端点のPacket Filtering を適切に設定してあげないと、「高度なネットワーク機能を有効にする」状態では、ActiveSync が上手く通りません。
「高度なネットワーク機能を有効にする」状態で、iPAQ側ActiveSyncプログラムの[メニュー]->[接続...]から「クレイドルにドッキングしたとき」の「次の接続方法ですべてのPCを同期する」を確認すると、そこで表示されるリストのデフォルトは「USB」になっていると思います。
一方「高度なネットワーク機能を有効にする」を無効にした上で、PCとUSBケーブルで接続すると、PCからは、USBデバイスとして認識されることになります。

iPAQ側のActiveSync手順も少し変わり、一瞬「接続中」というタイトルのモーダルダイアログなどが表示され「ユーザ認証」などの手続きを行う姿を見ることが出来ます。
この時iPAQ側ActiveSyncプログラムの[メニュー]->[接続...]から「クレイドルにドッキングしたとき」の「次の接続方法ですべてのPCを同期する」で表示されるリストのデフォルトは「`USB Default」です(分かりにくいなぁ...)。
ちなみに一旦「`USB Default」をリストに表示させると、以後、「高度なネットワーク機能を有効にする」状態でも、「クレイドルにドッキングしたとき」で「`USB Default」を選択することが可能になります。が、接続はTCP/IPを通じて行われますので、USB接続で、この設定が変更できる意味は、いまひとつ分かっていません...。
「高度なネットワーク機能を有効にする」を無効化した状態でも、IEを使ってActiveSyncのDTPT機能を経由して外部サイトへアクセスできました。もしTCP/IP on USBのActiveSyncが安定せず、ただUSBを使って同期をしたいだけであれば「高度なネットワーク機能を有効にする」は無効にしておく」というの、ひとまず分かりやすい方法なのかも知れませんね。ちなみに会社のPCに入っているAntiVirusソフトのPacket Filteringに負けた私は、この設定です...。
さて、TCP/IPを使って ActiveSyncを行うときに、PC側接続端点(「ローカル エリア接続 7」など)でPacket Filtering を解放しておくポートは、マイクロソフトのサイトを始め、各サイトでいろいろとまとめてくださっている通りです。
ちなみに前者には、「5679ポート」もTCPと書いてありますが、私がパケットを調べた限りでは、このポートの使用は確認できませんでした。恐らく後者の「UCPの5679ポート」が正しそうです。
ここで、幾つかポートをFilteringして遊んでみました。
まず、PC側端点のIPアドレスですが、ここは「IPアドレスを自動的に取得する」設定にしておく必要があります。私の環境では、PC側へ割り振られるアドレスは169.254.2.2で、iPAQ側が169.254.2.1でした。このアドレスは、IPv4の LinkLocal アドレスブロック内の値ですが、APIPAでアドレス決定が行われるのではなく、DHCPで明示的に割り振られています(ちなみにDHCPサーバはiPAQ側です。すげー仕様だ...)。PC側のインターフェイスへ169.254.2.3などのアドレスを明示的に設定して実験しましたが、iPAQとの接続は確立できませんでしたので、DHCP割り当てアドレス値とActiveSyncが連動しているか、単純な固定値なのかも知れません。2台以上のWindows Mobile端末をつなげてみたいところです。
さて、990/tcpをFilteringしている場合、PC側ActiveSyncでは、「接続中」というメッセージが表示され続け、暫く後「接続されていません」へと変化します。しかし「接続中」はもちろん、「接続されていません」が表示されたその後も、PC側からiPAQの5679/udpへ、1秒ごとにパケットが送出され続けています。また、iPAQ側は、それに対しICMP port unreachbleを丁寧に返し続けています。相当時間観察しましたが、このやり取りが終了することはありませんでした。もしUSB給電しない状態にしてあったら、iPAQ側の電池は尽きていたでしょうね...。
990/tcpのfilteringを解除すると、PC上のActiveSyncのメッセージは少し変化し「変更箇所を探しています」になります。が、実際には接続が確立できず、最終的には接続エラーです。この間、iPAQからPCの999/tcp、5678/tcp、5721/tcp、26675/tcpへSYNが飛びまくっていました。以後、これらのポートの filtering を順番に開けたり閉めたりして観察しましたが、結局すべてのポートを開けずには、接続を確立させることが出来ませんでした。
ここで面白いのは、990/tcp の filtering を解除しておくと、iPAQは 5679/udp のICMP port unreachbleを返さないことです。PCから iPAQ の 5679/udpへパケットが送出された瞬間、iPAQはPCの990/tcpと接続確立を行おうとします。これが確立できると、iPAQは、先ほどの udp パケットを無視してしまうようです。またPC側も、以後5679/udpへのパケット送出を行いません。これがマイクロソフト資料で、「5679(ハンドシェイクおよび Legacy Replication)」と書いてあるの所以なのかもしれません。
さて、無事に接続を確立できるようにポートのfilteringを適切に設定すると、PCとiPAQの間で実際のデータのやり取りが開始されることになります。
990/tcpでは40秒間隔でpacketのやり取りが行われます。この間PC上のActiveSyncのステータスは変化せず、特に同期が行われている感じは伝わってきません。実際、コネクションの確認だけ行っている
ように見えます。
26675/tcpでは240秒間隔で packet のやり取りが行われます。このやり取りが行われている間、PC上のActiveSyncは「同期中」の表示になります。データのやり取りが終わると、この表示は「接続完了」
となりますが、実際にはTCPのコネクションは張られたままです。このコネクションは、最後のACKが確認されてからのち、60秒後に切断されることになります。後、240秒後に再度TCPセッションの確立から開始されます。
上記で分かるように、ActiveSyncでは結構頻繁にやり取りをしているようですので、USBを接続しっぱなしにしておく場合には、USB給電を有効化するのがお薦めな様です。
さてさて、ここまでは、すべてActiveSyncの理想的な環境での接続の説明でしたが、実際には上記の調査中、幾つか不可解な現象に出会いました。
一つは、「iPAQ側のAstiveSyncが刺さる」というものです。iPAQの[設定]から[実行中のプログラム]タブを選ぶと、「実行中のプログラム一覧」には、ActiveSyncが表示され、ActiveSync が動作しているように見えます。しかし、iPAQはPCの990/tcpへ接続を張りに行こうとしません。結果、PCはiPAQの679/udpへパケットを投げ、iPAQはICMP port unreachable を返す、という990/tcpをfiltering したときと同じ挙動になってしまいます。大抵この場合、[実行中のプログラム]タブから ActiveSync を終了させようとすると「このプログラムはビジー状態にあるか、ユーザーからの応答を待っている」となっている場合がほとんどで、例えプログラムを殺しても安定せず、結局 iPAQ の再起動をすることになる、という感じでした。
もう一つは、更に不可解であり、且つ対処に困ってしまう問題で、「iPAQ側が勝手にUSB接続を瞬断する」というものでした。この場合、瞬間的にネットワークインターフェイスが途切れるようで、packet captureプログラム的には、interface lost という形で現れました。こうなるとPC側のActiveSync は「接続されていません」状態になってしまい、またiPAQ側のActiveSyncから「同期」を選んでも同期が開始されません。今のところ、この問題の解決手段は「物理的にUSBケーブルを抜き、再接続する」という、なんとも情けないものしか見つかっていません。ちなみにこの現象は「高度なネットワーク機能を有効にする」を無効化していても発生しましたので、iPAQ 側のUSBドライバに何か原因があるのかもしれません。これは何とか解法を見つけたいものです。
ちなみにDTPTによるネットワーク接続はExchangeサーバとの直接データ交換を実現することが主目的の様です。私はExchengeサーバと直接繋げる環境はもっていませんが、この状況の packet を眺めるのも面白いのかも知れません。
なかなかActiveSyncの森は、奥が深いですね...。
会社で ActiveSync が通らなかったのは、単純に Packet Filtering のせいでした。会社のPCには、最初から AntiVirus ソフトウェアがインストールされているのですが(しかも、管理者しか設定変更ができない)、いつの頃からか、そいつが Pakcet Filteringもするようになっていたのに気がつかなかった、という間抜けなオチでした。情けなさすぎる...。
iPAQ112(というか、Windows Mobile 5.0/6なのだと思いますが、一応、以後iPAQとしておきます)、[スタート]->[設定]->[接続]->[PCへのUSB接続]で選べる「高度なネットワーク機能を有効にする」をチェックすると、USBを物理層としたTCP/IPネットワークでActiveSyncコネクションを実行しようとします。これは、無線LANやBluetoothによる同期処理を同一のSchemeで実現しようとした、非常に全うな考え方に基づく結果なのだと思います(その割には、無線LANのActiveSyncは廃止されましたが...)。
この状態でPCとUSBケーブルで接続すると、例えばWindowsXPの場合、「デバイスマネージャ」の「ネットワーク アダプタ」に「Windows Mobile-based Device」という端点が作られます。

「ネットワーク接続」で見ると、これに呼応して「ローカル エリア接続 7」などが作られます(普通は2とかでしょうね...)。このプロパティを選んでみると、使用インターフェイスへ、先ほどの「Windows Mobile-based Device#6」などが使われていることを確認できます。

この端点のPacket Filtering を適切に設定してあげないと、「高度なネットワーク機能を有効にする」状態では、ActiveSync が上手く通りません。
「高度なネットワーク機能を有効にする」状態で、iPAQ側ActiveSyncプログラムの[メニュー]->[接続...]から「クレイドルにドッキングしたとき」の「次の接続方法ですべてのPCを同期する」を確認すると、そこで表示されるリストのデフォルトは「USB」になっていると思います。
一方「高度なネットワーク機能を有効にする」を無効にした上で、PCとUSBケーブルで接続すると、PCからは、USBデバイスとして認識されることになります。

iPAQ側のActiveSync手順も少し変わり、一瞬「接続中」というタイトルのモーダルダイアログなどが表示され「ユーザ認証」などの手続きを行う姿を見ることが出来ます。
この時iPAQ側ActiveSyncプログラムの[メニュー]->[接続...]から「クレイドルにドッキングしたとき」の「次の接続方法ですべてのPCを同期する」で表示されるリストのデフォルトは「`USB Default」です(分かりにくいなぁ...)。
ちなみに一旦「`USB Default」をリストに表示させると、以後、「高度なネットワーク機能を有効にする」状態でも、「クレイドルにドッキングしたとき」で「`USB Default」を選択することが可能になります。が、接続はTCP/IPを通じて行われますので、USB接続で、この設定が変更できる意味は、いまひとつ分かっていません...。
「高度なネットワーク機能を有効にする」を無効化した状態でも、IEを使ってActiveSyncのDTPT機能を経由して外部サイトへアクセスできました。もしTCP/IP on USBのActiveSyncが安定せず、ただUSBを使って同期をしたいだけであれば「高度なネットワーク機能を有効にする」は無効にしておく」というの、ひとまず分かりやすい方法なのかも知れませんね。ちなみに会社のPCに入っているAntiVirusソフトのPacket Filteringに負けた私は、この設定です...。
さて、TCP/IPを使って ActiveSyncを行うときに、PC側接続端点(「ローカル エリア接続 7」など)でPacket Filtering を解放しておくポートは、マイクロソフトのサイトを始め、各サイトでいろいろとまとめてくださっている通りです。
ちなみに前者には、「5679ポート」もTCPと書いてありますが、私がパケットを調べた限りでは、このポートの使用は確認できませんでした。恐らく後者の「UCPの5679ポート」が正しそうです。
ここで、幾つかポートをFilteringして遊んでみました。
まず、PC側端点のIPアドレスですが、ここは「IPアドレスを自動的に取得する」設定にしておく必要があります。私の環境では、PC側へ割り振られるアドレスは169.254.2.2で、iPAQ側が169.254.2.1でした。このアドレスは、IPv4の LinkLocal アドレスブロック内の値ですが、APIPAでアドレス決定が行われるのではなく、DHCPで明示的に割り振られています(ちなみにDHCPサーバはiPAQ側です。すげー仕様だ...)。PC側のインターフェイスへ169.254.2.3などのアドレスを明示的に設定して実験しましたが、iPAQとの接続は確立できませんでしたので、DHCP割り当てアドレス値とActiveSyncが連動しているか、単純な固定値なのかも知れません。2台以上のWindows Mobile端末をつなげてみたいところです。
さて、990/tcpをFilteringしている場合、PC側ActiveSyncでは、「接続中」というメッセージが表示され続け、暫く後「接続されていません」へと変化します。しかし「接続中」はもちろん、「接続されていません」が表示されたその後も、PC側からiPAQの5679/udpへ、1秒ごとにパケットが送出され続けています。また、iPAQ側は、それに対しICMP port unreachbleを丁寧に返し続けています。相当時間観察しましたが、このやり取りが終了することはありませんでした。もしUSB給電しない状態にしてあったら、iPAQ側の電池は尽きていたでしょうね...。
990/tcpのfilteringを解除すると、PC上のActiveSyncのメッセージは少し変化し「変更箇所を探しています」になります。が、実際には接続が確立できず、最終的には接続エラーです。この間、iPAQからPCの999/tcp、5678/tcp、5721/tcp、26675/tcpへSYNが飛びまくっていました。以後、これらのポートの filtering を順番に開けたり閉めたりして観察しましたが、結局すべてのポートを開けずには、接続を確立させることが出来ませんでした。
ここで面白いのは、990/tcp の filtering を解除しておくと、iPAQは 5679/udp のICMP port unreachbleを返さないことです。PCから iPAQ の 5679/udpへパケットが送出された瞬間、iPAQはPCの990/tcpと接続確立を行おうとします。これが確立できると、iPAQは、先ほどの udp パケットを無視してしまうようです。またPC側も、以後5679/udpへのパケット送出を行いません。これがマイクロソフト資料で、「5679(ハンドシェイクおよび Legacy Replication)」と書いてあるの所以なのかもしれません。
さて、無事に接続を確立できるようにポートのfilteringを適切に設定すると、PCとiPAQの間で実際のデータのやり取りが開始されることになります。
990/tcpでは40秒間隔でpacketのやり取りが行われます。この間PC上のActiveSyncのステータスは変化せず、特に同期が行われている感じは伝わってきません。実際、コネクションの確認だけ行っている
ように見えます。
26675/tcpでは240秒間隔で packet のやり取りが行われます。このやり取りが行われている間、PC上のActiveSyncは「同期中」の表示になります。データのやり取りが終わると、この表示は「接続完了」
となりますが、実際にはTCPのコネクションは張られたままです。このコネクションは、最後のACKが確認されてからのち、60秒後に切断されることになります。後、240秒後に再度TCPセッションの確立から開始されます。
上記で分かるように、ActiveSyncでは結構頻繁にやり取りをしているようですので、USBを接続しっぱなしにしておく場合には、USB給電を有効化するのがお薦めな様です。
さてさて、ここまでは、すべてActiveSyncの理想的な環境での接続の説明でしたが、実際には上記の調査中、幾つか不可解な現象に出会いました。
一つは、「iPAQ側のAstiveSyncが刺さる」というものです。iPAQの[設定]から[実行中のプログラム]タブを選ぶと、「実行中のプログラム一覧」には、ActiveSyncが表示され、ActiveSync が動作しているように見えます。しかし、iPAQはPCの990/tcpへ接続を張りに行こうとしません。結果、PCはiPAQの679/udpへパケットを投げ、iPAQはICMP port unreachable を返す、という990/tcpをfiltering したときと同じ挙動になってしまいます。大抵この場合、[実行中のプログラム]タブから ActiveSync を終了させようとすると「このプログラムはビジー状態にあるか、ユーザーからの応答を待っている」となっている場合がほとんどで、例えプログラムを殺しても安定せず、結局 iPAQ の再起動をすることになる、という感じでした。
もう一つは、更に不可解であり、且つ対処に困ってしまう問題で、「iPAQ側が勝手にUSB接続を瞬断する」というものでした。この場合、瞬間的にネットワークインターフェイスが途切れるようで、packet captureプログラム的には、interface lost という形で現れました。こうなるとPC側のActiveSync は「接続されていません」状態になってしまい、またiPAQ側のActiveSyncから「同期」を選んでも同期が開始されません。今のところ、この問題の解決手段は「物理的にUSBケーブルを抜き、再接続する」という、なんとも情けないものしか見つかっていません。ちなみにこの現象は「高度なネットワーク機能を有効にする」を無効化していても発生しましたので、iPAQ 側のUSBドライバに何か原因があるのかもしれません。これは何とか解法を見つけたいものです。
ちなみにDTPTによるネットワーク接続はExchangeサーバとの直接データ交換を実現することが主目的の様です。私はExchengeサーバと直接繋げる環境はもっていませんが、この状況の packet を眺めるのも面白いのかも知れません。
なかなかActiveSyncの森は、奥が深いですね...。
2008/02/05
充電空っぽ
いつも通り会社で ActiveSync。そしていつものようにつながらない。ネタだね。
iPAQを再起動してもだめ。しょうがないのPCを再起動。VMware 入れているから、再起動が面倒なんだよなー。でも、再起動後はつながりました。接続状態も保たれてて、問題なし。そのまま放置。
が、仕事を終えて帰宅しようと iPAQ を覗き込むと、なぜか画面が消えている。いやな感じ、と思いつつ電源を入れようとするも、ちっとも入りません。がーん。充電中ランプはついているけど、充電してないよ、こいつ。何度か起動を試みるも、完全放電状態でだめでした。仕方がないので、自宅に帰って充電。会社にもACアダプタ、置いておこう。
おそらく、なんらかのタイミングで ActiveSync の接続が切れて、それをトリガーにiPAQ側の電池が無くなったのだろうな、とは予想がつく。しかし、接続が切れて電池が失われる理由が分からん。iPAQ側は、再接続を試みて、Sleepに入れないのだろうか?
加えてActiveSync状態が確立できていないと充電できない、という仕様は謎だ(AC経由だとできるし...)。さらに言えば、勝手に接続が切れるのが、そもそもの謎だ。会社と自宅のPCはまったく同じなので、ハードウェア的な相違は、あまり考えにくい。違うとしたら VirusScan 系のソフトの銘柄かなぁ...。DHCPのアドレス再リースででも、こけているのかな。
「高度なネットワーク機能を有効にする」をはずしてみようかなぁ。
iPAQを再起動してもだめ。しょうがないのPCを再起動。VMware 入れているから、再起動が面倒なんだよなー。でも、再起動後はつながりました。接続状態も保たれてて、問題なし。そのまま放置。
が、仕事を終えて帰宅しようと iPAQ を覗き込むと、なぜか画面が消えている。いやな感じ、と思いつつ電源を入れようとするも、ちっとも入りません。がーん。充電中ランプはついているけど、充電してないよ、こいつ。何度か起動を試みるも、完全放電状態でだめでした。仕方がないので、自宅に帰って充電。会社にもACアダプタ、置いておこう。
おそらく、なんらかのタイミングで ActiveSync の接続が切れて、それをトリガーにiPAQ側の電池が無くなったのだろうな、とは予想がつく。しかし、接続が切れて電池が失われる理由が分からん。iPAQ側は、再接続を試みて、Sleepに入れないのだろうか?
加えてActiveSync状態が確立できていないと充電できない、という仕様は謎だ(AC経由だとできるし...)。さらに言えば、勝手に接続が切れるのが、そもそもの謎だ。会社と自宅のPCはまったく同じなので、ハードウェア的な相違は、あまり考えにくい。違うとしたら VirusScan 系のソフトの銘柄かなぁ...。DHCPのアドレス再リースででも、こけているのかな。
「高度なネットワーク機能を有効にする」をはずしてみようかなぁ。
2008/02/04
ActiveSyncトラブル再び
iPAQ 112が自宅でも ActiveSync できない状態に。
そもそも、USBから給電されず、これは困るなー、ということで調査開始。
付属のACアダプタとUSBケーブルで、iPAQへの給電を確認し、iPAQの物理的な問題でないことを確認。その後、PCのUSBコネクタへ直接接続し、接続可能であることを確認した後、何度か iPAQ の reboot を繰り返し、同じく問題のないことを確認。これで、iPAQ自身が原因でない可能性が高まりました(良かった)。
次はUSBハブの切り分け。現在、セルフパワーの6ポートUSBハブを使っていますが、このハブ、構造的には、3ポートハブが2つカスケードされて、Hub in Hubという感じなんですが、このうち後段のハブが認識されなくなっていました。iPAQはここにつながっていたので、そもそも、物理的につながらない状態だったようです。
このUSBハブ、他PCにつないでいても後段部分が認識されません。マウスなど、それなりに原始的な他USBデバイスをつないでもだめ。おなじみの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB を
レジストリから消去しても、後段のハブ部分だけ再認識させてもだめなので、本当に物理的に死んだのかなぁ。でも、買って、まだ1週間経ってないんですけど...(しかも今回に限って、保証書を捨てたっぽい)。仕方がないので、ひとまずこのハブをあきらめ。前段だけ使えるので、ストックしておきましょう。
で、iPAQを直接PCのUSBポートへ接続する構成に結線を変更し、再度 ActiveSynce すると、今度はおなじみの「サポートコード 85010014」。仕方がないので、Outlook に対し「アプリケーションの自動修復」を行い、接続可能状態を復活させました。
W-ZERO3[es]のときよりも sync トラブルが多いのは、なぜだろう。USB給電、WindowsMobile6 など、要素が絡みすぎてて、なかなか切り分けが進まないのが悔しい。PalmではPilot時代からTH-55まで、 HotSync で悩んだことはなかったので、その点では優秀だったよね。
# デバイスが手に入りにくくなったのは、最大の問題だけど...。
そもそも、USBから給電されず、これは困るなー、ということで調査開始。
付属のACアダプタとUSBケーブルで、iPAQへの給電を確認し、iPAQの物理的な問題でないことを確認。その後、PCのUSBコネクタへ直接接続し、接続可能であることを確認した後、何度か iPAQ の reboot を繰り返し、同じく問題のないことを確認。これで、iPAQ自身が原因でない可能性が高まりました(良かった)。
次はUSBハブの切り分け。現在、セルフパワーの6ポートUSBハブを使っていますが、このハブ、構造的には、3ポートハブが2つカスケードされて、Hub in Hubという感じなんですが、このうち後段のハブが認識されなくなっていました。iPAQはここにつながっていたので、そもそも、物理的につながらない状態だったようです。
このUSBハブ、他PCにつないでいても後段部分が認識されません。マウスなど、それなりに原始的な他USBデバイスをつないでもだめ。おなじみの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB を
レジストリから消去しても、後段のハブ部分だけ再認識させてもだめなので、本当に物理的に死んだのかなぁ。でも、買って、まだ1週間経ってないんですけど...(しかも今回に限って、保証書を捨てたっぽい)。仕方がないので、ひとまずこのハブをあきらめ。前段だけ使えるので、ストックしておきましょう。
で、iPAQを直接PCのUSBポートへ接続する構成に結線を変更し、再度 ActiveSynce すると、今度はおなじみの「サポートコード 85010014」。仕方がないので、Outlook に対し「アプリケーションの自動修復」を行い、接続可能状態を復活させました。
W-ZERO3[es]のときよりも sync トラブルが多いのは、なぜだろう。USB給電、WindowsMobile6 など、要素が絡みすぎてて、なかなか切り分けが進まないのが悔しい。PalmではPilot時代からTH-55まで、 HotSync で悩んだことはなかったので、その点では優秀だったよね。
# デバイスが手に入りにくくなったのは、最大の問題だけど...。
2008/02/03
Crystal Shield for iPAQ112
PDA工房さんでiPAQ用のCrystal Shieldを購入。
いつも失敗するので、今回は3枚パックを買ったのですが、珍しく一発で、それなりに綺麗に貼れました。まさにマーフィーな感じ。いつか出番もあるでしょう。これで、多少乱雑に扱っても安心できるようになりました。

先日書いた流用しているTH55用ケースに収まった姿。肝心なボタン類がすべて隠れているところが泣けます。
いつも失敗するので、今回は3枚パックを買ったのですが、珍しく一発で、それなりに綺麗に貼れました。まさにマーフィーな感じ。いつか出番もあるでしょう。これで、多少乱雑に扱っても安心できるようになりました。

先日書いた流用しているTH55用ケースに収まった姿。肝心なボタン類がすべて隠れているところが泣けます。
2008/01/29
ActiveSync
2008/01/27
iPAQの環境整備
主にスケジューラとしての用途がメインなので、W-ZERO3[es]で便利だったものを抜粋して突っ込む。
SPBシリーズでは、Backup、Diary、PocketPlusとWeather。PPはついでに4へバージョンアップ。アプリケーションは、OffisnailDateと、GoogleMaps、ぽけギコ。Utilityでは、GSFinder-WM5J、TREとytaskmgr。
キー入力環境を整えようとしてたら、HappyTappingKeyboardという凄く便利なものを知る。これに iPhone 風の skin をかぶせておしまい。
皆様、ありがとうございます。
SPBシリーズでは、Backup、Diary、PocketPlusとWeather。PPはついでに4へバージョンアップ。アプリケーションは、OffisnailDateと、GoogleMaps、ぽけギコ。Utilityでは、GSFinder-WM5J、TREとytaskmgr。
キー入力環境を整えようとしてたら、HappyTappingKeyboardという凄く便利なものを知る。これに iPhone 風の skin をかぶせておしまい。
皆様、ありがとうございます。
登録:
投稿 (Atom)
