Outlookを終了させているのにも拘わらず、windowsを終了しようとすると終了を妨げているアプリとして、Outlookが表示され
でも、立ち上げようとするとOutlookは出てこない。
タスクマネージャなどを利用すると、たしかにoutlookが居て、結構な量のメモリを消費している。
こいつは一体何をしているのか・・・・?
outlookのデータファイルはデータベースのような形式で保存されています。
まぁAccessというデータベースアプリケーションがOfficeにはあるわけですから、その機能の一部を利用して、大量のデータを簡単に管理するのは悪いことではありません。
しかし、Outlookが終了しなくなる原因は、ここに有るんじゃ無いかと思います。
Outlookが終了できなくなる一番の原因は、データの処理が終わらないからです。
しかし、ここで言うデータ処理が終わらないというのは、「開けない」とか「書き込めない」という所その物ではありません。
もちろん「データを読み込もうとしている」ときや、「データを書き込もうとしている」ときのデータ処理が終わらなくて、Outlookが正常に終了できないのですが??
実際には、読み込みや書込の処理が終わった後で停まっているのです。
Outlookの終了時の入出力処理において、エラーチェックをちゃんとしていないために、結果として意図しない結果が帰ってきたときにそのままOutlookが無応答状態になります。
一般的なアプリケーションでいうと、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」とか言うのと同じで、ものすごくくだらないミスです。
最新のOfficeを使っていると、数ヶ月に一度しか出ないので、大した影響は無いのですが?
むかしは週に1,2度発生し、その度に、データが消えないかちょっと冷や汗をかきながら強制終了をしていました。
でもこれ、Outlookがプログラムを改修して出にくくしたわけでは無いです。
まぁ、ある意味Outlookの改善ではあるんですが、
終了時におこなわれる処理が減ったことで、起きにくくなったのです。
それらの処理を、本来おこなわれるべきそれぞれの場所でおこなわれれば、不具合は発生しないのです。
Outlookが終了時におこなう、未処理データの一括処理というそれその物に有る不具合は全く解消されていないのです。
尚、上記項目、及び以下の項目は、動作から見た憶測です。
Outlookが停まる一番の原因は、上記通り終了時の一括処理です。
Outlookの終了成功率が上がったのは、「開いたデータは閉じる」という当然のことを当然のようにおこなうようになったからです。
例えばの話しですが、終了するために100このデータファイル(ここで言うとメールや連絡先のこと)を閉じるのに2秒かかったとします。
Outlookが終了処理の待ち時間として1秒しか設定していなかったら、どうなるでしょうか?
単純に考えると、各データを閉じ終える前に、元のファイルを閉じたことで閉じる行為その物が不可能に成り、閉じるのの終了待ちをしていた数十のデータが閉じられず、また閉じる処理さえ始まって居なかった数十のファイルが開きっぱなしのままと言うことに成ります。
また、別の考え方として、元のファイルを閉じることで、開きっぱなしのデータを全部一括で閉じられている可能性も有ります。
その場合、閉じるための処理待ちをしていたデータが、勝手に閉じられているため、既に閉じているのでハンドルが無効になっていたりして、閉じる処理がエラーが帰ってきて停まっているのかも知れません。
ハンドルやIDキーなどの代替物で管理する場合、その値が無効になった理由を、後から取得できないのはほんと、大問題なのですが?
その機能が提供されているOSを見たことがありません。
また、ハンドルはアプリケーション間で共用することが可能で、当然ながら、システム全体で一意の値です。
ハンドルを
使って→閉じて→使って→閉じて使って→閉じて
と繰り返すだけで、ハンドルは使い切り、1周回って小さい数値からまた再割り当てになります。
ようするに、OSのリソースその物が、根本的に小さすぎるのです。
そろそろですね?「値が無効です」ではなく、「○○○のプロセスによって、正常に閉じられました」とか、そういうエラーメッセージが帰ってくるようになっても良いんじゃなイカと思うのですよ。
ファイルは、USJによってそれなりに追跡が出来る殴用になっていますが、ハンドルの処理とかは未だ全然ですよね。
32bitOSだからハンドルも32bitしか無いのは、仕方が無いという時代は終わりましたよね?
64BitOSなのですからハンドルも64Bitもしくは128Bitなどにして、使い切れないほどのハンドルの生成が可能になるようにしなければならないと思うのです。
まぁ、そんなことしたら、ハンドルの管理だけで、メモリを全部消費しきってしまいますがw
まぁ、なんにせよ、今後のOSの課題ですね〜 |