Hi,

I have two processes:
GenericInvoke - this process invoke AddTask method from external
webservice and waiting for response (invoke method GetResult from
external webservice every 15 s until receive response). I set endpoint
from url in input variable.
MainProcess - invoke 10 times (sometimes 2 parallels invoke in flow)
GenericInvoke.

If I start one instance it always finish sucessfull.
If I start 10 instances with embedded databse it finsh sucessfull, but
It takes a lot of time and I get a lot of errors "A lock could not be
obtained due to a deadlock" (errors in attachment).
If I start 10 instances with external databse (SQL Server) 5-6 finish
succesfull and 4-5 instances stuck with state active (errors in
attachment).

I think that apache dosn't support deadlock for Sql Server.
I have to use SQL Server. Can you advise how can I fix this problem?

Thanks,

Rafal
09:48:11,125 WARN  [MyRoleMessageExchangeImpl] Transaction is rolled back on 
sending back the response.
09:48:11,235 WARN  [GeronimoConnectionEventListener] connectionErrorOccurred 
called with null
java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a 
deadlock, cycle of locks and waiters is:
Lock : ROW, ODE_EVENT, (2,6)
  Waiting XID : {1103, U} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1073, U} 
Lock : ROW, ODE_EVENT, (80,23)
  Waiting XID : {1073, S} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1103, X} 
. The selected victim is XID : 1103.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
Source)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
Source)
        at 
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
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.EmbedStatement.executeStatement(Unknown 
Source)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
Source)
        at 
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
        at 
org.tranql.connector.jdbc.PreparedStatementHandle.executeUpdate(PreparedStatementHandle.java:103)
        at 
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:864)
        at 
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1586)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeUpdate(JDBCStoreQuery.java:671)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeBulkOperation(JDBCStoreQuery.java:513)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeDelete(JDBCStoreQuery.java:433)
        at 
org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeDelete(ExpressionStoreQuery.java:686)
        at org.apache.openjpa.kernel.QueryImpl.delete(QueryImpl.java:1008)
        at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:850)
        at org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:876)
        at 
org.apache.openjpa.kernel.DelegatingQuery.deleteAll(DelegatingQuery.java:557)
        at 
org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:330)
        at 
org.apache.ode.dao.jpa.ProcessInstanceDAOImpl.deleteEvents(ProcessInstanceDAOImpl.java:228)
        at 
org.apache.ode.dao.jpa.ProcessInstanceDAOImpl.delete(ProcessInstanceDAOImpl.java:179)
        at 
org.apache.ode.bpel.engine.BpelRuntimeContextImpl$2.beforeCompletion(BpelRuntimeContextImpl.java:281)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$2.beforeCompletion(SimpleScheduler.java:333)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:498)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
        at 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:291)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: A lock could not be obtained due to a 
deadlock, cycle of locks and waiters is:
Lock : ROW, ODE_EVENT, (2,6)
  Waiting XID : {1103, U} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1073, U} 
Lock : ROW, ODE_EVENT, (80,23)
  Waiting XID : {1073, S} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1103, X} 
. The selected victim is XID : 1103.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
 Source)
        ... 41 more
Caused by: ERROR 40001: A lock could not be obtained due to a deadlock, cycle 
of locks and waiters is:
Lock : ROW, ODE_EVENT, (2,6)
  Waiting XID : {1103, U} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1073, U} 
Lock : ROW, ODE_EVENT, (80,23)
  Waiting XID : {1073, S} , SA, DELETE FROM ODE_EVENT WHERE EVENT_ID IN (SELECT 
DISTINCT t0.EVENT_ID FROM ODE_EVENT t0 WHERE (t0.INSTANCE_ID = ?))
  Granted XID : {1103, X} 
. The selected victim is XID : 1103.
        at org.apache.derby.iapi.error.StandardException.newException(Unknown 
Source)
        at org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown 
Source)
        at 
org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown 
Source)
        at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown 
Source)
        at 
org.apache.derby.impl.store.raw.xact.RowLocking2.lockRecordForRead(Unknown 
Source)
        at 
org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.lockPositionForRead(Unknown
 Source)
        at 
org.apache.derby.impl.store.access.conglomerate.GenericScanController.fetchRows(Unknown
 Source)
        at org.apache.derby.impl.store.access.heap.HeapScan.fetchNext(Unknown 
Source)
        at 
org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(Unknown 
Source)
        at org.apache.derby.impl.sql.execute.JoinResultSet.openCore(Unknown 
Source)
        at 
org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown 
Source)
        at org.apache.derby.impl.sql.execute.DeleteResultSet.setup(Unknown 
Source)
        at org.apache.derby.impl.sql.execute.DeleteResultSet.open(Unknown 
Source)
        at 
org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
        at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
Source)
        ... 35 more

        
10:11:27,303 ERROR [Transaction] Unexpected exception rolling back 
org.apache.geronimo.connector.outbound.LocalXAResource@1f41559; continuing with 
rollback
javax.transaction.xa.XAException
        at 
org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:88)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:581)
        at 
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:267)
        at 
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:291)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: Unable to rollback
        at 
org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:113)
        at 
org.tranql.connector.AbstractManagedConnection$LocalTransactionImpl.rollback(AbstractManagedConnection.java:196)
        at 
org.apache.geronimo.connector.outbound.LocalXAResource.rollback(LocalXAResource.java:86)
        ... 12 more
Caused by: java.sql.SQLNonTransientConnectionException: No current connection.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(Unknown 
Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.setupContextStack(Unknown 
Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.rollback(Unknown Source)
        at 
org.tranql.connector.jdbc.ManagedJDBCConnection.localTransactionRollback(ManagedJDBCConnection.java:111)
        ... 14 more
Caused by: java.sql.SQLException: No current connection.
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
        at 
org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
 Source)
        ... 22 more
08:27:22,653 ERROR [BpelEngineImpl] Scheduled job failed; jobDetail=JobDetails( 
instanceId: null mexId: hqejbhcnphr62k889qhh2k 
processId: {http://www.mg.gov.pl}Invoke-2 type: INVOKE_INTERNAL channel: null 
correlatorId: null correlationKeySet: null 
retryCount: null inMem: false detailsExt: {})
java.lang.NullPointerException
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:212)
        at 
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:279)
        at 
org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:426)
        at 
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:460)
        at 
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:450)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:518)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
        at 
org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        
        
        
08:33:51,097 ERROR [INVOKE] Failure during invoke:
        
08:38:10,967 ERROR [BpelRuntimeContextImpl] Invalid response state for mex 
hqejbhcnphr62k889qhj6n: ASYNC
        
08:36:27,331 WARN  [ExternalService] Fault response: faultType=(unkown)
<?xml version='1.0' encoding='utf-8'?><s:Envelope 
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";><s:Body><s:Fault>
<faultcode 
xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher";>a:InternalServiceFault</faultcode>
<faultstring xml:lang="pl-PL">The server was unable to process the request due 
to an internal error.  For more information about the error, 
either turn on IncludeExceptionDetailInFaults (either from 
ServiceBehaviorAttribute or from the &lt;serviceDebug> configuration behavior) 
on the server in order to send the exception information back to the client, or 
turn on tracing as per the Microsoft .NET Framework 3.0 
SDK documentation and inspect the server trace 
logs.</faultstring></s:Fault></s:Body></s:Envelope>

Reply via email to