[Biojava-dev] JDBCPooledDataSource regression
Andy Yates
ayates at ebi.ac.uk
Wed Jan 31 13:25:12 UTC 2007
Cheers mate. If this hash/equals is a problem then this can be solved
later on.
Richard Holland wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I've committed your changes Andy.
>
> Thomas, I wouldn't worry about OntologySQL. It's highly deprecated and
> not supported - the whole biojavax/Hibernate thing made that code redundant.
>
> Richard.
>
> Andy Yates wrote:
>> Okay I've attached the fix here.
>>
>> I just did this in a text editor but I believe that the imports are
>> okay. If you can just do a quick scan as well to make sure I haven't
>> deleted anything that was very important.
>>
>> I'll get on to the helpdesk now as well :)
>>
>> Andy
>>
>> Richard Holland wrote:
>> Andy could you make the change to your local copy of the source file and
>> email the file to me, that way I can make sure I don't get it wrong when
>> I commit it.
>>
>> Richard.
>>
>> PS. You should probably have your own CVS account - email the OBF
>> helpdesk and ask for one, saying I told you to. :)
>>
>>
>> Andy Yates wrote:
>>>>> Thomas Down wrote:
>>>>>> On 31 Jan 2007, at 12:06, Andy Yates wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Sorry I was meaning if that if that method just becomes:
>>>>>>>
>>>>>>> public static DataSource getDataSource(final String driver,
>>>>>>> final String url,
>>>>>>> final String user,
>>>>>>> final String pass)
>>>>>>> throws Exception {
>>>>>>>
>>>>>>> BasicDataSource ds = new BasicDataSource();
>>>>>>> ds.setUrl(url);
>>>>>>> ds.setDriverClassName(driver);
>>>>>>> ds.setUsername(user);
>>>>>>> ds.setPassword(pass);
>>>>>>> // Set BasicDataSource properties such as maxActive and
>>>>>>> maxIdle, as described in
>>>>>>> //
>>>>>>> http://jakarta.apache.org/commons/dbcp/api/org/apache/commons/dbcp/BasicDataSource.html
>>>>>>>
>>>>>>> ds.setMaxActive(10);
>>>>>>> ds.setMaxIdle(5);
>>>>>>> ds.setMaxWait(10000);
>>>>>>>
>>>>>>> return ds;
>>>>>>> }
>>>>>>>
>>>>>>> Does that still work?
>>>>>> Hmmm, I was assuming that BasicDataSource didn't actually do any
>>>>>> pooling itself, and that you needed another layer on top to manage a
>>>>>> connection pool -- that seems to be how all previous revisions of
>>>>>> JDBCConnectionPool worked, so I guess I wasn't alone in thinking
>>>>>> this. But yes, BasicDataSource does seem to do pooling itself
>>>>>> (confirmed by reading the source), so maybe your simpler version is
>>>>>> a better idea. It certainly works okay for me.
>>>>>>
>>>>>> Thomas.
>>>>> That's what I thought should have happened :). Can I suggest that
>>>>> this revised version goes into CVS? Anyone got any objections?
>>>>>
>>>>> Andy
>>>>> _______________________________________________
>>>>> biojava-dev mailing list
>>>>> biojava-dev at lists.open-bio.org
>>>>> http://lists.open-bio.org/mailman/listinfo/biojava-dev
>>>>>
>
>> ------------------------------------------------------------------------
>
>> /*
>> * BioJava development code
>> *
>> * This code may be freely distributed and modified under the
>> * terms of the GNU Lesser General Public Licence. This should
>> * be distributed with the code. If you do not have a copy,
>> * see:
>> *
>> * http://www.gnu.org/copyleft/lesser.html
>> *
>> * Copyright for this code is held jointly by the individual
>> * authors. These should be listed in @author doc comments.
>> *
>> * For more information on the BioJava project and its aims,
>> * or to join the biojava-l mailing list, visit the home page
>> * at:
>> *
>> * http://www.biojava.org/
>> *
>> */
>> package org.biojava.utils;
>
>> import javax.sql.DataSource;
>
>> import org.apache.commons.dbcp.BasicDataSource;
>> import org.apache.commons.dbcp.PoolingDataSource;
>> import org.apache.commons.pool.ObjectPool;
>
>> /**
>> * Returns a DataSource that implements connection pooling
>> *
>> * Uses Jakarta Commons DBCP and Pool packages.
>> * See the description of the dbcp package at
>> * http://jakarta.apache.org/commons/dbcp/api/overview-summary.html#overview_description
>> *
>> * @author Simon Foote
>> * @author Len Trigg
>> */
>
>> public class JDBCPooledDataSource {
>
>> public static DataSource getDataSource(final String driver,
>> final String url,
>> final String user,
>> final String pass)
>> throws Exception {
>
>> BasicDataSource ds = new BasicDataSource();
>> ds.setUrl(url);
>> ds.setDriverClassName(driver);
>> ds.setUsername(user);
>> ds.setPassword(pass);
>> // Set BasicDataSource properties such as maxActive and maxIdle, as described in
>> // http://jakarta.apache.org/commons/dbcp/api/org/apache/commons/dbcp/BasicDataSource.html
>> ds.setMaxActive(10);
>> ds.setMaxIdle(5);
>> ds.setMaxWait(10000);
>
>> return dataSource;
>> }
>
>
>> // Adds simple equals and hashcode methods so that we can compare if
>> // two connections are to the same database. This will fail if the
>> // DataSource is redirected to another database etc (I doubt this is
>> // ever likely to be used).
>> /**
>> * @depercated This is no longer used in favor of {@link BasicDataSource}
>> * from DBCP
>> */
>> static class MyPoolingDataSource extends PoolingDataSource {
>> final String source;
>> public MyPoolingDataSource(ObjectPool connectionPool, String source) {
>> super(connectionPool);
>> this.source = source;
>> }
>> public boolean equals(Object o2) {
>> if ((o2 == null) || !(o2 instanceof MyPoolingDataSource)) {
>> return false;
>> }
>> MyPoolingDataSource b2 = (MyPoolingDataSource) o2;
>> return source.equals(b2.source);
>> }
>> public int hashCode() {
>> return source.hashCode();
>> }
>> }
>
>
>> public static void main(String[] args) {
>> try {
>> DataSource ds1 = getDataSource("org.hsqldb.jdbcDriver", "jdbc:hsqldb:/tmp/hsqldb/biosql", "sa", "");
>> DataSource ds2 = getDataSource("org.hsqldb.jdbcDriver", "jdbc:hsqldb:/tmp/hsqldb/biosql", "sa", "");
>> System.err.println(ds1);
>> System.err.println(ds2);
>> System.err.println(ds1.equals(ds2));
>> } catch (Exception e) {
>> e.printStackTrace();
>> }
>> }
>> }
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2.2 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFFwJSu4C5LeMEKA/QRAgt1AJ9dtk3SBbDwtah469igyc9DYWGzMwCgqAad
> X1KXpdlqqhBfuL1MisMj/yo=
> =nlGe
> -----END PGP SIGNATURE-----
More information about the biojava-dev
mailing list