Hi,
in some contexts I've had a recurring problem that they forget to set the
number of connections in the db pool when they deploy a new war (initially the
problem was that they didn't know how to set the pool size). Since this as of
now must be set in beans.xml inside the support-hibernate jar inside the war, I
can understand why that happens, especially if you are managing multiple
instances with differing db needs.
A simple solution to this is to introduce a way to let properties like these
have default values and at the same time make it easy to override per instance
basis without changing the war. The inlined patch (to make sure it gets
through) lets properties be optionally overridden in a
$DHIS_HOME/dhis2.properties file.
We do want most things like this to be in the database and editable in the ui,
but this solution could also be combined with those solutions. More
importantly, it can be utilized before any connection with the db has been
establised, and I think maybe this kind of mechanism would fit better than the
hibernate configuration file we have today (which I'm still a bit unsure
exactly how is used).
It's a quick suggestion to ponder, anyway.
Jo
=== modified file
'dhis-2/dhis-support/dhis-support-external/src/main/resources/META-INF/dhis/beans.xml'
---
dhis-2/dhis-support/dhis-support-external/src/main/resources/META-INF/dhis/beans.xml
2010-10-29 12:19:15 +0000
+++
dhis-2/dhis-support/dhis-support-external/src/main/resources/META-INF/dhis/beans.xml
2011-06-22 18:23:50 +0000
@@ -21,4 +21,27 @@
<property name="systemProperty" value="dhis2.home"/>
</bean>
+ <!--
+ Set up DHIS2 to:
+ 1. Load any /META-INF/dhis/default.properties files defined in modules
+ 2. Load the $DHIS2_HOME/dhis2.properties file for optional deployment
specific overriding of properties.
+ -->
+
+ <bean id="defaultPropsConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <property name="locations">
+ <list>
+ <value>classpath*:/META-INF/dhis/default.properties</value>
+ <bean class="org.springframework.core.io.FileSystemResource">
+ <constructor-arg>
+ <bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+ <property name="targetObject" ref="locationManager" />
+ <property name="targetMethod" value="getFileForReading" />
+ <property name="arguments" value="dhis2.properties" />
+ </bean>
+ </constructor-arg>
+ </bean>
+ </list>
+ </property>
+ <property name="ignoreResourceNotFound" value="true" />
+
</beans>
=== modified file
'dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml'
---
dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml
2011-01-28 21:44:54 +0000
+++
dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml
2011-06-22 14:48:11 +0000
@@ -57,9 +57,9 @@
<property name="jdbcUrl" ref="url"/>
<property name="user" ref="username"/>
<property name="password" ref="password"/>
- <property name="acquireIncrement" value="6"/>
- <property name="maxPoolSize" value="40"/>
- <property name="maxIdleTime" value="7200"/>
+ <property name="acquireIncrement"
value="${support.hibernate.aquireIncrement}"/>
+ <property name="maxPoolSize" value="${support.hibernate.maxPoolSize}"/>
+ <property name="maxIdleTime" value="${support.hibernate.maxIdleTime}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
=== added file
'dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/default.properties'
---
dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/default.properties
1970-01-01 00:00:00 +0000
+++
dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/default.properties
2011-06-22 14:20:55 +0000
@@ -0,0 +1,3 @@
+support.hibernate.maxPoolSize=40
+support.hibernate.maxIdleTime=7200
+support.hibernate.aquireIncrement=6
\ No newline at end of file
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to : [email protected]
Unsubscribe : https://launchpad.net/~dhis2-devs
More help : https://help.launchpad.net/ListHelp