Pau*_*lin 2 java oracle websphere deadlock
我们有一个在Websphere中运行的Java程序,并使用直接jdbc(没有Hibernate或JPA)的Oracle数据库.我们的客户正在使用HP Performance Center进行负载测试,并且他在负载下偶尔会遇到Oracle"死锁"异常
Caused by: java.sql.SQLException: ORA-00060: deadlock detected while waiting for resource
Run Code Online (Sandbox Code Playgroud)
有没有办法,无论是在代码中还是在外部,强制执行kill -3此异常发生时jvm时获得的相同类型的线程转储?
如果在异常发生时无法自动检测到,知道如何枚举线程将没有多大用处.
我们一直这样做.我们基本上使用:
Thread.setDefaultUncaughtExceptionHandler
Run Code Online (Sandbox Code Playgroud)
当我们的应用程序启动时,然后我们在发生异常时转储我们想要的信息:
Map<Thread, StackTraceElement[]> mst = Thread.getAllStackTraces();
Runtime.getRuntime().freeMemory()/ maxMemory()/ totalMemory()获得基本内存的相关信息
用户使用模式,如果它是用户可以与之交互的应用程序
自制的"分析"
等等
然后你可以调用很多其他东西并获得幻想.例如,我们会自动将崩溃报告(包括完整的堆栈跟踪)发送到等待此类跟踪的服务器.
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |