diff options
author | rbrooks | 2008-11-04 08:48:30 +0000 |
---|---|---|
committer | rbrooks | 2008-11-04 08:48:30 +0000 |
commit | cef9a312cd98bef55b519eae216d2accc9f6fe7c (patch) | |
tree | 0f750cf6daffae7e04c080dec275216d4df0cf26 /org.eclipse.osee.framework.server.admin | |
parent | a67d5f24af0bc700d676593f039c77cb80dd9360 (diff) | |
download | org.eclipse.osee-cef9a312cd98bef55b519eae216d2accc9f6fe7c.tar.gz org.eclipse.osee-cef9a312cd98bef55b519eae216d2accc9f6fe7c.tar.xz org.eclipse.osee-cef9a312cd98bef55b519eae216d2accc9f6fe7c.zip |
"Team Workflow" - Q6DGG - "Improve DB Connection handling"
Diffstat (limited to 'org.eclipse.osee.framework.server.admin')
4 files changed, 70 insertions, 71 deletions
diff --git a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/conversion/DataConversion.java b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/conversion/DataConversion.java index 8adb45120ac..1a0dbdf51ca 100644 --- a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/conversion/DataConversion.java +++ b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/conversion/DataConversion.java @@ -190,7 +190,9 @@ public class DataConversion { OseeLog.log(Activator.class, Level.SEVERE, "Unable to save resource from DB.", ex);
}
}
- ConnectionHandler.close(connection);
+ if (connection != null) {
+ connection.close();
+ }
}
long seconds = (System.currentTimeMillis() - time) / 1000;
long leftOverSeconds = seconds % 60;
diff --git a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemWorker.java b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemWorker.java index 9c10c5af42b..38cd1dcb524 100644 --- a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemWorker.java +++ b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemWorker.java @@ -13,10 +13,12 @@ package org.eclipse.osee.framework.server.admin.search; import java.sql.Connection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import org.eclipse.osee.framework.core.data.JoinUtility; import org.eclipse.osee.framework.core.data.JoinUtility.TagQueueJoinQuery; -import org.eclipse.osee.framework.db.connection.ConnectionHandler; -import org.eclipse.osee.framework.db.connection.OseeDbConnection; +import org.eclipse.osee.framework.db.connection.DbTransaction; +import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.search.engine.TagListenerAdapter; import org.eclipse.osee.framework.server.admin.Activator; import org.eclipse.osee.framework.server.admin.BaseCmdWorker; @@ -54,30 +56,34 @@ public class TagItemWorker extends BaseCmdWorker { * @see org.eclipse.osee.framework.server.admin.search.BaseCmdWorker#doWork(long) */ @Override - protected void doWork(long startTime) throws Exception { + protected void doWork(long startTime) throws OseeCoreException { tagListener = null; - Set<Long> toTag = getGammas(); + final Set<Long> toTag = getGammas(); if (toTag.isEmpty() != true) { - Connection connection = null; - try { - connection = OseeDbConnection.getConnection(); - TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); - for (Long item : toTag) { - joinQuery.add(item); - } - joinQuery.store(connection); + new DbTransaction() { + @Override + protected void handleTxWork(Connection connection) throws OseeCoreException { + TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); + for (Long item : toTag) { + joinQuery.add(item); + } + joinQuery.store(connection); - tagListener = new TagListener(); - Activator.getInstance().getSearchTagger().tagByQueueQueryId(tagListener, joinQuery.getQueryId()); - synchronized (tagListener) { - tagListener.wait(); - } - if (tagListener.isProcessing()) { - joinQuery.delete(connection); + tagListener = new TagListener(); + Activator.getInstance().getSearchTagger().tagByQueueQueryId(tagListener, joinQuery.getQueryId()); + synchronized (tagListener) { + try { + tagListener.wait(); + } catch (InterruptedException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + } + if (tagListener.isProcessing()) { + joinQuery.delete(connection); + } } - } finally { - ConnectionHandler.close(connection); - } + }.execute(); + } else { println("No Items to Tag."); } diff --git a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllWorker.java b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllWorker.java index 51c751f2bc2..710bd47cdbb 100644 --- a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllWorker.java +++ b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllWorker.java @@ -15,12 +15,14 @@ import java.util.Collections; import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
import org.eclipse.osee.framework.core.data.JoinUtility;
import org.eclipse.osee.framework.core.data.JoinUtility.TagQueueJoinQuery;
-import org.eclipse.osee.framework.db.connection.ConnectionHandler;
import org.eclipse.osee.framework.db.connection.ConnectionHandlerStatement;
-import org.eclipse.osee.framework.db.connection.OseeDbConnection;
+import org.eclipse.osee.framework.db.connection.DbTransaction;
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.db.connection.exception.OseeDataStoreException;
+import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.search.engine.TagListenerAdapter;
import org.eclipse.osee.framework.search.engine.attribute.AttributeDataStore;
import org.eclipse.osee.framework.server.admin.Activator;
@@ -59,33 +61,36 @@ class TaggerAllWorker extends BaseCmdWorker { }
}
- protected void doWork(long startTime) throws Exception {
- Connection connection = OseeDbConnection.getConnection();
- try {
- String arg = getCommandInterpreter().nextArgument();
- int branchId = -1;
- if (arg != null && arg.length() > 0) {
- branchId = Integer.parseInt(arg);
- }
- println(String.format("Tagging Attributes For: [%s]", branchId > -1 ? "Branch " + branchId : "All Branches"));
-
- int totalAttributes = AttributeDataStore.getTotalTaggableItems(branchId);
- processor = new TagProcessListener(startTime, totalAttributes);
- fetchAndProcessGammas(connection, branchId, processor);
- if (!processor.isProcessingDone()) {
- synchronized (processor) {
- processor.wait();
+ protected void doWork(final long startTime) throws Exception {
+ new DbTransaction() {
+ @Override
+ protected void handleTxWork(Connection connection) throws OseeCoreException {
+ String arg = getCommandInterpreter().nextArgument();
+ int branchId = -1;
+ if (arg != null && arg.length() > 0) {
+ branchId = Integer.parseInt(arg);
+ }
+ println(String.format("Tagging Attributes For: [%s]", branchId > -1 ? "Branch " + branchId : "All Branches"));
+
+ int totalAttributes = AttributeDataStore.getTotalTaggableItems(branchId);
+ processor = new TagProcessListener(startTime, totalAttributes);
+ fetchAndProcessGammas(connection, branchId, processor);
+ if (!processor.isProcessingDone()) {
+ synchronized (processor) {
+ try {
+ processor.wait();
+ } catch (InterruptedException ex) {
+ OseeLog.log(Activator.class, Level.SEVERE, ex);
+ }
+ }
}
- }
- if (!isExecutionAllowed() && !processor.isProcessingDone()) {
- processor.cancelProcessing(connection);
+ if (!isExecutionAllowed() && !processor.isProcessingDone()) {
+ processor.cancelProcessing(connection);
+ }
+ processor.printStats();
}
- processor.printStats();
- } finally {
- processor = null;
- ConnectionHandler.close(connection);
- }
+ }.execute();
}
/*
diff --git a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllWorker.java b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllWorker.java index 1a14d6b5dc2..7774c5e1be1 100644 --- a/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllWorker.java +++ b/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllWorker.java @@ -5,20 +5,15 @@ */
package org.eclipse.osee.framework.server.admin.search;
-import java.sql.Connection;
import org.eclipse.osee.framework.db.connection.ConnectionHandler;
-import org.eclipse.osee.framework.db.connection.OseeDbConnection;
+import org.eclipse.osee.framework.db.connection.info.SupportedDatabase;
import org.eclipse.osee.framework.server.admin.BaseCmdWorker;
/**
* @author Roberto E. Escobar
*/
class TaggerDropAllWorker extends BaseCmdWorker {
-
private static final String TRUNCATE_SQL = "TRUNCATE osee_search_tags";
-
- //private static final String TRUNCATE_ORACLE_SQL = "TRUNCATE TABLE osee_search_tags";
-
private static final String DELETE_TABLE_SQL = "DELETE FROM osee_search_tags";
/* (non-Javadoc)
@@ -26,22 +21,13 @@ class TaggerDropAllWorker extends BaseCmdWorker { */
@Override
protected void doWork(long startTime) throws Exception {
- Connection connection = null;
- try {
- connection = OseeDbConnection.getConnection();
- String deleteSql = null;
- String dbName = connection.getMetaData().getDatabaseProductName().toLowerCase();
- if (dbName.contains("gresql")) {
- deleteSql = TRUNCATE_SQL;
- // } else if (dbName.contains("oracle")) {
- // deleteSql = TRUNCATE_ORACLE_SQL;
- } else {
- deleteSql = DELETE_TABLE_SQL;
- }
- ConnectionHandler.runPreparedUpdate(connection, deleteSql);
- println(String.format("Dropped all tags in %s.", getElapsedTime(startTime)));
- } finally {
- ConnectionHandler.close(connection);
+ String deleteSql = null;
+ if (SupportedDatabase.getDatabaseType() == SupportedDatabase.postgresql) {
+ deleteSql = TRUNCATE_SQL;
+ } else {
+ deleteSql = DELETE_TABLE_SQL;
}
+ ConnectionHandler.runPreparedUpdate(deleteSql);
+ println(String.format("Dropped all tags in %s.", getElapsedTime(startTime)));
}
}
|