diff --git a/src/main/java/net/onrc/onos/graph/GraphDBManager.java b/src/main/java/net/onrc/onos/graph/GraphDBManager.java
index ec7eb7f..b58f489 100644
--- a/src/main/java/net/onrc/onos/graph/GraphDBManager.java
+++ b/src/main/java/net/onrc/onos/graph/GraphDBManager.java
@@ -14,16 +14,16 @@
  * @author nickkaranatsios
  */
 public class GraphDBManager {
-    private static ThreadLocal<HashMap<String, DBConnection>> connections = new ThreadLocal<HashMap<String, DBConnection>>();
+    //private static ThreadLocal<HashMap<String, DBConnection>> connections = new ThreadLocal<HashMap<String, DBConnection>>();
     private static DBOperation operation = null;
-    
+    /*
     static Map<String, DBConnection> getConnectionMap() {
         if (connections.get() == null) {
             connections.set(new HashMap<String, DBConnection>());
         }
         return connections.get();
     }
-
+*/
     public static DBOperation getDBOperation(final String dbStore, final String dbConfigFile) {
 	if (dbStore.equals("ramcloud")) {
 	    operation = new RamCloudDBOperation();
@@ -37,22 +37,24 @@
     }
 
     public static DBConnection getConnection(final String dbStore, final String dbConfigFile) {
-        DBConnection conn = getConnectionMap().get(dbStore);
-        if (conn == null) {
+        //DBConnection conn = getConnectionMap().get(dbStore);
+	DBConnection conn = null;
+        //if (conn == null) {
             if (dbStore.equals("ramcloud")) {
                 conn = new RamCloudDBConnection(dbConfigFile);
             } else if (dbStore.equals("titan")) {
                 conn = new TitanDBConnection(dbConfigFile);
             }
 
-            GraphDBManager.getConnectionMap().put(dbStore, conn);
-        } else {
-            GraphDBManager.getConnectionMap().get(dbStore);
-        }
+            //GraphDBManager.getConnectionMap().put(dbStore, conn);
+        //} else {
+        //    GraphDBManager.getConnectionMap().get(dbStore);
+        //}
         return conn;
     }
-
+/*
     static List<DBConnection> getConnections() {
         return new ArrayList<DBConnection>(getConnectionMap().values());
     }
+    */
 }
