annotate backend/src/main/java/org/dive4elements/river/backend/utils/DBCPConnectionProvider.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents ff27548d078c
children 0071702ba03f
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 /*
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 * Copyright 2004 The Apache Software Foundation.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 * Licensed under the Apache License, Version 2.0 (the "License");
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 * you may not use this file except in compliance with the License.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 * You may obtain a copy of the License at
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 * http://www.apache.org/licenses/LICENSE-2.0
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 * Unless required by applicable law or agreed to in writing, software
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 * distributed under the License is distributed on an "AS IS" BASIS,
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 * See the License for the specific language governing permissions and
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 * limitations under the License.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 */
8187
3bb1c62ad732 Moved package org.dive4elements.river.utils to org.dive4elements.river.backend.utils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5992
diff changeset
24 package org.dive4elements.river.backend.utils;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 import java.sql.Connection;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 import java.sql.SQLException;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 import java.util.Iterator;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 import java.util.Properties;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 import java.util.Map;
8763
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
32 import java.util.Arrays;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33
8763
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
34 import org.apache.commons.dbcp2.BasicDataSource;
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
35 import org.apache.commons.dbcp2.BasicDataSourceFactory;
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 import org.apache.log4j.Logger;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 import org.hibernate.HibernateException;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 import org.hibernate.connection.ConnectionProviderFactory;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 import org.hibernate.connection.ConnectionProvider;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 import org.hibernate.cfg.Environment;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 /**
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
47 * A connection provider that uses an Apache commons DBCP connection pool.
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 *
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
49 * To use this connection provider set hibernate.connection.provider_class
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
50 * to org.hibernate.connection.DBCPConnectionProvider
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 * <pre>Supported Hibernate properties:
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 * hibernate.connection.driver_class
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 * hibernate.connection.url
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 * hibernate.connection.username
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 * hibernate.connection.password
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57 * hibernate.connection.isolation
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58 * hibernate.connection.autocommit
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 * hibernate.connection.pool_size
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 * hibernate.connection (JDBC driver properties)</pre>
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 * <br>
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 * All DBCP properties are also supported by using the hibernate.dbcp prefix.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 * A complete list can be found on the DBCP configuration page:
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
64 * http://jakarta.apache.org/commons/dbcp/configuration.html
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 * <br>
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 * <p>More information about configuring/using DBCP can be found on the
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 * <a href="http://jakarta.apache.org/commons/dbcp/">DBCP website</a>.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 * There you will also find the DBCP wiki, mailing lists, issue tracking
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 * and other support facilities</p>
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 *
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 * @see org.hibernate.connection.ConnectionProvider
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 * @author Dirk Verbeeck
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 */
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 public class DBCPConnectionProvider
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 implements ConnectionProvider
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 private static Logger log = Logger.getLogger(DBCPConnectionProvider.class);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 private static final String PREFIX = "hibernate.dbcp.";
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 private BasicDataSource ds;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83
464
d37ccb04ab5d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
84 // Old Environment property for backward-compatibility
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 // (property removed in Hibernate3)
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 private static final String DBCP_PS_MAXACTIVE =
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 "hibernate.dbcp.ps.maxActive";
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 // Property doesn't exists in Hibernate2
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 private static final String AUTOCOMMIT =
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 "hibernate.connection.autocommit";
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 public void configure(Properties props) throws HibernateException {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 try {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 log.debug("Configure DBCPConnectionProvider");
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 // DBCP properties used to create the BasicDataSource
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 Properties dbcpProperties = new Properties();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 // DriverClass & url
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 String jdbcDriverClass = props.getProperty(Environment.DRIVER);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 String jdbcUrl = props.getProperty(Environment.URL);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 dbcpProperties.put("driverClassName", jdbcDriverClass);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 dbcpProperties.put("url", jdbcUrl);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 // Username / password
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 String username = props.getProperty(Environment.USER);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 String password = props.getProperty(Environment.PASS);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 dbcpProperties.put("username", username);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 dbcpProperties.put("password", password);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 // Isolation level
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 String isolationLevel = props.getProperty(Environment.ISOLATION);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 if (isolationLevel != null
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 && (isolationLevel = isolationLevel.trim()).length() > 0) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
116 dbcpProperties.put(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
117 "defaultTransactionIsolation",
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
118 isolationLevel);
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 // Turn off autocommit (unless autocommit property is set)
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 String autocommit = props.getProperty(AUTOCOMMIT);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 if (autocommit != null
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 && (autocommit = autocommit.trim()).length() > 0) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 dbcpProperties.put("defaultAutoCommit", autocommit);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 } else {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
127 dbcpProperties.put(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
128 "defaultAutoCommit",
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
129 String.valueOf(Boolean.FALSE));
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 // Pool size
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 String poolSize = props.getProperty(Environment.POOL_SIZE);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134 if (poolSize != null
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 && (poolSize = poolSize.trim()).length() > 0
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 && Integer.parseInt(poolSize) > 0) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 dbcpProperties.put("maxActive", poolSize);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 // Copy all "driver" properties into "connectionProperties"
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 Properties driverProps =
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 ConnectionProviderFactory.getConnectionProperties(props);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 if (driverProps.size() > 0) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 StringBuilder connectionProperties = new StringBuilder();
464
d37ccb04ab5d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
146 for (Iterator iter = driverProps.entrySet().iterator();
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 iter.hasNext();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 ) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 Map.Entry entry = (Map.Entry)iter.next();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 String key = (String)entry.getKey();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 String value = (String)entry.getValue();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 connectionProperties
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 .append(key)
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154 .append('=')
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155 .append(value);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 if (iter.hasNext()) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 connectionProperties.append(';');
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 dbcpProperties.put(
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161 "connectionProperties", connectionProperties.toString());
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
162 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
164 // Copy all DBCP properties removing the prefix
8842
ff27548d078c Whitespace cosmetics.
Tom Gottfried <tom@intevation.de>
parents: 8814
diff changeset
165 for (Iterator iter = props.entrySet().iterator();
ff27548d078c Whitespace cosmetics.
Tom Gottfried <tom@intevation.de>
parents: 8814
diff changeset
166 iter.hasNext(); ) {
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 Map.Entry entry = (Map.Entry)iter.next();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
168 String key = (String)entry.getKey();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
169 if (key.startsWith(PREFIX)) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 String property = key.substring(PREFIX.length());
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
171 String value = (String)entry.getValue();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
172 dbcpProperties.put(property, value);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
173 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
174 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
175
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
176 // Backward-compatibility
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
177 if (props.getProperty(DBCP_PS_MAXACTIVE) != null) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
178 dbcpProperties.put(
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
179 "poolPreparedStatements",
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
180 String.valueOf(Boolean.TRUE));
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181 dbcpProperties.put(
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
182 "maxOpenPreparedStatements",
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
183 props.getProperty(DBCP_PS_MAXACTIVE));
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
184 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
185
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
186 // Some debug info
181
4d9984411b3f Commented out a debug block because it leaks the db password.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
187 /* // commented out, because it leaks the password
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
188 if (log.isDebugEnabled()) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
189 log.debug("Creating a DBCP BasicDataSource" +
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
190 " with the following DBCP factory properties:");
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
191 StringWriter sw = new StringWriter();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
192 dbcpProperties.list(new PrintWriter(sw, true));
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
193 log.debug(sw.toString());
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
194 }
181
4d9984411b3f Commented out a debug block because it leaks the db password.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 168
diff changeset
195 */
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
196
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
197 // Let the factory create the pool
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
198 ds = (BasicDataSource)BasicDataSourceFactory
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
199 .createDataSource(dbcpProperties);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
200
5200
42bb6ff78d1b Directly set the connectionInitSqls on the datasource
Andre Heinecke <aheinecke@intevation.de>
parents: 5193
diff changeset
201 // This needs to be done manually as it is somehow ignored
42bb6ff78d1b Directly set the connectionInitSqls on the datasource
Andre Heinecke <aheinecke@intevation.de>
parents: 5193
diff changeset
202 // by the BasicDataSourceFactory if you set it as a dbcpProperty
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
203 String connectionInitSqls = props.getProperty(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8842
diff changeset
204 "connectionInitSqls");
5200
42bb6ff78d1b Directly set the connectionInitSqls on the datasource
Andre Heinecke <aheinecke@intevation.de>
parents: 5193
diff changeset
205 if (connectionInitSqls != null) {
8763
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
206 String[] statements = connectionInitSqls.split(";");
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
207 ds.setConnectionInitSqls(Arrays.asList(statements));
5200
42bb6ff78d1b Directly set the connectionInitSqls on the datasource
Andre Heinecke <aheinecke@intevation.de>
parents: 5193
diff changeset
208 }
8470
c5a7aae52396 Added a validation SQL query to database backends.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
209
c5a7aae52396 Added a validation SQL query to database backends.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
210 String validationQuery = props.getProperty("validationQuery");
c5a7aae52396 Added a validation SQL query to database backends.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
211 if (validationQuery != null) {
c5a7aae52396 Added a validation SQL query to database backends.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
212 ds.setValidationQuery(validationQuery);
c5a7aae52396 Added a validation SQL query to database backends.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
213 }
8484
8c615d738e84 maxWait should be set independendly of validationQuery.
Tom Gottfried <tom@intevation.de>
parents: 8481
diff changeset
214
8485
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
215 String maxWait = props.getProperty("maxWait");
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
216 if (maxWait != null) {
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
217 try {
8763
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
218 ds.setMaxWaitMillis(Integer.parseInt(maxWait));
8485
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
219 }
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
220 catch (NumberFormatException nfe) {
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
221 log.error(
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
222 "Property maxWait could not be parsed as integer."
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
223 );
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
224 }
026f4c684ee5 Make maxWait configurable and wait for 30 seconds
"Tom Gottfried <tom@intevation.de>"
parents: 8484
diff changeset
225 }
8484
8c615d738e84 maxWait should be set independendly of validationQuery.
Tom Gottfried <tom@intevation.de>
parents: 8481
diff changeset
226
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
227 // The BasicDataSource has lazy initialization
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
228 // borrowing a connection will start the DataSource
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
229 // and make sure it is configured correctly.
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
230
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
231 // Connection conn = ds.getConnection();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
232 // conn.close();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
233 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
234 catch (Exception e) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
235 String message = "Could not create a DBCP pool";
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
236 log.fatal(message, e);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
237 if (ds != null) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
238 BasicDataSource x = ds; ds = null;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
239 try {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
240 x.close();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
241 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
242 catch (SQLException sqle) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
243 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
244 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
245 throw new HibernateException(message, e);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
246 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
247 log.debug("Configure DBCPConnectionProvider complete");
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
248 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
249
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
250 public Connection getConnection() throws SQLException {
8708
d718edbf0b0c Change database connection debug output to traces
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8485
diff changeset
251 log.trace("Connection pool parameters:");
d718edbf0b0c Change database connection debug output to traces
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8485
diff changeset
252 log.trace("_ active connections: " + ds.getNumActive());
d718edbf0b0c Change database connection debug output to traces
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8485
diff changeset
253 log.trace("_ idle connections: " + ds.getNumIdle());
8763
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
254 log.trace("_ max active: " + ds.getMaxTotal());
8179cca1796a Upgrade to DBCP 2.1.1
Tom Gottfried <tom@intevation.de>
parents: 8708
diff changeset
255 if (ds.getNumActive() == ds.getMaxTotal()) {
8481
7dd39219bd68 Connection pool: do not wait forever for new connections and be more verbose.
Tom Gottfried <tom@intevation.de>
parents: 8470
diff changeset
256 log.warn("Maximum number of database connections in pool in use!");
7dd39219bd68 Connection pool: do not wait forever for new connections and be more verbose.
Tom Gottfried <tom@intevation.de>
parents: 8470
diff changeset
257 }
8814
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
258
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
259 try {
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
260 Connection conn = ds.getConnection();
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
261 log.trace("Return connection with hash: " + conn.hashCode());
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
262 return conn;
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
263 }
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
264 catch (SQLException sqle) {
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
265 throw new SQLException(
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
266 "Connecting to database " + ds.getUrl() + " failed",
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
267 sqle);
19fa9fc39fa2 Report URL on DB connection failure.
Tom Gottfried <tom@intevation.de>
parents: 8763
diff changeset
268 }
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
269 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
270
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
271 public void closeConnection(Connection conn) throws SQLException {
8708
d718edbf0b0c Change database connection debug output to traces
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8485
diff changeset
272 log.trace("Close connection with hash: " + conn.hashCode());
168
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
273 conn.close();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
274 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
275
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
276 public void close() throws HibernateException {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
277 try {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
278 if (ds != null) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
279 BasicDataSource x = ds; ds = null;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
280 x.close();
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
281 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
282 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
283 catch (SQLException sqle) {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
284 throw new HibernateException("Could not close DBCP pool", sqle);
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
285 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
286 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
287
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
288 public boolean supportsAggressiveRelease() {
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
289 return false;
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
290 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
291 }
86a1bd9cc50e More Hibernate/JPA stuff
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
292 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org