2010-02-23 10 views
2

Comment spécifier le gestionnaire de files d'attente auquel se connecter dans mes propriétés système. Voici le code:Connectez-vous à ibm mq avec jms. Spécifier le gestionnaire de canaux et de files d'attente

Properties properties = new Properties(); 
properties.setProperty("java.naming.factory.initial", "com.ibm.mq.jms.context.WMQInitialContextFactory"); 
properties.setProperty("java.naming.provider.url", "localhost:1414/SYSTEM.DEF.SVRCONN"); 

Context context = new InitialContext(properties); 
factory= (QueueConnectionFactory)context.lookup("TESTOUT"); 

contexte obtient toujours tester Que ne pas en mesure de se connecter à la file d'attente Testout

Répondre

2

Voici un exemple sur le site Web d'IBM sur la configuration Websphere Application Server (WAS) à utiliser MQ comme le mécanisme pour JMS.
http://www.ibm.com/developerworks/websphere/techjournal/0505_woolf/0505_woolf.html

Aussi IBM a un bon Redbook qui donne des exemples sur la façon de le faire si vous êtes le producteur de message à:
http://www.redbooks.ibm.com/redbooks/pdfs/sg247128.pdf

Il y a aussi quelques bons exemples de code Java à:
http://www.capitalware.biz/mq_code_java.html Désolé ... Je n'ai pas accès au code que j'ai fait pour cela ou je vous donnerais quelques-uns de mes exemples.

2

Hmmm ... tant de problèmes avec le code snippet vous avez publié, difficile de savoir où commencer.

L'utilisation de WMQInitialContectFactory ne semble pas être le bon endroit pour démarrer avec MQ. Cela ajoute une couche de complexité que vous ne voulez probablement pas à ce stade. Je suggère d'utiliser fscontext de Sun et de conserver les objets gérés dans un fichier local. Le contexte initial que vous utilisez est principalement utilisé pour créer un référentiel JNDI partagé pour de nombreux utilisateurs ou applications, mais il n'est pas pris en charge. Mon problème avec cela est que le programme doit d'abord se connecter au gestionnaire de files d'attente afin d'obtenir une fabrique de connexions qui ... indique au programme comment se connecter au QMgr!

Tous les objets nommés SYSTEM.DEF. * Ou SYSTEM.AUTO. * Ne doivent jamais être utilisés pour des connexions réelles. Ce sont des modèles dont héritent de nouveaux objets. S'ils sont utilisables, vous ne pouvez pas les sécuriser ou créer des objets créés à partir d'eux.

L'extrait est incomplet ou vous confondez la fabrique de connexions avec l'objet file d'attente. Le message indique que vous voulez la file d'attente TESTOUT mais le code n'a qu'une fabrique de connexions de file d'attente et aucun objet de destination ou de file d'attente.

Si vous avez installé le serveur ou le client WMQ localement, vous disposez déjà de nombreux exemples. L'emplacement par défaut pour ceux-ci est C: \ Program Files \ IBM \ WebSphere MQ \ tools \ jms \ samples et ils incluent à la fois des exemples pub/sub et point à point. Si vous voulez un exemple qui illustre la création du fichier .bindings, consultez l'article et l'exemple de code ici: http://www.ibm.com/developerworks/websphere/techjournal/0610_woolf/0610_woolf.html L'article explique certains des problèmes que je viens de mentionner avec les canaux, la sécurité du client, etc.