2009-04-01 16 views
3

J'ai récemment découvert des sélecteurs de messageMessage Driven Bean Selectors (JMS)

@ActivationConfigProperty(
     propertyName="messageSelector", 
     propertyValue="Fragile IS TRUE") 

Ma question est la suivante: Comment puis-je faire dynamique à l'exécution du sélecteur?

Disons que le consommateur a décidé qu'ils ne voulaient que des messages avec la propriété « Fragile EST FAUX »

le consommateur pourrait changer le sélecteur en quelque sorte sans redéployant le MDB?

Note: J'utilise Glassfish v2.1

+0

Je pense qu'une option pourrait être d'obtenir tous les messages dans une MDB et d'utiliser un filtre programmatique basé sur une configuration chargée à partir de la base de données. – muasif80

+0

J'ai demandé quelque chose de similaire, voir https://stackoverflow.com/questions/48868136/dynamically-change-jmsselector# mais ne correspond pas exactement à votre question. – pikimota

Répondre

4

A ma connaissance, cela est impossible. Il peut y avoir des implémentations qui le permettent via certains hooks de serveurs personnalisés, mais cela dépend de l'implémentation. Premièrement, il faut modifier le descripteur de déploiement, qui n'est pas lu après le déploiement du fichier EAR.

+1

C'est irritant. Et si vous voulez être conforme, vous ne pouvez pas utiliser setMessageListener pour obtenir des messages asynchrones. J'essaie de créer une application de test JMS et c'est exaspérant. : - / –