今日はメーデーです。そんなことより、エクスプローラのネットワークドライブへの無駄なリトライがすごくイライラする。
あるマシンAでWindowsのネットワークドライブを設定(宛先をBとする)して、接続先であるマシンBを落とすと、当然そのネットワークドライブは使えなくなります。
そこまでは良いのですが、エクスプローラってば使えなくなったネットワークドライブにアクセスしようとすると10秒近くフリーズしてしまいます。TCP SYN+ACK待ちにしては諦めが早すぎるので、NetBIOSでしょうか?
さらに嫌なことに、ネットワークドライブと全く関係ない操作(例:フォーカスを戻す)でも、毎回ネットワークドライブを確認してはフリーズします。もうイライラして仕方ないです。
マシンAを起動した時点でマシンBが死んでいると、ネットワークドライブは切断されている扱いになって、上記の現象は起きません。その後マシンBを起動してもネットワークドライブは切断された扱いのままです。
切断されている状態だとネットワークドライブ上のファイルへのアクセスが軒並み失敗しますので、すぐにわかるかと思います。
しかしエクスプローラからネットワークドライブを見てしまうと再接続処理が走るようで、以降は接続された扱いになります。こうなるともうダメで、マシンBを落とすと上記のフリーズしまくり状態に突入します。
ネットワークドライブの接続先が Sambaの場合はフリーズ現象が発生します。接続先のマシンを落とすと、ネットワークドライブのプロパティには「ネットワークドライブ:NTFS(または未フォーマットとも)」などと表示されます。
一方で Windows XPの共有ドライブの場合はフリーズ現象が起こりません。接続先のマシンを落とすと、ネットワークドライブのプロパティには「切断されたネットワークドライブ」と表示されます。
どうもSambaはサーバ終了時に、接続中のクライアントに何かを通知すべきなのに、全部すっ飛ばして終了するみたいです。オプションでなんとかならんかなあ…。
しかし、いつまでも未練がましく覚えているクライアント側も大概にしてほしいものです。なんとかしてネットワークドライブの記憶を消せないか探ってみました。
まず、以下のコマンドでARPのキャッシュをクリアしました。
arp -d *
しかし症状は変わらず。
次にNetBIOSのホスト名 <-> IPアドレスのキャッシュをクリアしました。
nbtstat -R
やはり直りません。
エクスプローラが何か覚えているのかもと explorer.exeを強制終了させ再起動しましたが、依然として直りません。
残るはSystemプロセス(pid: 4)が覚えている可能性がありますが、確かめる方法がわからんなあ。
< | 2008 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
合計:
本日: