2

解決するには「光」が必要です。おそらく、この問題の原因はたくさんありますが、誰かが私を助けることができるかもしれません.

シナリオ: 24 時間年中無休で PostgreSQL データベースとその他のサーバー アプリケーションを実行している Windows サーバー (データベースでタスクを処理するためなど)。さまざまなサーバー シナリオ (~30) があり、ハードウェアと Windows のバージョンが異なります (XP SP3/WinServer など... すべて NT ベース)。すべてのアプリケーションは Delphi7 で作成され、DLL にリンクされています (D7 でも)。

数日後 (場合によっては 1 週間、場合によっては数か月)、Windows が異常な動作を開始し、[スタート] メニューが開かなくなったり、ダイアログにいくつかのボタンが表示されなくなったりします。そしてすぐにいくつかのアプリケーションが開かなくなり、eventviewer でイベントが発生します。

Faulting application x, version y, faulting module kernel32.dll, version 5.1.2600.5781, fault address 0x00012afb

その間、メモ帳、iexplore などの他のアプリケーションは正常に開きますが、上記のイベント ログのみで一部のアプリケーションは開きません。しかし、システムを再起動しないと、数日のうちに cmd.exe (および他のすべてのアプリケーション) が開かなくなり、イベントログに同じエラーが表示されます。

「何が」これを引き起こす可能性があるかを見つけようとしましたが、成功しませんでした。ですから、どんなアドバイスでも大歓迎です。

前もって感謝します。

4

1 に答える 1

4

リソースハンドル(ウィンドウハンドル)が不足していると思います。これは、 Sysinternals Process Explorer(より優れたタスクマネージャー)のシステムプロパティを確認することで確認できます。デフォルトのタスクマネージャーでさえ、ハンドル数を表示するのに役立つと思います。次に、問題の原因となっているアプリケーションを特定できます。

アプリケーションのリークがわかったら、それが自分のものである場合は、RationalpurifyまたはBoundscheckerを使用して問題にドリルダウンできます。これらのツールにお金がない場合は、たとえばいくつかの機能を非アクティブ化して手動で問題を少し減らし、ハンドル数がまだ増えるかどうかを確認する必要があります...

それがあなたが経験している問題であるかどうかわからない、多分それは完全に無関係です。しかし、確認は簡単です。トラックは、他のアプリケーションで問題が発生したときに、一部のアプリがグローバルリソースを盗んでいることです。メモ帳のようなアプリケーションは多くのリソースを使用しないため、正常に動作しているように見えます。重いアプリでは問題が発生する可能性が高くなります。

それが役に立てば幸い。

于 2010-06-14T19:50:40.297 に答える