2014-10-03 83 views
0

我想将AQ错误队列的大小写入我的WebGUI。从Oracle AQ读取错误队列

我当然可以通过与连接工厂建立连接来计算正常队列的大小。然而,这个连接并不打算得到关于错误队列的提示,不是吗?

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

  • 如果没有,我就一定得从DBA的JMS数据库用户,然后从那里读出队列的大小。
  • 或者,我可以使用MBeans吗?

我宁可换个角度来使用连接工厂(会话)。

感谢

回答

1

您可能(如果你能)的异常队列做一个普通select。对于异常队列,数据库中总是有一个常规表。

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

0

如果你不具备DB-读访问,并仅限于消费消息,到(Oracle高级)队列,你冷:

  1. 从队列
  2. 增量获取信息一个索引,包含您从队列中获取的每条消息
  3. 在索引增加后回滚。

这样,您就不会消耗邮件,但能指望它。

我想明确这一点:这是一个解决办法!如果您尚未被授予对高级排队数据库的读取权限!如果队列堆叠或消耗很快,这种方法也不能很好地工作。大小数为及时调用SELECT COUNT(*) FROM MYADVANCEDQUEUE时相比,不太精确。

我肯定DONT推荐这个,如果你有一个直接的解决方案。