I just fixed the QName mapping in the MessageExchange DAO. This type isn't supported as is by OpenJPA so we usually persist it as a String but there was still some QNames fields hanging around. Those gets persisted as blobs which isn't quite right. The strange thing is it should have worked in the same way on Derby and MySQL, the object should just have been serialized.
Anyway try an update and update the schema, we'll see how it goes. Thanks, Matthieu On 3/21/07, Janne Savukoski <[EMAIL PROTECTED]> wrote:
Hi, Ok, I was kind of expecting that. Feels a bit that yet another component tries to be too smart, but I guess OpenJPA has legitimate reasons for that infererence. I'm generating the schemas with the mappingtool -ant task, both attached. I haven't yet compared those with the derby-schemas, but I guess that's my next step. Of course, all help is very much appreciated. The three retries take only a 1/10sec total, but I'll try to find out what's causing the delay as soon as I'll get the system working, if it still occurs. br, janne From: "Matthieu Riou" <[EMAIL PROTECTED]> > I don't have your problem with OpenJPA datatypes but it's most probably > related to your database schema. I think OpenJPA does some type inference > depending on the type of the column you read from and if the type inferred > doesn't match with the one in your object... Anyway how did you generate the > MySQL schema? Could you send it so I can check what could be wrong with it? > > Also for the 20s delay it's possibly a consequence of the exception. When a > commit goes wrong we have some retry logic happening. What you see is > probably the last retry. Make sure that you don't have another transaction > before that started right away but failed as well. > > Cheers, > Matthieu > > On 3/21/07, Janne Savukoski <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > I'm getting this most blocking openjpa datatype recognition/parsing > > error which I can't get around; the log snippet can be found below. > > Anyone has any ideas if the problem is in my settings or in the > > dao-jpa? > > > > Btw., why it takes 20sec for a committed message exchange to actually > > start processing? As in below the corresponding ODE_MESSAGE etc. > > inserts were committed 09:56:37. The quartz seems to be just sitting > > there a while. I haven't yet profiled the situation as I guess someone > > here already has the answer? > > > > Best, janne > > > > > > 09:56:56,192 | INFO | pool-20-thread-1 | JobRunShell | > > org.quartz.core.JobRunShell 208 | Job > > DEFAULT.bjlegq3v0drmtwckvf3xjk threw a JobExecutionException: > > org.quartz.JobExecutionException: > > org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: > > <0|false|0.9.7-incubating-SNAPSHOT> > > org.apache.openjpa.persistence.PersistenceException: [B cannot be cast > > to javax.xml.namespace.QName [See nested exception: > > org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: > > <0|false|0.9.7-incubating-SNAPSHOT> > > org.apache.openjpa.persistence.PersistenceException: [B cannot be cast > > to javax.xml.namespace.QName] > > at > > org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute( > > QuartzSchedulerImpl.java:353) > > at > > org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute( > > QuartzSchedulerImpl.java:367) > > at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute( > > JobImpl.java:32) > > at org.quartz.core.JobRunShell.run(JobRunShell.java:203) > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > ThreadPoolExecutor.java:885) > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > > ThreadPoolExecutor.java:907) > > at java.lang.Thread.run(Thread.java:619) > > * Nested Exception (Underlying Cause) --------------- > > org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: > > <0|false|0.9.7-incubating-SNAPSHOT> > > org.apache.openjpa.persistence.PersistenceException: [B cannot be cast > > to javax.xml.namespace.QName > > at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob( > > BpelEngineImpl.java:321) > > at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob( > > BpelServerImpl.java:384) > > at > > org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute( > > QuartzSchedulerImpl.java:351) > > at > > org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute( > > QuartzSchedulerImpl.java:367) > > at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute( > > JobImpl.java:32) > > at org.quartz.core.JobRunShell.run(JobRunShell.java:203) > > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask( > > ThreadPoolExecutor.java:885) > > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > > ThreadPoolExecutor.java:907) > > at java.lang.Thread.run(Thread.java:619) > > Caused by: <0|false|0.9.7-incubating-SNAPSHOT> > > org.apache.openjpa.persistence.PersistenceException: [B cannot be cast > > to javax.xml.namespace.QName > > at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java :854) > > at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java :748) > > at org.apache.openjpa.kernel.DelegatingBroker.find( > > DelegatingBroker.java:169) > > at org.apache.openjpa.persistence.EntityManagerImpl.find( > > EntityManagerImpl.java:346) > > at org.apache.ode.dao.jpa.BPELDAOConnectionImpl.getMessageExchange > > (BPELDAOConnectionImpl.java:127) > > at org.apache.ode.bpel.engine.BpelEngineImpl.getMessageExchange( > > BpelEngineImpl.java:143) > > at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent( > > BpelProcess.java:279) > > at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob( > > BpelEngineImpl.java:311) > > ... 8 more > > Caused by: java.lang.ClassCastException: [B cannot be cast to > > javax.xml.namespace.QName > > at org.apache.ode.dao.jpa.MessageExchangeDAOImpl.pcReplaceField( > > MessageExchangeDAOImpl.java) > > at org.apache.openjpa.kernel.StateManagerImpl.replaceField( > > StateManagerImpl.java:2868) > > at org.apache.openjpa.kernel.StateManagerImpl.storeObjectField ( > > StateManagerImpl.java:2322) > > at org.apache.openjpa.kernel.StateManagerImpl.storeField( > > StateManagerImpl.java:2418) > > at org.apache.openjpa.kernel.StateManagerImpl.storeField( > > StateManagerImpl.java:731) > > at org.apache.openjpa.kernel.StateManagerImpl.store( > > StateManagerImpl.java:727) > > at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load( > > HandlerFieldStrategy.java:171) > > at org.apache.openjpa.jdbc.meta.FieldMapping.load( > > FieldMapping.java:785) > > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load( > > JDBCStoreManager.java:830) > > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load( > > JDBCStoreManager.java:782) > > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState > > (JDBCStoreManager.java:333) > > at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize( > > JDBCStoreManager.java:252) > > at org.apache.openjpa.kernel.DelegatingStoreManager.initialize ( > > DelegatingStoreManager.java:108) > > at org.apache.openjpa.kernel.ROPStoreManager.initialize( > > ROPStoreManager.java:54) > > at org.apache.openjpa.kernel.BrokerImpl.initialize( BrokerImpl.java > > :873) > > at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java :831) > > ... 15 more > > 09:56:56,202 | DEBUG | pool-20-thread-1 | JTAJobRunShell | > > cheduler.quartz.JTAJobRunShell 95 | UserTransaction marked for > > rollback only. > > 09:56:56,202 | DEBUG | pool-20-thread-1 | JTAJobRunShell | > > cheduler.quartz.JTAJobRunShell 113 | Rollbacking transaction. > > 09:56:56,202 | DEBUG | pool-20-thread-1 | JobStoreJTA | > > l.scheduler.quartz.JobStoreJTA 1181 | triggeredJobComplete: > > trigger=Trigger 'DEFAULT.bjlegq3v0drmtwckvf3xjk.trigger': > > triggerClass: 'org.quartz.SimpleTrigger isVolatile: false calendar: > > 'null' misfireInstruction: 0 nextFireTime: null, > > jobName=DEFAULT.bjlegq3v0drmtwckvf3xjk, triggerInstCode=3
