Hu JB, Just to summarize:
Karaf jdbc installs pax-jdbc and pax-jdbc-config sub features. pax-jdbc is needed to get a DataSourceFactory instance for Driver only installations like Derby. Derby does not register a DataSourceFactory directly. But if you do not install jdbc and/or pax-jdbc you won't get the DataSourceFactory for Derby anymore. That IMHO is a break to previous versions using the pax-jdbc-derby adaptor. Regards Benjamin Am 04.02.2019 um 21:03 schrieb Jean-Baptiste Onofré: > pax-jdbc installs the pax-jdbc-spec bundle, that's why. > > Regards > JB > > On 04/02/2019 20:59, Benjamin Graf wrote: >> This way pax-jdbc-derby also need pax-jdbc feature to get installed! >> >> Am 04.02.2019 um 20:57 schrieb Benjamin Graf: >>> Hi JB, >>> >>> I install pax-jdbc-config and pax-jdbc-derby. After installing pax-jdbc >>> I got the derby DataSourceFactory. IMHO pax-jdbc is not mandatory to >>> install and pooling seems to not work either. >>> >>> Regards >>> >>> Benjamin >>> >>> Am 04.02.2019 um 20:44 schrieb Jean-Baptiste Onofré: >>>> By the way, Karaf example itest (jdbc example) use Derby without problem. >>>> >>>> Regards >>>> JB >>>> >>>> On 04/02/2019 20:23, Benjamin Graf wrote: >>>>> Hi JB, >>>>> >>>>> if I install pax-jdbc-derby on a fresh Karaf 4.2.3-SNAPSHOT I do not get >>>>> a DataSourceFactory registered. I also do not found any code in derby >>>>> sources that does anything about that if do not install pax-jdbc to get >>>>> the Driver instrumented. >>>>> >>>>> Regards >>>>> >>>>> Benjamin >>>>> >>>>> Am 04.02.2019 um 16:30 schrieb Jean-Baptiste Onofré: >>>>>> FYI: I did Pax JDBC 1.3.3 release yesterday, and Karaf 4.2.3-SNAPSHOT is >>>>>> already updated. So it will be included in 4.2.3 release that will be on >>>>>> vote tonight. >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>> On 04/02/2019 16:27, Alex Soto wrote: >>>>>>> Thank you all, >>>>>>> >>>>>>> The workaround worked, i.e., removed feature /pax-jdbc-derby / and >>>>>>> adding only the derby feature. >>>>>>> >>>>>>> >>>>>>> Best regards, >>>>>>> Alex soto >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Feb 2, 2019, at 1:48 AM, Jean-Baptiste Onofré <[email protected] >>>>>>>> <mailto:[email protected]>> wrote: >>>>>>>> >>>>>>>> That's what I'm testing: still keeping pax-jdbc-derby feature but just >>>>>>>> installing the derby bundle (not the pax-jdbc wrapper bundle). >>>>>>>> >>>>>>>> Regards >>>>>>>> JB >>>>>>>> >>>>>>>> On 02/02/2019 07:35, Christian Schneider wrote: >>>>>>>>> If derby now provides a DataSourceFactory then we should remove >>>>>>>>> pax-jdbc-derby from the feature. >>>>>>>>> >>>>>>>>> I guess at some point derby started providing the DSF and we just >>>>>>>>> forgot >>>>>>>>> to remove the adapter bundle. >>>>>>>>> >>>>>>>>> Christian >>>>>>>>> >>>>>>>>> Am Sa., 2. Feb. 2019 um 07:19 Uhr schrieb Jean-Baptiste Onofré >>>>>>>>> <[email protected] <mailto:[email protected]> >>>>>>>>> <mailto:[email protected]>>: >>>>>>>>> >>>>>>>>> By the way, a simple workaround is to stop or even remove the >>>>>>>>> pax-jdbc-derby bundle, and use only the derby bundle (or the >>>>>>>>> opposite). >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> JB >>>>>>>>> >>>>>>>>> On 02/02/2019 06:55, Jean-Baptiste Onofré wrote: >>>>>>>>>> OK, I think I found the problem: installing the pax-jdbc-derby >>>>>>>>>> feature >>>>>>>>>> actually registers two DataSourceFactory services: >>>>>>>>>> >>>>>>>>>> 1. a DataSourceFactory service coming from pax-jdbc-derby bundle >>>>>>>>> (which >>>>>>>>>> is normal) (org.apache.derby.jdbc.EmbeddedDriver) >>>>>>>>>> 2. a DataSourceFactory service coming from directly Derby bundle >>>>>>>>>> (org.apache.derby.jdbc.AutoloadedDriver). >>>>>>>>>> >>>>>>>>>> Both using the same derby value for osgi.jdbc.driver.name >>>>>>>>> <http://osgi.jdbc.driver.name> service property. >>>>>>>>>> So pax-jdbc-config sees two factory and so it creates one >>>>>>>>> datasource per >>>>>>>>>> factory. >>>>>>>>>> >>>>>>>>>> That's why it's only when you use derby and actually, the two >>>>>>>>> datasource >>>>>>>>>> services come from the two factories. >>>>>>>>>> >>>>>>>>>> I'm fixing that. >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> JB >>>>>>>>>> >>>>>>>>>> On 01/02/2019 19:10, Alex Soto wrote: >>>>>>>>>>> Oh, thanks! >>>>>>>>>>> >>>>>>>>>>> Can you suggest a work around? >>>>>>>>>>> What s the ETA for a fix? >>>>>>>>>>> I have a release deadline looming and I am afraid I can't wait >>>>>>>>> too long. >>>>>>>>>>> Thank you for the prompt response. >>>>>>>>>>> >>>>>>>>>>> Best regards, >>>>>>>>>>> Alex soto >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On Feb 1, 2019, at 1:05 PM, Jean-Baptiste Onofré >>>>>>>>> <[email protected] <mailto:[email protected]> >>>>>>>>> <mailto:[email protected]> >>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Indeed, I can reproduce the issue embedded: >>>>>>>>>>>> >>>>>>>>>>>> Name │ Service Id │ Product │ Version │ URL >>>>>>>>>>>> │ Status >>>>>>>>>>>> >>>>>>>>> >>>>>>>>> ────────┼────────────┼──────────────┼───────────────────────┼───────────────────────────────┼─────── >>>>>>>>>>>> querier │ 91 │ Apache Derby │ 10.13.1.1 - (1765088) │ >>>>>>>>>>>> jdbc:derby:derby-data/querier │ OK >>>>>>>>>>>> querier │ 92 │ Apache Derby │ 10.13.1.1 - (1765088) │ >>>>>>>>>>>> jdbc:derby:derby-data/querier │ OK >>>>>>>>>>>> >>>>>>>>>>>> I will fix that. >>>>>>>>>>>> >>>>>>>>>>>> Regards >>>>>>>>>>>> JB >>>>>>>>>>>> >>>>>>>>>>>> On 01/02/2019 19:01, Alex Soto wrote: >>>>>>>>>>>>>> How to do you provision the datasource cfg file ? >>>>>>>>>>>>>> Using a feature or by dropping the file in the etc folder ? >>>>>>>>>>>>> Dropping file in the etc/ directory >>>>>>>>>>>>> >>>>>>>>>>>>> Best regards, >>>>>>>>>>>>> Alex soto >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> On Feb 1, 2019, at 12:57 PM, Jean-Baptiste Onofré >>>>>>>>> <[email protected] <mailto:[email protected]> >>>>>>>>> <mailto:[email protected]> >>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>> >>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I just did a blog where I'm using a derby datasource (on Karaf >>>>>>>>>>>>>> 4.2.3-SNAPSHOT): http://blog.nanthrax.net/?p=874 >>>>>>>>>>>>>> >>>>>>>>>>>>>> If you install an unique provider (only derby or derbyclient, >>>>>>>>> but not >>>>>>>>>>>>>> both), then, it should work. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I did: >>>>>>>>>>>>>> >>>>>>>>>>>>>> feature:install pax-jdbc-derbyclient >>>>>>>>>>>>>> >>>>>>>>>>>>>> then: >>>>>>>>>>>>>> >>>>>>>>>>>>>> jdbc:ds-create -dn derbyclient -url >>>>>>>>> jdbc:derby://localhost:1527/foo foo >>>>>>>>>>>>>> And I see only one datasource service: >>>>>>>>>>>>>> >>>>>>>>>>>>>> karaf@root()> jdbc:ds-list >>>>>>>>>>>>>> Name │ Service Id │ Product │ Version >>>>>>>>> │ URL >>>>>>>>>>>>>> │ Status >>>>>>>>>>>>>> >>>>>>>>> >>>>>>>>> ────┼────────────┼──────────────┼───────────────────────┼───────────────────────────────────────┼─────── >>>>>>>>>>>>>> foo │ 91 │ Apache Derby │ 10.14.2.0 - (1828579) │ >>>>>>>>>>>>>> jdbc:derby://localhost:1527/scheduler │ OK >>>>>>>>>>>>>> >>>>>>>>>>>>>> In your case, it seems that pax-jdbc-config is in cause, like it >>>>>>>>>>>>>> bootstrap two db. How to do you provision the datasource cfg >>>>>>>>> file ? >>>>>>>>>>>>>> Using a feature or by dropping the file in the etc folder ? >>>>>>>>>>>>>> >>>>>>>>>>>>>> I will check when my build is complete. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Regards >>>>>>>>>>>>>> JB >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 01/02/2019 18:48, Alex Soto wrote: >>>>>>>>>>>>>>> Hello, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I am experiencing a problem where /pax-jdbc-config/ (version >>>>>>>>> 1.3.0) is >>>>>>>>>>>>>>> creating duplicate Derby Data Sources. I copy the data source >>>>>>>>>>>>>>> configuration file to Karaf's /etc/ /directory, after a while I >>>>>>>>>>>>>>> can see >>>>>>>>>>>>>>> it created two identical Data Sources. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The configuration file: /org.ops4j.datasource-querier.cfg/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> osgi.jdbc.driver.name <http://osgi.jdbc.driver.name> = derby >>>>>>>>>>>>>>> dataSourceName=querier >>>>>>>>>>>>>>> url=jdbc:derby:derby-data/querier;create=true >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> user=enquery >>>>>>>>>>>>>>> password=XXXX >>>>>>>>>>>>>>> databaseName=querier >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ops4j.preHook=querierDB >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> It creates duplicate Data Sources: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> karaf@root()> service:list DataSource >>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> [javax.sql.DataSource] >>>>>>>>>>>>>>> ---------------------- >>>>>>>>>>>>>>> databaseName = querier >>>>>>>>>>>>>>> dataSourceName = querier >>>>>>>>>>>>>>> felix.fileinstall.filename = >>>>>>>>>>>>>>> file:/Users/asoto/test/etc/org.ops4j.datasource-querier.cfg >>>>>>>>>>>>>>> ops4j.preHook = querierDB >>>>>>>>>>>>>>> osgi.jdbc.driver.name <http://osgi.jdbc.driver.name> = derby >>>>>>>>>>>>>>> osgi.jndi.service.name <http://osgi.jndi.service.name> = >>>>>>>>> querier >>>>>>>>>>>>>>> password = enquery >>>>>>>>>>>>>>> pax.jdbc.managed = true >>>>>>>>>>>>>>> service.bundleid = 169 >>>>>>>>>>>>>>> service.factoryPid = org.ops4j.datasource >>>>>>>>>>>>>>> service.id <http://service.id> <http://service.id> >>>>>>>>>>>>>>> <http://service.id/> <http://service.id/> <http://service.id >>>>>>>>>>>>>>> <http://service.id/> >>>>>>>>>>>>>>> <http://service.id/>> = 238 >>>>>>>>>>>>>>> service.pid = >>>>>>>>>>>>>>> org.ops4j.datasource.b161e768-e5f8-40bb-b19f-40cab9111316 >>>>>>>>>>>>>>> service.scope = singleton >>>>>>>>>>>>>>> url = jdbc:derby:derby-data/querier;create=true >>>>>>>>>>>>>>> user = enquery >>>>>>>>>>>>>>> Provided by : >>>>>>>>>>>>>>> OPS4J Pax JDBC Config (169) >>>>>>>>>>>>>>> Used by: >>>>>>>>>>>>>>> JPA (22) >>>>>>>>>>>>>>> [javax.sql.DataSource] >>>>>>>>>>>>>>> ---------------------- >>>>>>>>>>>>>>> databaseName = querier >>>>>>>>>>>>>>> dataSourceName = querier >>>>>>>>>>>>>>> felix.fileinstall.filename >>>>>>>>>>>>>>> = file:/Users/asoto/test/etc/org.ops4j.datasource-querier.cfg >>>>>>>>>>>>>>> ops4j.preHook = querierDB >>>>>>>>>>>>>>> osgi.jdbc.driver.name <http://osgi.jdbc.driver.name> = derby >>>>>>>>>>>>>>> osgi.jndi.service.name <http://osgi.jndi.service.name> = >>>>>>>>> querier >>>>>>>>>>>>>>> password = enquery >>>>>>>>>>>>>>> pax.jdbc.managed = true >>>>>>>>>>>>>>> service.bundleid = 169 >>>>>>>>>>>>>>> service.factoryPid = org.ops4j.datasource >>>>>>>>>>>>>>> service.id <http://service.id> <http://service.id> >>>>>>>>>>>>>>> <http://service.id/> <http://service.id/> <http://service.id >>>>>>>>>>>>>>> <http://service.id/> >>>>>>>>>>>>>>> <http://service.id/>> = 282 >>>>>>>>>>>>>>> service.pid = >>>>>>>>>>>>>>> org.ops4j.datasource.b161e768-e5f8-40bb-b19f-40cab9111316 >>>>>>>>>>>>>>> service.scope = singleton >>>>>>>>>>>>>>> url = jdbc:derby:derby-data/querier;create=true >>>>>>>>>>>>>>> user = enquery >>>>>>>>>>>>>>> Provided by : >>>>>>>>>>>>>>> OPS4J Pax JDBC Config (169) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Also: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> karaf@root()> jdbc:ds-list >>>>>>>>>>>>>>> Name │ Product │ Version │ URL >>>>>>>>> >>>>>>>>>>>>>>> │ Status >>>>>>>>>>>>>>> >>>>>>>>> >>>>>>>>> ────────┼──────────────┼───────────────────────┼───────────────────────────────┼─────── >>>>>>>>>>>>>>> querier │ Apache Derby │ 10.13.1.1 - (1765088) │ >>>>>>>>>>>>>>> jdbc:derby:derby-data/querier │ OK >>>>>>>>>>>>>>> querier │ Apache Derby │ 10.13.1.1 - (1765088) │ >>>>>>>>>>>>>>> jdbc:derby:derby-data/querier │ OK >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I think it must be specific to Derby, as the same works fine >>>>>>>>> if the >>>>>>>>>>>>>>> driver is MariaDB. >>>>>>>>>>>>>>> Any clues? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Best regards, >>>>>>>>>>>>>>> Alex soto >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Jean-Baptiste Onofré >>>>>>>>>>>>>> [email protected] <mailto:[email protected]> >>>>>>>>>>>>>> <mailto:[email protected]> >>>>>>>>>>>>>> <mailto:[email protected] >>>>>>>>> <mailto:[email protected]>> <mailto:[email protected] >>>>>>>>> <mailto:[email protected]>> >>>>>>>>>>>>>> http://blog.nanthrax.net >>>>>>>>>>>>>> <http://blog.nanthrax.net/> <http://blog.nanthrax.net/> >>>>>>>>>>>>>> Talend - http://www.talend.com >>>>>>>>>>>>>> <http://www.talend.com/> <http://www.talend.com/> >>>>>>>>>>>> -- >>>>>>>>>>>> Jean-Baptiste Onofré >>>>>>>>>>>> [email protected] <mailto:[email protected]> >>>>>>>>>>>> <mailto:[email protected]> >>>>>>>>> <mailto:[email protected] <mailto:[email protected]>> >>>>>>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/> >>>>>>>>>>>> Talend - http://www.talend.com <http://www.talend.com/> >>>>>>>>> -- >>>>>>>>> Jean-Baptiste Onofré >>>>>>>>> [email protected] <mailto:[email protected]> >>>>>>>>> <mailto:[email protected]> >>>>>>>>> http://blog.nanthrax.net >>>>>>>>> Talend - http://www.talend.com >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> -- >>>>>>>>> Christian Schneider >>>>>>>>> http://www.liquid-reality.de >>>>>>>>> >>>>>>>>> Computer Scientist >>>>>>>>> http://www.adobe.com >>>>>>>>> >>>>>>>> -- >>>>>>>> Jean-Baptiste Onofré >>>>>>>> [email protected] <mailto:[email protected]> >>>>>>>> http://blog.nanthrax.net >>>>>>>> Talend - http://www.talend.com
signature.asc
Description: OpenPGP digital signature
