SonicMQ では、トピックは管理されたオブジェクトではありません -> 任意のトピック名に対してリスナーまたは送信者を作成できます。そのため、管理環境用のランタイム API を使用する必要があります。構成 API を介してこれを行う方法はなく、ネイティブ JMS にも方法はありません。
ランタイム API を使用するには、IBrokerProxyオブジェクトを取得する必要があります。IBrokerProxy オブジェクトが既にあると仮定します。このオブジェクトには、グローバル サブスクリプションと永続サブスクリプションを取得するための一連のメソッドがあります。私の知る限り、他のサブスクリプション タイプを取得する方法はありません。
永続的なサブスクリプションを表示するには、最初に永続的なサブスクリプションを持つユーザーを取得する必要があります。これはgetUsersWithDurableSubscriptions(String prefix)メソッドを使用して行います。これにより、Durable Subscriptions を持つすべてのユーザーを含む ArrayList が得られます。ユーザーごとにgetDurableSubscriptions(String user)メソッドを呼び出す必要があります。これにより、このユーザーの永続的なサブスクリプションのリストが返されます。
すべてのリモート/グローバル サブスクリプションを取得するには、メソッド getRemoteSubscriptionSummary() を使用できます。