You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by krishna <kr...@lac.uic.edu> on 2005/07/07 01:34:46 UTC

how to set a timeout ??

Hi All

The problem why the Array example was failing was due to timeouts. It is 
"HTTPTransportException:Input streaming error while getting data Timed 
out waiting for SOAP message (1)." I saw a discussion in the lists about 
connection timeouts and response timeouts. Would this fall under a 
response timeout ?

I saw that Axis Java has a setTimeout functionality as part of the 
stubs. I could not find it in Stub.hpp. Does this functionality exist in 
Axis C++??

Cheers
Krishna


krishna wrote:

> Hi All
>
> I was implementing the Array example on Axis 1.6 alpha. ( echoIntArray 
> - The client sends an array of numbers and the server echoes the array 
> back to the client ). This is a RPC based webservice
>
> The example seemed to work fine for < 200 numbers. For numbers > 200 
> the I had the following problems
> I have attached the source code and stubs along with this email.
>
> Please find parts of the SOAP_RESPONSE below.
>
> 1.  The server did not echo back all the numbers
>
> <item>1159</item>
> <item>1160</item>
> <item>1161</item>
> <item>1162</item>
> <item
>
> The message stopped here it was supposed to return 10000 items.
>
> 2.   Some text - "ffb" came into the message
>
> <item>208</item>
> <item>209</item>
> <item
> ffb
> >210</item>
> <item>211</item>
> <item>212</item>
>
> <item>449</item>
> <item>450</item>
> ffb
>
> <item>451</item>
> <item>452</item>
>
> Is this a known issue? The output above was captured using ethereal.
>
> Cheers
> Krishna
>


Re: how to set a timeout - update

Posted by Samisa Abeysinghe <sa...@gmail.com>.
Even through this is hardcoded here, you can control the timeout at
stub level using setTransportTimeout() on the client stub.
Please try this.

Thanks,
Samisa...

On 7/7/05, krishna <kr...@lac.uic.edu> wrote:
> Hi
> 
> Sorry for the traffic in the mailing list.
> 
> I traced the exception back to its where it was thrown. It looks like
> the timeout is hardcoded to 100 by setting iIterationCountdown=100 in
> the HTTPTransport.cpp:655 file.
> 
> Is there a way of resetting this timeout without recompiling axis or
> Is there a way of recompiling the transport alone??
> 
> Cheers
> Krishna
> 
> krishna wrote:
> 
> > Hi All
> >
> > The problem why the Array example was failing was due to timeouts. It
> > is "HTTPTransportException:Input streaming error while getting data
> > Timed out waiting for SOAP message (1)." I saw a discussion in the
> > lists about connection timeouts and response timeouts. Would this fall
> > under a response timeout ?
> >
> > I saw that Axis Java has a setTimeout functionality as part of the
> > stubs. I could not find it in Stub.hpp. Does this functionality exist
> > in Axis C++??
> >
> > Cheers
> > Krishna
> >
> >
> > krishna wrote:
> >
> >> Hi All
> >>
> >> I was implementing the Array example on Axis 1.6 alpha. (
> >> echoIntArray - The client sends an array of numbers and the server
> >> echoes the array back to the client ). This is a RPC based webservice
> >>
> >> The example seemed to work fine for < 200 numbers. For numbers > 200
> >> the I had the following problems
> >> I have attached the source code and stubs along with this email.
> >>
> >> Please find parts of the SOAP_RESPONSE below.
> >>
> >> 1.  The server did not echo back all the numbers
> >>
> >> <item>1159</item>
> >> <item>1160</item>
> >> <item>1161</item>
> >> <item>1162</item>
> >> <item
> >>
> >> The message stopped here it was supposed to return 10000 items.
> >>
> >> 2.   Some text - "ffb" came into the message
> >>
> >> <item>208</item>
> >> <item>209</item>
> >> <item
> >> ffb
> >> >210</item>
> >> <item>211</item>
> >> <item>212</item>
> >>
> >> <item>449</item>
> >> <item>450</item>
> >> ffb
> >>
> >> <item>451</item>
> >> <item>452</item>
> >>
> >> Is this a known issue? The output above was captured using ethereal.
> >>
> >> Cheers
> >> Krishna
> >>
> >
> >
> >
> 
>

Re: Test cases that were successful now failing

Posted by John Hawkins <HA...@uk.ibm.com>.
Hi Nadir,

Just done a quick scan of our results->

Linux ->

AxisBench is working for us.
ComplexLists appears to have stopped working on the 7th. This was when a 
whole bunch of tests started failing becuase of a bad fix for Guithala. 
This fix stopped chkuning working properly but Fred put the code back - 
perhaps there are still issues in this area?
Many type refroof is also working
NestedComplex is Working
RecurseTypes is working.


Solaris->
Again - only ComplexLists isn't working.

AIX ->
Again only ComplexLists.

Hope this helps !







Nadir Amra <am...@us.ibm.com> 
17/10/2005 17:04
Please respond to
"Apache AXIS C Developers List"


To
"Apache AXIS C Developers List" <ax...@ws.apache.org>
cc

Subject
Test cases that were successful now failing






Just to let you know, test cases that were successful prior to last week 
are now failing on OS/400.  The test cases are:

AxisBench
ComplexLists
ManyTypeRefRoot
NestedComplex
RecurseTypes

I am investigating but if anyone can shed some light on this it would be 
greatly appreciated.

Nadir K. Amra



Test cases that were successful now failing

Posted by Nadir Amra <am...@us.ibm.com>.
Just to let you know, test cases that were successful prior to last week 
are now failing on OS/400.  The test cases are:

AxisBench
ComplexLists
ManyTypeRefRoot
NestedComplex
RecurseTypes

I am investigating but if anyone can shed some light on this it would be 
greatly appreciated.

Nadir K. Amra


Re: how to set a timeout - update

Posted by Fred Preston <PR...@uk.ibm.com>.
Hi Nadir,
        This could be done.  The best approach now is to create a JIRA 
suggesting this as an 'improvement'.  i.e. rather than using an iteration 
count, have the ability to change the socket to never timeout (i.e set the 
timeout to NULL in the select statement at the end of the applyTimeout 
method).  This could be done by selecting a timeout of 0 which would be 
interpreted as a 'never timeout'.  Of course if you do this and the server 
never responds or the message is incomplete, your client will never return 
unless the server closes the socket connection.  But it could be coded and 
the user could request this option knowing the consequences of message 
failure.

Regards,

Fred Preston.





Nadir Amra <am...@us.ibm.com>
07/07/2005 03:08 PM
Please respond to "Apache AXIS C Developers List"
 
        To:     "Apache AXIS C Developers List" <ax...@ws.apache.org>
        cc: 
        Subject:        Re: how to set a timeout - update

 

I have always had a problem with the iteration counter.  I mean, the 
server may be slow to respond or there could be some network glitches.  I 
think for TCP/IP connections we should always set the keep-alive flag on 
to ensure that if the server goes down the engine will know about, and 
remove the iteration counter.  Yes, their is potential that the client 
will wait indefinately, but I think that is better than returning an error 

when there really is no error.

At the very least we should set keep-alive flag in the socket.

What do you all think?

Nadir K. Amra


Fred Preston <PR...@uk.ibm.com> wrote on 07/07/2005 04:33:35 AM:

> 
> Hi Krishna, 
>         The IterationCountdown in the HTTPTransport::getBytes() 
> method is not a timeout, but is used to catch a potential deadlock 
> situation where the client is waiting for a response message from 
> the server and the server either never or only partially responds. 
> The timeout for the socket is set by HTTPTransport::setTimeout( long
> lSeconds).  The default channel timeout is 10 seconds.  To change 
> the timeout you have to be able to call the setTimeout method.  You 
> cannot do this directly from the client application because it does 
> not have access to the transport layer.  You can however change the 
> timeout at the generated stub level.  The best time to change the 
> timeout is before the invoke, i.e. 
> 
> In the stub code for the web service method, change: 
> : 
> if (AXIS_SUCCESS == m_pCall->invoke()) 
> { 
> : 
> 
> To: 
> : 
> m_pCall->getTransport()->setTimeout( 30); // Change the socket 
> timeout to 30 seconds 
> if (AXIS_SUCCESS == m_pCall->invoke()) 
> { 
> : 
> 
> Regards,
> 
> Fred Preston.
> 
> 

> 
> krishna <kr...@lac.uic.edu> 
> 07/07/2005 01:24 AM 
> Please respond to "Apache AXIS C Developers List" 
> 
> 
>         To:        Apache AXIS C Developers List 
<ax...@ws.apache.org> 
>         cc: 
>         Subject:        Re: how to set a timeout - update 
> 
> 
> 
> 
> 
> Hi
> 
> Sorry for the traffic in the mailing list.
> 
> I traced the exception back to its where it was thrown. It looks like 
> the timeout is hardcoded to 100 by setting iIterationCountdown=100 in 
> the HTTPTransport.cpp:655 file.
> 
> Is there a way of resetting this timeout without recompiling axis or
> Is there a way of recompiling the transport alone??
> 
> Cheers
> Krishna
> 
> krishna wrote:
> 
> > Hi All
> >
> > The problem why the Array example was failing was due to timeouts. It 
> > is "HTTPTransportException:Input streaming error while getting data 
> > Timed out waiting for SOAP message (1)." I saw a discussion in the 
> > lists about connection timeouts and response timeouts. Would this fall 


> > under a response timeout ?
> >
> > I saw that Axis Java has a setTimeout functionality as part of the 
> > stubs. I could not find it in Stub.hpp. Does this functionality exist 
> > in Axis C++??
> >
> > Cheers
> > Krishna
> >
> >
> > krishna wrote:
> >
> >> Hi All
> >>
> >> I was implementing the Array example on Axis 1.6 alpha. ( 
> >> echoIntArray - The client sends an array of numbers and the server 
> >> echoes the array back to the client ). This is a RPC based webservice
> >>
> >> The example seemed to work fine for < 200 numbers. For numbers > 200 
> >> the I had the following problems
> >> I have attached the source code and stubs along with this email.
> >>
> >> Please find parts of the SOAP_RESPONSE below.
> >>
> >> 1.  The server did not echo back all the numbers
> >>
> >> <item>1159</item>
> >> <item>1160</item>
> >> <item>1161</item>
> >> <item>1162</item>
> >> <item
> >>
> >> The message stopped here it was supposed to return 10000 items.
> >>
> >> 2.   Some text - "ffb" came into the message
> >>
> >> <item>208</item>
> >> <item>209</item>
> >> <item
> >> ffb
> >> >210</item>
> >> <item>211</item>
> >> <item>212</item>
> >>
> >> <item>449</item>
> >> <item>450</item>
> >> ffb
> >>
> >> <item>451</item>
> >> <item>452</item>
> >>
> >> Is this a known issue? The output above was captured using ethereal.
> >>
> >> Cheers
> >> Krishna
> >>
> >
> >
> >
> 



Re: how to set a timeout - update

Posted by Nadir Amra <am...@us.ibm.com>.
I have always had a problem with the iteration counter.  I mean, the 
server may be slow to respond or there could be some network glitches.  I 
think for TCP/IP connections we should always set the keep-alive flag on 
to ensure that if the server goes down the engine will know about, and 
remove the iteration counter.  Yes, their is potential that the client 
will wait indefinately, but I think that is better than returning an error 
when there really is no error.

At the very least we should set keep-alive flag in the socket.

What do you all think?

Nadir K. Amra


Fred Preston <PR...@uk.ibm.com> wrote on 07/07/2005 04:33:35 AM:

> 
> Hi Krishna, 
>         The IterationCountdown in the HTTPTransport::getBytes() 
> method is not a timeout, but is used to catch a potential deadlock 
> situation where the client is waiting for a response message from 
> the server and the server either never or only partially responds. 
> The timeout for the socket is set by HTTPTransport::setTimeout( long
> lSeconds).  The default channel timeout is 10 seconds.  To change 
> the timeout you have to be able to call the setTimeout method.  You 
> cannot do this directly from the client application because it does 
> not have access to the transport layer.  You can however change the 
> timeout at the generated stub level.  The best time to change the 
> timeout is before the invoke, i.e. 
> 
> In the stub code for the web service method, change: 
> : 
> if (AXIS_SUCCESS == m_pCall->invoke()) 
> { 
> : 
> 
> To: 
> : 
> m_pCall->getTransport()->setTimeout( 30); // Change the socket 
> timeout to 30 seconds 
> if (AXIS_SUCCESS == m_pCall->invoke()) 
> { 
> : 
> 
> Regards,
> 
> Fred Preston.
> 
> 

> 
> krishna <kr...@lac.uic.edu> 
> 07/07/2005 01:24 AM 
> Please respond to "Apache AXIS C Developers List" 
> 
> 
>         To:        Apache AXIS C Developers List 
<ax...@ws.apache.org> 
>         cc: 
>         Subject:        Re: how to set a timeout - update 
> 
> 
> 
> 
> 
> Hi
> 
> Sorry for the traffic in the mailing list.
> 
> I traced the exception back to its where it was thrown. It looks like 
> the timeout is hardcoded to 100 by setting iIterationCountdown=100 in 
> the HTTPTransport.cpp:655 file.
> 
> Is there a way of resetting this timeout without recompiling axis or
> Is there a way of recompiling the transport alone??
> 
> Cheers
> Krishna
> 
> krishna wrote:
> 
> > Hi All
> >
> > The problem why the Array example was failing was due to timeouts. It 
> > is "HTTPTransportException:Input streaming error while getting data 
> > Timed out waiting for SOAP message (1)." I saw a discussion in the 
> > lists about connection timeouts and response timeouts. Would this fall 

> > under a response timeout ?
> >
> > I saw that Axis Java has a setTimeout functionality as part of the 
> > stubs. I could not find it in Stub.hpp. Does this functionality exist 
> > in Axis C++??
> >
> > Cheers
> > Krishna
> >
> >
> > krishna wrote:
> >
> >> Hi All
> >>
> >> I was implementing the Array example on Axis 1.6 alpha. ( 
> >> echoIntArray - The client sends an array of numbers and the server 
> >> echoes the array back to the client ). This is a RPC based webservice
> >>
> >> The example seemed to work fine for < 200 numbers. For numbers > 200 
> >> the I had the following problems
> >> I have attached the source code and stubs along with this email.
> >>
> >> Please find parts of the SOAP_RESPONSE below.
> >>
> >> 1.  The server did not echo back all the numbers
> >>
> >> <item>1159</item>
> >> <item>1160</item>
> >> <item>1161</item>
> >> <item>1162</item>
> >> <item
> >>
> >> The message stopped here it was supposed to return 10000 items.
> >>
> >> 2.   Some text - "ffb" came into the message
> >>
> >> <item>208</item>
> >> <item>209</item>
> >> <item
> >> ffb
> >> >210</item>
> >> <item>211</item>
> >> <item>212</item>
> >>
> >> <item>449</item>
> >> <item>450</item>
> >> ffb
> >>
> >> <item>451</item>
> >> <item>452</item>
> >>
> >> Is this a known issue? The output above was captured using ethereal.
> >>
> >> Cheers
> >> Krishna
> >>
> >
> >
> >
> 


Re: how to set a timeout - update

Posted by Fred Preston <PR...@uk.ibm.com>.
Hi Krishna,
        The IterationCountdown in the HTTPTransport::getBytes() method is 
not a timeout, but is used to catch a potential deadlock situation where 
the client is waiting for a response message from the server and the 
server either never or only partially responds.  The timeout for the 
socket is set by HTTPTransport::setTimeout( long lSeconds).  The default 
channel timeout is 10 seconds.  To change the timeout you have to be able 
to call the setTimeout method.  You cannot do this directly from the 
client application because it does not have access to the transport layer. 
 You can however change the timeout at the generated stub level.  The best 
time to change the timeout is before the invoke, i.e.

In the stub code for the web service method, change:
:
if (AXIS_SUCCESS == m_pCall->invoke())
{
:

To:
:
m_pCall->getTransport()->setTimeout( 30); // Change the socket timeout to 
30 seconds
if (AXIS_SUCCESS == m_pCall->invoke())
{
:

Regards,

Fred Preston.





krishna <kr...@lac.uic.edu>
07/07/2005 01:24 AM
Please respond to "Apache AXIS C Developers List"
 
        To:     Apache AXIS C Developers List <ax...@ws.apache.org>
        cc: 
        Subject:        Re: how to set a timeout - update

 

Hi

Sorry for the traffic in the mailing list.

I traced the exception back to its where it was thrown. It looks like 
the timeout is hardcoded to 100 by setting iIterationCountdown=100 in 
the HTTPTransport.cpp:655 file.

Is there a way of resetting this timeout without recompiling axis or
Is there a way of recompiling the transport alone??

Cheers
Krishna

krishna wrote:

> Hi All
>
> The problem why the Array example was failing was due to timeouts. It 
> is "HTTPTransportException:Input streaming error while getting data 
> Timed out waiting for SOAP message (1)." I saw a discussion in the 
> lists about connection timeouts and response timeouts. Would this fall 
> under a response timeout ?
>
> I saw that Axis Java has a setTimeout functionality as part of the 
> stubs. I could not find it in Stub.hpp. Does this functionality exist 
> in Axis C++??
>
> Cheers
> Krishna
>
>
> krishna wrote:
>
>> Hi All
>>
>> I was implementing the Array example on Axis 1.6 alpha. ( 
>> echoIntArray - The client sends an array of numbers and the server 
>> echoes the array back to the client ). This is a RPC based webservice
>>
>> The example seemed to work fine for < 200 numbers. For numbers > 200 
>> the I had the following problems
>> I have attached the source code and stubs along with this email.
>>
>> Please find parts of the SOAP_RESPONSE below.
>>
>> 1.  The server did not echo back all the numbers
>>
>> <item>1159</item>
>> <item>1160</item>
>> <item>1161</item>
>> <item>1162</item>
>> <item
>>
>> The message stopped here it was supposed to return 10000 items.
>>
>> 2.   Some text - "ffb" came into the message
>>
>> <item>208</item>
>> <item>209</item>
>> <item
>> ffb
>> >210</item>
>> <item>211</item>
>> <item>212</item>
>>
>> <item>449</item>
>> <item>450</item>
>> ffb
>>
>> <item>451</item>
>> <item>452</item>
>>
>> Is this a known issue? The output above was captured using ethereal.
>>
>> Cheers
>> Krishna
>>
>
>
>



Re: how to set a timeout - update

Posted by krishna <kr...@lac.uic.edu>.
Hi

Sorry for the traffic in the mailing list.

I traced the exception back to its where it was thrown. It looks like 
the timeout is hardcoded to 100 by setting iIterationCountdown=100 in 
the HTTPTransport.cpp:655 file.

Is there a way of resetting this timeout without recompiling axis or
Is there a way of recompiling the transport alone??

Cheers
Krishna

krishna wrote:

> Hi All
>
> The problem why the Array example was failing was due to timeouts. It 
> is "HTTPTransportException:Input streaming error while getting data 
> Timed out waiting for SOAP message (1)." I saw a discussion in the 
> lists about connection timeouts and response timeouts. Would this fall 
> under a response timeout ?
>
> I saw that Axis Java has a setTimeout functionality as part of the 
> stubs. I could not find it in Stub.hpp. Does this functionality exist 
> in Axis C++??
>
> Cheers
> Krishna
>
>
> krishna wrote:
>
>> Hi All
>>
>> I was implementing the Array example on Axis 1.6 alpha. ( 
>> echoIntArray - The client sends an array of numbers and the server 
>> echoes the array back to the client ). This is a RPC based webservice
>>
>> The example seemed to work fine for < 200 numbers. For numbers > 200 
>> the I had the following problems
>> I have attached the source code and stubs along with this email.
>>
>> Please find parts of the SOAP_RESPONSE below.
>>
>> 1.  The server did not echo back all the numbers
>>
>> <item>1159</item>
>> <item>1160</item>
>> <item>1161</item>
>> <item>1162</item>
>> <item
>>
>> The message stopped here it was supposed to return 10000 items.
>>
>> 2.   Some text - "ffb" came into the message
>>
>> <item>208</item>
>> <item>209</item>
>> <item
>> ffb
>> >210</item>
>> <item>211</item>
>> <item>212</item>
>>
>> <item>449</item>
>> <item>450</item>
>> ffb
>>
>> <item>451</item>
>> <item>452</item>
>>
>> Is this a known issue? The output above was captured using ethereal.
>>
>> Cheers
>> Krishna
>>
>
>
>