我需要在Oracle 9i中重新编译软件包。但会议永远挂起。当我检查V$SESSION_WAIT
时,知道它正在等待事件'library cache pin'
。无法获得9i版本的可能解决方案。无论如何找到会议,那是执行我的包并杀死它?无法在Oracle 9i中重新编译软件包
0
A
回答
0
当然。 要查找会话中运行包含一个名称的代码:
select s.*,sa.*
FROM v$session s
left join v$sqlarea sa
on s.sql_address=sa.address AND s.sql_hash_value=sa.hash_value
where sql_text like '%your_package_name_here%';
在此之后,你有PID和序列,所以你可以杀死你需要杀死了会议。 (上面的代码可能会返回不需要关闭的会话,例如,它发现自己:))
0
Oracle没有提供内置的简单路径来执行此操作。
如果您的应用程序使用DBMS_APPLICATION_INFO例程注册模块使用情况,您很幸运:您可以简单地查询MODULE和/或ACTION上的V $ SESSION过滤。另外,也许你在你使用的PL/SQL中有跟踪消息?
否则,您需要为包含软件包名称的调用开始拖网V$SQLTEXT(或显示SQL的几个视图中的另一个视图)。请记住使搜索不区分大小写。这会给你一个SQL_ID,你可以链接到V $ SESSION中的记录。
这只有在你的软件包是主要对象时才有效;也就是说,如果它是调用堆栈的顶部。这是为什么包裹锁定这么久的一个解释。但是也许你的软件包是从其他软件包中调用的:在这种情况下,你可能不会在V $ SQLTEXT中遇到任何问题。因此,您需要通过ALL_DEPENDENCIES找到调用它的程序,并为它们筛选V $ SQL_TEXT。
是的,这听起来像一个单调乏味的工作。这就是为什么在长时间运行的PL/SQL调用中包含某种形式的跟踪是一个好主意。
相关问题
- 1. R软件包无法与gcc编译
- 2. 无法在ubuntu中编译pacman(ArchLinux软件包管理器)
- 3. 无法在Netbeans 7.0中重新编译
- 4. 无法重新编译jsps
- 5. 无法安装R ggmap软件包:编译包'jpeg'失败
- 6. 无法在Xcode 8上编译使用Kitura的Swift软件包
- 7. 无法下载软件包:无法在软件中找到软件包...
- 8. 无法重新编译反编译的类文件
- 9. 在Oracle中重新编译无效对象SQL
- 10. :: CFBundleLoadExecutable无法加载编译的软件包(Mountain Lion,Xcode 4.6)
- 11. 编译软件包在Windows命令行
- 12. 在ubuntu上编译R软件包,无效的ELF头文件
- 13. Bower无法找到一个软件包并且无法安装新软件包
- 14. 无法编辑软件包标识符
- 15. LAPACK不挂编译软件包时,quantreg
- 16. 编译java时找不到软件包
- 17. 英特尔编译器 - 无法在R中安装需要eventloop.h的软件包
- 18. 编译软件包不运行
- 19. 升级后无法编译:无法找到类NSTextFinder的集成器软件包
- 20. 无法更新xamarin.support.v4软件包
- 21. 无需重新编译预编译头文件即可重建
- 22. Android Studio无法在Mac中安装更新/新软件包
- 23. 重新编译包中的单个类
- 24. 软件包编译和相对路径
- 25. 无法重新安装自制软件
- 26. 软件包在Perl中无法识别
- 27. 在MyEclipse中无法识别软件包
- 28. 无法在Umbraco中安装软件包
- 29. 无法在Pycharm中安装软件包
- 30. 无法在npm中发布软件包