Hi, For the purge mechanism i have found one simple modification, that you can try to apply to see if purge is faster (for my simple case i divided the duration by 5 but my table was small and the duration seems not linear with the number of messages).
It is quite simple : add an index based on the column used by activeMQ to (select/delete). You can run the following SQL request to add an index : CREATE UNIQUE INDEX ACTIVEMQ_MSGS_FULLIDX ON ACTIVEMQ_MSGS ("MSGID_PROD", "MSGID_SEQ", "CONTAINER"); Concerning the "patch", we have done some performance tests with activeMQ using JDBC persistence and Database admin suggests more modification than adding this index. (Some other tests are pending to try to well understand the behavior). But, we will have to modify some part of the JDBC store and i'm not really sure that there will be no side effect. Some exchange with someone who knows the jdbc store code could be useful to avoid some regression in a proposed patch. Or is there a documentation which explains clearly the mechanism ? When looking the code i've seen some coded herited from ActiveMQ 4.X which is no more used in ActiveMQ 5.X and it is a bit hard to understand all calls. Regards Hervé 2011/8/19 Gary Tully <gary.tu...@gmail.com> > Hervé, can you open a jira issue to track this and attach your changes > as a patch with an ASF grant. > > thanks. > > On 19 August 2011 09:02, Hervé BARRAULT <herve.barra...@gmail.com> wrote: > > Hi, > > As you notice this, i have written a post about the subject of the purge > > method in activemq which is really slow when using persistence (in my > case > > JDBC). > > I had proposed something but there was any response. > > > > 2011/8/19 Pham Ngoc Hai <pngoc...@yahoo.com> > > > >> I tried with JMX and it took a few hours to purge a queue with 50000 > msgs. > >> > >> > >> > >> --- On Thu, 8/18/11, Dejan Bosanac <de...@nighttale.net> wrote: > >> > >> > From: Dejan Bosanac <de...@nighttale.net> > >> > Subject: Re: Delete queues from JDBC storage > >> > To: users@activemq.apache.org > >> > Date: Thursday, August 18, 2011, 6:36 PM > >> > Why don't you delete it using JMX or > >> > web console? > >> > > >> > Regards > >> > -- > >> > Dejan Bosanac - http://twitter.com/dejanb > >> > ----------------- > >> > The experts in open source integration and messaging - > >> http://fusesource.com > >> > ActiveMQ in Action - http://www.manning.com/snyder/ > >> > Blog - http://www.nighttale.net > >> > > >> > > >> > On Thu, Aug 18, 2011 at 11:51 AM, Pham Ngoc Hai <pngoc...@yahoo.com> > >> > wrote: > >> > > >> > > Hi, I'm using JDBC as storage, is it sufficient to > >> > delete a queue by > >> > > deleting it from the tables with > >> > > DELETE FROM activemq_msgs where > >> > container='queue://name' > >> > > DELETE FROM activemq_acks where > >> > container='queue://name' > >> > > > >> > > Regards, > >> > > Ngoc Hai > >> > > > >> > > > >> > > >> > > > > > > -- > http://fusesource.com > http://blog.garytully.com >