java - Oracle Form 频繁挂起

标签 java multithreading oracle threadpool deadlock

无法理解为什么表单频繁挂起并尝试分析线程转储。发现没有死锁。请帮我解决这个问题?

我正在使用我们的自动化工具(使用 jemmy 进行自动化)在 Oracle EBS 表单上测试一些事务。在执行操作时,形式会变得没有反应。我使用的是最新的java版本(1.8.0.201),IE11浏览器。

有时,表单一打开,并且在执行一个操作后,表单就会挂起。 怀疑那里有僵局。因此进行了线程转储,它没有显示死锁。但许多线程处于等待状态和可运行状态。

例如,我在这篇文章中发布了两个线程堆栈跟踪。 请建议如何找到问题并解释我是否有任何学习。

1)

AWT-EventQueue-1 - priority:6 - threadId:0x083b0000 - nativeId:0xd08 - 
nativeId (decimal):3336 - state:WAITING
stackTrace:
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x159e3750> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.awt.EventQueue.getNextEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.SequencedEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
    Locked ownable synchronizers:
   - None

2)

AWT-EventQueue-1 - priority:6 - threadId:0x083b0000 - nativeId:0xd08 - nativeId (decimal):3336 - state:WAITING
stackTrace:
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x159e3750> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.awt.EventQueue.getNextEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.SequencedEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Locked ownable synchronizers:
- None

最佳答案

It's a kind of Out Of Memory errors.

您似乎需要通过 Oracle 支持应用补丁:21187539,并使用 Opatch Utility 版本 12.1.0.2.0> 以及稍后

关于java - Oracle Form 频繁挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54627861/

相关文章:

java - Oracle DATE 和 Hibernate/JPA 映射

database - 如何同步两个 Oracle 数据库?

database - DDL 触发器 - 无法禁用触发器

java - 如何保存首选项页面的字符串字段编辑器的输入值?

java - 如何显示Ant构建的进度?

java - 避免启用 Log4j/Slf4j 调试检查

python - 为什么顺序代码比多线程代码快?

.net - SempahoreSlim 作为异步代码中的锁的正确用法是什么?

java - 日期字符串的正确日期格式,例如 "2013-11-16T08:46:00.000-06:00"

.net - 对于提供线程安全添加、删除、迭代集合到各种对象的包装器来说,最好的名称是什么?