Mercurial > dive4elements > gnv-client
annotate geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/connectionpool/ArcSDEPoolableObjectFactory.java @ 885:1c3efbd2fc5a
Removes trailing whitespace.
geo-backend/trunk@850 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 29 Mar 2010 07:49:16 +0000 |
parents | 12f88239fb33 |
children | 8b442223741c |
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 |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
3 import java.sql.Connection; |
265 | 4 import java.sql.SQLException; |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
5 import java.util.Properties; |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
6 |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 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
|
8 import org.apache.log4j.Logger; |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
10 import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException; |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
11 import de.intevation.gnv.geobackend.sde.datasources.ArcSDEConnection; |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
12 |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 /** |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
14 * ArcSDE specific Implementation of an PoolableObjectFactory. |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
15 * This factory instantiate Objects of type ArcSDEConnection. |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
16 * |
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
|
17 * @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
|
18 * @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
|
19 */ |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
20 public class ArcSDEPoolableObjectFactory implements PoolableObjectFactory { |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
21 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
22 /** |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 * 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
|
24 */ |
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
|
25 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
|
26 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
|
27 |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
28 /** |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
29 * 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
|
30 */ |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
31 private int serverRoundtripInterval = 5; |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
32 /** |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
33 * 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
|
34 * 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
|
35 */ |
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
|
36 private long serverInactiveInterval = 5L*60L*1000L; // 5 minutes |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
37 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
38 * The URL to the ArcSDE Server |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
39 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
40 private String server = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
41 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
42 * The Port the ArcSDE Server is connected to. |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
43 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
44 private String port = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
45 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
46 * The Name of the Database |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
47 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
48 private String database = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
49 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
50 * The Username for the Authentication |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
51 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
52 private String username = null; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
53 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
54 * The Credentials which belongs to the User |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
55 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
56 private String credentials = null; |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
57 |
274
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 * Constructor of this Class |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
60 * @param properties the Properties which includes the ConnectionParams to the Database |
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 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
|
63 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
64 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
|
65 |
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 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
|
67 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
|
68 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
|
69 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
|
70 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
|
71 |
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 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
|
73 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
|
74 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
|
75 properties.getProperty("serverInactiveInterval"); |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
76 |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
77 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
|
78 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
|
79 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
|
80 Integer.parseInt(serverRoundtripIntervalValue); |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
81 } |
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
|
82 } |
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 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
|
84 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
|
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 |
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 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
|
88 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
|
89 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
|
90 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
|
91 } |
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 } |
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 catch (NumberFormatException e) { |
551
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
94 log.error(e,e); |
1f6e2b256247
Improved the Objectvalidation of the ArcSDE-Databaseconnections
Tim Englich <tim.englich@intevation.de>
parents:
274
diff
changeset
|
95 } |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
96 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
97 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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 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
|
103 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
|
104 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
105 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
106 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
107 * @see org.apache.commons.pool.PoolableObjectFactory#activateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
108 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
109 public void activateObject(Object arg0) throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
110 log.debug("ArcSDEPoolableObjectFactory.activateObject"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
111 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
112 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
113 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
114 * @see org.apache.commons.pool.PoolableObjectFactory#destroyObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
115 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
116 public void destroyObject(Object arg0) throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
117 log.debug("ArcSDEPoolableObjectFactory.destroyObjectb"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
118 if (arg0 instanceof ArcSDEConnection) { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
119 ((ArcSDEConnection)arg0).close(); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
120 }else{ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
121 log.warn("Object cannot be handled"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
122 } |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
123 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
124 |
274
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 * @see org.apache.commons.pool.PoolableObjectFactory#makeObject() |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
127 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
128 public Object makeObject() throws Exception { |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
129 log.debug("ArcSDEPoolableObjectFactory.makeObject"); |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
130 Connection con; |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
131 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
|
132 con = new ArcSDEConnection( |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
133 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
|
134 port, |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
135 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
|
136 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
|
137 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
|
138 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
|
139 serverInactiveInterval); |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
140 } |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
141 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
|
142 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
|
143 "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
|
144 e.toString(), e); |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
145 } |
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
146 return con; |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
147 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
148 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
149 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
150 * @see org.apache.commons.pool.PoolableObjectFactory#passivateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
151 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
152 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
|
153 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
154 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
|
155 |
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 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
|
157 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
|
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 |
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 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
|
161 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
|
162 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
|
163 } |
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 ((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
|
165 } |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
166 } |
130
e4eacd613356
Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
167 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
168 /** |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
169 * @see org.apache.commons.pool.PoolableObjectFactory#validateObject(java.lang.Object) |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
170 */ |
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
171 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
|
172 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
173 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
|
174 |
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 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
|
176 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
|
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 |
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 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
|
180 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
|
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 |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
183 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
|
184 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
|
185 |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
551
diff
changeset
|
186 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
|
187 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
|
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 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
|
190 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
|
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 |
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 return isValid; |
265 | 194 } |
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
|
195 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
|
196 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
|
197 } |
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 |
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 return false; |
274
ff1b7967e6b9
General CodecCleanup:
Tim Englich <tim.englich@intevation.de>
parents:
265
diff
changeset
|
200 } |
265 | 201 } |