Created by: null on 22-03-2006 06:04:44 PM I see Tomcat throw this exception and I wonder if you could tell me a little about it. Here are the top couple of lines:
java.lang.IllegalStateException: getAttribute: Session already invalidated at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:954) at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:171) at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:171) at com.audium.server.session.c.do(Unknown Source)
This is an unusual error, and the error only occurs when a back end server connected to an XML server that my custom Java class is talking to does not respond to a request to validate an account number.
The XML gateway is up - but the back end it talks to is down. It takes a few seconds before the back end times out, but the XML request is blocking on the server - and in the custom class.
Clearly a timing issue, but I would like to control the application a little better.
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 22-03-2006 06:36:02 PM Hi Geoff,
If a voice browser requests a VoiceXML page from your voice application and that request takes a while to fulfill, it is possible that the voice browser is timing out and invalidating the session. This would result in the error message you are seeing, when an attempt is made to access data from the invalidated session.
You can modify how long the voice browser waits before timing out by modifying the "fetchtimeout" VoiceXML property. If you have more than one element that may take a while to produce VoiceXML, you may wish to define this property in the root document (right-click on your project in Studio and choose "Properties", then select the Root Doc Settings page). However, if only one element experiences this delay, then you can set this property in the table on that element's Settings tab. For more information about this property, please refer to section 6.1.1 of the VoiceXML 2.0 specification.
Regards, Vance
Subject: RE: Exception - Session already invalidated Replied by: null on 18-04-2006 12:03:51 AM Vance,
Sorry about the delay in getting back to you. I just implemented this now, mainly because the back-end system I've been talking to has never been down since that day. It's down now.
The default must be 10 seconds - I guess this is set in the gateway. My back end query times out after 30 secs, so I set the voice XML property fetchtimeout on the Root Document in the Project Properties to 40s.
It worked beautifully. Now, I wonder how you can make the caller hear "tick, tick, tick" while they wait. ;-)
Thanks a lot.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 20-04-2006 09:53:06 PM Hi Geoff,
By setting the VoiceXML "fetchaudio" property, you can specify a "tick, tick, tick" audio file, music, or any other audio file of your choosing to be played during lengthy VoiceXML page requests. If you would like this to apply to your entire application, you can set this property in your application's root document by right-clicking on your project in Audium Studio, choosing "Properties" and adding it to the table on the root doc settings page.
If you would like to include fetchaudio support in your custom elements rather than to the whole app, please refer to the following Audium Knowledge Base article:
Subject: RE: Exception - Session already invalidated Replied by: null on 27-04-2006 03:56:27 PM By setting the VoiceXML "fetchaudio" property, you can specify a "tick, tick, tick" audio file, music, or any other audio file of your choosing to be played during lengthy VoiceXML page requests. [/quote:966a45a36b] Wow Vance, that is very cool. Thanks a lot. I tip my hat to the VXML designers.
I tested this using the project properties rather than inside a custom element - as the custom elements I have that do call out to an XML gateway with requests and responses (where the delay can occur) are not voice elements - they are derived from Audium Action elements. I had to put a Java thread sleep in the class to test it out, as the XML gateway is responding rapidly these days.
I also read the standard and played around with "fetchaudiodelay" to tune the experience. This stuff is really clever and so easy to implement in Audium. Thanks again.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: null on 02-05-2006 05:25:05 PM I've detected a problem with the fetchaudio property if I set it as a root document VXML property.
This causes a caller who hangs up in the application to still be considered to be active. The activity log is not written out for that call, and status (Server\admin\status.bat) shows that the caller is still there. If another caller comes in and hangs up, they are also considered as active. I tried this a few times until I had Audium run out of ports and queue the calls. Then the count on calls in queue kept going up.
I could not really believe that this was the problem, so I took these properties into a very simple application (which does NOT need fetchaudio at all) and duplicated the problem.
I tried in turn with removing fetchtimeout, fetchaudiodelay and fetchaudio - and it's definitely the fetchaudio property that is causing calls to stay in the application. The others are OK.
Have you ever seen something like this? Has most of your usage of fetchaudio been within a VXML element rather than as a root document property?
I've had to take fetchaudio out of the customer's application.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 08-05-2006 03:31:29 PM Hi Geoff,
We have successfully developed applications which include a fetchaudio property in their root document, and have not seen the issue you are describing. If possible, please ZIP your test application which demonstrates the issue and attach it to this thread so that we can attempt to replicate this behavior. Any additional information about the environment (e.g. voice browser version, app server, etc.) you were using when this issue occurred would be helpful as well.
Regards, Vance
Subject: RE: Exception - Session already invalidated Replied by: null on 08-05-2006 09:12:38 PM OK Vance, I'll upload it. It was a really simple menu designed to test another problem - the entry of '9' with the Cisco DFTMF gateway - and I just patched the fetchaudio stuff in.
How do I give you the version information? This is on Cisco Customer Voice Portal VoiceXML Server v3.0_01, Distributed by Cisco Systems, Inc. under license from Audium Corporation.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 16-05-2006 06:19:21 PM Hi Geoff,
Thank you for providing a sample application which causes this issue in your environment. We setup a test environment in which to replicate this issue, but the issue did not occur. Here are the steps we took:
1) We imported the application into CVP Studio, and edited the fetchaudio URI (in the root doc settings) to point to an audio file we have on one of our servers.
2) We changed all Audio elements to use TTS instead of recorded audio, since we do not have those audio files.
3) We deployed the application, and started Tomcat.
4) We called in to our Cisco voice browser 4 times. For 3 calls, we hung up after the first prompt. For 1 call we completed the application (and allowed the subdialog to return).
5) We checked the output of the status script, from within AUDIUM_HOME/admin. It did not show any active callers.
6) We checked the call log, it listed all 4 test calls. We also checked the foo activity log, and it also showed log entries for all 4 calls.
If you find additional information which may be related to why this problem occurs in your environment, or if you replicate it in another environment, please let us know and we would be glad to continue to investigate this issue.
I appreciate the efforts you took on my behalf, but I was pretty sure it would not show any problems for you, since the application is just so simple.
I made an even simpler application with just one Audio element with a longish WAV file out on the Media Store and it exhibits the same problem. status shows that the caller is still active. I tried this several times, adding the fetchaudio property and removing it, as I could not quite believe the behaviour and wanted to be sure. Of course I had to stop and restart Tomcat each time since I could not update the application, because it thought it had a caller still using the old copy.
I stopped Tomcat, turned on debugging in web.xml, and captured the trace for you. This is simply me coming in and hanging up while the longish WAV file is playing.
If there is anything further I can do to help you, let me know.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: null on 17-05-2006 04:48:46 PM Vance, I just did another test where the audio element uses TTS, and not a WAV file on the Media Store, and I have the same problem when I hang up.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 30-05-2006 10:04:13 PM Hi Geoff,
Thank you for providing debug logs for your two test runs. Each of these logs holds something interesting:
The final page of VoiceXML that was sent to the voice browser during this call was to initiate the transfer (to phone number 987654) that would end the call in CVP VXML Server. However, we can see in this log that there is no final request (note the submit in the filled block that should be called) which would indicate that this transfer succeeded. It is likely that since this final request was not received, the session is not released. However, it is not expected that setting fetchaudio would cause this to fail.
which is not valid VoiceXML. Was this log file manually edited at any point?
If you still have them, could you please attach the activity and error logs for these two calls (or for similar calls) to a reply? We would like to see what is logged for the end of each call. Note that if the sessions hang (as is expected, based on your results so far), you should set the logging cache size to a very small number such as 1 character, so that the logs are written to even if the session is not closed. This can be configured in AUDIUM_HOME/conf/global_config.xml. Note that we do not recommend running a production server with the log cache size set to 1, as this will result in excessive disk access. However, this value is useful for testing purposes.
Regards, Vance
Subject: RE: Exception - Session already invalidated Replied by: null on 06-06-2006 12:40:55 AM Vance,
The file wasn't manually edited. Let me take your advice and try to run the test again. Sorry for the delay.
I ran the test on a simple app (shown in the attached JPG) twice. Debug is on and the character buffering is set to 1. I hung up the call while the audio file was playing.
The first test is with no fetchxxx VXML settings. The second test is with the three fetchxxx params - timeout, audio, audiominimum.
Status shows that the second call is still in the application.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: Vance Vagell on 06-06-2006 02:41:05 PM Hi Geoff,
Thank you for providing detailed debug information. It is useful to compare the successful call to the problematic one. In the successful call, we can see that the voice browser properly throws a telephone.disconnect event, and submits back to CVP VXML Server (lines 487 - 491):
[code:1:bd6544d8e0]------ Request HTTP Arguments ----- Parameter Name = "audium_vxmlLog" Parameter Value #0 = "" Parameter Name = "audium_action" Parameter Value #0 = "hangup" Parameter Name = "audium_type" Parameter Value #0 = "telephone.disconnect"[/code:1:bd6544d8e0]
However, while the problematic call sends the same VoiceXML, it does not subsequently receive a request regarding the telephone.disconnect event. Based on this information, it seems as though your environment does not properly throw (at least) this event when fetchaudio is enabled. We recommend that you contact Cisco TAC to debug this issue further, since it may be a voice browser setting issue or other environment problem.
Regards, Vance
Subject: RE: Exception - Session already invalidated Replied by: null on 06-06-2006 03:39:37 PM OK Vance,
Let me check that I have the voice gateway correctly configured. I just want to make sure I have the special setting for 987654.
If all is well, I will submit a service request to TAC. Thanks for taking the time to look into this.
Regards, Geoff
Subject: RE: Exception - Session already invalidated Replied by: null on 06-06-2006 03:45:09 PM One thing I meant to add ... when I looked at the activity log later, on we do see the timeout. 30 minutes as expected
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: