新着リストで、内容表示するとエラー?No.07529
ぱと さん 02/06/26 14:10
 
Ver1.96です。

新着リストを表示して、内容の表示にチェックを入れると次の二つのエラーダイ
アログがあいついで発生します。

「メール用のファイルが書き換えられたか、または他のアプリケーションにより
削除されたらしいです」

「メール用のファイルが他のアプリケーションによって書き換えられたか、また
は何らかの矛盾が発生しました。矛盾のある一覧を作成しなおしますか?」

後者に YES として、list.bin が作り直された後は、このエラーが止まるような
気もします。

以前の版から出ていたと思うのですが、たまに、この機能を使うとエラーが出て、
list.bin 再作成で直るので、環境依存の現象か、たまたま出てるだけかなあと
思って報告していませんでした。

----
ぱと

[ ]
RE:07529 新着リストで、内容表示するとエNo.07530
秀まるお さん 02/06/27 16:46
 
 再現はしないんですが、ソースコードを追っかけてみたら「これがおかしいのか
な?」と思わしき処理を1つ見つけました。とりあえずそこを安全な方向に修正して
みます。

 それでも直らなかったら本当にファイルが書き換えられている(というか、削除さ
れている)ようです。だとしたらその原因はまた別の線で探さないとダメです。

 ということで次のバージョンでもまた出たら連絡ください。

[ ]
RE:07530 新着リストで、内容表示するとエNo.07537
ぱと さん 02/06/29 10:16
 
秀まるお さん

> 再現はしないんですが、ソースコードを追っかけてみたら「これがおかしいのか
>な?」と思わしき処理を1つ見つけました。とりあえずそこを安全な方向に修正して
>みます。

さっそくの対応ありがとうございます。新しいバージョンで試してみますね。
(会社は、実行ファイルをネットワークフォルダで共有しているので、みんな帰
った後で無いと試せません。)

----
ぱと

[ ]
RE:07537 新着リストで、内容表示するとエNo.07538
ぱと さん 02/07/01 13:02
 
秀まるお さん

>さっそくの対応ありがとうございます。新しいバージョンで試してみますね。

朝一で試してみて大丈夫だったので、その旨ご報告しようと念のため今もう一度
試してみたら、やっぱり同じエラーが出ました。

私のところの環境依存かもしれないので、ちょっと怪しいところを書いておきま
す。

■実行ファイルがネットワーク上の共有フォルダ
ドライブに割り当てた共有フォルダ上に鶴亀の実行ファイルをおいてあり、各
ユーザーで共有してます。(ライセンスは人数分取得済み)

■データフォルダ(ホームディレクトリ)も共有フォルダ
こちらはもちろん各ユーザーごとに違うフォルダを用意してありますが、ネット
ワーク上の共有フォルダにおいてあります。

■オプションの状態等
メール表示は独立ウィンドウ
定期的な受信が15分間隔

てなところでしょうか。

----
ぱと

[ ]
RE:07538 新着リストで、内容表示するとエNo.07539
秀まるお さん 02/07/01 18:04
 
>朝一で試してみて大丈夫だったので、その旨ご報告しようと念のため今もう一度
>試してみたら、やっぱり同じエラーが出ました。

 んじゃ、本当に何かのメール用ファイルが(たぶん鶴亀メール以外のソフトから)
削除されてるのか、メール自体がちゃんと表示されてるのなら、ファイルのタイムス
タンプが他のソフトによって更新されてるのか、あるいは遅延して更新されてるのや
ら?

 データ用フォルダはどういうサーバー上のどういうドライブなのか教えて欲しいで
す。

[ ]
RE:07539 新着リストで、内容表示するとエNo.07540
ぱと さん 02/07/03 09:35
 
秀まるお さん

> んじゃ、本当に何かのメール用ファイルが(たぶん鶴亀メール以外のソフトから)
>削除されてるのか、メール自体がちゃんと表示されてるのなら、ファイルのタイムス
>タンプが他のソフトによって更新されてるのか、あるいは遅延して更新されてるのや
>ら?

メールのファイルにアクセスに行くアプリは、鶴亀以外には無いです。(以前は
バックアップソフトを常駐させてましたが、現在はこれも止まっています。)

> データ用フォルダはどういうサーバー上のどういうドライブなのか教えて欲しいで
>す。

Windows 2000/Server 上の共有フォルダです。
L:\ というドライブに通信関係のログデータをまとめてまして、鶴亀のホームデ
ィレクトリの実体は、L:\TuruKame というフォルダにあります。この L:\ とい
うドライブを、サーバー上で G:\LOG というフォルダにマウントしてます。その
上で G:\というフォルダをネットワークで共有し、ローカルなクライアント機に
ネットワークドライブとして割り当てています。(G:\) 鶴亀のホームディレクト
リの設定は G:\LOG\TuruKame\ となっています。

こうやって書いてみるとやけにややこしいですけど、ログ用のドライブ全体を、
共有ドライブ内のフォルダにマウントしている点以外は、普通の共有ドライブの
使い方だということになります。(ログ用のドライブを分けたいが、共有ドライ
ブの数は限定したいということからこういう方法を取っています。)

主にタイムスタンプのチェックに関係する問題だとしたら、やはりネットワーク
ドライブを使っている点が絡むのでしょうかね?

それから、この現象は、すべてのメールについて起こるのではなくて、リストを
スクロールしていくと、特定のメールについてのみ起こっているようです。どの
メールでこの現象が起こるのかという規則性はまだわかっていません。

----
ぱと

[ ]
RE:07539 新着リストで、内容表示するとエNo.07543
ぱと さん 02/07/03 14:10
 
秀まるお さん

> んじゃ、本当に何かのメール用ファイルが(たぶん鶴亀メール以外のソフトから)
>削除されてるのか、メール自体がちゃんと表示されてるのなら、ファイルのタイムス
>タンプが他のソフトによって更新されてるのか、あるいは遅延して更新されてるのや
>ら?

メールの内容自体はちゃんと表示されていますし、list.bin が再作成されれば
エラーは無くなりますので、削除されているわけでは無いです。というわけで、
タイムスタンプのチェックに絡む事象のような気がします。

----
ぱと

[ ]
RE:07543 新着リストで、内容表示するとエNo.07544
秀まるお さん 02/07/05 11:15
 
 Windows2000 Professional上の共有ドライブを作成してテストしたんですが、うま
く再現しませんでした。もしかしたらNTFSじゃないとダメとか、2000Serverでないと
ダメとか、あるいはネットワークプロトコルがTCP/IPかNetBEUIかとかの違いが関係
するのかもしれません。

 どっちにしても、問題はタイムスタンプのチェックだと思います。

 鶴亀メールはメール用のファイルを更新して一度CloseHandleでファイルをクロー
ズし、その後もう一度CreateFileでファイルをオープンし、
GetFileInformationByHandleでファイルのタイムスタンプを取得します。

 メールを開く時には過去に取得したタイムスタンプと現在のタイムスタンプが違っ
ているかどうかチェックして、違っていたら例のエラーを出しています。

 つまり、ネットワークドライブの場合、遅延書き込みなどの理由でファイルのタイ
ムスタンプが後で書き変わってしまうことがあるんだと思います。

 これを解決する方法は3つあります。

 − CloseHandleの直前にFlushFileBuffers()を使う方法。
   (これだとディスクアクセスが極端に遅くなります。)
 − タイムスタンプの取得を遅延して行う方法。
 − メール表示時のタイムスタンプチェックを省略する方法。

 ということで、とりあえず最もお手軽な最後の方法を使うことにします。
 (手抜きとも言うけど)

 ただ、この場合でも、鶴亀メール起動時にタイムスタンプがずれていることを認識
し、メール一覧の部分的再作成が実行され、結果として起動が遅くなります。その辺
はご了承ください。

[ ]
RE:07544 新着リストで、内容表示するとエNo.07545
ぱと さん 02/07/05 11:36
 
秀まるお さん

この件ではお手数おかけしております。

> Windows2000 Professional上の共有ドライブを作成してテストしたんですが、うま
>く再現しませんでした。もしかしたらNTFSじゃないとダメとか、2000Serverでないと
>ダメとか、あるいはネットワークプロトコルがTCP/IPかNetBEUIかとかの違いが関係
>するのかもしれません。

一応このあたりの条件を確認しておきますと、2000Serverで、NTFS で、TCP/IP
です。

> メールを開く時には過去に取得したタイムスタンプと現在のタイムスタンプが違っ
>ているかどうかチェックして、違っていたら例のエラーを出しています。
>
> つまり、ネットワークドライブの場合、遅延書き込みなどの理由でファイルのタイ
>ムスタンプが後で書き変わってしまうことがあるんだと思います。

なるほど、やはりこのあたりが理由なのでしょうね。

> これを解決する方法は3つあります。
>
> − CloseHandleの直前にFlushFileBuffers()を使う方法。
>   (これだとディスクアクセスが極端に遅くなります。)
> − タイムスタンプの取得を遅延して行う方法。
> − メール表示時のタイムスタンプチェックを省略する方法。
>
> ということで、とりあえず最もお手軽な最後の方法を使うことにします。
> (手抜きとも言うけど)

他の方の環境では起きていないようですので、うちの個別の問題で対応していた
だき恐れ入ります。このチェックを省略してしまうことで、他の方への弊害は起
きませんでしょうか?

> ただ、この場合でも、鶴亀メール起動時にタイムスタンプがずれていることを認識
>し、メール一覧の部分的再作成が実行され、結果として起動が遅くなります。その辺
>はご了承ください。

うちの上記環境では、現在も一日の最初の起動時(ここで常駐)には、起動が結構
遅いです。またアカウントの切替も最初の一回は遅いです。このあたりに原因が
あったのでしょうね。(とすると、タイムスタンプのずれが起きない環境では、
もっと鶴亀の起動は速いのでしょうね。)

ご面倒おかけしまして、申し訳ございませんでした。

----
ぱと

[ ]
RE:07545 新着リストで、内容表示するとエNo.07546
秀まるお さん 02/07/05 15:29
 
>だき恐れ入ります。このチェックを省略してしまうことで、他の方への弊害は起
>きませんでしょうか?

 タイムスタンプのチェックを省略する程度はまったく問題無いです。そもそも鶴亀
メール動作中にメール用のファイルを他のソフトで書き換えることはルール違反とい
う扱いです。

>うちの上記環境では、現在も一日の最初の起動時(ここで常駐)には、起動が結構
>遅いです。

 その後よくよく考えてみたら、タイムスタンプをチェックするときに、タイムスタ
ンプのずれが2秒以内なら無視するとか、そういうことで起動を速くすることも出来
そうな気がします。

 その辺詳しくテストするのが困難なので、一度dump.txtに情報出力するなどしてみ
ます。そのときは念のためログ取りをお願いしたい所です。

 少々お待ちを。

[ ]
RE:07546 新着リストで、内容表示するとエNo.07547
ぱと さん 02/07/05 15:50
 
秀まるお さん

> タイムスタンプのチェックを省略する程度はまったく問題無いです。そもそも鶴亀
>メール動作中にメール用のファイルを他のソフトで書き換えることはルール違反とい
>う扱いです。

そうですね。外部から、鶴亀のメールファイルを書き換えられる心配をしなくて
いいのなら、問題ないわけでしょうからね。

> その後よくよく考えてみたら、タイムスタンプをチェックするときに、タイムスタ
>ンプのずれが2秒以内なら無視するとか、そういうことで起動を速くすることも出来
>そうな気がします。

個々のメールファイルのタイムスタンプを、鶴亀が持っているデータと比較して
いるのですよね? 鶴亀の方はどこでどのようにこの各ファイルのタイムスタン
プデータを持っているのでしょうか? これらを、鶴亀を起動しない状態で比較
してみると、私のところの環境で、実際にはどういうことになっているのか判り
ますでしょうか?

> その辺詳しくテストするのが困難なので、一度dump.txtに情報出力するなどしてみ
>ます。そのときは念のためログ取りをお願いしたい所です。

もちろん、なんでもやりますので、ご指示下さい。

----
ぱと

[ ]
RE:07547 新着リストで、内容表示するとエNo.07549
秀まるお さん 02/07/05 17:43
 
>個々のメールファイルのタイムスタンプを、鶴亀が持っているデータと比較して
>いるのですよね? 鶴亀の方はどこでどのようにこの各ファイルのタイムスタン
>プデータを持っているのでしょうか?

 メール一覧のキャッシュファイル(list.bin)中に入っています。バイナリーデー
タなのでファイルをエディタで開いても意味不明です。

 現在きバージョンでも、もしメール用ファイルのタイムスタンプが一致してなけれ
ば、起動またはアカウント展開時にステータスバー部分に

   メール一覧を更新中(フォルダ名)

 というのが出るはずですが、どっちにしても次のバージョンにてdump.txtのログを
取っていただいた方が正確なので、それまでお待ちを。

[ ]
RE:07549 新着リストで、内容表示するとエNo.07551
ぱと さん 02/07/08 09:07
 
秀まるお さん

> 現在きバージョンでも、もしメール用ファイルのタイムスタンプが一致してなけれ
>ば、起動またはアカウント展開時にステータスバー部分に
>
>   メール一覧を更新中(フォルダ名)
>
> というのが出るはずですが、

出てます、出てます。これまではこういうものだと思っていたのですが、これは
あくまで、タイムスタンプが一致していない時の修復処理だったのですね。だと
するとこれが無ければ鶴亀の起動はもっと速くなると言うわけでしょうからとて
も嬉しいです。楽しみにしております。

----
ぱと

[ ]
RE:07549 新着リストで、内容表示するとエNo.07554
ぱと さん 02/07/11 09:22
 
秀まるお さん

> というのが出るはずですが、どっちにしても次のバージョンにてdump.txtのログを
>取っていただいた方が正確なので、それまでお待ちを。

2.01 頂きました。新着リストでエラーが出る問題は解決しました。どうもあり
がとうございました。

起動とアカウント切替時の件はそれほど速くなりませんでしたが、特に問題はあ
りません。念のため、dump.txt を maruo@mitene.or.jp 宛て送付させていただ
きます。

----
ぱと

[ ]