seam or richfaces losing view state param
deanhiller2000 Oct 30, 2010 9:49 AMHow can seam give a conversation timeout in 9 ms with never calling into my beans...soooo odd.
I think there is a seam or richfaces race condition or something. In production, once in every 100 requests or so, the post does not have the view state which then for some reason causes the typical conversation timeout(we have run the SAME exact script manually and seen the issue without changing the way we go through the script).
We click next button on each page. Here is a log from the previous page and the page that failed(notice the view state is missing from the thrid log line). Also, we keep displaying page.xhtml while they hit the next button but the context is different every time so essentially the 3rd log and 1st log below should match nearly exactly except one had a radio button and one had another type of gui widget.
2010-10-29 00:49:18,339 INFO [net.voicelog.web.http.LogHttpReqFilter.ajax] (http-0.0.0.0-8080-3) [player][session:l2rw__,c:,r:136] ajax url=(POST)http://xxxxx:8080/scripts/secure/client/scripter/agent/page.xhtml params={AJAXREQUEST=sync,questionForm:inputTable:0:nameDecorate:namec=on,questionForm:errorDecorator:placeForErrors=Hidden field,questionForm:faqPanelOpenedState=,questionForm=questionForm,autoScroll=,javax.faces.ViewState=j_id13,questionForm:movenext=questionForm:movenext,} button clicked=questionForm:movenext <LOTS OF BEAN METHOD CALLS IN BETWEEN HERE> 2010-10-29 00:49:18,435 INFO [net.voicelog.web.http.LogHttpReqFilter.ajax.timing] (http-0.0.0.0-8080-3) [player][session:l2rw__,c:,r:136] [time(ms):96] finished sending url=(POST)http://xxxxx:8080/scripts/secure/client/scripter/agent/page.xhtml <There is a GET request here and sql calls to db to load next page> 2010-10-29 00:49:23,441 INFO [net.voicelog.web.http.LogHttpReqFilter.ajax] (http-0.0.0.0-8080-7) [player][session:l2rw__,c:,r:138] ajax url=(POST)http://xxxxx:8080/scripts/secure/client/scripter/agent/page.xhtml params={AJAXREQUEST=sync,questionForm:inputTable:0:yesNoDecorate:yesNoRadio=true,questionForm:errorDecorator:placeForErrors=Hidden field,questionForm:faqPanelOpenedState=,questionForm:movenext=questionForm:movenext,} button clicked=questionForm:movenext <NO METHOD BEAN CALLS AND ONLY 9 ms apart> 2010-10-29 00:49:23,450 INFO [net.voicelog.web.http.LogHttpReqFilter.ajax.timing] (http-0.0.0.0-8080-7) [player][session:l2rw__,c:,r:138] [time(ms):9] finished sending url=(POST)http://xxxxx:8080/scripts/secure/client/scripter/agent/page.xhtml
I also log the POST returns and between the logs of the first one, I can see it calling into my beans. On the second POST, it is locked from a seam lock or something or at least never calls into my beans and then 9 milliseconds later returns.
More oddly, here is my components.xml(and yes, those values are too hight to be honest and should be more like 3 seconds....we had some stuff under seam-storedproc-taking 10 seconds holding seam locks making seam fail when we didn't want that...the 30 second fixed it temporarily as a stop gap quick fix until we come back to that issue).
components.xml...
<core:manager conversation-timeout="900000" concurrent-request-timeout="30000" conversation-id-parameter="cid"/>