[ https://issues.apache.org/jira/browse/TUSCANY-1208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Sebastien Delfino updated TUSCANY-1208: -------------------------------------------- Fix Version/s: (was: Java-SCA-Next) Java-SCA-1.0 > Service using callback and methods that don't perform callback over WS > binding hangs > ------------------------------------------------------------------------------------ > > Key: TUSCANY-1208 > URL: https://issues.apache.org/jira/browse/TUSCANY-1208 > Project: Tuscany > Issue Type: Bug > Components: Java SCA Axis Binding Extension > Affects Versions: Java-SCA-0.90 > Reporter: Lou Amodeo > Assignee: Simon Nash > Fix For: Java-SCA-1.0 > > > I have a service exposed over the WS binding. The service interface has > multiple methods. Some methods perform callbacks and others do not. The > methods that performs the callback functions while the others hang and > eventually timeout. It appears that the binding is expecting all methods to > perform a > callback. It appears that other have observed the same behavior. I have not > seen this same behavior with the default binding. > From muhwas: > yeah i had the same problem so i thought we can't > inculde sync and async method together in one > Interface. so i created two interfaces and two service > one sync and other async. > From post to list: > Service using WS Binding with Calback and multiple methods on interface hangs > Lou Amodeo > Thu, 12 Apr 2007 18:55:05 -0700 > I am seeing a hang when using the Web Services bindings to access a service > that has a callback reference. In this particular case the service expose > several methods on the interface. Only one of the methods invokes a method > on the callback reference. The method that invokes the callback functions > fine. The issue is with the other methods on the interface. It appears > that the binding is expecting every request to the service to perfrom a > callback. What I have found is the latch associated with doneSignal.await() > is never freed up. Also since this method did not use invoke a callback > not sure why it would be using an Async message receiver rather than the > Sync version? Its almost as if the binding is anticipating a mandatory > callback rather than waiting for one to actually be called. After about 5 > minutes the request will timeout. Thanks for your help. > *public* Axis2ServiceInOutAsyncMessageReceiver() { > } > *public* *final* *void* receive(*final* MessageContext messageCtx) { > *try* { > Object messageId = messageCtx.getMessageID(); > *if* (messageId == *null*) { > messageId = *new* MessageId(); > } > // Now use message id as index to context to be used by callback > // target invoker > CountDownLatch doneSignal = *new* CountDownLatch(1); > InvocationContext invCtx = > service.*new* InvocationContext(messageCtx, operation, > getSOAPFactory(messageCtx), doneSignal); > service.addMapping(messageId, invCtx); > invokeBusinessLogic(messageCtx, messageId); > *try* { > doneSignal.await(); > } *catch*(InterruptedException e) { > e.printStackTrace(); > Timeout occurs after 5 minutes: > [4/12/07 21:49:43:529 EDT] 0000002b SystemErr R Exception in thread "Axis2 > Task" *org.apache.tuscany.spi.wire.InvocationRuntimeException*: > org.apache.axis2.AxisFault: Async operation timed out; nested exception is: > *java.net.SocketTimeoutException*: Async operation timed out > [4/12/07 21:49:43:529 EDT] 0000002b SystemErr R at > org.apache.tuscany.binding.axis2.Axis2ReferenceCallback.onError(* > Axis2ReferenceCallback.java:54*) > [4/12/07 21:49:43:539 EDT] 0000002b SystemErr R at > org.apache.axis2.description.OutInAxisOperationClient$NonBlockingInvocationWorker.run > (*OutInAxisOperation.java:417*) > [4/12/07 21:49:43:539 EDT] 0000002b SystemErr R at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask > (*ThreadPoolExecutor.java:665*) > [4/12/07 21:49:43:539 EDT] 0000002b SystemErr R at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run > (*ThreadPoolExecutor.java:690*) > [4/12/07 21:49:43:539 EDT] 0000002b SystemErr R at java.lang.Thread.run(* > Thread.java:803*) > [4/12/07 21:49:43:539 EDT] 0000002b SystemErr R Caused by: > org.apache.axis2.AxisFault: Async operation timed out; nested exception is: > *java.net.SocketTimeoutException*: Async operation timed out > at com.ibm.ws.websvcs.transport.http.HTTPTransportSender.invoke(* > HTTPTransportSender.java:271*) > at org.apache.axis2.engine.AxisEngine.send(*AxisEngine.java:464*) > at org.apache.axis2.description.OutInAxisOperationClient.send(* > OutInAxisOperation.java:325*) > at > org.apache.axis2.description.OutInAxisOperationClient$NonBlockingInvocationWorker.run > (*OutInAxisOperation.java:400*) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask > (*ThreadPoolExecutor.java:665*) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run > (*ThreadPoolExecutor.java:690*) > at java.lang.Thread.run(*Thread.java:803*) > Caused by: *java.net.SocketTimeoutException*: Async operation timed out > } > } *catch* (AxisFault e) { > // log.error(e); > } > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]