OpenJMS administration API(译)

来源:互联网 发布:mysql 查询表锁定 编辑:程序博客网 时间:2024/05/01 12:01

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();

 

        

 

原创粉丝点击