6

Seam を使用していますが、「Concurrent call to conversation」エラーが発生します。これは何を意味するのでしょうか?

処理に 5 分かかるボタンがあります。このエラーは 2 分以内に発生します。同時要求タイムアウトを 10 分に設定しても機能しないようです。最初のリクエストが完了するまで他のすべてのリクエストをブロックする方法はありますか?

4

3 に答える 3

5

Seam ドキュメントのセクション 6.9では、会話コンテキストで同時呼び出しを処理する方法について説明しています。

于 2010-04-28T13:48:42.460 に答える
1

そのような長い操作の他のすべての要求をブロックすることは良い考えだとは思わないでください。より良い方法は、非同期で実行することです。

ここでhttp://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/を見ることができますが、これは短期間に他のリクエストをブロックできるようにするソリューションです(もちろん、それらを長時間ブロックすることはできますが、一般に、ユーザーにそのような要求を待たせるのは良い方法ではありません) バックエンドで非同期で動作するように UI を構成する方法の良い例については、こちらを参照してください ( richfaces liveemo の「Ajax サポート」プッシュ/プルの例を参照)

于 2010-08-28T23:01:30.457 に答える
0

これが解決策です - richfaces progressBar を使用し、seam 非同期メソッドを呼び出して長いプロセスを実行し、パラメーターを含む ProgressBean を async-method に渡し (JSF で使用する会話 Bean からアクセスできる必要があります)、定期的に進行状況を更新しますこのアプローチは、ここで詳細に説明されています [Seam/Richfaces で動的なプロセスの進行状況を表示][1]

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

于 2010-10-22T10:17:25.203 に答える