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.
-------------------------------------------------------------------

Reply via email to