1

接続先の SonicMQ 環境内のさまざまな項目を一覧表示するテスト ユーティリティを作成しようとしています。ブローカー、コンテナー、およびキューを含む多くの項目をリストすることができましたが、トピックは引き続きわかりません。API ドキュメントを検索し、コードを少しいじってみましたが、役に立ちませんでした。

SonicMQ でトピックを一覧表示する方法はありますか? おそらく、すべての宛先 (キューとトピック) をリストするより一般的な方法はありますか? この情報を得るために私が見逃した JMS の何かがありますか?

4

1 に答える 1

1

SonicMQ では、トピックは管理されたオブジェクトではありません -> 任意のトピック名に対してリスナーまたは送信者を作成できます。そのため、管理環境用のランタイム API を使用する必要があります。構成 API を介してこれを行う方法はなく、ネイティブ JMS にも方法はありません。

ランタイム API を使用するには、IBrokerProxyオブジェクトを取得する必要があります。IBrokerProxy オブジェクトが既にあると仮定します。このオブジェクトには、グローバル サブスクリプションと永続サブスクリプションを取得するための一連のメソッドがあります。私の知る限り、他のサブスクリプション タイプを取得する方法はありません。

永続的なサブスクリプションを表示するには、最初に永続的なサブスクリプションを持つユーザーを取得する必要があります。これはgetUsersWithDurableSubscriptions(String prefix)メソッドを使用して行います。これにより、Durable Subscriptions を持つすべてのユーザーを含む ArrayList が得られます。ユーザーごとにgetDurableSubscriptions(String user)メソッドを呼び出す必要があります。これにより、このユーザーの永続的なサブスクリプションのリストが返されます。

すべてのリモート/グローバル サブスクリプションを取得するには、メソッド getRemoteSubscriptionSummary() を使用できます。

于 2010-12-31T08:33:30.930 に答える