You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/09/04 17:40:54 UTC
svn commit: r440108 - in
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq:
broker/BrokerService.java store/DefaultPersistenceAdapterFactory.java
Author: rajdavies
Date: Mon Sep 4 08:40:53 2006
New Revision: 440108
URL: http://svn.apache.org/viewvc?view=rev&rev=440108
Log:
Use a different TaskFactory for PersistenceAdaptors - allowing the thread priority
to be set differently for PersistenceAdaptors (e.g. Journal) than normal tasks.
This is part of the work necessary for http://issues.apache.org/activemq/browse/AMQ-845
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/DefaultPersistenceAdapterFactory.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java?view=diff&rev=440108&r1=440107&r2=440108
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java Mon Sep 4 08:40:53 2006
@@ -109,6 +109,7 @@
private ManagementContext managementContext;
private ObjectName brokerObjectName;
private TaskRunnerFactory taskRunnerFactory;
+ private TaskRunnerFactory persistenceTaskRunnerFactory;
private UsageManager memoryManager;
private PersistenceAdapter persistenceAdapter;
private PersistenceAdapterFactory persistenceFactory;
@@ -139,6 +140,8 @@
private DestinationInterceptor[] destinationInterceptors;
private ActiveMQDestination[] destinations;
private Store tempDataStore;
+ private int persistenceThreadPriority = Thread.MAX_PRIORITY;
+
/**
* Adds a new transport connector for the given bind address
@@ -617,6 +620,19 @@
public void setTaskRunnerFactory(TaskRunnerFactory taskRunnerFactory) {
this.taskRunnerFactory = taskRunnerFactory;
}
+
+
+ public TaskRunnerFactory getPersistenceTaskRunnerFactory(){
+ if (taskRunnerFactory == null) {
+ persistenceTaskRunnerFactory = new TaskRunnerFactory("Persistence Adaptor Task", persistenceThreadPriority, true, 1000);
+ }
+ return persistenceTaskRunnerFactory;
+ }
+
+
+ public void setPersistenceTaskRunnerFactory(TaskRunnerFactory persistenceTaskRunnerFactory){
+ this.persistenceTaskRunnerFactory=persistenceTaskRunnerFactory;
+ }
public boolean isUseJmx() {
return useJmx;
@@ -947,6 +963,14 @@
public void setTempDataStore(Store tempDataStore){
this.tempDataStore=tempDataStore;
}
+
+ public int getPersistenceThreadPriority(){
+ return persistenceThreadPriority;
+ }
+
+ public void setPersistenceThreadPriority(int persistenceThreadPriority){
+ this.persistenceThreadPriority=persistenceThreadPriority;
+ }
// Implementation methods
// -------------------------------------------------------------------------
@@ -1223,7 +1247,7 @@
protected DefaultPersistenceAdapterFactory createPersistenceFactory() {
DefaultPersistenceAdapterFactory factory = new DefaultPersistenceAdapterFactory();
factory.setDataDirectoryFile(getDataDirectory());
- factory.setTaskRunnerFactory(getTaskRunnerFactory());
+ factory.setTaskRunnerFactory(getPersistenceTaskRunnerFactory());
return factory;
}
@@ -1427,6 +1451,11 @@
masterConnector = (MasterConnector) service;
}
}
+
+
+
+
+
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/DefaultPersistenceAdapterFactory.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/DefaultPersistenceAdapterFactory.java?view=diff&rev=440108&r1=440107&r2=440108
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/DefaultPersistenceAdapterFactory.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/DefaultPersistenceAdapterFactory.java Mon Sep 4 08:40:53 2006
@@ -53,6 +53,7 @@
private boolean useQuickJournal=false;
private File journalArchiveDirectory;
private boolean failIfJournalIsLocked=false;
+ private int journalThreadPriority = Thread.MAX_PRIORITY;
private JDBCPersistenceAdapter jdbcPersistenceAdapter = new JDBCPersistenceAdapter();
public PersistenceAdapter createPersistenceAdapter() throws IOException {
@@ -107,7 +108,7 @@
public TaskRunnerFactory getTaskRunnerFactory() {
if( taskRunnerFactory == null ) {
- taskRunnerFactory = new TaskRunnerFactory();
+ taskRunnerFactory = new TaskRunnerFactory("Persistence Adaptor Task", journalThreadPriority, true, 1000);
}
return taskRunnerFactory;
}
@@ -177,6 +178,14 @@
public void setCreateTablesOnStartup(boolean createTablesOnStartup) {
jdbcPersistenceAdapter.setCreateTablesOnStartup(createTablesOnStartup);
}
+
+ public int getJournalThreadPriority(){
+ return journalThreadPriority;
+ }
+
+ public void setJournalThreadPriority(int journalThreadPriority){
+ this.journalThreadPriority=journalThreadPriority;
+ }
/**
* @throws IOException
@@ -200,5 +209,7 @@
}
}
}
+
+
}