Hi Matthew,

I've got a working sample of OpenJPA/Pax-JDBC-pool-Aries/Aries JPA
(1)/Aries JTA/ActiveMQ/Karaf 3.0.3 here:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent/tree/master/net.osgiliath.samples

Feel free to use the archetypes, features, reuse parts, or contribute!

Best regards,
Charlie

2015-09-03 22:51 GMT+02:00 <[email protected]>:

> Ok, maybe I can answer my own questions here, but if I could get some
> confirmation that would be great. I seem to have a working system running
> with ops4j-pax-jdbc-pool-aries rather than dbcp2.
>
> Digging into the code in org.apache.aries.transaction.jdbc it looks like
> RecoverableDataSource is the wrapper for my XADataSources and it does
> indeed
> appear to support passing of pooling options onto ConnectionManagerFactory
> which itself appears to use the pooling capabilities that come from the
> Geronimo bundles. Does all this sound correct so far?
>
> So, it's not dbcp2, but it's pooling nonetheless and I can adjust
> preferences by passing the appropriate bean options to my pax-jdbc service
> with the 'pool.' prefix which will in-turn send those on to the
> RecoverableDataSource instance. Sound ok still?
>
> And finally, my eclipselink JTA datasource JNDI lookups are formatted with
> filters for the 'aries.managed' property [1] to ensure that I get the aries
> auto-enlisting DataSources.
>
> So far, this is running my existing code ok with only two changes I had to
> make:
>
> 1. Fixed ARIES-1171, but actually in the Tranql code as I was getting
> connection errors and didn't see a logical place to fix it from an aries
> class (using latest aries-transaction-jdbc from SVN). This required
> bringing
> all the tranql source into my aries bundle and just removing the external
> dependency. I didn't like doing that, but since that code hasn't changed in
> a while and I'm still prototyping all this it was the path of least
> resistance.
>
> 2. Changed RecoverableDataSource to not use empty strings by default for
> username and password. Which seemed to be similar/related to the above and
> I
> posted as ARIES-1376.
>
> Thoughts and criticisms welcome. Thanks!
>
> [1]
> osgi:service/javax.sql.DataSource/(&(osgi.jndi.service.name
> =my-app-node1)(ar
> ies.managed=true))
>
> -----Original Message-----
> From: [email protected] [mailto:
> [email protected]]
>
> Sent: Thursday, September 03, 2015 10:58 AM
> To: [email protected]
> Subject: Bundle set recommendations for JPA+JTA+Eclipselink Partitioning?
>
> I am in the process of refactoring an existing JPA/Eclipselink-based
> application to introduce Eclipselink's partitioning support for database
> sharding. My current application runs quite well with pooled jdbc
> connections via boncep.
>
> However, with the sharded model there will be a number of entity types that
> are Replicated to all shards and, as such, eclipselink will be doing writes
> that span multiple jdbc connections. Per the eclipselink recommendations
> for
> paritioning I would like to introduce JTA in order to enforce integrity
> across commits that hit multiple partitions.
>
> It seems like the ops4j-pax-jdbc bundles are designed to support XA/JTA and
> it seems like there is a lot of XA support in the various aries bundles
> (aries.transaction. and aries.jpa.). However, I'm not sure of what
> combination of these bundles+configuration will provide what I am after.
> Since many of these bundles seem to be designed/documented around general
> JTA usage - like performing a transaction that spans JMS and JDBC - I'm not
> confident if that model works with my particular use case.
>
> To further add to this, I would like for my JDBC connections to be pooled
> for performance. ops4j-pax-jdbc-pool-dbcp2 seems like a logical choice, but
> again I'm not sure if it will play nicely with the transaction management
> features from aries.
>
> I think I have a working model of this, but I'm rather new to XA/JTA
> especially from OSGi so I want to make sure I'm getting this correct. So, I
> guess my questions are:
>
> 1. Can ops4j-pax-jdbc-pool and it's dbcp2 sibling work with
> aries-jpa/transaction to pool and auto-enlist XADataSources?
>
> 2. If not, will ops4j-pax-jdbc-pool-aries work? And if so, can its pooling
> semantics be configured? E.g. minIdle, maxIdle, etc.
>
> 3. If neither of the above works, is there a recommended set of bundles to
> accomplish pooled XADataSources with eclipselink+JTA?
>
>
> Thanks,
>
>
> Matthew Pitts
>
> Developer
> Security Solutions Design & Automation
>
> Wells Fargo Bank | Tel 336.608.3332 | Cell 336.202.3913 | Kernersville,
> NC |
> MAC D9693-010
> [email protected]
>
>
>


-- 
Charlie Mordant

Full OSGI/EE stack made with Karaf:
https://github.com/OsgiliathEnterprise/net.osgiliath.parent

Reply via email to