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

Reply via email to