关闭

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

2790人阅读 评论(0) 收藏 举报
分类:

检查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


请按任意键继续. . .


 

0
0
查看评论

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

原贴网址:http://www.cnblogs.com/leipei2352/archive/2013/02/05/2892482.html 注:最后面的一小部分是本文查找这篇文章时的一些情况说明 以下分隔后面为原贴内容 ----------------------------------...
  • jszj
  • jszj
  • 2016-09-21 16:24
  • 5249

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

查看dll被哪个应用程序占用 Tasklist /m name.dll c:\McObject\FE\Hisense\win64vs2013\host\bin>Tasklist /m msvcr100.dll Image Name       &...
  • longlongago7777
  • longlongago7777
  • 2017-09-26 16:35
  • 605

windows查看文件被那个进程使用

在windows下面有时候,我们想删除某个文件然后系统弹出对话框说文件正在被使用,无法删除。 这个时候,我们自然而然想到那么杀掉这个进程,但是怎么知道是那个进程在使用它呢? 别急,微软提供的process Explorer就可以帮你查到。 下载连...
  • suwei19870312
  • suwei19870312
  • 2012-08-21 15:07
  • 5144

windows删除oracle10g时,oci.dll无法删除解决办法

网上很多...其他删除oracle的步骤不说了 后来发现这个文件死活不能删除是因为 net stop msdtc http://www.itpub.net/thread-648910-1-1.html 果然这个就有用了...mark之
  • gray13
  • gray13
  • 2012-06-07 10:23
  • 3562

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

检查Windows下的Oracle 的动态链接库文件(DLL)被哪些进程占用
  • msdnchina
  • msdnchina
  • 2015-11-18 22:56
  • 2790

seedll 察看Dll被谁使用

  • 2008-11-06 13:55
  • 8KB
  • 下载

Windows中解决删除文件时提示被进程占用的问题

应用背景:  windows操作系统中,有时我们关闭程序后,一些相关的进程仍在后台运行,并访问着一些文件,使得我们无法对这些文件及其所属的文件夹进行删除、重命名等操作。  此时,如果知道这个文件/文件夹正在被哪个进程使用,就可以用任务管理器结束这个进程,然后就可以对文件进行修改了。(请谨慎决定是否结...
  • caodinke
  • caodinke
  • 2015-04-17 19:35
  • 2195

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

卸载程序,结果没卸载干净---程序的安装目录中还剩下一个dll文件。想删,结果系统提示说dll文件被某个进程占用了,不让删。 先前碰到这种做法,我都是直接使用unlocker先unlock一下,然后删的。不过公司的电脑,不让随便安装软件,于是只能想其他办法了。 在网上找了半天,终于给找到...
  • lgh1992314
  • lgh1992314
  • 2013-09-19 09:46
  • 1147

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

轻松查看文件被哪个进程使用  有时候小伙伴们正在或刚使用过的文件夹或者某个文件,想要把它移动到其它的位置,或者删除它,又或者仅仅想重命名这个文件,但是在操作过程中,我们发现它弹出来了文件夹或者文件正在被使用,操作无法完成,怎么办呢?对于这种情况,我们可以使用多种方法来解决。具体是...
  • haiross
  • haiross
  • 2015-11-06 10:00
  • 18393

如何查看dll或ocx模块被那个程序使用

“Tasklisk”这个命令有很多参数,具体的完全帮助可以在“命令提示符”窗口中用““Tasklist /?”查询。其中有一个参数叫“/M [Module]”,具体格式为:“Tasklist /M [Module]”这个参数的意思为:列出调用指定的DLL模块的所有进程,如果没有指定模块名,显示每个进...
  • Plutus_Lee
  • Plutus_Lee
  • 2012-07-24 11:13
  • 643
    个人资料
    • 访问:1878797次
    • 积分:26754
    • 等级:
    • 排名:第253名
    • 原创:621篇
    • 转载:314篇
    • 译文:297篇
    • 评论:69条
    博客专栏
    文章分类
    最新评论