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.