Bonjour,
J'ai développé une application pour écrire et lire les messages se trouvant sur le serveur.
Lors de la lecture, les messages sont effacés de la file d'attente.
L'explorateur WebSphere MQ permet de lire les messages d'une file sans les effacer.
voici mon code pour la lecture :
J'ai essayé de changer les paramètres de openOptions et getOptions.options mais je n'ai pas trouvé la combinaison gagnante si c'est là que se situe le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 try { _queueManager = new MQQueueManager(qManager); int openOptions = MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_INPUT_SHARED; MQQueue queue = _queueManager.accessQueue(outputQName, openOptions, null, // default q manager null, // no dynamic q name null); // no alternate user id if (queue.getCurrentDepth() == 0) { throw new Exception("Queue is null"); } MQGetMessageOptions getOptions = new MQGetMessageOptions(); getOptions.options = MQC.MQGMO_NO_WAIT + MQC.MQGMO_FAIL_IF_QUIESCING + MQC.MQGMO_CONVERT; while (queue.getCurrentDepth()>0) { MQMessage message = new MQMessage(); try { queue.get(message, getOptions); byte[] b = new byte[message.getMessageLength()]; message.readFully(b); msgList.put(new String(message.messageId),new String(b)); //message.clearMessage(); } catch (Exception e) { if(logjava)System.out.println(e.getMessage()); } } queue.close(); _queueManager.disconnect(); } catch (Exception e) { }
Merci de me répondre si quelqu'un a la solution ou si ce n'est pas réalisable.
Vincent
Partager