clear down async tasks on stop

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@955168 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Davies 2010-06-16 09:38:46 +00:00
parent 7a5abebea8
commit e70308804f
1 changed files with 9 additions and 0 deletions

View File

@ -172,6 +172,9 @@ public class KahaDBStore extends MessageDatabase implements PersistenceAdapter{
public void setMaxAsyncJobs(int maxAsyncJobs) {
this.maxAsyncJobs = maxAsyncJobs;
}
@Override
public void doStart() throws Exception {
@ -200,12 +203,17 @@ public class KahaDBStore extends MessageDatabase implements PersistenceAdapter{
@Override
public void doStop(ServiceStopper stopper) throws Exception {
//drain down async jobs
LOG.info("Stopping async queue tasks");
this.globalQueueSemaphore.tryAcquire(this.maxAsyncJobs, 60, TimeUnit.SECONDS);
synchronized (this.asyncQueueMap) {
for (StoreQueueTask task : this.asyncQueueMap.values()) {
task.cancel();
}
this.asyncQueueMap.clear();
}
LOG.info("Stopping async topic tasks");
this.globalTopicSemaphore.tryAcquire(this.maxAsyncJobs, 60, TimeUnit.SECONDS);
synchronized (this.asyncTopicMap) {
for (StoreTopicTask task : this.asyncTopicMap.values()) {
task.cancel();
@ -224,6 +232,7 @@ public class KahaDBStore extends MessageDatabase implements PersistenceAdapter{
if (this.topicExecutor != null) {
this.topicExecutor.shutdownNow();
}
LOG.info("Stopped KahaDB");
super.doStop(stopper);
}