You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by agujral <an...@yahoo.com> on 2011/06/20 20:20:21 UTC
statistical plugin
I am using statistical plugin to get statistics about activemq broker about
sometime the data from the broker takes a long time 10-20 minutes and
sometimes available in seconds.
I am sending an empty message to ActiveMQ.Statistics.Destination is it
possible that broker is so busy it cannot return any data.Is there a
workaround?
Thanks
Anurag
--
View this message in context: http://activemq.2283324.n4.nabble.com/statistical-plugin-tp3612071p3612071.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: statistical plugin
Posted by agujral <an...@yahoo.com>.
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.