检查Windows下的动态链接库文件(DLL)被哪些进程占用

原创 2015年11月18日 22:56:19

检查Windows下的动态链接库文件(DLL)被哪些进程占用。

注意:本文所说的DLL可以是Oracle DLL ,也可以是 System DLL

在Windows下打过Oracle bundle patch的人都有类似的经验:
Oracle开头的服务都停止了,但是patch还是打不上,提示oci.dll被占用。
出现此类原因,大多数都是没有仔细阅读随patch一起的readme.html文档造成的。
一般而言,出现DLL被占用,是由于DTC(Distributed Transaction Coordinator)服务没有关闭导致的.并且在readme.html文档中,有明确要求“要关闭Distributed Transaction Coordinator服务”

那好了,大家可能会想:对于oci.dll被占用,我从readme.html上得到经验,去关闭XXXX服务就行了。
那对于其他的DLL呢?在F:\oracle\product\10.2.0\db_1\BIN下的DLL多了去了,给出一个DLL名称,怎么去查该DLL被哪个进程锁定?
mos文章Script for Checking Services, DLL Locks, Oracle Processes Before Applying A Patch (文档 ID 454040.1)给出了一个脚本,该脚本的名称为PREPATCH.BAT,请到如下链接中下载:http://download.csdn.net/detail/msdnchina/9281087
1.下载到本地之后,解压开,放到E:\下(其他盘符或者其他目录均可),
2. cmd下进入到E:\下,运行此"PREPATCH.BAT"即可。如下是运行的日志: 

SCRIPT  : PREPATCH.BAT
PURPOSE : PRECHECK BEFORE APPLYING A PATCH


DISCLAIMER
===========
This script will check the Inventory Pointer,Services,DLL Locks,Oracle Process.


The Script Requires The following Inputs :
----------------------------------------------------
   ORACLE_SID
   ORACLE_HOME
   ORACLE_HOME_NAME

Enter The ORACLE_SID [] :FS  --->手工输入FS,注意一定要用大写!!!

Enter The ORACLE_HOME [] :F:\oracle\product\10.2.0\db_1 --->手工输入

Enter The ORACLE_HOME_NAME [] :OraDb10g_home1 --->手工输入(从C:\Program Files\Oracle\Inventory\ContentsXML\inventory.xml文件中获得ORACLE_HOME_NAME)


                     =========================================

                       ORACLE_SID Is Set As FS
                       ORACLE_HOME Is Set As F:\oracle\product\10.2.0\db_1
                       ORACLE_HOME_NAME Is As OraDb10g_home1

                     =========================================

请按任意键继续. . .

 

 MENU
 ====

   1) CHECK THE WINDOWS INVENTORY POINTER LOCATION
   2) CHECK THE ORACLE SERVICES
   3) CHECK IF ANY DLLS IN THE ORACLE_HOME IS LOCKED
   4) LIST ALL THE ORACLE PROCESS
   5) CHECK IF A PARTICULAR DLL IS LOCKED
   6) CHECK THE PROCESSOR INFORMATION
   7) CHECK FOR MONTECITO PROCESSOR
   8) EXIT

Please Select A Choice[8]: 5 ---->选择5

CHECKING IF A PARICULAR DLL IS LOCKED
-------------------------------------

Enter The DLL Name [ oci.dll ]: oraclient10.dll---->手工敲入DLL的名字

映像名称                       PID 模块
========================= ======== ============================================
TNSLSNR.EXE                   1292 oraclient10.dll
oracle.exe                    5512 oraclient10.dll


请按任意键继续. . .


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Windows下查看dll被哪个进程调用

原贴网址:http://www.cnblogs.com/leipei2352/archive/2013/02/05/2892482.html 注:最后面的一小部分是本文查找这篇文章时的一些情况说...
  • jszj
  • jszj
  • 2016年09月21日 16:24
  • 4380

查看dll被哪个应用程序占用

查看dll被哪个应用程序占用 Tasklist /m name.dll c:\McObject\FE\Hisense\win64vs2013\host\bin>Tasklist /m msvc...

查看文件(或文件夹)被哪个进程使用【文件已在另一程序中打开】

轻松查看文件被哪个进程使用  有时候小伙伴们正在或刚使用过的文件夹或者某个文件,想要把它移动到其它的位置,或者删除它,又或者仅仅想重命名这个文件,但是在操作过程中,我们发现它弹出来了文件夹或...
  • haiross
  • haiross
  • 2015年11月06日 10:00
  • 15947

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

MSXML4.DLL 动态链接库文件

  • 2010年01月13日 23:00
  • 493KB
  • 下载

Delphi 编写DLL动态链接库文件的知识和样例

一、DLL动态链接库文件的知识简介:                   Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝。动态链接库就是在这种情况下出现的。动态链接库不用重复编...

动态链接库文件msdbg.dll

  • 2012年10月26日 21:21
  • 40KB
  • 下载

Visual Basic 编译真正的Dll动态链接库文件

VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将...

Marquee.dll动态链接库文件

  • 2009年03月04日 22:41
  • 272KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检查Windows下的动态链接库文件(DLL)被哪些进程占用
举报原因:
原因补充:

(最多只允许输入30个字)