Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbrooks2008-11-04 08:48:30 +0000
committerrbrooks2008-11-04 08:48:30 +0000
commitcef9a312cd98bef55b519eae216d2accc9f6fe7c (patch)
tree0f750cf6daffae7e04c080dec275216d4df0cf26 /org.eclipse.osee.framework.server.admin
parenta67d5f24af0bc700d676593f039c77cb80dd9360 (diff)
downloadorg.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')
-rw-r--r--org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/conversion/DataConversion.java4
-rw-r--r--org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemWorker.java50
-rw-r--r--org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllWorker.java57
-rw-r--r--org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllWorker.java30
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)));
}
}

Back to the top