- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是 Oracle 11.2.0.3。
我们在使用 Oracle 的 JMS 而不是 OracleAQ 时遇到了问题。这工作正常,除了我们开始注意到队列被填满 1000 条消息,然后随着时间的推移数百万条消息。其中一些处于 PROCESSED 状态,但大多数处于就绪状态。我们将此行为追溯到该主题的“僵尸”或死亡订阅者。当一个 Java 进程终止并且没有机会注销自己时,它会将订阅者记录留在队列中,而 ORacle 似乎没有检测到它已经死亡。以至于 MONTHS 之后,发送到我们的多订阅者队列的新消息将乘以订阅者的数量,它认为这比实际要高得多。 (当我们达到最大订阅者限制时,我们首先注意到了这一点。)
我们已经运行了 qmon 进程——我什至尝试增加最小进程数以使其无效。只要队列中没有死订阅者,队列清理就会非常顺利。
任何人都看到过这个,并希望找到一个解决方案?
最佳答案
好的,所以我没有比这更好的解决方案了:
1) 使用名称创建您的订阅者并跟踪订阅者的姓名。
2)确保您有一个应用程序的关闭 Hook 来执行以下过程,这将取消订阅并注销订阅者。
3) 在意外关机/崩溃的情况下,当无法取消订阅时,必须有一个清理任务来执行下面的代码:
DECLARE
aqAgent SYS.AQ$_AGENT;
BEGIN
for idx in (select consumer_name from
DBA_QUEUE_SUBSCRIBERS a where a.queue_name = '<Your Oracle AQ Name>') loop
aqAgent := SYS.AQ$_AGENT(idx.consumer_name, NULL, NULL);
DBMS_AQADM.REMOVE_SUBSCRIBER('<Your Oracle AQ Name>', aqAgent);
end loop;
END;
关于oracle - 为什么 OracleAQ 将死订户留在队列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10038104/
这是 Oracle 11.2.0.3。 我们在使用 Oracle 的 JMS 而不是 OracleAQ 时遇到了问题。这工作正常,除了我们开始注意到队列被填满 1000 条消息,然后随着时间的推移数百
关于Spring中OracleAQ的以下配置 这里的问题是,尽管我们没有订阅 LUKAS34(但我们有其他 - LUKAS),但上述配置会导致读取来自 AQ_TS_MY_TEST 的所有
我们有一个要求,尝试使用 Camel 将巨大的 xml 负载从 activemq 队列发送到 oracle aq 队列。 有效负载超过 4000 字节。因此,Camel 无法发送此消息,因为 Orac
任何人都可以给我一些关于如何使用 OracleAQ 实现 JNDI 查找的指南/想法吗? (创建 connectionFacotry、“java.naming.factory.initial”的参数、
我从正在监听 OracleAQ 的 Java 服务中收到零星的错误。 似乎每天晚上都在发生,我不能确定发生了什么。真的是数据库连接问题吗? 或者“Dequeue failed”是否表明它已连接并且发生
是否可以在 Spring 中定义的 jms 容器内创建多个监听器(针对不同的主题)? 假设以下配置... ... 和 ... jmsContainer 中是否可以有多个 messageList
我是一名优秀的程序员,十分优秀!