Bonjour à tous,
j'ai créé un EJB de type Message driven bean (MDB) qui récupère les messages d'un topic JMS.
Mon EJB se présente de la manière suivante :
Tout fonctionne parfaitement. J'arrive bien à effectuer le traitement. L'EJB est déployé sous JBoss.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 /** * Message-Driven Bean implementation class for: LaunchJob * */ @MessageDriven( activationConfig={ @ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"), @ActivationConfigProperty(propertyName="destination",propertyValue="topic/Talend_Job"), @ActivationConfigProperty(propertyName="maxSession", propertyValue="1") } ) @TransactionManagement(TransactionManagementType.BEAN) public class LaunchJob implements MessageListener { /** * Default constructor. */ public LaunchJob() { // TODO Auto-generated constructor stub } /** * @see MessageListener#onMessage(Message) */ public void onMessage(Message LeMessage) { TextMessage msg = null; try { if(LeMessage instanceof TextMessage){ msg = (TextMessage) LeMessage; //Réception du job. //Il faut donc désormais exécuter le job demandé. //System.out.println(msg.getText()); String message = msg.getText(); } else { System.out.println("Mauvais type de message : "+LeMessage.getClass().getName()); } } catch(Exception e) { e.printStackTrace(); } }
Désormais je dois faire en sorte que cet EJB soit capable d'écouter sur plusieurs topic JMS différent tout en conservant la contrainte de ne traiter qu'un message à la fois par topic.
Quels solutions s'offrent à moi ?
Dois-je créer plusieurs instances de cet EJB en déclarant un nom de topic différent à chaque fois ? Si c'est le cas ai-je la possibilité de déclarer le nom de topic au travers d'un fichier XML et non de "@ActivationConfigProperty(propertyName="destination",propertyValue="topic/Talend_Job")," ?
Sinon et là ce serait vraiment un très bonne chose, ai-je la possibilité de répondre à mon besoin au travers d'un seul EJB ?
Si vous avez besoin de plus de précisions, n'hésitez pas à me contacter.
Merci beaucoup par avance,
Christophe
Partager