Will do ;-)

Cheers
Oli
________________________________________
From: Francesco Chicchiriccò [ilgro...@apache.org]
Sent: 06 December 2013 13:22
To: dev@syncope.apache.org
Subject: Re: BasicDataSource usage in persistence.xml

On 06/12/2013 12:49, Guido Wimmel wrote:
> Hi Oliver,
>
> FYI: we use such a setup (with dbcp.BasicDataSource) in our project, thus 
> avoiding the need to
> configure a data source in the container. This works fine; also with our own 
> unit/integration tests.
>
> We also used the standard MySQL isolation level (REPEATABLE_READ), as we had 
> problems with our standard
> MySQL configuration related to Binary Logs ("InnoDB is limited to row-logging 
> when transaction isolation level
> is READ_COMMITTED or READ_UNCOMMITTED"). This also works fine, but probably 
> the explicit setting of
> READ_COMMITTED as a transaction level was chosen on purpose.
>
> We externalized some more properties of BasicDataSource (testOnBorrow, 
> testOnReturn, removeAbandoned,
> initialSize, maxActive, minIdle, removeAbandoned, 
> timeBetweenEvictionRunsMillis, minEvictableIdleTimeMillis,
> validationQuery). IMO, at least the size parameters (initialSize, maxActive, 
> minIdle) and the validation query
> (which can be database specific) should be configurable via properties. 
> BasicDataSource should also probably be a direct
> Maven dependency then.
>
> I'd be +1 for this change, as it would spare us the need of overwriting 
> persistenceContext.xml ;-)

Well, what are you still waiting for providing a patch, then? ;-)

>> Von: "Francesco Chicchiriccò" <ilgro...@apache.org>
>>> Hi there
>> Hi Oliver,
>>> Wouldn't it make sense to use a BasicDataSource instead of 
>>> DriverManagerDataSource as it is also recommended from Spring:
>>> http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-connections
>> Short answer: Yes, why not?
>> Long answer follows.
>>
>> The localDataSource bean in persistenceContext.xml is there for
>> providing a DataSource for non-production usage: unit and integration
>> tests, various development profiles [1], embedded mode [2] and
>> standalone distribution [3].
>>
>> As you can see from syncopeContext.xml, things are arranged so that at
>> first a JNDI lookup for a proper DataSource is performed: this becomes
>> of fundamental importance in production environments, as we suggest [4].
>>
>> Moreover, usage of BasicDataSource implies commons-dbcp dependency,
>> which is currently indirectly pulled in by Activiti
>> (org.activiti:activiti-spring, exactly).
>>
>> Hence, I am +-0 for this change.
>>
>>> Instead of this:
>>>
>>> <bean id="localDataSource" 
>>> class="org.springframework.jdbc.datasource.IsolationLevelDataSourceAdapter">
>>> <property name="targetDataSource">
>>> <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>>> <property name="driverClassName" value="${jpa.driverClassName}"/>
>>> <property name="url" value="${jpa.url}"/>
>>> <property name="username" value="${jpa.username}"/>
>>> <property name="password" value="${jpa.password}"/>
>>> </bean>
>>> </property>
>>> <property name="isolationLevelName" value="ISOLATION_READ_COMMITTED"/>
>>> </bean>
>>>
>>>
>>> we can configure this bean:
>>>
>>> <bean id="localDataSource" 
>>> class="org.springframework.jdbc.datasource.IsolationLevelDataSourceAdapter">
>>> <property name="targetDataSource">
>>> <bean class="org.apache.commons.dbcp.BasicDataSource"
>>> destroy-method="close">
>>> <property name="driverClassName" value="${jpa.driverClassName}"/>
>>> <property name="url" value="${jpa.url}"/>
>>> <property name="username" value="${jpa.username}"/>
>>> <property name="password" value="${jpa.password}"/>
>>> </bean>
>>> </property>
>>> <property name="isolationLevelName" value="ISOLATION_READ_COMMITTED"/>
>>> </bean>
>> If you like such change, please file an issue and attach a patch there.
>>
>> Regards.
>>
>> [1] http://syncope.apache.org/building.html#More_build_profiles
>> [2] 
>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+embedded+mode
>> [3] 
>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+standalone+distribution
>> [4] 
>> https://cwiki.apache.org/confluence/display/SYNCOPE/Run+Syncope+in+real+environments#RunSyncopeinrealenvironments-Usedatasource

--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/

Reply via email to