Mam problem z następujących ustawień:Jak ograniczyć liczbę wystąpień MDB słuchania JBoss JMS kolejki
aplikacjaJava wysłać e-mail wiad do kolejki JMS, wówczas MDB słuchanie kolejce pobierz wiadomość e-mail z metodą onMessage, otwórz połączenie w SMTP Gmaila, wyślij wiadomość e-mail do SMTP i zamknij połączenie. Robi to dla wszystkich wiadomości w kolejce JMS.
Świetnie się sprawdza, gdy mam jednocześnie do 5 wiadomości w kolejce. Wszystkie wiadomości są odbierane w tym samym czasie przez 5 różnych instancji MDB, więc mam 5 równoczesnych połączeń z serwerem Gmail SMTP. Ale gdy w kolejce JMS jest więcej wiadomości, pojawia się błąd połączenia z serwera SMTP Gmaila. 5 pierwszych wiadomości jest wysyłanych poprawnie, ale nie pozostałe, więc inne wiadomości są tracone, ponieważ nie są już w kolejce.
Moje pytanie brzmi: czy można ograniczyć liczbę instancji MDB, które będą nasłuchiwać w kolejce JMS? Jeśli mam maksymalnie 5 MDB, to nawet jeśli mam 1000 wiadomości w kolejce, opróżnienie kolejki będzie trwało dłużej, ale przynajmniej nie stracę żadnej wiadomości.
Wszelkie inne sugestie dotyczące rozwiązania tego problemu byłyby bardzo mile widziane.
Oto wersja JBoss:
[Server] Numer wydania: JBoss [Trójcy] 4.2.3.GA (build: SVNTag = JBoss_4_2_3_GA date = 200807181417)
i config MDB jest następująca:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/emailQueue")
})
Potrzebujesz więcej?
Dzięki
EDIT 2011-02-14
Może jestem w błędzie chcąc ograniczyć liczbę instancji MDB. Widziałem konfigurację dotyczącą liczby wątków JMS. Jeśli ograniczę liczbę wątków, które będą publikowane w MDB, może to rozwiąże mój problem? Czy JMS będzie czekać, aż MDB będzie dostępne przed ponownym wysłaniem wiadomości msg? Czy jest jakiś efekt uboczny? Proszę, proszę. Dzięki
END EDIT
Która wersja JBoss? Jak wygląda twoja konfiguracja MDB? – skaffman
@skaffman: Wersja Jboss to: [Server] Release ID: JBoss [Trinity] 4.2.3.GA (build: SVNTag = JBoss_4_2_3_GA date = 200807181417) a konfiguracja MDB jest następująca: @MessageDriven ( activationConfig = { @ActivationConfigProperty ( propertyName = "destinationType", propertyValue = "javax.jms.Kolejka” ) @ActivationConfigProperty ( propertyName = "przeznaczenia", WartośćWłaściwości = "kolejka/emailQueue") } ) Czy trzeba więcej? Dzięki – Alain
Dodanie informacji do pytania, to nie jest czytelny, gdy pisał jako komentarz: – skaffman