axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jayachandra <jayachan...@gmail.com>
Subject Re: [Axis2] invokeBlocking() problems in Axis2
Date Fri, 02 Sep 2005 12:07:36 GMT
Ajith and Saminda, thanks for replying. However, the problem still persists
@Ajith!
The response is almost instantaneous. Also to be on safe side I did make the 
while loop run hundred times longer by increasing the Thread.sleep(100 times 
the original value). Still no luck!
@Saminda!
Saminda, nowhere in my application I was calling a call.close() at all. Even 
in the execution flow of underlying Axis2 code nowhere call.close() was 
called either. There is no close() method in the Call.java in my code base. 
Did that get added very recently?
 Some notes of my observations of what Axis2 is doing on the client side.
(i) CommonsHTTPSender is the underlying handler that did the job of finally 
sending the content to the endpoint and also it did get back a valid 
response as an inputstream
(ii) Next in its processResponse() method commonsHTTPSender put the response 
inputstream into msgContext as the value of TRANSPORT_IN property.
 msgContext.getOperationContext().setProperty(
MessageContext.TRANSPORT_IN,
in);
 (iii) But nowhere after that, this TRANSPORT_IN property is read by anyone 
to read and update the call back.
 Shouldn't there be an invocation of receiver to read in the response 
inputstream somewhere *after* engine.send() is fired.
 Can someone look into this or suggest some work around, if any, for now
 Thanks
Jayachandra
 On 9/2/05, Ajith Ranabahu <ajith.ranabahu@gmail.com> wrote: 
> 
> Hmmm..
> Perhaps the timeout is not enough. We definiltely have to introduce a 
> configurable timeout here. BTW have you tried increasing the timeout ? 
> 
> On 9/2/05, jayachandra <jayachandra@gmail.com > wrote: 
> > 
> > Hi!
> >  When I invoked a call.invokeBlocking() routine, internally it is 
> > simulated using invokeNonBlocking() using a call back mechanism. However, 
> > even though the server sent a valid response (this I verified with TCPmon) 
> > the call back class is not getting properly updated with the result. Is this 
> > a known issue? Can someone clarify this. The error I am getting is... 
> >  
> > Time out while waiting for the server to send the response
> > 
> > at org.apache.axis2.clientapi.InOutMEPClient.invokeBlocking(
> > InOutMEPClient.java:144)
> > 
> > at org.apache.axis2.clientapi.Call.invokeBlocking(Call.java:89)
> > 
> > at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java
> > :72)
> > which essentially is arising from the code block in InOutMEPClient.javawhich looks
like follows. (Line 
> > Numbers 135 to 146 of InOutMEPClient.invokeBlocking() method) ::
> >   while (!callback.isComplete()) {
> > //wait till the reponse arrives
> > if (index++ < 20) {
> > try {
> > Thread.sleep(100);
> > } catch (InterruptedException e) { 
> > throw new AxisFault(e);
> > }
> > } else {
> > throw new AxisFault(Messages.getMessage("responseTimeOut")); << This is 
> > the reported error
> > }
> > }
> > Any help in this regard will be much appreciated.
> >  Thanks
> > Jayachandra
> > -- 
> > -- Jaya 
> > 
> 
> 
> 
> -- 
> Ajith Ranabahu 




-- 
-- Jaya

Mime
View raw message