1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.waarp.common.database.properties;
22
23 import java.sql.Connection;
24 import java.sql.ResultSet;
25 import java.sql.SQLException;
26 import java.sql.Statement;
27
28
29
30
31 public class OracleProperties implements DbProperties {
32 public static final String PROTOCOL = "h2";
33
34 private static final String DRIVER_NAME = "oracle.jdbc.OracleDriver";
35 private static final String VALIDATION_QUERY = "select 1 from dual";
36 private static final String MAX_CONNECTION_QUERY =
37 "select limit_value " + "from v$resource_limit " +
38 "where resource_name='sessions'";
39
40 public OracleProperties() {
41
42 }
43
44 public static String getProtocolID() {
45 return PROTOCOL;
46 }
47
48 @Override
49 public final String getDriverName() {
50 return DRIVER_NAME;
51 }
52
53 @Override
54 public final String getValidationQuery() {
55 return VALIDATION_QUERY;
56 }
57
58 @Override
59 public final int getMaximumConnections(final Connection connection)
60 throws SQLException {
61 Statement stm = null;
62 ResultSet rs = null;
63 try {
64 stm = connection.createStatement();
65 rs = stm.executeQuery(MAX_CONNECTION_QUERY);
66 if (!rs.next()) {
67 throw new SQLException("Cannot find max connection");
68 }
69 return rs.getInt(1);
70 } finally {
71 if (rs != null) {
72 try {
73 rs.close();
74 } catch (final SQLException ignored) {
75
76 }
77 }
78 if (stm != null) {
79 try {
80 stm.close();
81 } catch (final SQLException ignored) {
82
83 }
84 }
85 }
86 }
87 }