I am having issue with the Connect Timeout value for the REST call studio element where web service is throwing cnnect timeout well before the timeout value that is set for it..
CVP/VXML Application with multiple REST elements connecting to multiple web services is deployed in CCE 12.0 environment and is running fine for the most part...
ConnecTimeout and ReadTimeout values are set to 60000 for all REST elements.
Also I have set the fetchtimeout vxml property value at the project level to 60s by following the steps in this link..
But I am still seeing that IVR is throwing Connect Timeout for web service calls exactly at 20seconds.. (Obviously this happens when web service takes more than 20sec to respond..)
I have no clue where this 20 second value is set .. Or what I more I need to change to increase the connect and read timeout to more than 20 seconds.. (Backend web service folks are saying I need to set timeouts to 30 seconds at minimum..as their web services are slow and some times take up to 30 seconds to respond.)
Would appreciate some help here..
Thanks in advance for your responses..
Before I call a REST element, I have an audio element which plays a please wait prompt. In the Settings tab of the audio element, I add a VoiceXML property, fetchtimeout, with a value of 120s there as well as what you've done. I don't know why it defaults to 20 seconds or where it's getting that value. This seemed to help with the timeouts I was getting from a web service that would return a timeout response after 60 seconds if it couldn't get the data from a mainframe. I look for "timeout" in the response and try the REST call again. Most of the time, the mainframe responds with the data the 2nd time. If I still get a "timeout" response, I give up and play an error message.
Thanks for the reply Bill.
I will give it a try. As I've mentioned I've already configured fetch timeout at project level. But May be CVP/VXML server ignores that. I will configure it at every web service call to see if it makes any difference.
My guess is that this is occuring when there is not ability to setup the TCP connection.
And that the tomcat config parameter connectionTimeout (check Windows registry for tomcat settings) is used for mutiple timeout values - so this might be why you are getting the 20 seconds.
The default value is 60000 (i.e. 60 seconds) but note that the standard server.xml that ships with Tomcat sets this to 20000 (i.e. 20 seconds)
Thanks for the reply.
Checked the server.xml and I see Timeout set to 20000 for a couple of Connector tags in server.xml. But those tags are commented. And the one connector tag which is uncommented, there is no connectionTimeout attribute for that tag.
I guess I will update that tag to add the connectionTimeout attribute to see if that makes any difference.
Question is - There are 2 server.xmls.. one for VXML Server
and the other for Call server I believe
I think I am going to have to update timeout for the VXML Server. I will give it a try tonight and if that doesn't help I will update the call server.
Thanks again !
I updated the Tomcat's server.xml in VXMLServer/Tomcat server to set the ConnectionTimeout to 60 seconds.
But that did not help. I still see the REST Element throws Timeout at 20 seconds.
I am going to try putting fetchtimeout for individual REST Elements in my entire IVR script to see if that makes any difference. But Its just taking more time because its high volume production IVR and every change needs to go through a big change process before I can deploy..