From e5fa6e59a7c924a8a0f3baf1067597186dcd8bb8 Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Sat, 9 Jul 2016 15:54:33 +0000 Subject: [PATCH] implemented closeConnection to shutdown connection pool to cassandra nodes git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/social-networking-library@130200 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../server/CassandraClusterConnection.java | 31 +++++++++++++++++-- .../server/DBCassandraAstyanaxImpl.java | 8 +++++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gcube/portal/databook/server/CassandraClusterConnection.java b/src/main/java/org/gcube/portal/databook/server/CassandraClusterConnection.java index 4cdbf48..231de69 100644 --- a/src/main/java/org/gcube/portal/databook/server/CassandraClusterConnection.java +++ b/src/main/java/org/gcube/portal/databook/server/CassandraClusterConnection.java @@ -71,8 +71,28 @@ public class CassandraClusterConnection { _log.info(keyspaceName + " KeySpace SetUp ..."); SetUpKeySpaces(clusterContext, dropSchema); _log.info("CONNECTED! using KeySpace: " + keyspaceName); + + // then close connection pool for cluster + _log.info("Closing cluster connection pool no longer needed (keyspace one will be used)"); + clusterContext.shutdown(); + _log.info("Closed cluster connection pool no longer needed (keyspace one will be used)"); } - + + /** + * Close the connection pool + */ + public void closeConnection(){ + + if(myKeyspace != null){ + try{ + _log.info("Closing pool connection"); + myKeyspace.getConnectionPool().shutdown(); + }catch(Exception e){ + _log.error("Unable to close connection pool", e); + } + } + } + /** * * @param dropSchema set true if you want do drop the current and set up new one @@ -100,6 +120,11 @@ public class CassandraClusterConnection { _log.info(keyspaceName + " KeySpace SetUp ..."); SetUpKeySpaces(clusterContext, dropSchema); _log.info("CONNECTED! using KeySpace: " + keyspaceName); + + // then close connection pool for cluster + _log.info("Closing cluster connection pool no longer needed (keyspace one will be used)"); + clusterContext.shutdown(); + _log.info("Closed cluster connection pool no longer needed (keyspace one will be used)"); } /** @@ -132,7 +157,7 @@ public class CassandraClusterConnection { context.start(); - + // save keyspace reference myKeyspace = context.getEntity(); @@ -229,7 +254,7 @@ public class CassandraClusterConnection { * define Attachments CF with FeedId as secondary index */ ColumnFamilyDefinition cfDefAttachments = getStaticCFDef(DBCassandraAstyanaxImpl.ATTACHMENTS, "Feedid"); - + //get dynamic column families, act as auxiliary indexes ColumnFamilyDefinition cfDefConn = getDynamicCFDef(DBCassandraAstyanaxImpl.CONNECTIONS); diff --git a/src/main/java/org/gcube/portal/databook/server/DBCassandraAstyanaxImpl.java b/src/main/java/org/gcube/portal/databook/server/DBCassandraAstyanaxImpl.java index 366963b..1583c42 100644 --- a/src/main/java/org/gcube/portal/databook/server/DBCassandraAstyanaxImpl.java +++ b/src/main/java/org/gcube/portal/databook/server/DBCassandraAstyanaxImpl.java @@ -2022,6 +2022,7 @@ public final class DBCassandraAstyanaxImpl implements DatabookStore { */ @Override public void closeConnection() { + conn.closeConnection(); } /* * @@ -2408,5 +2409,12 @@ public final class DBCassandraAstyanaxImpl implements DatabookStore { return ids; } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + _log.info("On Finalize called..."); + this.closeConnection(); + } }