2009-10-27 8 views
2

Je dois écrire un client MQSeries simple en Java.Quelle est la configuration minimale requise pour l'écriture d'un client Java pour MQSeries?

Le client doit simplement se connecter à la file d'attente et retirer le message suivant.

Je l'ai fait avant un certain nombre d'années et ont tous l'exemple de code, etc.

Je me souviens besoin sont les trois fichiers jar:

  • com.ibm.mq.iiop. jar
  • com.ibm.mq.jar
  • connector.jar

Je fais un peu de lecture et beaucoup de gens parler d'un fichier de propriétés, mais je n'ai aucun souvenir de cela de mon expérience passée.

Et ainsi de suite à ma question:

Quel est le minimum j'ai besoin absolu sur mon système pour développer, tester et déployer finalement un simple client MQSeries? Et où puis-je trouver (télécharger) ces choses?

NOTE: Cette question est liée à mais pas la même que this un.

Répondre

0

Cela fait un moment que je l'ai fait aussi, IBM fournit java api pour directement en utilisant mqseries et JMS api qui est un emballage autour d'elle.

Allez ici, ils ont de nombreux exemples en java http://www304.ibm.com/jct01005c/isv/tech/sampmq.html

Pour les tests, vous devrez télécharger et installer un MQseries Server, ou peut-être ils seront assez aimable pour vous mettre en place avec une file d'attente de test sur le réel serveur. En tout cas, lorsque vous téléchargez le serveur MQseries à partir du site Web d'IBM (trial lic) qui doit contenir le jar dont vous avez besoin.

Je fortement la recherche sur l'api JMS pour MQSeries, afin que vous puissiez rester loin d'utiliser réellement le mqseries api.

+0

Votre lien semble être cassé. –

+0

désolé ici c'est http://www-304.ibm.com/jct01005c/isv/tech/sampmq.html – GDR

+0

tous les liens sont morts – Adrian

1

Ok, il semble que vous ayez besoin des trois pots mentionnés dans la question, ainsi que d'un fichier de propriétés.

  • com.ibm.mq.iiop.jar
  • com.ibm.mq.jar
  • connector.jar
  • mqji.propriétés

Sauf si vous avez accès à ces choses déjà la seule façon que je pouvais comprendre pour les obtenir est de télécharger et installer la version complète d'essai pour MQSeries IBM:

http://www.ibm.com/developerworks/downloads/ws/wmq/

Si ce lien meurt au fil du temps, vous pouvez également le trouver en allant simplement www.ibm.com puis en suivant le menu de "Support & Téléchargements" -> "Télécharger" -> "Essais et démos", puis en choisissant "WebSphere MQ" dans la liste.

Une fois l'installation terminée, vous disposez de tous les fichiers jars dont vous avez besoin dans le dossier java/lib ci-dessous où l'installation s'est déroulée. Les pots dans cette version sont différents des pots que je mentionne ci-dessus, je suppose en raison des différences de version.

Le fichier de propriétés n'a pas été installé avec l'installation (peut-être que les nouvelles versions n'ont pas besoin de ce fichier), mais il peut être trouvé here.

1

Voici une autre façon ...

En utilisant les trois fichiers jar:

com.ibm.mq.jar 
com.ibm.mqetclient.jar 
com.ibm.mqjms.jar 

Voici un exemple de code qui va lire un message MQ -

import com.ibm.mq.*;   // Include the WebSphere MQ classes for Java package 

public class MQSample 
{ 
    private String qManager = "your_Q_manager"; // define name of queue 
               // manager to connect to. 
    private MQQueueManager qMgr;     // define a queue manager 
               // object 
    public static void main(String args[]) { 
    new MQSample(); 
    } 

    public MQSample() { 
    try { 

     // Create a connection to the queue manager 
     qMgr = new MQQueueManager(qManager); 

     // Set up the options on the queue we wish to open... 
     // Note. All WebSphere MQ Options are prefixed with MQC in Java. 
     int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | 
         MQC.MQOO_OUTPUT ; 

     // Now specify the queue that we wish to open, 
     // and the open options... 
     MQQueue system_default_local_queue = 
       qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", 
           openOptions); 

     // Define a WebSphere MQ message buffer to receive the message into.. 
     MQMessage retrievedMessage = new MQMessage(); 

     // Set the get message options... 
     MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults 
                  // same as MQGMO_DEFAULT 
     // get the message off the queue... 
     system_default_local_queue.get(retrievedMessage, gmo); 

     // And prove we have the message by displaying the UTF message text 
     String msgText = retrievedMessage.readUTF(); 
     System.out.println("The message is: " + msgText); 
     // Close the queue... 
     system_default_local_queue.close(); 
     // Disconnect from the queue manager 

     qMgr.disconnect(); 
    } 
     // If an error has occurred in the above, try to identify what went wrong 
     // Was it a WebSphere MQ error? 
    catch (MQException ex) 
    { 
     System.out.println("A WebSphere MQ error occurred : Completion code " + 
         ex.completionCode + " Reason code " + ex.reasonCode); 
    } 
     // Was it a Java buffer space error? 
    catch (java.io.IOException ex) 
    { 
     System.out.println("An error occurred whilst writing to the message buffer: " + ex); 
    } 
    } 
} // end of sample 

code tiré de this SO answer.

3

La réponse à la question dépend de si vous souhaitez mettre le code résultant en production. Vous pouvez récupérer quelques fichiers JAR et les inclure sur le CLASSPATH et le faire fonctionner. En fait avec le reconditionnement fait en v7, le nombre de pots a été réduit. Cependant, il n'est pas pris en charge par IBM sans l'installation complète du client.

Pourquoi est-ce? L'installation complète inclut des fonctions de diagnostic, le support du code, le support NLS et la possibilité de collecter toutes les informations Must Gather pour ouvrir un ticket d'incident. Si tout ce que vous attrapez est quelques fichiers jar, vous n'obtenez pas la fonctionnalité supplémentaire et donc pas de support du fournisseur en cas de problème.

L'installation du client WMQ v7 fournie comme SupportPac MQC7 qui est un téléchargement gratuit.

Les fichiers jar et les paramètres CLASSPATH pour Java et JMS de base sont fournis dans le manuel Using Java.

Utilisez le client v7, même sur un serveur v6. C'est rétrocompatible. Dans v7.0 le Java/JMS a été réécrit et vous avez juste besoin des bocaux listés dans le manuel.

En outre, quelqu'un a mentionné le jar etclient. C'est le client transactionnel étendu et s'il vous plaît soyez conscient qu'il engage le coût de la licence complète d'un QMgr. Vous en avez seulement besoin si vous effectuez une validation en deux phases (XA avec WMQ et un autre gestionnaire de ressources dans la même unité de travail) et n'utilisez pas WebSphere App Server ou Message Broker. Par exemple, vous voulez faire TPC en utilisant JBoss, MQ et une base de données, vous avez besoin du fichier jar de etclient et payez pour une licence WMQ complète. Si vous ne faites pas de transactions XA, vous n'en avez pas besoin.