-
Créer un MDB avec le premier « messageSelector » :
@ActivationConfigProperty(propertyName = "messageSelector", propertyValue = "firstMessageSelector")
:
-
Créer un MDB avec le deuxième « messageSelector » :
@ActivationConfigProperty(propertyName = "messageSelector", propertyValue = "secondMessageSelector")
:
-
Créer un client qui envoie deux messages avec des « messageSelector » différents :
Voici la sortie dans la console JBoss :
Notes :
► Le message envoyé avec la propriété "messageOrder" initialisée à "first" ne sera pas consommer par la MDB "MessageDrivenQueueAMessageSelector2".
► De même, le message envoyé avec la propriété "messageOrder" initialisée à "second" ne sera pas consommer par la MDB "MessageDrivenQueueAMessageSelector1".
► Par contre, les deux messages peuvent être consommés par un MDB qui est lié à la même queue ("queue/test") mais qui n'a pas spécifié la propriété « messageSelector ».
Rappels :
► Un message envoyé à une queue est toujours consommé par une seule instance d'un MDB.
► S'il y a plusieurs MDBs inscrits à la même queue, alors une seule instance sera choisie par le container.