Mercurial > dive4elements > river
changeset 8485:026f4c684ee5
Make maxWait configurable and wait for 30 seconds
author | "Tom Gottfried <tom@intevation.de>" |
---|---|
date | Fri, 28 Nov 2014 16:34:40 +0100 |
parents | 8c615d738e84 |
children | d0719e98a9da |
files | artifacts/doc/conf/backend-db.xml artifacts/doc/conf/seddb-db.xml backend/src/main/java/org/dive4elements/river/backend/Credentials.java backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.java backend/src/main/java/org/dive4elements/river/backend/SessionFactoryProvider.java backend/src/main/java/org/dive4elements/river/backend/utils/DBCPConnectionProvider.java contrib/make_flys_release/make_release.sh |
diffstat | 8 files changed, 61 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/conf/backend-db.xml Fri Nov 28 10:21:40 2014 +0100 +++ b/artifacts/doc/conf/backend-db.xml Fri Nov 28 16:34:40 2014 +0100 @@ -7,4 +7,5 @@ <driver>org.postgresql.Driver</driver> <url>jdbc:postgresql://localhost:5432/d4e</url> <validation-query>select 1 from rivers</validation-query> + <max-wait>30000</max-wait> </backend-database>
--- a/artifacts/doc/conf/seddb-db.xml Fri Nov 28 10:21:40 2014 +0100 +++ b/artifacts/doc/conf/seddb-db.xml Fri Nov 28 16:34:40 2014 +0100 @@ -7,6 +7,7 @@ <driver>org.postgresql.Driver</driver> <url>jdbc:postgresql://localhost:5432/seddb</url> <validation-query>select 1 from gewaesser</validation-query> + <max-wait>30000</max-wait> <!-- <connection-init-sqls>ALTER SESSION SET CURRENT_SCHEMA=SEDDB</connection-init-sqls> -->
--- a/backend/src/main/java/org/dive4elements/river/backend/Credentials.java Fri Nov 28 10:21:40 2014 +0100 +++ b/backend/src/main/java/org/dive4elements/river/backend/Credentials.java Fri Nov 28 16:34:40 2014 +0100 @@ -17,6 +17,7 @@ protected String url; protected String connectionInitSqls; protected String validationQuery; + protected String maxWait; protected Class [] classes; public Credentials() { @@ -30,6 +31,7 @@ String url, String connectionInitSqls, String validationQuery, + String maxWait, Class [] classes ) { this.user = user; @@ -39,6 +41,7 @@ this.url = url; this.connectionInitSqls = connectionInitSqls; this.validationQuery = validationQuery; + this.maxWait = maxWait; this.classes = classes; } @@ -90,6 +93,14 @@ this.validationQuery = validationQuery; } + public String getMaxWait() { + return maxWait; + } + + public void setMaxWait(String maxWait) { + this.maxWait = maxWait; + } + public String getConnectionInitSqls() { return connectionInitSqls; }
--- a/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java Fri Nov 28 10:21:40 2014 +0100 +++ b/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java Fri Nov 28 16:34:40 2014 +0100 @@ -111,6 +111,9 @@ public static final String XPATH_VALIDATION_QUERY = "/artifact-database/backend-database/validation-query/text()"; + public static final String XPATH_MAX_WAIT = + "/artifact-database/backend-database/max-wait/text()"; + public static final String DEFAULT_USER = System.getProperty("flys.backend.user", "flys"); @@ -140,6 +143,9 @@ System.getProperty( "flys.backend.connection.validation.query"); + public static final String DEFAULT_MAX_WAIT = + System.getProperty("flys.backend.connection.max.wait"); + public static final Class [] CLASSES = { Annotation.class, AnnotationType.class, @@ -229,11 +235,12 @@ String driver, String url, String connectionInitSqls, - String validationQuery + String validationQuery, + String maxWait ) { super( user, password, dialect, driver, url, - connectionInitSqls, validationQuery, CLASSES); + connectionInitSqls, validationQuery, maxWait, CLASSES); } private static Credentials instance; @@ -258,9 +265,12 @@ Config.getStringXPath( XPATH_VALIDATION_QUERY, DEFAULT_VALIDATION_QUERY); + String maxWait = + Config.getStringXPath(XPATH_MAX_WAIT, DEFAULT_MAX_WAIT); instance = new FLYSCredentials( - user, password, dialect, driver, url, connectionInitSqls, validationQuery); + user, password, dialect, driver, url, connectionInitSqls, + validationQuery, maxWait); } return instance; } @@ -273,7 +283,9 @@ DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_CONNECTION_INIT_SQLS, - DEFAULT_VALIDATION_QUERY); + DEFAULT_VALIDATION_QUERY, + DEFAULT_MAX_WAIT + ); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.java Fri Nov 28 10:21:40 2014 +0100 +++ b/backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.java Fri Nov 28 16:34:40 2014 +0100 @@ -87,6 +87,9 @@ public static final String XPATH_VALIDATION_QUERY = "/artifact-database/seddb-database/validation-query/text()"; + public static final String XPATH_MAX_WAIT = + "/artifact-database/seddb-database/max-wait/text()"; + public static final String DEFAULT_USER = System.getProperty("flys.seddb.user", "seddb"); @@ -116,6 +119,9 @@ System.getProperty( "flys.seddb.connection.validation.query"); + public static final String DEFAULT_MAX_WAIT = + System.getProperty("flys.seddb.connection.max.wait"); + public static final Class [] CLASSES = { BezugspegelgewId.class, Bezugspegelgew.class, @@ -183,11 +189,12 @@ String driver, String url, String connectionInitSqls, - String validationQuery + String validationQuery, + String maxWait ) { super( user, password, dialect, driver, url, - connectionInitSqls, validationQuery, CLASSES); + connectionInitSqls, validationQuery, maxWait, CLASSES); } public static synchronized Credentials getInstance() { @@ -210,10 +217,12 @@ Config.getStringXPath( XPATH_VALIDATION_QUERY, DEFAULT_VALIDATION_QUERY); + String maxWait = + Config.getStringXPath(XPATH_MAX_WAIT, DEFAULT_MAX_WAIT); instance = new SedDBCredentials( user, password, dialect, driver, url, - connectionInitSqls, validationQuery); + connectionInitSqls, validationQuery, maxWait); } return instance; } @@ -226,7 +235,9 @@ DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_CONNECTION_INIT_SQLS, - DEFAULT_VALIDATION_QUERY); + DEFAULT_VALIDATION_QUERY, + DEFAULT_MAX_WAIT + ); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/backend/src/main/java/org/dive4elements/river/backend/SessionFactoryProvider.java Fri Nov 28 10:21:40 2014 +0100 +++ b/backend/src/main/java/org/dive4elements/river/backend/SessionFactoryProvider.java Fri Nov 28 16:34:40 2014 +0100 @@ -148,6 +148,10 @@ if (validationQuery != null) { props.setProperty("validationQuery", validationQuery); } + String maxWait = credentials.getMaxWait(); + if (maxWait != null) { + props.setProperty("maxWait", maxWait); + } cfg.mergeProperties(props);
--- a/backend/src/main/java/org/dive4elements/river/backend/utils/DBCPConnectionProvider.java Fri Nov 28 10:21:40 2014 +0100 +++ b/backend/src/main/java/org/dive4elements/river/backend/utils/DBCPConnectionProvider.java Fri Nov 28 16:34:40 2014 +0100 @@ -217,7 +217,17 @@ ds.setValidationQuery(validationQuery); } - ds.setMaxWait(1000); //TODO: make it configurable + String maxWait = props.getProperty("maxWait"); + if (maxWait != null) { + try { + ds.setMaxWait(Integer.parseInt(maxWait)); + } + catch (NumberFormatException nfe) { + log.error( + "Property maxWait could not be parsed as integer." + ); + } + } // The BasicDataSource has lazy initialization // borrowing a connection will start the DataSource
--- a/contrib/make_flys_release/make_release.sh Fri Nov 28 10:21:40 2014 +0100 +++ b/contrib/make_flys_release/make_release.sh Fri Nov 28 16:34:40 2014 +0100 @@ -383,6 +383,7 @@ <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@//$BACKENDURL:$BACKENDPORT/$BACKENDBACK</url> <validation-query>select 1 from rivers</validation-query> + <max-wait>30000</max-wait> <connection-init-sqls>$INITSQLS</connection-init-sqls> </backend-database> EOF @@ -396,6 +397,7 @@ <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@//$SEDDBURL:$SEDDBPORT/$SEDDBBACK</url> <validation-query>select 1 from gewaesser</validation-query> + <max-wait>30000</max-wait> <connection-init-sqls>$SEDINITSQLS</connection-init-sqls> </seddb-database> EOF