1

次のような宛先を作成します。

 Destination destination = session.createQueue("queue_name");

この場合、「queue_name」という名前のキューが存在しない場合は作成されます。

キューに宛先を形成したいのですが、存在しない場合は、作成したくありません。

キューが存在する場合にのみキューに接続する方法はありますか?

4

3 に答える 3

1

宛先を作成できるユーザーを制限するには、ActiveMQ のセキュリティ機能を使用する必要があります。次に、常に作成される ActiveMQ 構成で一連の宛先を構成できます。件名についてはこのページを参照し、セキュリティの構成 についてはこのページも参照してください。

于 2012-11-27T11:28:29.830 に答える
1

接続から DestinationSource を使用して、使用可能なキューのリストを取得できるはずです。キューが存在するかどうかを確認できます。

試したことはありませんが、次のようになると思います。

        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        ActiveMQConnection connection = (ActiveMQConnection)connectionFactory.createConnection();
        DestinationSource ds = connection.getDestinationSource();
        Set<ActiveMQQueue> queues = ds.getQueues();
于 2012-11-27T11:31:50.280 に答える
0

クライアント (コンシューマー/プロデューサー) のセキュリティ構成を介して行うことができます。

または、使用可能なキューのリストを取得し、リストにある場合にのみ接続することで、プログラムで実行することもできます。ActiveMQ はこのためのクラスを提供しますが、JMS の一部ではありません (したがって、ActiveMQ 固有の実装に制限されます)。

http://activemq.apache.org/maven/5.5.0/activemq-core/apidocs/org/apache/activemq/advisory/DestinationSource.html

于 2012-11-27T11:31:51.203 に答える