Pessoal, bom dia!!!
Tenho uma aplicação java que efetua uma comunicação com o MQ. Estou tendo problemas ao capturar as mensagens da Fila MQ, pois quando efetuo duas requisições diferentes ao mesmo tempo, as informações estão se misturando.
Alguém pode me auxiliar a resolver este problema ?
Utilizo o pacote: com.ibm.mq.*
protected void putMessage(MQQueue requestQueue, String message) throws MQException, IOException{
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQC.MQPMO_NEW_MSG_ID;
MQMessage mqMessageRequest = new MQMessage();
if (message.length() > 0) {
mqMessageRequest.clearMessage();
mqMessageRequest.correlationId = MQC.MQCI_NONE;
mqMessageRequest.correlationId=" + mqMessageRequest.correlationId);
mqMessageRequest.format = MQC.MQFMT_STRING;
mqMessageRequest.replyToQueueName = getQueueManagerName();
mqMessageRequest.replyToQueueName=" + mqMessageRequest.replyToQueueName);
mqMessageRequest.writeString(message);
requestQueue.put(mqMessageRequest, pmo);
setMessageId(mqMessageRequest.messageId);
mqMessageRequest.messageId=" + mqMessageRequest.messageId);
}
}
protected String getMessage(MQQueue responseQueue) throws MQException, IOException {
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_WAIT + MQC.MQGMO_CONVERT;
gmo.matchOptions = MQC.MQMO_MATCH_MSG_ID;
gmo.waitInterval = getTimeWaitInterval();
MQMessage mqMessageResponse = new MQMessage();
String msg = "";
mqMessageResponse.clearMessage();
mqMessageResponse.messageId = getMessageId();
mqMessageResponse.messageId=" + mqMessageResponse.messageId);
mqMessageResponse.correlationId = MQC.MQMI_NONE;
responseQueue.get(mqMessageResponse, gmo);
msg = mqMessageResponse.readString(mqMessageResponse.getMessageLength());
mqMessageResponse.readString=" + mqMessageResponse.messageId + "/" + mqMessageResponse.correlationId + "/" + msg);
return msg;
}