Comment initialiser ConnectionFactory à distance de file d'attente JMS lorsque la machine distante n'est pas en cours d'exécution?
À l'aide de JBoss 4.0.5, JBossMQ, et le Printemps 2.0.8, je suis en train de configurer le Printemps pour instancier les fèves, qui dépendent de la distance de File d'attente JMS ressource. Tous les exemples que j'ai rencontré dépendent de l'utilisation de JNDI à faire de recherche pour des choses comme la distance ConnectionFactory objet.
Mon problème est que lorsque essayant de mettre en place une machine qui permettrait de mettre des messages dans la file d'attente à distance, si la machine distante n'est pas en place, recherche JNDI simplement échoue, entraînant l'échec du déploiement. Est-il un moyen pour que le Printemps de continuer à essayer pour la recherche de cet objet en arrière-plan tout en ne bloque pas le reste de déploiement?
OriginalL'auteur Erik | 2009-08-24
Vous devez vous connecter pour publier un commentaire.
C'est difficile d'être sûr sans voir votre printemps de config, mais en supposant que vous êtes à l'aide du Printemps
JndiObjectFactoryBean
à faire de la recherche JNDI, alors vous pouvez définir lalookupOnStartup
propriété à false, ce qui permet le contexte de démarrer même si le JNDI cible n'est pas là. Le JNDI résolution sera la première fois que le ConnectionFactory est utilisé.Cependant, ce déplace simplement le problème en aval de la chaîne, parce que si un autre composant tente d'obtenir un JMS
Connection
sur démarrage, puis, vous êtes de retour où vous avez commencé. Vous pouvez utiliser lelazy-init="true"
attribut sur vos autres haricots secs pour éviter que cela se passe sur le déploiement, mais il est facile de accidentellement mis quelque chose dans votre config qui force tout à initialiser.OriginalL'auteur skaffman
Vous avez absolument raison. J'ai essayé de réglage lookupOnStartup pour faux et lazy-init=true . Cette juste reporte le problème à la première fois que la File d'attente est tenté d'être utilisé. Une exception comme suit est jeté:
En outre, il semble que la recherche n'est jamais tentée à nouveau. Lorsque la machine avec la file d'attente à distance est ramenée à une place, pas de messages sont jamais traitées par la suite. Cela ne semble vraiment comme elle doit être bien à l'intérieur de l'enveloppe de cas d'utilisation pour J2EE non-sens, et pourtant je ne suis pas avoir beaucoup de chance... il se sent comme Il devrait peut-être même être un résolu problème.
Pour l'achèvement du saké, ce qui suit est la partie pertinente de mon Ressort de configuration.
SI seulement je pouvais obtenir la recherche JNDI pour garder passe en arrière-plan et laisser mes clients à aller sur leur petit bonhomme de chemin sans serveur, tout serait peachy. Je vais essayer votre suggestion. Je vous remercie.
OriginalL'auteur Erik