You may want to ALTER ODE_MESSAGE_EXCHANGE and set the FAILURE field to a varchar(4000) or anything larger than 256.
alex On Thu, Mar 26, 2009 at 8:08 AM, Nadège Griesser <[email protected]>wrote: > 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<http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess%7DDynamicInvokeProcess-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<http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess%7DDynamicInvokeProcess-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(...)<http://www.se.uni-hannover.de/soa08/tutorial/DynamicInvokeProcess%7DMultilingualHelloWorld.process%28...%29>} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.myrolemessageexchangeimpl$responsefut...@417348timed > out when waiting for a response! > > > > Thanks a lot! > > Regards, > Nadège > >
