The current solution is to use an external datasource by editing ode-jbi.properties and defining a JNDI lookup for a datasource defined in ServiceMix.
alex On Mon, Feb 16, 2009 at 4:26 AM, Andrey Kopachevsky < [email protected]> wrote: > We want to deploy ODE to SMX 4. > To do this I downloaded SMX4, run it, and place ode-jbi-1.2.jar (which is > basically jbi component), to SMX_HOME/deploy folder. > > In log file I've found following: > > java.lang.RuntimeException: TransactionManager is not recoverable. > at org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:179) > at org.apache.ode.il.dbutil.Database.initEmbeddedDb(Database.java:232) > at org.apache.ode.il.dbutil.Database.initDataSource(Database.java:147) > at org.apache.ode.il.dbutil.Database.start(Database.java:99) > at org.apache.ode.jbi.OdeLifeCycle.initDataSource(OdeLifeCycle.java:175) > at org.apache.ode.jbi.OdeLifeCycle.init(OdeLifeCycle.java:113) > at > org.apache.servicemix.jbi.deployer.impl.ComponentImpl$ComponentWrapper.init(ComponentImpl.java:258) > > So, ODE component want transaction manager, taken from jbi component > context to be instance of > org.apache.geronimo.transaction.manager.RecoverableTransactionManager > interface. To check it ODE use instanseof operator. > > As I checked from spring-dm description file, placed in > org.apache.servicemix.transaction bundle: > > <osgi:service ref="transactionManager"> > <osgi:interfaces> > <value>javax.transaction.TransactionManager</value> > > <value>org.apache.geronimo.transaction.manager.RecoverableTransactionManager</value> > > <value>org.springframework.transaction.PlatformTransactionManager</value> > </osgi:interfaces> > </osgi:service> > > And org.apache.geronimo.transaction.manager.RecoverableTransactionManager > class exported by geronimo-transaction-2.2.jar bundle > > The problem is: ODE jbi component classloader can't import > RecoverableTransactionManager from geronimo-transaction-2.2 bundle, at least > I don't know how to do this, and of course > "transactionManager instanceof RecoverableTransactionManager" > will return false. > > So, obviously, ODE-JBI not adopted to run in SMX4 OSGI based environment. > But we are really need to get it runing. > The question is, how we can grain access to geronimo-transaction-2.2.jar > classes from inside ode-jbi component, maybe we can add corresponding > imports to JBI server bundle classloader with is parent for ode-jbi > component? > > > >
