Hi Lei, with INTERNAL, you can just use a JDBC url pointing to an external database, but connection pooling and transaction management is managed by ODE. If you use EXTERNAL, you need to configure tomcat to bind a JDBC connection to JNDI and configure your own (e.g. Bitronix) transaction manager, which is a bit more tricky.
The stacktrace indicates that you're still connecting to Derby although the guide you're referring to is related to MySQL. Perhaps the configured jdbc url is wrong? HTH, Tammo On Wed, Sep 11, 2013 at 3:27 PM, 王雷 <[email protected]> wrote: > Hi Tammo, > > > I configure the mysql using method specified here: > http://ode.apache.org/war-deployment.html > Everything seems working fine. > However, if I change step 4 specified in the above link from > ode-axis2.db.mode=EXTERNAL > to ode-axis2.db.mode=INTERNAL. > I have the following exception: > > > 13:24:13,217 ERROR [Database] Error starting connection pool for > "jdbc:derby://localhost/ode". > Unable to load driver class: org.apache.derby.jdbc.ClientDriver > at > org.tranql.connector.jdbc.JDBCDriverMCF.setDriver(JDBCDriverMCF.java:147) > at > org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:221) > at > org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:172) > at > org.apache.ode.il.dbutil.Database.initDataSource(Database.java:152) > at org.apache.ode.il.dbutil.Database.start(Database.java:100) > at > org.apache.ode.axis2.ODEServer.initDataSource(ODEServer.java:267) > at org.apache.ode.axis2.ODEServer.init(ODEServer.java:174) > at org.apache.ode.axis2.ODEServer.init(ODEServer.java:133) > at > org.apache.ode.axis2.hooks.ODEAxisServlet.init(ODEAxisServlet.java:53) > at > > org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) > at > > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) > at > org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:724) > Caused by: java.lang.ClassNotFoundException: > org.apache.derby.jdbc.ClientDriver > at > > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) > at > > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:190) > at > org.tranql.connector.jdbc.JDBCDriverMCF.loadClass(JDBCDriverMCF.java:310) > at > org.tranql.connector.jdbc.JDBCDriverMCF.setDriver(JDBCDriverMCF.java:144) > ... 25 more > 13:24:13,219 ERROR [ODEServer] Error starting database connections, check > the database configuration! > org.apache.ode.il.dbutil.DatabaseConfigException: Error starting connection > pool for "jdbc:derby://localhost/ode". > at > org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:235) > at > org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:172) > at > org.apache.ode.il.dbutil.Database.initDataSource(Database.java:152) > at org.apache.ode.il.dbutil.Database.start(Database.java:100) > at > org.apache.ode.axis2.ODEServer.initDataSource(ODEServer.java:267) > at org.apache.ode.axis2.ODEServer.init(ODEServer.java:174) > at org.apache.ode.axis2.ODEServer.init(ODEServer.java:133) > at > org.apache.ode.axis2.hooks.ODEAxisServlet.init(ODEAxisServlet.java:53) > at > > org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) > at > > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) > at > org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:724) > Caused by: Unable to load driver class: org.apache.derby.jdbc.ClientDriver > at > org.tranql.connector.jdbc.JDBCDriverMCF.setDriver(JDBCDriverMCF.java:147) > at > org.apache.ode.il.dbutil.Database.initInternalDb(Database.java:221) > ... 24 more > Caused by: java.lang.ClassNotFoundException: > org.apache.derby.jdbc.ClientDriver > at > > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) > at > > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:190) > at > org.tranql.connector.jdbc.JDBCDriverMCF.loadClass(JDBCDriverMCF.java:310) > at > org.tranql.connector.jdbc.JDBCDriverMCF.setDriver(JDBCDriverMCF.java:144) > ... 25 more > ^CSep 11, 2013 1:24:13 PM org.apache.coyote.AbstractProtocol pause > INFO: Pausing ProtocolHandler ["http-bio-8080"] > Exception in thread "Thread-3" java.lang.NullPointerException > at org.apache.ode.axis2.ODEServer.shutDown(ODEServer.java:390) > at > org.apache.ode.axis2.hooks.ODEAxisServlet.stop(ODEAxisServlet.java:68) > at > org.apache.axis2.engine.ListenerManager.stop(ListenerManager.java:153) > at > > org.apache.axis2.engine.ListenerManager$ListenerManagerShutdownThread.run(ListenerManager.java:243) > Exception in thread "Thread-6" java.lang.NullPointerException > at org.apache.ode.axis2.ODEServer.shutDown(ODEServer.java:390) > at > org.apache.ode.axis2.hooks.ODEAxisServlet.stop(ODEAxisServlet.java:68) > at > org.apache.axis2.engine.ListenerManager.stop(ListenerManager.java:153) > at > > org.apache.axis2.engine.ListenerManager$ListenerManagerShutdownThread.run(ListenerManager.java:243) > > You mentioned in the previous mail that when using MySQL, a transaction > manager should be properly configured or internal mode of the database > should be used. Is there any document specifying this? > Thanks for helping. > > Best Regards > > > > Lei Wang > > > On Wed, Sep 11, 2013 at 3:08 PM, 王雷 <[email protected]> wrote: > > > Hi Tammo, > > > > > > By saying INTERNAL MODE OF ODE, do you mean that in the config file: > > ode-axis2.properties under webapps/ode/WEB-INF/conf, > > The following entry shoud be configured: > > ode-axis2.db.mode=INTERNAL > > Thanks for helping. > > > > > > Best Regards > > > > > > > > Lei Wang > > > > > > > > On Tue, Sep 10, 2013 at 5:09 PM, Tammo van Lessen <[email protected] > >wrote: > > > >> Hi Lei, > >> > >> yes, the performance with MySQL will be much better. But it is important > >> that you properly configure a transaction manager or use the internal > mode > >> of ODE, which should do this for you. > >> > >> Can you please share the exceptions you get when redeploying the > process? > >> Without that its difficult to answer. > >> > >> Thanks, > >> Tammo > >> > >> > >> On Tue, Sep 10, 2013 at 5:06 PM, 王雷 <[email protected]> wrote: > >> > >> > Dear ODEers, > >> > > >> > > >> > I have a few questions about using Apache ODE together with Mysql > >> > database: > >> > > >> > 1 Will there be a better performance using MySQL database than the > >> embedded > >> > database (Derby) ? > >> > 2 About process update: I deploy a NEW process package, everything > >> > works fine. If I undeploy a existing process package and re-deploy an > >> > update package with the same package name. There is malfunction: the > >> > updated package just doesn't work out with some exceptions reported > >> > (different exceptions which are process specific). However, if I drop > >> and > >> > re-create the database and execute a engine restart, then I start a > new > >> > deployment again, the process package works fine. Any suggestions on > the > >> > process version update? > >> > > >> > Problem 2 exists only if I use mysql database, Derby works fine when I > >> > execute a process update. When doing the undeploy, I have tried the > web > >> > service interface (invoke SOAP11 based Process Deployment API) and I > >> have > >> > tried deleting the process folder directly from the WEB-INF\processes > >> > folder. In both case, if I deploy a update process package, problem > >> exists. > >> > > >> > Thanks in advance for helping. > >> > > >> > > >> > > >> > Best Regards > >> > > >> > > >> > Lei Wang > >> > > >> > >> > >> > >> -- > >> Tammo van Lessen - http://www.taval.de > >> > > > > > -- Tammo van Lessen - http://www.taval.de
