Hi, We are trying to handle timeouts in a BPEL process that invokes a service.
When the apache server (where the service is) is shut down, the status of the Invoke activity becomes FAILURE. -> That's OK. When the apache server is started, but the service not deployed, we get a timeout. The status of the Invoke activity remains STARTED and the stacktrace below is displayed. -> We do not get any failure but a database problem occurs. Is there a way to catch this timeout in order to recover the activity later? DEBUG - GeronimoLog.debug(66) | Sending a message containing wsa endpoints in headers for session passing. DEBUG - GeronimoLog.debug(66) | <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8081/HelloWorldServices/services/EnglishHelloWorldService</addr:To><addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">getMessage</addr:Action><addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing"><addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address></addr:ReplyTo><addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr45bn3bxcvnb</addr:MessageID></soapenv:Header><soapenv:Body /></soapenv:Envelope> ERROR - GeronimoLog.error(108) | Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3bxcvna [PID {http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess}DynamicInvokeProcess-4] calling [email protected](...)}): Transport error: 404 Error: Not Found org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:298) at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:192) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) at org.apache.ode.axis2.SoapExternalService$1 $1.call(SoapExternalService.java:162) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) DEBUG - GeronimoLog.debug(66) | replyWithFailure mex=hqejbhcnphr45bn3bxcvna failureType=COMMUNICATION_ERROR description=Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3bxcvna [PID {http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess}DynamicInvokeProcess-4] calling [email protected](...)}): Transport error: 404 Error: Not Found details=null DEBUG - GeronimoLog.debug(66) | create work event for mex=hqejbhcnphr45bn3bxcvna WARN - GeronimoLog.warn(96) | connectionErrorOccurred called with null java.sql.SQLDataException: A truncation error was encountered trying to shrink VARCHAR 'Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3b&' to length 255. 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:1398) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120) at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72) at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543) at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:106) at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:56) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:549) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2007) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1905) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1823) 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:181) at org.apache.ode.scheduler.simple.SimpleScheduler $1.call(SimpleScheduler.java:155) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) Caused by: java.sql.SQLException: A truncation error was encountered trying to shrink VARCHAR 'Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3b&' to length 255. 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 22001: A truncation error was encountered trying to shrink VARCHAR 'Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3b&' to length 255. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.types.SQLChar.hasNonBlankChars(Unknown Source) at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown Source) at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown Source) at org.apache.derby.iapi.types.DataTypeDescriptor.normalize(Unknown Source) at org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(Unknown Source) at org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown Source) at org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(Unknown Source) at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown Source) at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) ... 35 more WARN - GeronimoLog.warn(96) | Unexpected exception from beforeCompletion; transaction will roll back <openjpa-1.1.0-r422266:657916 fatal general error> org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back. See the nested exceptions for details on the errors that occurred. at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2160) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2007) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1905) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1823) 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:181) at org.apache.ode.scheduler.simple.SimpleScheduler $1.call(SimpleScheduler.java:155) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) Caused by: <openjpa-1.1.0-r422266:657916 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: A truncation error was encountered trying to shrink VARCHAR 'Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3b&' to length 255. {prepstmnt 28736225 UPDATE ODE_MESSAGE_EXCHANGE SET FAULT_EXPLANATION = ?, STATUS = ? WHERE MESSAGE_EXCHANGE_ID = ? [params=(String) Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3bxcvna [P..., (String) FAILURE, (String) hqejbhcnphr45bn3bxcvna]} [code=20000, state=22001] FailedObject: org.apache.ode.dao.jpa.MessageExchangeDAOImpl-hqejbhcnphr45bn3bxcvna at org.apache.openjpa.jdbc.sql.SQLExceptions.narrow(SQLExceptions.java:146) at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4150) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:72) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:131) at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72) at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543) at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:106) at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:56) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:549) at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130) ... 15 more Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: A truncation error was encountered trying to shrink VARCHAR 'Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3b&' to length 255. {prepstmnt 28736225 UPDATE ODE_MESSAGE_EXCHANGE SET FAULT_EXPLANATION = ?, STATUS = ? WHERE MESSAGE_EXCHANGE_ID = ? [params=(String) Error sending message (mex={PartnerRoleMex#hqejbhcnphr45bn3bxcvna [P..., (String) FAILURE, (String) hqejbhcnphr45bn3bxcvna]} [code=20000, state=22001] at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access $700(LoggingConnectionDecorator.java:57) at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator $LoggingConnection $LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866) at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager $CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1398) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120) ... 25 more ERROR - GeronimoLog.error(108) | An exception occured while executing an isolated transaction, the transaction is going to be abandoned. javax.transaction.RollbackException: Unable to commit: transaction marked for rollback at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:271) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238) at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:181) at org.apache.ode.scheduler.simple.SimpleScheduler $1.call(SimpleScheduler.java:155) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) ERROR - GeronimoLog.error(104) | Timeout or execution error when waiting for response to MEX {MyRoleMex#hqejbhcnphr45bn3bxcvn7 [Client hqejbhcnphr45bn3bxcvn6] calling {http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess}MultilingualHelloWorld.process(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.myrolemessageexchangeimpl$responsefut...@417348 timed out when waiting for a response! Thanks a lot! Regards, Nadège
