Hi, all,
Here's another strange transaction rollback I'm having while working
with Derby through Geronimo.
The question is, if this is an application problem that makes
inconsistent requests, or it could be a hole in Geronimo/TranQL/Derby
connector/database?
javax.ejb.TransactionRolledbackLocalException
at
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolic
y.java:123)
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transaction
ContextInterceptor.java:80)
at
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor
.java:82)
at
org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
at
org.openejb.proxy.EJBMethodInterceptor.intercept(EJBMethodInterceptor.ja
va:129)
at
org.openejb.proxy.EntityEJBLocalHome$$EnhancerByCGLIB$$1414c90a.create(<
generated>)
at
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB.scheduleWorkOrd
er(WorkOrderSesEJB.java:91)
at
org.spec.jappserver.mfg.workorderses.ejb.WorkOrderSesEJB$$FastClassByCGL
IB$$278087a9.invoke(<generated>)
at
org.openejb.dispatch.AbstractMethodOperation.invoke(AbstractMethodOperat
ion.java:90)
at
org.openejb.slsb.BusinessMethod.execute(BusinessMethod.java:67)
at
org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java
:72)
at
org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(Compo
nentContextInterceptor.java:56)
at
org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInter
ceptor.java:81)
at
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolic
y.java:119)
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transaction
ContextInterceptor.java:80)
at
org.openejb.slsb.StatelessInstanceInterceptor.invoke(StatelessInstanceIn
terceptor.java:98)
at
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolic
y.java:140)
at
org.openejb.transaction.TransactionContextInterceptor.invoke(Transaction
ContextInterceptor.java:80)
at
org.openejb.SystemExceptionInterceptor.invoke(SystemExceptionInterceptor
.java:82)
at
org.openejb.GenericEJBContainer.invoke(GenericEJBContainer.java:238)
at
org.openejb.server.ejbd.EjbRequestHandler.invoke(EjbRequestHandler.java:
297)
at
org.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(Ej
bRequestHandler.java:325)
at
org.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandl
er.java:196)
at org.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:150)
at org.openejb.server.ejbd.EjbServer.service(EjbServer.java:87)
at
org.openejb.server.ejbd.EjbServer$$FastClassByCGLIB$$d379d2ff.invoke(<ge
nerated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInv
oker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.j
ava:118)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.jav
a:800)
at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperation
Invoker.java:36)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyM
ethodInterceptor.java:96)
at
org.activeio.xnet.ServerService$$EnhancerByCGLIB$$e7051bdf.service(<gene
rated>)
at org.activeio.xnet.ServicePool$2.run(ServicePool.java:67)
at org.activeio.xnet.ServicePool$3.run(ServicePool.java:90)
at
org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(Threa
dPool.java:138)
at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:534)
Caused by: javax.ejb.EJBException: Unable to load data for field
at
org.tranql.ejb.CMPFieldFaultTransform.get(CMPFieldFaultTransform.java:66
)
at org.tranql.ejb.OneToManyCMR.set(OneToManyCMR.java:77)
at
org.tranql.ejb.SingleValuedCMRAccessor.set(SingleValuedCMRAccessor.java:
66)
at
org.openejb.entity.cmp.CMPSetter.invokeInstance(CMPSetter.java:74)
at
org.openejb.entity.cmp.CMPMethodInterceptor.intercept(CMPMethodIntercept
or.java:75)
at
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB$$EnhancerByCG
LIB$$438dc6db.setAssembly(<generated>)
at
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB.ejbPostCreate
(WorkOrderCmp20EJB.java:239)
at
org.spec.jappserver.mfg.workorderent.ejb.WorkOrderCmp20EJB$$FastClassByC
GLIB$$5801b0f0.invoke(<generated>)
at
org.openejb.entity.cmp.CMPCreateMethod.execute(CMPCreateMethod.java:213)
at
org.openejb.dispatch.DispatchInterceptor.invoke(DispatchInterceptor.java
:72)
at
org.apache.geronimo.naming.java.ComponentContextInterceptor.invoke(Compo
nentContextInterceptor.java:56)
at
org.openejb.ConnectionTrackingInterceptor.invoke(ConnectionTrackingInter
ceptor.java:81)
at
org.openejb.entity.EntityInstanceInterceptor.invoke(EntityInstanceInterc
eptor.java:136)
at
org.openejb.entity.cmp.InTxCacheInterceptor.invoke(InTxCacheInterceptor.
java:90)
at
org.openejb.transaction.ContainerPolicy$TxRequired.invoke(ContainerPolic
y.java:119)
... 38 more
Caused by: org.tranql.ql.QueryException: Error executing statement:
SELECT T.WO_NUMBER FROM M_WORKORDER T WHERE T.WO_ASSEMBLY_ID = ?
at
org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:79)
at
org.tranql.ejb.MultiValuedCMRFaultHandler.fieldFault(MultiValuedCMRFault
Handler.java:65)
at
org.tranql.ejb.CMPFieldFaultTransform.get(CMPFieldFaultTransform.java:54
)
... 52 more
Caused by: SQL Exception: A lock could not be obtained due to a
deadlock, cycle of locks and waiters is:
Lock : ROW, M_WORKORDER, (3,30)
Waiting XID : {5683, S} , APP, SELECT T.WO_NUMBER FROM M_WORKORDER T
WHERE T.WO_ASSEMBLY_ID = ?
Granted XID : {5684, X}
Lock : ROW, M_WORKORDER, (3,31)
Waiting XID : {5684, S} , APP, SELECT T.WO_NUMBER FROM M_WORKORDER T
WHERE T.WO_ASSEMBLY_ID = ?
Granted XID : {5683, X}
. The selected victim is XID : 5683.
at
org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Un
known Source)
at
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unkno
wn Source)
at
org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
Source)
at
org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown
Source)
at
org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknow
n Source)
at
org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown
Source)
at
org.tranql.connector.jdbc.ResultSetHandle.next(ResultSetHandle.java:791)
at
org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:69)
... 54 more
Vasily Zakharov
Intel Middleware Products Division