从Oracle AQ错误队列中读取

时间:2014-10-03 11:13:54

标签: oracle jms message-queue weblogic12c

我想将AQ错误队列的大小写入我的WebGUI。

当然,我可以通过创建与连接工厂的连接来计算出正常队列的大小。但是,此连接并非旨在获取有关错误队列的提示,不是<?p?

如果有机会滥用此已建立的会话(连接到常规队列)来获取错误队列的总大小,我该怎么做?我更喜欢使用EJB。

  • 如果没有,我将不得不从DBA获取JMS数据库用户,然后从那里读出队列大小。
  • 或者,我也可以用MBeans吗?

我宁愿反过来使用连接工厂(会话)。

由于

2 个答案:

答案 0 :(得分:1)

您可以(如果可以的话)在例外队列中执行常规select。对于异常队列,数据库中始终存在常规表。

有关AQ异常队列的信息,请参阅Oracle AQ documentation

答案 1 :(得分:0)

如果您没有DB-read访问权限,并且仅限于使用消息,那么您可以冷却到:(Oracle Advanced)队列:

  1. 从队列中获取消息
  2. 使用从队列中提取的每条消息增加索引
  3. 在索引递增后回滚。
  4. 这样您就不会使用这些消息,但可以对其进行计数。

    我想要做到这一点:这是一个工作!如果您尚未被授予对高级排队数据库的读访问权限!如果队列堆叠或快速消耗,这种方法也不能很好地工作。与调用SELECT COUNT(*) FROM MYADVANCEDQUEUE时相比,大小编号及时不准确。

    如果您有直接的解决方案,我当然不建议这样做。