Je suis en train de concevoir une partie d'une application Java EE 6, composée de beans EJB3. Une partie des exigences sont de multiples chasses de bases de données parallèles (disons quelques centaines) de longue durée (sur plusieurs jours). Les chasses individuelles ont différents paramètres de recherche (heure de début, heure de fin, filtre de requête). Les paramètres peuvent changer au fil du temps.Communication entre instances EJB3 (communication inter-bean Java EE) possible?
Actuellement, je pense à ce qui suit:
SearchController
(Stateless Session Bean) formule un ensemble de paramètres de recherche, envoie au large à unSearchListener
via JMSSearchListener
(message Driven Bean) reçoit paramètres de recherche, instancie unSearchWorker
avec les paramètresSearchWorker
(SLSB) recherche à plusieurs reprises dans la base de données; quand il trouve quelque chose, le résultat est envoyé par JMS, et la recherche continue; lorsque le « temps de la fin » donnée a atteint, elle se termine
Ce que je me demande maintenant:
- Y at-il un problème avec les instances EJB3 en cours d'exécution pour les jours? (En dehors de cela, j'ai besoin de pouvoir traiter les redémarrages de conteneurs ...)
- Comment puis-je savoir combien et quelles instances EJB de
SearchWorker
sont en cours d'exécution? - Est-il possible de communiquer avec eux individuellement (similaire à l'envoi d'un signal System V à un processus Unix), par ex. pour envoyer de nouveaux paramètres, pour mettre fin à une instance, etc.