You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by abakar <ab...@web.de> on 2009/10/05 14:21:27 UTC

How can I remove a message from Queue

Hello i am a new with ActiveMQ and have following problems: :-(

how can I remove alle messages from a queue or only one message from Queue.

Ich have lookout at google, Nabble and activeMQ Community but i didn't one
example.

please help me, i have more than two weeks and i tried many ways but without
sucess.

Thank you so much 


-- 
View this message in context: http://www.nabble.com/How-can-I-remove-a-message-from-Queue-tp25749799p25749799.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: How can I remove a message from Queue

Posted by abakar <ab...@web.de>.
Hi Felix, 

Many thanks for your answer,

That mean there is no a way to delete all a messages directly form my java
client!!!

I have wrote this code :

public void purgeQueue(JmsDestination dst) {
		
		try {

			BrokerService broker = new BrokerService();
			broker.setUseShutdownHook(false);
			broker.setPlugins(new BrokerPlugin[] { new JaasAuthenticationPlugin() });

			broker.addConnector("tcp://localhost:0");
			// broker.start();

			mbeanServer = broker.getManagementContext().getMBeanServer();

			// System.out.println("MbeanServer :
"+broker.getManagementContext().isCreateMBeanServer());

			ObjectName queueViewMBeanName = new ObjectName(domain
					+ ":Type=Queue,Destination=" + dst + ",BrokerName="
					+ broker.getBrokerName());

			if (mbeanServer.isRegistered(queueViewMBeanName)) {
				System.out.println("Bean Registered: " + queueViewMBeanName);
			} else {
				System.out.println("Could not find MBean!: "
						+ queueViewMBeanName);
			}

			// Create a proxy to the QueueViewMBean
			QueueViewMBean queue = (QueueViewMBean) MBeanServerInvocationHandler
					.newProxyInstance(mbeanServer, queueViewMBeanName,
							QueueViewMBean.class, true);

			/**/

			// Purge the queue
			queue.purge();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();

		}

	}


But i have allways following exception :

javax.management.InstanceNotFoundException:
org.apache.activemq:Type=Queue,Destination=simple.queue,BrokerName=localhost
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown
Source)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
Source)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
	at javax.management.MBeanServerInvocationHandler.invoke(Unknown Source)
	at $Proxy0.purge(Unknown Source) 

I look forward to find out one way to delete alle messages in a Destination
or only one message???.

Many Thanks :-(



fehm wrote:
> 
> Hi abakar,
> 
> This example below will read all message from a queue (until it is empty).
> Make sure that no producer runs.
> If you need to delete all messages you can also use jconsole
> (http://activemq.apache.org/jmx.html) to empty the queue (operation
> "purge").
> 
> 
> Felix
> 
> 
> 
> import javax.jms.Connection;
> import javax.jms.Destination;
> import javax.jms.ExceptionListener;
> import javax.jms.JMSException;
> import javax.jms.Message;
> import javax.jms.TextMessage;
> import javax.jms.MessageConsumer;
> import javax.jms.Session;
> 
> 
> import org.apache.activemq.ActiveMQConnectionFactory;
> 
> public class Test {
> 
>   /**
>    * @param args
>    */
>   public static void main(String[] args) throws Exception {
> 
>     Message message = null ;
>     // your broker url
>     String sConnection = "tcp://0.0.0.0:61620";
>     ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(sConnection);
>     Connection connection = connectionFactory.createConnection();
>     connection.start();
> 
>     // create Session for the queue and register us in the server
>     Session session = connection.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
>     Destination queue = session.createQueue("YOUR_QUEUE_NAME");
>     MessageConsumer consumer = session.createConsumer(queue);
> 
>     // polling for messages
>     while ( (message = consumer.receive()) != null ){
>       if(message instanceof TextMessage){
>         TextMessage tx = (TextMessage)message;
>         System.out.println(tx);
>       }
>     }
>   }
> }
> 
> 
> 
> 
> 
> 
> abakar wrote:
>> 
>> Hello i am a new by ActiveMQ. I have tried form my java code to delete a
>> message form queue but didn't work.
>> 
>> I don't know how can i do that!!!!!  
>> 
>> how can I remove alle messages from a queue or only one message from
>> Queue.
>> 
>> Ich have lookout at google, Nabble and activeMQ Community but i didn't
>> find one example as java code.
>> 
>> please help me, i have more than two weeks and i tried many ways but
>> without sucess. :-(
>> 
>> Thank you so much 
>> 
>> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/How-can-I-remove-a-message-from-Queue-tp25749799p25765613.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: How can I remove a message from Queue

Posted by fehm <Fe...@cern.ch>.
Hi abakar,

This example below will read all message from a queue (until it is empty).
Make sure that no producer runs.
If you need to delete all messages you can also use jconsole
(http://activemq.apache.org/jmx.html) to empty the queue (operation
"purge").


Felix



import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
import javax.jms.MessageConsumer;
import javax.jms.Session;


import org.apache.activemq.ActiveMQConnectionFactory;

public class Test {

  /**
   * @param args
   */
  public static void main(String[] args) throws Exception {

    Message message = null ;
    // your broker url
    String sConnection = "tcp://0.0.0.0:61620";
    ActiveMQConnectionFactory connectionFactory = new
ActiveMQConnectionFactory(sConnection);
    Connection connection = connectionFactory.createConnection();
    connection.start();

    // create Session for the queue and register us in the server
    Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
    Destination queue = session.createQueue("YOUR_QUEUE_NAME");
    MessageConsumer consumer = session.createConsumer(queue);

    // polling for messages
    while ( (message = consumer.receive()) != null ){
      if(message instanceof TextMessage){
        TextMessage tx = (TextMessage)message;
        System.out.println(tx);
      }
    }
  }
}






abakar wrote:
> 
> Hello i am a new by ActiveMQ. I have tried form my java code to delete a
> message form queue but didn't work.
> 
> I don't know how can i do that!!!!!  
> 
> how can I remove alle messages from a queue or only one message from
> Queue.
> 
> Ich have lookout at google, Nabble and activeMQ Community but i didn't
> find one example as java code.
> 
> please help me, i have more than two weeks and i tried many ways but
> without sucess. :-(
> 
> Thank you so much 
> 
> 


-- 
View this message in context: http://www.nabble.com/How-can-I-remove-a-message-from-Queue-tp25749799p25765164.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: How can I remove a message from Queue

Posted by AMQBeginner <fr...@x-integrate.com>.


abakar wrote:
> 
> Hello i am a new by ActiveMQ. I have tried form my java code to delete a
> message form queue but didn't work.
> 
> I don't know how can i do that!!!!!  
> 
> how can I remove alle messages from a queue or only one message from
> Queue.
> 
> Ich have lookout at google, Nabble and activeMQ Community but i didn't
> find one example as java code.
> 
> please help me, i have more than two weeks and i tried many ways but
> without sucess. :-(
> 
> Thank you so much 
> 
> 
> 

Hello you can delete one or all messages within a queue by using the Active
MQ Webinterface.
Start ActiveMQ via activemq command and enter the URL
"http://localhost:8161/admin/" in your browser to enter the Webinterface.

-- 
View this message in context: http://www.nabble.com/How-can-I-remove-a-message-from-Queue-tp25749799p25801889.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.