Actually, the JDBC providers in Apache Aries Transaction Control do use HikariCP for their connection pooling support, it’s just abstracted by the ResourceProvider so that you don’t see it (which is surely a good thing!).
Tim > On 1 Mar 2017, at 15:46, Kevin Schmidt <[email protected]> wrote: > > I will take a look at Transaction Control, but my first scan shows it is > implementing its own connection pool? I wish to continue to use HikariCP as > my pool, thus the source of my question. But let me give a little more > background. > > I presently use Blueprint to define datasource XML files that are placed in > the deploy directory. These files configure the datasource, wrap it in a > pool, and register it in JNDI where applications then look it up. I > understand this isn't necessarily the recommended approach anymore, so was > looking at alternatives and it appeared Pax-JDBC is one of if not the > recommended approach now. And when I saw support for HikariCP as a pool with > 1.0, I took a deeper look. > > So I have the necessary Pax features installed and have my > org.ops4j.datasource-<name>.cfg file created and I do get a data source > created and pool created for it. My file is: > > osgi.jdbc.driver.name <http://osgi.jdbc.driver.name/>=mysql > pool=hikari > databaseName=person_trunk > user=<removed> > password=<removed> > dataSourceName=mydatasource > > This works, but I'd like to control some of the HikariCP pool settings. > > The link pointed to earlier > (https://ops4j1.jira.com/wiki/display/PAXJDBC/Pooling+and+XA+support+in+1.0.0 > <https://ops4j1.jira.com/wiki/display/PAXJDBC/Pooling+and+XA+support+in+1.0.0>) > says: > > In addition you can also set pooling properties that start with "pool.". > These will be forwarded to the pooling library. > > Thus, I tried setting pool.minimumIdle=5 and jdbc.pool.minimumIdle=5 but both > result in errors as the setting is forwarded to the MySQL data source factory. > > So, how can I specify my pool settings in a way that they are forwarded to > the pooling library? > > If there is a alternate/better way to configure Pax-JDBC and use HikariCP as > the pool, or other alternatives to Pax-JDBC, I'm all ears. > > Thanks, > > Kevin > > On Wed, Mar 1, 2017 at 2:42 AM, Timothy Ward <[email protected] > <mailto:[email protected]>> wrote: > Transaction Control can already be used with a DataSource, Driver, > DataSourceFactory, you name it. It also doesn’t have special configuration, > it’s config admin just like everything else. > > The scoped connection is also not special, and can be passed to all manner of > other libraries. You can even wrap it in a DataSource which hands out the > same connection to everyone, just like Spring do with their > SingleConnectionDataSource. > > Regards, > > Tim > > > >> On 1 Mar 2017, at 10:28, Christian Schneider <[email protected] >> <mailto:[email protected]>> wrote: >> >> It would be nice if the transaction control service would also support >> DataSources as services. So would would only need to teach people one >> variante to configure them. >> Transaction control is special in its config and it can not be reused for >> other usages of a database. >> >> Christian >> >> 2017-03-01 10:44 GMT+01:00 Timothy Ward <[email protected] >> <mailto:[email protected]>>: >> Again, I can recommend the OSGi Transaction Control service. The Aries >> implementation has support for configuration defined resources, which make >> connection and pooling configuration extremely easy. See >> http://aries.apache.org/modules/tx-control/localJDBC.html#creating-a-resource-using-a-factory-configuration >> >> <http://aries.apache.org/modules/tx-control/localJDBC.html#creating-a-resource-using-a-factory-configuration> >> for details. >> >> The Aries Transaction Control implementation also has support for XA >> transactions if that’s of interest to you. >> >> Best Regards, >> >> Tim Ward >> >> Author, Enterprise OSGi in Action https://www.manning.com/cummins >> <https://www.manning.com/cummins> >> >> >> >>> On 1 Mar 2017, at 08:11, schmke <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> I too am trying out the HikariCP pooling and haven't figured out how to >>> change/specify pool settings. >>> >>> I have a .cfg file that creates a pooled data source just fine, with TRACE >>> logging on I see HikariCP initializing and all the default settings. And >>> the pool is used as I use the data source. >>> >>> But when I try to specify pooling configuration in the .cfg file, the >>> property I set is passed on to the underlying data source factory, not the >>> pool. For example, I want to set the minimumIdle to 5 rather than the >>> default 10. >>> >>> If I specify pool.minimumIdle=5 I see this in the log: >>> >>> 2017-03-01T00:08:13,848 | WARN | CM Configuration Updater >>> (ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) | >>> DataSourceRegistration | 76 - org.ops4j.pax.jdbc.config - 1.0.1 | >>> cannot set properties [pool.minimumIdle] >>> java.sql.SQLException: cannot set properties [pool.minimumIdle] >>> at >>> org.ops4j.pax.jdbc.mysql.impl.MysqlDataSourceFactory.setProperties(MysqlDataSourceFactory.java:71) >>> [77:org.ops4j.pax.jdbc.mysql:1.0.1] >>> >>> If I instead specify jdbc.pool.minimumIdle=5, the same thing: >>> >>> 2017-03-01T00:09:04,034 | WARN | CM Configuration Updater >>> (ManagedServiceFactory Update: factoryPid=[org.ops4j.datasource]) | >>> DataSourceRegistration | 76 - org.ops4j.pax.jdbc.config - 1.0.1 | >>> cannot set properties [pool.minimumIdle] >>> java.sql.SQLException: cannot set properties [pool.minimumIdle] >>> at >>> org.ops4j.pax.jdbc.mysql.impl.MysqlDataSourceFactory.setProperties(MysqlDataSourceFactory.java:71) >>> [77:org.ops4j.pax.jdbc.mysql:1.0.1] >>> >>> So how are the properties to be specified so they get passed to the pool and >>> not the underlying JDBC data source? >>> >>> >>> >>> -- >>> View this message in context: >>> http://karaf.922171.n3.nabble.com/PAX-JDBC-1-0-1-pools-tp4049649p4049697.html >>> >>> <http://karaf.922171.n3.nabble.com/PAX-JDBC-1-0-1-pools-tp4049649p4049697.html> >>> Sent from the Karaf - User mailing list archive at Nabble.com >>> <http://nabble.com/>. >> >> >> >> >> -- >> -- >> Christian Schneider >> http://www.liquid-reality.de >> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de> >> >> Open Source Architect >> http://www.talend.com >> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com> >
