执行该管理动作之前需要先创建对象工厂,然后才能使用该对象工厂创建可以执行该管理动作的对象。
以下代码演示了如何使用API提供的功能管理MQ服务器上的持久化订阅者。
得到所有持久化订阅者的名称和Client Id:
try {
//在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
//使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
//要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
Collection<DurableSubscriberBrief> briefs = mqManager.getAllDurableSubscriberBriefs();
for (Iterator<DurableSubscriberBrief> ite = briefs.iterator(); ite.hasNext();) {
DurableSubscriberBrief brief = ite.next();
System.out.println(brief.getDurableName());
System.out.println(brief.getClientId());
...
}
...
} catch (JmsAdminException e) {
//异常处理代码
}
...
得到一个持久化订阅者所订阅的所有主题的名称:
try {
//在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
//使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
//要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
String durableName = 要查询的持久化订阅者的名称;
String clientId = 要查询的持久化订阅者的Client Id;
if (mqManager.isDurableSubscriberExistent(durableName, clientId)) {
IDurableSubscriberMonitor monitor = mqManager.createDurableSubscriberMonitor(durableName, clientId);
String[] subscribedTopics = monitor.getTopicNames();
for (int i = 0; i < subscribedTopics.length; ++i) {
System.out.println(subscribedTopics[i]);
}
...
}
...
} catch (JmsAdminException e) {
//异常处理代码
}
...
查询一个主题是否被一个订阅者订阅了:
try {
//在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
//使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
//要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
String durableName = 要查询的持久化订阅者的名称;
String clientId = 要查询的持久化订阅者的Client Id;
if (mqManager.isDurableSubscriberExistent(durableName, clientId)) {
IDurableSubscriberMonitor monitor = mqManager.createDurableSubscriberMonitor(durableName, clientId);
String topicName = 要查询是否被订阅的主题的名称;
if (monitor.isTopicSubscribed(topicName)) {
System.out.println("Topic with name : '" + topicName +
"' had been subscribed by subscriber : '" + subscriberName + "'");
}
...
}
...
} catch (JmsAdminException e) {
//异常处理代码
}
...
得到该订阅者订阅消息时指定的消息过滤器的字符串:
try {
//在执行下面的代码之前,需要先创建对象工厂,假设其名称为:factory
//使用createMqManager创建一个IMqManager的实现类的对象,该对象用于管理网络上某台MQ服务器,
//要管理的服务器由路由名参数指定,该对象采用默认的120秒请求超时时间
IMqManager mqManager = factory.createMqManager("Admined Server Router Name");
String durableName = 要查询的持久化订阅者的名称;
String clientId = 要查询的持久化订阅者的Client Id;
if (mqManager.isDurableSubscriberExistent(durableName, clientId)) {
IDurableSubscriberMonitor monitor = mqManager.createDurableSubscriberMonitor(durableName, clientId);
String messageSelector = monitor.getMessageSelector();
...
}
...
} catch (JmsAdminException e) {
//异常处理代码
}
...