2010-03-11 13 views
6

Używam Szew i otrzymuję komunikat "Współbieżne połączenie do rozmowy". Co to znaczy?Jednoczesne połączenie do rozmowy

Mam przycisk, który zajmuje 5 minut, aby przetworzyć. Otrzymuję ten błąd w ciągu 2 minut. Ustawienie czasu oczekiwania na żądanie równoczesne na 10 minut nie działa. Czy istnieje sposób blokowania wszystkich innych żądań, aż do ukończenia pierwszego?

+0

@bhargav Może podasz więcej info: components.xml, swoje fasola, ucha czy wojenna? –

Odpowiedz

1

Nie myśl, że to świetny pomysł, aby zablokować wszystkie inne żądania TAKICH długich operacji, znacznie lepszym podejściem jest, aby to uruchomić asynchronicznie.

Możesz zajrzeć tutaj http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/, ale jest to rozwiązanie, które pozwala zablokować inne żądania w krótkim czasie (oczywiście może je zablokować przez długi czas, ale to ogólnie nie jest dobre podejście, aby użytkownik aby czekać na takie prośby) Możesz zajrzeć tutaj, aby zobaczyć dobry przykład tego, jak interfejs użytkownika może być zorganizowany do pracy z asynchronizacją w backendie (zobacz richfaces livedemo "Obsługa Ajaxa" Przykłady push/pull)

0

Oto rozwiązanie - użyj richfaces progressBar, wywołaj asynchroniczną metodę łączenia w celu uruchomienia długiego procesu i przekazuj ProgressBean z parametrami do async-method (powinien być dostępny z yuor bean konwersacji, którego używasz w JSF) i okresowo aktualizuj status postępu w długim okresie ing zadanie Podejście to zostało wyjaśnione w szczegółach tutaj [Pokaż dynamiczny postęp procesu w Seam/Richfaces] [1]

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

Powiązane problemy