Finding out which process is accessing Oracle binaries
Ever had the error message "The process cannot access the file because it is being used by another process"? Well, on Windows it is unfortunately a common occurrence, and this morning it happened again while upgrading a 10.2.0.3 database to 10.2.0.4
This time I decided to put an end to it and I looked for a command or tool that might help me find out which process were running on the Windows server and which files they were accessing. Google took me to ProcessExplorer
This tools offers the tree of the processes running on a Windows system
The culprit in my case (see the first screenshot) was accessing java.exe. Which process to kill? Maybe javaw?
Before killing a process, let's try to find out what javaw is doing; infact, we don't want to kill the installer itself!
The process must be emagent.exe (in fact, I should have used the "Find" function, see below, and look for "java")
As a result of stopping emagent.exe the installation continued without any other werror or warning.
As and example of the usage of the "Find" command, we determine which process is currently accessing catupgrd.sql. I am running two upgrades in parallel.
The answer is, of course, sqlplus.exe.
The same useful information is provided by handle.exe , but not in graphical form.