On Thu, Mar 14, 2013 at 5:56 AM, Craig Ringer <craig@2ndquadrant.com> wrote:
> On 03/12/2013 09:19 AM, Kevin Wooten wrote:
> * Asynchronous I/O engine provided by Netty
> * All connections share a single group of worker threads
>
> That's going to cause serious issues on Java EE, especially when unloading
> applications. Since you're on JDBC4 you can have init and cleanup functions
> to manage the thread pool, but these are vital. I asked about this re PgJDBC
> quite some time ago and got some good information that's summarized here:
>
> http://stackoverflow.com/q/8514725/398670
>
> Failure to properly shut the thread pool down when a servlet or application
> is unloaded will cause classloader leaks, tending to lead to PermGenSpace
> exhaustion errors and other problems. The driver will probably need
> application-server-specific integration hooks too.
>
> As for the "multiple JARs" converns, it's trivial to bundle dependencies
> inside the JDBC driver jar. However, this can cause issues if there's an
> incompatible version of the same library elsewhere on the classpath. It's OK
> if you're on a modern application server like JBoss AS 7 that isolates
> classloader chains, but it can be a real problem on older platforms and
> standalone applications. For this reason both a rollup version of the jar
> and a version without bundled libraries would probably be needed, but this
> is trivial to produce from Maven.
maven-shade-plugin was already mentioned to solve the class conflict
issues (similar to jarjar).
Florent
>
> Overall I think this is an intriguing idea, whether it proves to be an ideas
> testbed or something that becomes appealing to adopt more seriously.
> Congratulations on tackling it.
>
> --
> Craig Ringer http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
--
Florent Guillaume, Director of R&D, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
http://www.nuxeo.com http://www.nuxeo.org +33 1 40 33 79 87