2 Replies Latest reply on Aug 21, 2008 5:24 AM by ddziadek

    Deploying Apache ODE on FuseESB 4.0 ...

    ddziadek

      Hi all,

       

      I'm trying to deploy Apache ODE JBI component (ver. 1.2) on FuseESB 4.0 but an error is occur:

       

      10:54:28,593 | ERROR | Timer-0          | OdeLifeCycle                     | org.apache.ode.jbi.OdeLifeCycle   178 | Database configuration error.

      *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:246)

      at org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl.doRegister(ComponentRegistryImpl.java:97)

      at org.apache.servicemix.jbi.runtime.impl.ComponentRegistryImpl.doRegister(ComponentRegistryImpl.java:37)

      at org.apache.servicemix.nmr.core.ServiceRegistryImpl.register(ServiceRegistryImpl.java:47)

      at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at org.springframework.osgi.util.internal.ReflectionUtils.invokeMethod(ReflectionUtils.java:108)

      at org.springframework.osgi.config.CustomListenerAdapterUtils.invokeCustomMethods(CustomListenerAdapterUtils.java:154)

      at org.springframework.osgi.config.OsgiServiceLifecycleListenerAdapter.bind(OsgiServiceLifecycleListenerAdapter.java:186)

      at org.springframework.osgi.service.importer.support.internal.util.OsgiServiceBindingUtils.callListenersBind(OsgiServiceBindingUtils.java:50)

      at org.springframework.osgi.service.importer.support.internal.collection.OsgiServiceCollection$Listener.serviceChanged(OsgiServiceCollection.java:106)

      at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:765)

      at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:623)

      at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:554)

      at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3612)

      at org.apache.felix.framework.Felix.access$000(Felix.java:36)

      at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:626)

      at org.apache.felix.framework.ServiceRegistry.fireServiceChanged(ServiceRegistry.java:559)

      at org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:75)

      at org.apache.felix.framework.Felix.registerService(Felix.java:2702)

      at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:254)

      at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:232)

      at org.apache.servicemix.jbi.deployer.impl.Deployer.registerService(Deployer.java:427)

      at org.apache.servicemix.jbi.deployer.impl.Deployer.installComponent(Deployer.java:246)

      at org.apache.servicemix.jbi.deployer.impl.Deployer.register(Deployer.java:168)

      at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.onBundleStarted(AbstractBundleWatcher.java:80)

      at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher.access$000(AbstractBundleWatcher.java:34)

      at org.apache.servicemix.jbi.deployer.impl.AbstractBundleWatcher$1.bundleChanged(AbstractBundleWatcher.java:53)

      at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:690)

      at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:619)

      at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:532)

      at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3601)

      at org.apache.felix.framework.Felix._startBundle(Felix.java:1616)

      at org.apache.felix.framework.Felix.startBundle(Felix.java:1544)

      at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:371)

      at org.apache.servicemix.kernel.filemonitor.FileMonitor.refreshPackagesAndStartOrUpdateBundles(FileMonitor.java:519)

      at org.apache.servicemix.kernel.filemonitor.FileMonitor.onFilesChanged(FileMonitor.java:285)

      at org.apache.servicemix.kernel.filemonitor.FileMonitor$1.filesChanged(FileMonitor.java:132)

      at org.apache.servicemix.kernel.filemonitor.Scanner.reportBulkChanges(Scanner.java:433)

      at org.apache.servicemix.kernel.filemonitor.Scanner.reportDifferences(Scanner.java:322)

      at org.apache.servicemix.kernel.filemonitor.Scanner.scan(Scanner.java:254)

      at org.apache.servicemix.kernel.filemonitor.Scanner$1.run(Scanner.java:214)

      at java.util.TimerThread.mainLoop(Timer.java:512)

      at java.util.TimerThread.run(Timer.java:462)

       

      And some code from Database.java (around line 179):

       

      private void initInternalDb(String url, String driverClass, String username,String password) throws DatabaseConfigException {

      __log.debug("Creating connection pool for " + url + " with driver " + driverClass);

       

      if (!(_txm instanceof RecoverableTransactionManager)) {

      throw new RuntimeException("TransactionManager is not recoverable.");

      }

      ...

      }

       

      It seems that org.apache.servicemix.transaction-4.0.0.0-fuse.jar bundle exposes TransactionManager:

      ...

       

       

      Looking for answers.

       

      Best regards,

      Darek

        • 1. Re: Deploying Apache ODE on FuseESB 4.0 ...
          gertv

          Darek,

           

          You should be able to resolve this by adding the configuration file you specified. You probably want to add Geronimo's RecoverableTransactionManager to the list of interfaces on your transactionManager reference.

           

          This problem was the reason we excluded the loan-broker-bpel demo from the ESB4 preview.  It should be included there again once we get this resolved (https://issues.apache.org/activemq/browse/SMX4-51).

           

          Regards,

           

          Gert

          • 2. Re: Deploying Apache ODE on FuseESB 4.0 ...
            ddziadek

            Hi,

             

            Thanks for your answer :). In my opinion ODE's context (see OdeLifeCycle.java and OdeContext.java at Apache ODE source code) can not to obtain reference to TransactionManager object from javax.jbi.component.ComponentContext instance. But I'm not sure that is a configuration problem (modified jndi.xml doesn't solve this problem).

            So, waiting for SMX4-51 ...

             

            Regards,

             

            Darek

             

            Edited by: ddziadek on Aug 21, 2008 11:23 AM