私はactiveMQが初めてです。すべてのキューを取得してメッセージを読み取るコードを作成する必要があります。すべてのキューを取得するような API は見つかりませんでした。ActiveMQからキューを読み取るにはどうすればよいですか。可能であれば、いくつかの例が役立ちます。
2 に答える
Java で ActiveMQ のすべてのキューを取得します。
pom.xmlに以下の Maven 依存関係を追加
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.14.0</version>
</dependency>
tcp://localhost: 61616/を、activemq サービスが実行されているtcp://180.50.50.10:61616 / に変更できます。
Java コード:
try {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616/");
ActiveMQConnection connection = (ActiveMQConnection) connectionFactory.createConnection();
DestinationSource ds = connection.getDestinationSource();
connection.start();
Set<ActiveMQQueue> queues = ds.getQueues();
for (ActiveMQQueue activeMQQueue : queues) {
try {
System.out.println(activeMQQueue.getQueueName());
} catch (JMSException e) {
e.printStackTrace();
}
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
コンソール出力:
HtmlQueue
emaildewsgmc
pdfdirectinpirepscli
pdfdirectinpirecli
InQueue
ReceiveQueue
NormalPriorityQueue
emaildirecthp
pdfdewsgmc
pdfdirecthp
Send2Recv
SaveQueue
LowPriorityQueue
emaildewshp
HighPriorityQueue
PdfQueue
AnotherDest
pdfdewshp
emaildirectgmc
Man 既に activeMQ という名前の API を使用しており、この API からすべてのキューを取得できます。
あなたが言った質問のこの部分を理解できません
* get Q のような API が見つかりませんでした *
とにかく、これにはJMX
を使用できます。最も簡単な方法は、JMX コンソールまたは JConsole をブローカー JVM に向けて JMX を使用することです。
getDestinations()経由で Java コードを使用して、ブローカからすべてのアクティブな宛先を取得することもできます。getDestinationMap() を使用して、ActiveMQDestination によってインデックス付けされたすべての Destination オブジェクトのマップを取得することもできます。これにより、キューの深さなどの個々の宛先の詳細を確認できます。最後の方法は、WebConsoleを使用することです。
. ActiveMQ Web コンソールは、ActiveMQ を操作するための Web ベースの管理ツールです。JMX サポートと共に使用すると、ActiveMQ を操作するための非常に貴重なツールになります。ほとんどすべてを見つけることができる Web サイトで ActiveMQ
の詳細なサポートに従ってください:)