1

我正在尝试编写一个测试实用程序来列出我连接到的 SonicMQ 环境中的各种项目。我已经能够列出许多项目,包括代理、容器和队列,但主题仍然让我难以理解。我已经搜索了 API 文档并在代码中进行了一些操作,但无济于事。

有没有办法在 SonicMQ 中列出主题?是否有更通用的方法列出所有目的地(队列和主题)?JMS 中是否有我错过了获取此信息的内容?

4

1 回答 1

1

在 SonicMQ 中,主题不是受管理的对象 -> 您可以为所需的任何主题名称创建侦听器或发送者。因此,您必须使用管理环境的运行时 API。没有办法通过配置 API 做到这一点,本机 JMS 也没有办法。

在使用运行时 API 时,您必须获得一个IbrokerProxy对象。我假设你已经有一个 IBrokerProxy 对象。在这个对象上有一组方法来获取全局和持久订阅。据我所知,没有办法获得其他订阅类型。

要查看持久订阅,您必须首先获取具有持久订阅的用户。这是通过getUsersWithDurableSubscriptions(String prefix)方法完成的,该方法将为您提供一个 ArrayList,其中所有用户都拥有一个持久订阅。对于每个用户,您必须调用getDurableSubscriptions(String user)方法,然后该方法将返回该用户的持久订阅列表。

要获取所有远程/全局订阅,您可以使用方法 getRemoteSubscriptionSummary()。

于 2010-12-31T08:33:30.930 回答