OpenJMS administration API
2008.11.17
1.概述
提供代码例子,演示如何使用OpenJMS administration API.
2.准备工作
使用API之前,首先要创建一个JmsAdminServerIFC实例。这要用到AdminConnectionFactory类。
import org.exolab.jms.administration.AdminConnectionFactory;
import org.exolab.jms.administration.JmsAdminServerIfc;
String url = "tcp://localhost:3035/";
JmsAdminServerIfc admin = AdminConnectionFactory.create(url);
如上,url指定了OpenJMS服务路径端口。可以通过查看Connectors文档查看url的详细说明。
如果,服务需要密码就要这样写:
String url = "tcp://localhost:3035/";
String user = "admin";
String password = "openjms";
JmsAdminServerIfc admin = AdminConnectionFactory.create(url, user, password);
注意点:当admin 引用不需要时,应当关闭服务。
admin.close();
列举目的地:
Vector destinations = admin.getAllDestinations();
Iterator iterator = destinations.iterator();
while (iterator.hasNext()) {
Destination destination = (Destination) iterator.next();
if (destination instanceof Queue) {
Queue queue = (Queue) destination;
System.out.println("queue:" + queue.getQueueName());
} else {
Topic topic = (Topic) destination;
System.out.println("topic:" + topic.getTopicName());
}
}
创建目的地,以下两种。
创建Queue:
String queue = "myqueue";
Boolean isQueue = Boolean.TRUE;
if (!admin.addDestination(queue, isQueue)) {
System.err.println("Failed to create queue " + queue);
}
创建Topic:
String topic = "mytopic";
Boolean isQueue = Boolean.FALSE;
if (!admin.addDestination(topic, isQueue)) {
System.err.println("Failed to create topic " + topic);
}
Queue计数
为了知道Queue中可用的消息数,可用一下代码:
String queue = "myqueue";
int count = admin.getQueueMessageCount(queue);
System.out.println("Queue " + queue + " has " + count + " messages");
Topic计数
为了知道Topic中可用的消息数,可用一下代码:
String topic = "mytopic";
String name = "sub1";
int count = admin.getDurableConsumerMessageCount(topic, name);
System.out.println("Subscriber " + name + " has " + count + " messages "
+ "for topic " + topic);
移除目的地
String destination = "myqueue";
if (!admin.removeDestination(destination)) {
System.err.println("Failed to remove destination " + queue);
}
确定目的地是否存在
String destination = "mytopic";
if (admin.destinationExists(destination)) {
System.out.println(destination + " exists");
} else {
System.out.println(destination + " doesn't exist");
}
3.关闭OpenJMS
admin.stopServer();