Hi, I am attempting to use Apache ODE on an Oracle DB (10g) with Hibernate 3.2.0 GA, because with OpenJPA I am bothered by this bug https://issues.apache.org/jira/browse/ODE-400, which impacts the performance too much. Also, patching is not an option for me at the moment. So I thought maybe the org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl wouldn't have this bug and I configured my Tomcat with Bitronix to use the Hibernate and loaded the ode-1.3.4-hib-oracle schema. Apache ODE now outputs the following to the console: 09:50:56,410 INFO [ODEServer] Using DAO Connection Factory class org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl. Hibernate: select this_.NAME as NAME77_0_, this_.deployer as deployer77_0_, this_.DEPLOYDT as DEPLOYDT77_0_, this_.DIR as DIR77_0_ from STORE_DU this_ 09:50:56,616 WARN [JDBCExceptionReporter] SQL Error: 942, SQLState: 42000 09:50:56,617 ERROR [JDBCExceptionReporter] ORA-00942: table or view does not exist Which is true, because STORE_DU does not exist in the schema. Using hibernate.hbm2ddl.auto=update creates the tables that are missing in the schema. Then when all seemed ok and I fired a request at my process the following exceptions were thrown: org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: org.hibernate.HibernateException: CGLIB Enhancement failed: org.apache.ode.daohib.bpel.hobj.HMessage at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl. java:478) at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl. java:450) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleSche duler.java:523) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleSche duler.java:517) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc heduler.java:289) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc heduler.java:244) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleSchedu ler.java:517) at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleSchedu ler.java:501) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto r.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja va:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.hibernate.HibernateException: CGLIB Enhancement failed: org.apache.ode.daohib.bpel.hobj.HMessage at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxy(CGLIBLazyIn itializer.java:102) at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.getProxy(CGLIBProxyFact ory.java:49) at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEn tityTuplizer.java:379) at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(Abstr actEntityPersister.java:3388) at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary( DefaultLoadEventListener.java:255) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoad EventListener.java:189) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEvent Listener.java:101) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266) at org.hibernate.type.EntityType.resolve(EntityType.java:303) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116 ) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java :842) at org.hibernate.loader.Loader.doQuery(Loader.java:717) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loade r.java:224) at org.hibernate.loader.Loader.loadEntity(Loader.java:1784) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoad er.java:48) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoad er.java:42) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEnti tyPersister.java:2977) at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(Defa ultLoadEventListener.java:393) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEvent Listener.java:374) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventLi stener.java:137) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoad EventListener.java:193) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEvent Listener.java:101) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808) at org.apache.ode.daohib.bpel.BpelDAOConnectionImpl.getMessageExchange(Bpel DAOConnectionImpl.java:101) at org.apache.ode.bpel.engine.BpelEngineImpl.setMessageExchangeProcess(Bpel EngineImpl.java:215) at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl. java:445) ... 12 more Caused by: java.lang.IllegalArgumentException: class org.apache.ode.daohib.bpel.hobj.HMessage$$EnhancerByCGLIB$$d480ba16 is not an enhanced class at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:618) at net.sf.cglib.proxy.Enhancer.setThreadCallbacks(Enhancer.java:609) at net.sf.cglib.proxy.Enhancer.registerCallbacks(Enhancer.java:578) at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxy(CGLIBLazyIn itializer.java:98) ... 41 more To fix this, I removed the cglib-2.1.3 from ODE's lib directory. Now, the following exception is thrown: 10:43:53,055 ERROR [SimpleScheduler] Error loading immediate jobs from database. java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String at org.apache.ode.scheduler.simple.JdbcDelegate.dequeueImmediate(JdbcDelega te.java:318) at org.apache.ode.scheduler.simple.SimpleScheduler$6.call(SimpleScheduler.j ava:704) at org.apache.ode.scheduler.simple.SimpleScheduler$6.call(SimpleScheduler.j ava:702) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc heduler.java:289) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc heduler.java:244) at org.apache.ode.scheduler.simple.SimpleScheduler.doLoadImmediate(SimpleSc heduler.java:702) at org.apache.ode.scheduler.simple.SimpleScheduler.recoverStaleNode(SimpleS cheduler.java:815) at org.apache.ode.scheduler.simple.SimpleScheduler$CheckStaleNodes.run(Simp leScheduler.java:913) at org.apache.ode.scheduler.simple.SimpleScheduler$5.call(SimpleScheduler.j ava:663) at org.apache.ode.scheduler.simple.SimpleScheduler$5.call(SimpleScheduler.j ava:660) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto r.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja va:908) at java.lang.Thread.run(Thread.java:662) Might this be related to this issue: https://issues.apache.org/jira/i#browse/ODE-1012 <https://issues.apache.org/jira/i#browse/ODE-1012> ? Setting the Dorg.apache.ode.disable.deferredProcessInstanceCleanup=true in CATALINA_OPTS didn't fix it though. My process does work, despite the exception so I guess it's 'OK' for now. But it seems the published DB schema isn't compatible with the code on several places. Best regards, Michael
-------------------------Disclaimer------------------------------- De informatie verzonden met dit e-mailbericht (en bijlagen) is uitsluitend bestemd voor de geadresseerde(n) en zij die van de geadresseerde(n) toestemming kregen dit bericht te lezen. Gebruik door anderen dan geadresseerde(n) is verboden. De informatie in dit e-mailbericht (en bijlagen) kan vertrouwelijk van aard zijn en kan binnen het bereik vallen van een geheimhoudingsplicht en een verschoningsrecht. -------------------------------------------------------------------
