我創建這樣一個目標:的ActiveMQ沒有創造隊列程序自動
Destination destination = session.createQueue("queue_name");
在這種情況下,如果「queue_name」不存在指定的隊列中,它會被創建。
我想形成一個隊列的目的地,如果它不存在,我不想創建它。
有沒有辦法連接到隊列,只有當它存在?
我創建這樣一個目標:的ActiveMQ沒有創造隊列程序自動
Destination destination = session.createQueue("queue_name");
在這種情況下,如果「queue_name」不存在指定的隊列中,它會被創建。
我想形成一個隊列的目的地,如果它不存在,我不想創建它。
有沒有辦法連接到隊列,只有當它存在?
我想你應該能夠從你的連接中使用DestinationSource獲得可用隊列的列表。你可以看看隊列是否存在。
Havnt嘗試過,但認爲它看起來像這樣:
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
ActiveMQConnection connection = (ActiveMQConnection)connectionFactory.createConnection();
DestinationSource ds = connection.getDestinationSource();
Set<ActiveMQQueue> queues = ds.getQueues();
你可以做到這一點通過客戶端(生產者/消費者)的安全配置。
或者,您可以通過編程的方式獲取隊列列表並只在列表中連接時才能連接。 ActiveMQ爲此提供了一個類,但它不是JMS的一部分(因此您將被限制爲ActiveMQ特定實現)。