これを読んでいる人は、「どうしてそれを知らなかったの?」と尋ねるでしょう。しかし、ゲームの後半に最も単純なことが起こり、他の人はそれを早い段階で知っていることがあります。
Windows NTの時代から、WindowsでOracleにパッチを適用しています。 WindowsでOracleにパッチを適用する人なら誰でも、一部のDLLファイルが他のプロセスによってロックされているという事実にOPatchがしばしば気を悪くすることを知っています。これを回避する最も簡単な方法は、パッチによって置き換えられるDLLファイルの名前を変更することです。 OSではDLLファイルを削除できませんが、名前を変更してからOPatchを続行できます。 OPatchの初期の頃は、applyを実行し、ロックされていたDLLを吐き出していました。 DLLファイルの名前を変更してから、OPatchを再度実行して、ロックされた次のDLLファイルを取得します。 OPatchがロックされたDLLファイルを検出しなくなるまで、このプロセスは約20回繰り返されます。少なくとも今、OPatchを実行すると、ロックされているDLLファイルの完全なリストが表示されます。
DLLファイルをロックしているプロセスを知りたいことがあります。以前は、無料で入手できるユーティリティの1つをダウンロードして、問題のファイルをロックしているプロセスを表示し、プロセスを終了していました。しかし、フリーウェアがサーバーを肥大化させるのは好きではないので、作業が終わったらユーティリティを削除することがよくあります。次回までそのユーティリティが必要です…
最近、誰かが私にMetalink Note 294350.1を指摘しました。このノートには、このドキュメントを読む前に私が知らなかった小さなナゲットが1つ含まれていました。どうやら、WindowsにはDLLファイルをロックしているプロセスを表示するコマンドラインユーティリティが含まれています。今できること:
tasklist /m
出力は長くなる可能性があるため、出力をファイルに保存してから、テキストエディタでファイルを開くと便利です。
tasklist /m > c:\oracle\task_list.txt notepad c:\oracle\task_list.txt
次に、テキストエディタの検索機能を使用して、問題のDLLを見つけることができます。
さて、この小さなユーティリティがここ数年私の注意を逸してしまったのはどうしてですか?