Parcourir Tous les Messages de WebSphere MQ en une seule fois à l'aide de Java
Comment peut-on parcourir tous les messages dans une WebSphere MQ file d'attente à un appel d'API à l'aide de java?
Voici le code que j'utilise. Ici, je suis en utilisant ce code un for
boucle jusqu'à ce q la profondeur est atteinte.
MQGetMessageOptions gmo=new MQGetMessageOptions();
gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_NEXT ;
//System.out.println("Status: "+i);
MQMessage out=new MQMessage();
out.format =MQC.MQFMT_XMIT_Q_HEADER;//MQC.MQFMT_REF_MSG_HEADER;
mqCon.getQue().get(out,gmo);
System.out.print(i);
Comment puis-je obtenir tous les messages sans utiliser for
boucle? C'est en prenant un long temps pour parcourir les 10 000 messages.
comment puis-je obtenir tous les messages sans utiliser de boucle for. sa prise de temps pour parcourir les 10 000 messages
nous vous avons entendu la première fois
L'OP a tenté de clarifier la question dans les commentaires et j'ai édité le commentaire dans le post original.
nous vous avons entendu la première fois
L'OP a tenté de clarifier la question dans les commentaires et j'ai édité le commentaire dans le post original.
OriginalL'auteur kicksammy | 2012-11-11
Vous devez vous connecter pour publier un commentaire.
Comment puis-je obtenir tous les messages sans utiliser de boucle for?
Utiliser un
while
boucle. Désolé, pas pu résister un peu sarcastique de réponse sur ce. WMQ ne dispose pas d'un appel d'API analogue à la SQLselect
déclaration. Messagerie et bases de données partagent certains traits de caractère, mais adresse fondamentalement différentes exigences.C'est de prendre beaucoup de temps pour parcourir les 10 000 messages.
Prendre un coup d'oeil à la Performance SupportPacs. Ils sont publiés sur le SupportPacs page principale et des noms commençant par MP. Trouver celui de votre plate-forme et MQ version et il donnera la liste des différents scénarios pour mettre et recevoir les messages ainsi que le réglage des performances des recommandations.
Je voudrais aussi vous demander pourquoi un normal de l'application a besoin pour parcourir les 10 000 messages. Le QMgr permettra de sélectionner les messages pour vous sur la base d'MsgID, ID de Corrélation ou bien, ce qui est beaucoup plus rapide de parcourir tous les messages dans l'ordre pour l'application pour trouver celles qui l'intéressent. Parfois les gens ont besoin de parcourir tous les messages dans une file d'attente à l'archive de la file d'attente ou de déboguer un problème, mais c'est l'exception plutôt que la règle. Si une Production app régulièrement parcourt tous les messages dans une file d'attente, puis les files d'attente peuvent avoir été utilisé de façon inappropriée comme une base de données.
OriginalL'auteur T.Rob
Comment puis-je obtenir tous les messages sans utiliser de boucle for?
J'ai posté de nombreux Java/MQ échantillons ici:
http://www.capitalware.biz/mq_code_java.html
OriginalL'auteur Roger
Si vous voulez il suffit de parcourir messeges (pas de restauration), vous pouvez utiliser javax.jms.QueueBrowser.
Est assez rapide...
OriginalL'auteur bkomac
Viens de remarquer que le format de message (.Format) que vous utilisez. MQFMT_XMIT_Q_HEADER est utilisé pour les messages qui sont envoyés à la transmission de la file d'attente. Les Messages dans la transmission de la file d'attente ne sont généralement pas lu par les applications. MQ utilise de transmission de la file d'attente pour envoyer des messages à partir d'un gestionnaire de file d'attente à un autre gestionnaire de file d'attente dans un MQ réseau. J'espère que vous ne naviguez pas de messages dans une file d'attente de transmission.
Pour les applications, le format de message serait dépendent généralement de la réception de la demande. Par exemple, si l'application de destination est CICS, format serait MQFMT_CICS, pour IMS, il serait MQFMT_IMS. Si le texte/type de chaîne de données est attendue, vous pouvez utiliser MQFMT_STRING. Pour l'administration de la MQ à l'aide de PCF messages, puis le format peut être MQFMT_PCF.
OriginalL'auteur Shashi