Also I want to add to my first message, sometimes I am not getting any
response from the broker  when I send message to the queue
"ActiveMQ.Statistics.Broker" my program just hangs.
I am attaching the program below :

public static void main(String[] args) throws Exception  {
 //not using sdtcommon variable since it requires lot of files to be
included crazy java 
 //String abc=SDTQueue.DESTINATION_PIXEL_QUEUE_PREFIX;
  printBrokerStats(args);

}

private static void printBrokerStats(String[] args) throws JMSException { 
 //ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("vm://localhost:61616?broker.useJmx=false");
   String host=args[0];
   if(host == null){
       System.out.println("Please specify hostname");
       System.exit(1);
    }
    String sufString = ".bluekai.com";
    int sufLen = sufString.length();
    int hostLen = host.length();
    int requiredLen = hostLen - sufLen;
    String prefixHostStr = host.substring(0,requiredLen);
    long unixTime = System.currentTimeMillis() / 1000L;
        //System.out.println(unixTime);
     prefixHostStr = prefixHostStr.replace('.','-');
 String connStr = "tcp://";
 connStr += host;
 connStr += ":61616"; 
//ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory("tcp://localhost:61616");//?broker.persistent=false&broker.useJmx=false");
ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(connStr);//?broker.persistent=false&broker.useJmx=false");
  Connection connection;
  connection = connectionFactory.createConnection();
  connection.start();
 Session  session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);

   
 //Destination replyTo = session.createQueue("ActiveMQ.Statistics.Broker");
Destination replyTo =
session.createTemporaryQueue();//"ActiveMQ.Statistics.Broker");
MessageConsumer consumer = session.createConsumer(replyTo);
String queueName = "ActiveMQ.Statistics.Broker";
Destination testQueue = session.createQueue(queueName);
MessageProducer producer = session.createProducer(testQueue);
Message msg = session.createMessage();
msg.setJMSReplyTo(replyTo);
producer.send(msg);

MapMessage reply = (MapMessage) consumer.receive();

for (Enumeration e = reply.getMapNames();e.hasMoreElements();) {
  String name = e.nextElement().toString();
  if(name.equals("openwire") || name.equals("vm") ||
name.equals("tempPercentUsage") || name.equals("ssl")) continue;
  if(name.equals("brokerId") || name.equals("stomp+ssl") ||
name.equals("stomp")) continue;
  if(name.equals("dataDirectory") || name.equals("brokerName")) continue;
  String mName = "activemq."+name; 
 System.out.println(prefixHostStr+" "+mName + " " + unixTime+" "+
reply.getObject(name));
 }
//Now print per destination messages
 
  String destStr=args[1];
  String[] pids = destStr.split(",");
  //System.out.println("size="+pids.length);
  for(int i = 0; i < pids.length; i++ ) {
        Connection destConnection;
        destConnection = connectionFactory.createConnection();
        destConnection.start();
        Session  destSession = null;
        String qName = "D" + pids[i];
        destSession=destConnection.createSession(false,
destSession.AUTO_ACKNOWLEDGE);
        
        Queue destTestQueue = destSession.createQueue(qName);
        MessageProducer destProducer = destSession.createProducer(null);
        //Queue query =
destSession.createQueue("ActiveMQ.Statistics.Destination" + qName);
         
        Queue query =
destSession.createQueue("ActiveMQ.Statistics.Destination" + 
destTestQueue.getQueueName());
        Destination destReplyTo =
destSession.createTemporaryQueue();//"ActiveMQ.Statistics.Broker");
         MessageConsumer destConsumer =
destSession.createConsumer(destReplyTo);
        Message destMsg = destSession.createMessage();
        //System.out.println("q="+qName);
        destProducer.send(destTestQueue,destMsg);
        destMsg.setJMSReplyTo(destReplyTo);
        destProducer.send(query,destMsg);
        MapMessage destReply = (MapMessage) destConsumer.receive();
        //assertNotNull(destReply);
        //assertTrue(destReply.getMapNames().hasMoreElements());
       
        for (Enumeration e1 = destReply.getMapNames();e1.hasMoreElements();)
{
            String name1 = e1.nextElement().toString();
            if(name1.equals("openwire") || name1.equals("vm") ||
name1.equals("tempPercentUsage") || name1.equals("ssl")) continue;
 if(name1.equals("brokerId") || name1.equals("stomp+ssl") ||
name1.equals("stomp")) continue;
            if(name1.equals("dataDirectory") || name1.equals("brokerName"))
continue;
            String mName1 = "activemq."+destTestQueue.getQueueName()+"."+
name1; 
            System.out.println(prefixHostStr+" "+mName1 + " " + unixTime+"
"+ destReply.getObject(name1));
        }


        destConnection.close();
  }
 
 connection.close();
 }
}


--
View this message in context: 
http://activemq.2283324.n4.nabble.com/statistical-plugin-tp3612071p3614745.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to