Hello Thomas-
Thank you so much! I'm sure the Xerial guys will be happy.
With respect to the code, I think you're right - SQLite does not support 2
phase commit. To be honest, I have a limited understanding of the code. I
spent only a few hours adapting the classes to work with SQLiteJDBC. I used
the MiniConnectionPoolManager
<http://www.source-code.biz/miniconnectionpoolmanager/>as a test harness
and everything magically worked.
My use case was pretty simple. In my multithreaded web app, I needed a way
for multiple concurrent clients to update the database. Of course, SQLite
doesn't support concurrent write operations so I created a connection pool
with 1 r/w connection that the clients could use to write to the database.
I had a separate connection pool for read-only connections. This approach
has worked out really well for several production websites.
I'll certainly update the SQLite ConnectionPoolDataSource as you suggested.
Perhaps we can discuss more on the Xerial list? Or via email?
Thanks Again!
Peter
On Friday, April 12, 2013 7:27:31 AM UTC-4, Thomas Mueller wrote:
>
> Hi,
>
> You have my permission to use and change the license for the classes
> org.h2.jdbcx.JdbcXid and org.h2.jdbcx.JdbcXAConnection.
>
> About the code: SQLite does not support 2-phase commit as far as I'm
> aware, so I wonder if you should change the relevant methods?
>
> I think you should set autocommit to true if it was disabled:
>
> if (getAutoCommit()==false) rollback();
> //setAutoCommit(true); //<--Not sure why we need this line
>
>
>
> Regards,
> Thomas
>
>
> On Fri, Apr 12, 2013 at 1:08 PM, Peter Borissow
> <[email protected]<javascript:>>
> wrote:
> >
> > Hello-
> > This is my first post to this list so I want to start by saying
> thank you for H2! It's a great project and I've used it extensively in the
> past.
> >
> > A couple years ago, I was tasked to develop a web app using SQLite and a
> spatial extension called SpatiaLite. I used Xerial's JDBC driver which
> unfortunately did not support connection pooling. So, in a pinch, I grabbed
> 2 classes from H2 to create a ConnectionPoolDataSource for SQLite.
> >
> > In the spirit of open source, I would like to release my modified code
> back to the community and have it integrated into the Xerial SQLiteJDBC
> project.
> >
> > Unfortunately, there's a license compatibility issue. The Xerial
> SQLiteJDBC project is released under an Apache license. H2 is of course
> dual licensed under MPL and EPL.
> >
> > While the licenses are very similar and appear to be compatible, I was
> wondering if I could get someone's permission to release my modified code
> under an Apache license.
> >
> > The 2 classes in question are:
> > - org.h2.jdbcx.JdbcXid (r3670)
> > - org.h2.jdbcx.JdbcXAConnection (r3905)
> >
> >
> > You can compare my code with the original H2 code here:
> >
> >
> http://sourceforge.net/p/sqlite-connpool/code/HEAD/tree/trunk/org/sqlite/SQLiteXid.java
> >
> http://code.google.com/p/h2database/source/browse/trunk/h2/src/main/org/h2/jdbcx/c.java?spec=svn4734&r=3670
> >
> >
> http://sourceforge.net/p/sqlite-connpool/code/HEAD/tree/trunk/org/sqlite/SQLitePooledConnection.java
> >
> http://code.google.com/p/h2database/source/browse/trunk/h2/src/main/org/h2/jdbcx/JdbcXAConnection.java?spec=svn4734&r=3905
> >
> >
> > Although the differences are quite minor, I hope you'll see that the
> classes in question represent only a tiny fraction of H2 capabilities. If
> there's anything else I need to do to make the code more portable (e.g.
> copyright notices, credits, etc), I'll be more than happy to oblige.
> >
> >
> > My sincere thanks and best regards,
> > Peter
>
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/h2-database?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.