+/* Copyright (c) 2011 Peter Troshin\r
+ * \r
+ * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 2.0 \r
+ * \r
+ * This library is free software; you can redistribute it and/or modify it under the terms of the\r
+ * Apache License version 2 as published by the Apache Software Foundation\r
+ * \r
+ * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\r
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache \r
+ * License for more details.\r
+ * \r
+ * A copy of the license is in apache_license.txt. It is also available here:\r
+ * @see: http://www.apache.org/licenses/LICENSE-2.0.txt\r
+ * \r
+ * Any republication or derived work distributed in source code form\r
+ * must include this copyright and license notice.\r
+ */\r
package compbio.stat.collector;\r
\r
import java.sql.Connection;\r
\r
static Connection conn;\r
\r
- private synchronized static Connection getDBConnection()\r
- throws SQLException {\r
+ private synchronized static Connection getDBConnection() throws SQLException {\r
\r
if (conn != null && !conn.isClosed()) {\r
return conn;\r
} else {\r
- String dbpath = PropertyHelperManager.getLocalPath();\r
- log.info("Looking for JABAWS access statistics database at: "\r
- + dbpath);\r
- System.setProperty("derby.system.home", dbpath);\r
- conn = DriverManager.getConnection(protocol + statDBName\r
- + ";create=false");\r
-\r
- conn.setAutoCommit(true);\r
- /*\r
- * Runtime.getRuntime().addShutdownHook(new Thread() {\r
- * \r
- * @Override public void run() { shutdownDBServer(); } });\r
- */\r
+ try {\r
+ String dbpath = PropertyHelperManager.getLocalPath();\r
+ log.info("Looking for JABAWS access statistics database at: " + dbpath);\r
+ System.setProperty("derby.system.home", dbpath);\r
+ // Apparently under Tomcat webapp you cannot rely on Java\r
+ // auto discovery and have to register the driver explicitly\r
+ Class.forName(driver);\r
+ conn = DriverManager.getConnection(protocol + statDBName + ";create=false");\r
+\r
+ conn.setAutoCommit(true);\r
+ } catch (ClassNotFoundException e) {\r
+ log.error(e.getMessage(), e);\r
+ }\r
}\r
return conn;\r
}\r
+\r
public StatDB() throws SQLException {\r
this.conn = getDBConnection();\r
}\r
* @throws SQLException\r
*/\r
private void createStatTable() throws SQLException {\r
-\r
- /*\r
- * Creating a statement object that we can use for running various SQL\r
- * statements commands against the database.\r
- */\r
+ // Creating a statement object that we can use for running various SQL\r
+ // statements commands against the database.\r
Statement s = conn.createStatement();\r
String create = "create table exec_stat("\r
+ "number INT GENERATED ALWAYS AS IDENTITY,"\r
if (exist) {\r
date = res.getDate(1);\r
}\r
-\r
res.close();\r
st.close();\r
return date;\r