2010-03-11 71 views
6

我正在使用Seam并得到“并发呼叫对话”错误。这是什么意思?并发呼叫对话

我有一个需要5分钟处理的按钮。我在2分钟内得到这个错误。将并发请求超时设置为10分钟似乎不起作用。有没有办法阻止所有其他请求,直到第一个请求完成?

+0

@bhargav你能否提供更多信息:components.xml中,你的豆子,耳朵或战争应用? – 2010-03-12 00:12:08

回答

1

不认为阻止所有其他请求执行这种长操作是个好主意,更好的方法是让它异步运行。

你可以到这里看看http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/,但是这是解决方案,让您可以在较短的时间周期阻止其他要求(当然它可以阻止他们很长一段时间,但是,这不是一般的好方法,使用户等待这样的请求) 你可以在这里看一个很好的例子,说明如何组织UI以在后端使用异步工作(请参阅richfaces livedemo“Ajax支持”推/拉示例)

0

这里是解决方案 - 使用richfaces progressBar,调用接口异步方法来运行长进程并将带有参数的ProgressBean传递给async-method(它应该可以从您在JSF中使用的yuor会话bean中访问),并定期更新长时间进度状态荷兰国际集团的任务 这种方法进行详细说明这里[在煤层/ RichFaces的动态过程的进展] [1]

[1] http://achorniy.wordpress.com/2010/10/22/show-dynamic-process-progress-in-seam-richfaces/