karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erwin Hogeweg <erwin.hoge...@me.com>
Subject Re: Karaf-4.0.7/8 - ResolutionException for existing Aries TransactionControl Service.
Date Fri, 30 Dec 2016 19:06:20 GMT
That worked. Thanks again.

Erwin

> On Dec 30, 2016, at 13:52, Erwin Hogeweg <erwin.hogeweg@me.com> wrote:
> 
> Hi Tim,
> 
> Thanks for your reply. I’ll give that a try.
> 
> Erwin
> 
>> On Dec 30, 2016, at 13:50, Tim Ward <tim.ward@paremus.com <mailto:tim.ward@paremus.com>>
wrote:
>> 
>> David is right, 
>> 
>> there is a bug in the packaging of the Aries local transaction control service implementation.
You should just be able to use the XA implementation (which also supports local transactions)
instead, or you can wait for a fix in the snapshots, which will likely appear in the new year.
>> 
>> Tim
>> 
>> Sent from my iPhone
>> 
>> On 30 Dec 2016, at 17:24, David Jencks <david.a.jencks@gmail.com <mailto:david.a.jencks@gmail.com>>
wrote:
>> 
>>> My guess is that the bundle providing the TransactionControl service doesn’t
say so by having a Provide-Capability header for it.  For runtime resolution the effectice=active
requirements don’t matter but for at last subsystem resolution they do.
>>> 
>>> david jencks
>>> 
>>>> On Dec 30, 2016, at 6:08 AM, Erwin Hogeweg <erwin.hogeweg@me.com <mailto:erwin.hogeweg@me.com>>
wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> I am having problems getting a feature working with the TransactionControl
Service under Karaf. The error msg suggests that the service is missing or not active, but
I am at a loss of why.
>>>> 
>>>> This is the error:
>>>> [caused by: Unable to resolve com.my.persistence.repositories/1.0.0.SNAPSHOT_20161227-1454:
missing requirement [com.my.persistence.repositories/1.0.0.SNAPSHOT_20161227-1454] osgi.service;
filter:="(objectClass=org.osgi.service.transaction.control.TransactionControl)"; effective:=active]]
>>>> 
>>>> I have a DSF:
>>>> [org.osgi.service.jdbc.DataSourceFactory]
>>>> -----------------------------------------
>>>>  osgi.jdbc.driver.class = com.mysql.jdbc.Driver
>>>>  osgi.jdbc.driver.name = mysql
>>>>  service.id = 255
>>>>  service.bundleid = 162
>>>>  service.scope = singleton
>>>> Provided by : 
>>>>  OPS4J Pax JDBC MySQL Driver Adapter (162)
>>>> Used by: 
>>>>  OSGi Transaction Control JPA Resource Provider - Local Transactions (114)
>>>> 
>>>> I have a TransactionControl service:
>>>> [org.osgi.service.transaction.control.TransactionControl]
>>>> ---------------------------------------------------------
>>>>  service.vendor = Apache Aries
>>>>  service.description = The Apache Aries Transaction Control Service for Local
Transactions
>>>>  osgi.local.enabled = true
>>>>  service.id = 206
>>>>  service.bundleid = 113
>>>>  service.scope = singleton
>>>> Provided by : 
>>>>  OSGi Transaction Control Service - Local Transactions (113)
>>>> 
>>>> TransactionControl bundles appear to be running correctly:
>>>> OSGi Transaction Control Service - Local Transactions (113) provides:
>>>> ---------------------------------------------------------------------
>>>> [org.osgi.service.transaction.control.TransactionControl]
>>>> 
>>>> OSGi Transaction Control JPA Resource Provider - Local Transactions (114)
uses:
>>>> -------------------------------------------------------------------------------
>>>> [javax.persistence.spi.PersistenceProvider]
>>>> [org.osgi.service.jpa.EntityManagerFactoryBuilder]
>>>> [org.osgi.service.jdbc.DataSourceFactory]
>>>> 
>>>> OSGi Transaction Control JPA Resource Provider - Local Transactions (114)
provides:
>>>> -----------------------------------------------------------------------------------
>>>> osgi.local.enabled = true
>>>> objectClass = [org.osgi.service.transaction.control.jpa.JPAEntityManagerProviderFactory]
>>>> service.id = 207
>>>> service.bundleid = 114
>>>> service.scope = bundle
>>>> ----
>>>> service.pid = org.apache.aries.tx.control.jpa.local
>>>> objectClass = [org.osgi.service.cm.ManagedServiceFactory]
>>>> service.id = 209
>>>> service.bundleid = 114
>>>> service.scope = singleton
>>>> ----
>>>> service.pid = org.apache.aries.tx.control.jpa.local.adaeed20-19cf-4dff-9276-0afc20052ecc
>>>> user = db_user
>>>> url = jdbc:mysql://localhost:3306/my_db <mysql://localhost:3306/my_db>
>>>> service.factoryPid = org.apache.aries.tx.control.jpa.local
>>>> osgi.unit.name = my.pu
>>>> osgi.jdbc.driver.class = com.mysql.jdbc.Driver
>>>> felix.fileinstall.filename = file:<…>/apache-karaf-4.0.7/etc/org.apache.aries.tx.control.jpa.local-.cfg
>>>> databaseName = my_db
>>>> objectClass = [org.osgi.service.transaction.control.jpa.JPAEntityManagerProvider]
>>>> service.id = 256
>>>> service.bundleid = 114
>>>> service.scope = singleton
>>>> 
>>>> 
>>>> FWIW, transactionControl resolves just fine in a ‘stand-alone’ equinox
framework:
>>>> 
>>>> g! bundle 89
>>>> com.my.persistence.repositories_1.0.0.SNAPSHOT_20161227-1454 [89]
>>>> ...
>>>>   Services in use:
>>>> ...
>>>>     {org.osgi.service.transaction.control.TransactionControl}={service.vendor=Apache
Aries, service.description=The Apache Aries Transaction Control Service for Local Transactions,
osgi.local.enabled=true, service.id=70, service.bundleid=51, service.scope=singleton}
>>>> 
>>>> Does anyone have a suggestion as of what I am missing?
>>>> 
>>>> 
>>>> Thanks and a Happy new Year,
>>>> 
>>>> Erwin
>>>> 
>>> 
> 


Mime
View raw message