Mercurial > dive4elements > gnv-client
annotate geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java @ 886:8b442223741c
Ordered imports. Removed empty headers.
geo-backend/trunk@856 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 29 Mar 2010 09:22:07 +0000 |
parents | 1c3efbd2fc5a |
children | b757def3ff55 |
rev | line source |
---|---|
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.gnv.geobackend.sde.connectionpool; |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 |
886
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
3 import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException; |
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
4 |
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
5 import de.intevation.gnv.geobackend.sde.datasources.ArcSDEConnection; |
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
6 |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 import java.sql.Connection; |
265 | 8 import java.sql.SQLException; |
886
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
9 |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 import java.util.Properties; |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
11 |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
12 import org.apache.commons.pool.PoolableObjectFactory; |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 |
886
8b442223741c
Ordered imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
885
diff
changeset
|
14 import org.apache.log4j.Logger; |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
15 |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
16 /** |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
17 * ArcSDE specific Implementation of an PoolableObjectFactory. |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
18 * This factory instantiate Objects of type ArcSDEConnection. |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
19 * |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
20 * @author Tim Englich (tim.englich@intevation.de) |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
21 * @author Sascha L. Teichmann (sascha.teichmann@intevation.de) |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
22 */ |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 public class ArcSDEPoolableObjectFactory implements PoolableObjectFactory { |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
24 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
25 /** |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
26 * the logger, used to log exceptions and additonaly information |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
27 */ |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
28 private static Logger log = Logger.getLogger( |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
29 ArcSDEPoolableObjectFactory.class); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
30 |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
31 /** |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
32 * The 5 seconds are inspired by GeoTools's testServer() usage. |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
33 */ |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
34 private int serverRoundtripInterval = 5; |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
35 /** |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
36 * The value of the maximum Time a Connection is allowed to |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
37 * be inactive without the validation of the Connection. |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
38 */ |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
39 private long serverInactiveInterval = 5L*60L*1000L; // 5 minutes |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
40 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
41 * The URL to the ArcSDE Server |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
42 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
43 private String server = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
44 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
45 * The Port the ArcSDE Server is connected to. |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
46 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
47 private String port = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
48 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
49 * The Name of the Database |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
50 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
51 private String database = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
52 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
53 * The Username for the Authentication |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
54 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
55 private String username = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
56 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
57 * The Credentials which belongs to the User |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
58 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
59 private String credentials = null; |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
60 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
61 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
62 * Constructor of this Class |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
63 * @param properties the Properties which includes the ConnectionParams to the Database |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
64 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
65 public ArcSDEPoolableObjectFactory(Properties properties) { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
66 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
67 log.debug("ArcSDEPoolableObjectFactory.Constructor"); |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
68 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
69 server = properties.getProperty("server"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
70 port = properties.getProperty("port"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
71 database = properties.getProperty("database"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
72 username = properties.getProperty("username"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
73 credentials = properties.getProperty("credentials"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
74 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
75 String serverRoundtripIntervalValue = |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
76 properties.getProperty("serverRoundtripInterval"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
77 String serverInactiveIntervalValue = |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
78 properties.getProperty("serverInactiveInterval"); |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
79 |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
80 try { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
81 if (serverRoundtripIntervalValue != null) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
82 serverRoundtripInterval = |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
83 Integer.parseInt(serverRoundtripIntervalValue); |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
84 } |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
85 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
86 catch (NumberFormatException e) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
87 log.error(e,e); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
88 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
89 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
90 try { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
91 if (serverInactiveIntervalValue != null) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
92 serverInactiveInterval = 1000L * // input in seconds! |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
93 Long.parseLong(serverInactiveIntervalValue); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
94 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
95 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
96 catch (NumberFormatException e) { |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
97 log.error(e,e); |
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
98 } |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
99 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
100 log.info("ArcSDEPoolableObjectFactory initialized"); |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
101 log.info("Server: " + server); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
102 log.info("Port: " + port); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
103 log.info("Database: " + database); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
104 log.info("User: " + username); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
105 log.info("Roundtrip check interval: " + serverRoundtripInterval); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
106 log.info("Inactive check interval: " + serverInactiveInterval); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
107 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
108 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
109 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
110 * @see org.apache.commons.pool.PoolableObjectFactory#activateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
111 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
112 public void activateObject(Object arg0) throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
113 log.debug("ArcSDEPoolableObjectFactory.activateObject"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
114 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
115 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
116 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
117 * @see org.apache.commons.pool.PoolableObjectFactory#destroyObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
118 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
119 public void destroyObject(Object arg0) throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
120 log.debug("ArcSDEPoolableObjectFactory.destroyObjectb"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
121 if (arg0 instanceof ArcSDEConnection) { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
122 ((ArcSDEConnection)arg0).close(); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
123 }else{ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
124 log.warn("Object cannot be handled"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
125 } |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
126 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
127 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
128 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
129 * @see org.apache.commons.pool.PoolableObjectFactory#makeObject() |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
130 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
131 public Object makeObject() throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
132 log.debug("ArcSDEPoolableObjectFactory.makeObject"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
133 Connection con; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
134 try { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
135 con = new ArcSDEConnection( |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
136 server, |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
137 port, |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
138 database, |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
139 username, |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
140 credentials, |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
141 serverRoundtripInterval, |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
142 serverInactiveInterval); |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
143 } |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
144 catch (ConnectionException e) { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
145 throw new ConnectionException( |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
146 "Establishing a connection to database failed: " + |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
147 e.toString(), e); |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
148 } |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
149 return con; |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
150 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
151 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
152 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
153 * @see org.apache.commons.pool.PoolableObjectFactory#passivateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
154 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
155 public void passivateObject(Object arg0) throws Exception { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
156 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
157 boolean debug = log.isDebugEnabled(); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
158 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
159 if (debug) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
160 log.debug("ArcSDEPoolableObjectFactory.passivateObject"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
161 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
162 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
163 if (arg0 instanceof ArcSDEConnection) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
164 if (debug) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
165 log.debug(" touching connection"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
166 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
167 ((ArcSDEConnection)arg0).touch(); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
168 } |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
169 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
170 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
171 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
172 * @see org.apache.commons.pool.PoolableObjectFactory#validateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
173 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
174 public boolean validateObject(Object arg0) { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
175 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
176 boolean debug = log.isDebugEnabled(); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
177 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
178 if (debug) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
179 log.debug("ArcSDEPoolableObjectFactory.validateObject"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
180 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
181 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
182 if (!(arg0 instanceof ArcSDEConnection)) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
183 return false; |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
184 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
185 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
186 try { |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
187 ArcSDEConnection con = (ArcSDEConnection)arg0; |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
188 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
189 boolean isValid = |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
190 con.isActive() && con.isValid(serverRoundtripInterval); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
191 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
192 if (!isValid && debug) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
193 log.debug("connection is invalid!"); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
194 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
195 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
196 return isValid; |
265 | 197 } |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
198 catch (SQLException sqle) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
199 log.error(sqle, sqle); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
200 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
201 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
202 return false; |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
203 } |
265 | 204 } |