🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
2 messages
2 total messages Started by Marcin Fri, 16 Sep 2011 15:03
Wyjątek systemowy rzucany w metodzie @Timeout
#152856
Author: Marcin
Date: Fri, 16 Sep 2011 15:03
18 lines
1871 bytes
Witam,
w tworzonej aplikacji potrzebuję pobierać co pewien okres czasu dane z innego
serwera. W tym celu korzystam z serwisu TimerService i w bean'ie tworzę metodę
@Timeout. Wszystko jest dobrze, aż do momentu kiedy zostanie zerwane połączenie
internetowe. Wtedy funkcja wywoływana z metody @Timeout rzuca wyjątek systemowy.
Kontener wyłapuje ten wyjątek i od razu wywołuje metodę timeout'ową po raz
drugi. Jest to zachowanie zgodne z tym co wyczytałem. Jeżeli jednak po drugi
zostanie rzucony wyjątek, metoda @Timeout nie jest już nigdy wywoływana. Nawet
po upłynięciu kolejnego okresu czasu. Czy to jest poprawne zachowanie, że po
kilku nieudanych retry'ach timer jest usuwany?
W taki razie jak zabezpieczyć się przed tym? Chciałbym aby metoda @Timeout była
zawsze wywoływana co zadany okres, niezależnie od tego jakie błędy wystąpiły
poprzedni razem.
Pozdrawiam,
Marcin

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: Wyjątek systemowy rzucany w metodzie @Timeout
#152857
Author: nullpointer
Date: Fri, 16 Sep 2011 16:10
17 lines
1178 bytes
Rozumiem że z jakichś powodów nie możesz zrobić tak:

@Timeout
public void ejbTimeout() {

   try {
     // kod walący wyjątkiem
   } catch (Exception ex) {
     logger.warn("Tym razem coś poszło nie tak...." + ex.getMessage());
   }

}

Pytanie więc, dlaczego nie możesz?

-- 
npe
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads