- the connection timeout of about 30 seconds has been managed with a GenericJDBCException.
- exceptions managed in a different way in method executeQuery of Class ConnectionManager git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/DatabasesResourcesManager@98992 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
5f795e85d0
commit
6769c97a2d
|
@ -37,23 +37,26 @@ public class ConnectionManager {
|
||||||
SessionFactory dbHibConnection = null;
|
SessionFactory dbHibConnection = null;
|
||||||
try {
|
try {
|
||||||
if ((config != null) && (config.getConfigPath() != null)) {
|
if ((config != null) && (config.getConfigPath() != null)) {
|
||||||
String defaultDatabaseFile = config.getConfigPath() + AlgorithmConfiguration.defaultConnectionFile;
|
String defaultDatabaseFile = config.getConfigPath()
|
||||||
|
+ AlgorithmConfiguration.defaultConnectionFile;
|
||||||
|
|
||||||
config.setDatabaseDriver(config.getParam("DatabaseDriver"));
|
config.setDatabaseDriver(config.getParam("DatabaseDriver"));
|
||||||
config.setDatabaseUserName(config.getParam("DatabaseUserName"));
|
config.setDatabaseUserName(config.getParam("DatabaseUserName"));
|
||||||
config.setDatabasePassword(config.getParam("DatabasePassword"));
|
config.setDatabasePassword(config.getParam("DatabasePassword"));
|
||||||
config.setDatabaseURL(config.getParam("DatabaseURL"));
|
config.setDatabaseURL(config.getParam("DatabaseURL"));
|
||||||
|
|
||||||
dbHibConnection = org.gcube.dataaccess.databases.utils.DatabaseFactory.initDBConnection(defaultDatabaseFile, config);
|
dbHibConnection = org.gcube.dataaccess.databases.utils.DatabaseFactory
|
||||||
|
.initDBConnection(defaultDatabaseFile, config);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("ERROR IN DB INITIALIZATION : " + e.getLocalizedMessage());
|
System.out.println("ERROR IN DB INITIALIZATION : "
|
||||||
|
+ e.getLocalizedMessage());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
// AnalysisLogger.getLogger().trace(e);
|
// AnalysisLogger.getLogger().trace(e);
|
||||||
}
|
}
|
||||||
return dbHibConnection;
|
return dbHibConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the database's connection without using the configuration file but
|
// create the database's connection without using the configuration file but
|
||||||
// using the data input
|
// using the data input
|
||||||
public SessionFactory initDBConnection(AlgorithmConfiguration config) {
|
public SessionFactory initDBConnection(AlgorithmConfiguration config) {
|
||||||
|
@ -125,8 +128,13 @@ public class ConnectionManager {
|
||||||
try {
|
try {
|
||||||
ss = DBSessionFactory.getCurrentSession();
|
ss = DBSessionFactory.getCurrentSession();
|
||||||
|
|
||||||
ss.beginTransaction();
|
//print check added to measure the timeout
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In ConnectionManager-> beginTransaction: ");
|
||||||
|
|
||||||
|
ss.beginTransaction();
|
||||||
|
|
||||||
|
|
||||||
Query qr = null;
|
Query qr = null;
|
||||||
|
|
||||||
// statement to check if the query is a "show create table"
|
// statement to check if the query is a "show create table"
|
||||||
|
@ -211,23 +219,28 @@ public class ConnectionManager {
|
||||||
// System.out.println(String.format("Error while executing query: %1$s %2$s",
|
// System.out.println(String.format("Error while executing query: %1$s %2$s",
|
||||||
// query, e.getMessage()));
|
// query, e.getMessage()));
|
||||||
|
|
||||||
if (e.getClass().toString()
|
if (e instanceof org.hibernate.MappingException) {
|
||||||
.contains("org.hibernate.MappingException")) {
|
|
||||||
|
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
|
|
||||||
// System.out.println(e.getClass().toString());
|
// System.out.println(e.getClass().toString());
|
||||||
|
|
||||||
AnalysisLogger
|
// AnalysisLogger
|
||||||
.getLogger()
|
// .getLogger()
|
||||||
.debug("In ConnectionManager-> ERROR The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
// .debug("In ConnectionManager-> ERROR The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
||||||
|
//
|
||||||
throw new Exception(
|
// throw new Exception(
|
||||||
"The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
// "The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ConnectionManager-> "
|
||||||
|
+ e.getLocalizedMessage());
|
||||||
|
|
||||||
|
throw new Exception(e.getLocalizedMessage());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.getClass().toString()
|
if (e instanceof org.hibernate.exception.SQLGrammarException) {
|
||||||
.contains("org.hibernate.exception.SQLGrammarException")) {
|
|
||||||
|
|
||||||
// System.out.println(e.getCause().getMessage());
|
// System.out.println(e.getCause().getMessage());
|
||||||
|
|
||||||
|
@ -236,10 +249,33 @@ public class ConnectionManager {
|
||||||
// throw new
|
// throw new
|
||||||
// Exception("The query could not be executed: SQL grammar error in the query");
|
// Exception("The query could not be executed: SQL grammar error in the query");
|
||||||
|
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In ConnectionManager-> "
|
||||||
|
// + e.getCause().getLocalizedMessage());
|
||||||
|
//
|
||||||
|
// throw new Exception(e.getCause().getMessage());
|
||||||
|
|
||||||
AnalysisLogger.getLogger().debug(
|
AnalysisLogger.getLogger().debug(
|
||||||
"In ConnectionManager-> "
|
"In ConnectionManager-> "
|
||||||
+ e.getCause().getLocalizedMessage());
|
+ e.getLocalizedMessage());
|
||||||
throw new Exception(e.getCause().getMessage());
|
|
||||||
|
throw new Exception(e.getLocalizedMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e instanceof org.hibernate.exception.GenericJDBCException) {
|
||||||
|
|
||||||
|
// AnalysisLogger.getLogger().debug(
|
||||||
|
// "In ConnectionManager-> "
|
||||||
|
// + e.getCause().toString());
|
||||||
|
|
||||||
|
// e.printStackTrace();
|
||||||
|
|
||||||
|
AnalysisLogger.getLogger().debug(
|
||||||
|
"In ConnectionManager-> "
|
||||||
|
+ e.getLocalizedMessage());
|
||||||
|
|
||||||
|
throw new Exception(e.getLocalizedMessage());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ public class DatabaseFactory {
|
||||||
*/
|
*/
|
||||||
if (element.equals("c3p0.checkoutTimeout")) {
|
if (element.equals("c3p0.checkoutTimeout")) {
|
||||||
|
|
||||||
currentnode.setText("" + (20000/4)); //added a timeout about 25-30 seconds
|
currentnode.setText("" + (20000)); //added a timeout about 30 seconds
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (element.equals("c3p0.acquireRetryAttempts")) {
|
// if (element.equals("c3p0.acquireRetryAttempts")) {
|
||||||
|
|
Loading…
Reference in New Issue