Отправка сообщения из Java в MQ приводит к ошибке MQ 2063 случайным образом для определенных пользователейJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отправка сообщения из Java в MQ приводит к ошибке MQ 2063 случайным образом для определенных пользователей

Сообщение Anonymous »

Следующая Java-программа представляет собой пример кода, который используется для отправки сообщения в IBM MQ. Это используется для объяснения проблемы:

Код: Выделить всё

import com.ibm.mq.MQC;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Hashtable;
import java.util.ResourceBundle;

@SuppressWarnings({ "rawtypes", "unchecked","deprecation" })

public class TestIBMMQ {

static String theQueueMgr;
static String theRequestQueue;
static String respQueue;
static String mesgId = null;
static String corrId = null;
static MQQueue objQueue = null;
static String replyQueue;
static String replyQmgr;

static boolean isSSLActive;

public TestIBMMQ() {

}

public static ResourceBundle getProperties(String file) {
ResourceBundle resourceBundle = ResourceBundle.getBundle(file);
return resourceBundle;
}

public static String getFileContent(String path) {
StringBuffer stringbuffer = null;
try {
File file = new File(path);

FileReader filereader = new FileReader(file);
BufferedReader bufferedreader = new BufferedReader(filereader);
stringbuffer = new StringBuffer();
String s = System.getProperty("line.separator");
String s1;
while ((s1 = bufferedreader.readLine()) != null) {
stringbuffer.append(s1);
stringbuffer.append(s);
}
filereader.close();
bufferedreader.close();
} catch (IOException ioexception) {
ioexception.printStackTrace();
}
return stringbuffer.toString();
}

public static void sendMessage(String msgText, MQQueueManager qMgr, boolean isResponse) {
try {

String theQueueMgr = ;
String theRequestQueue = ;

if (theRequestQueue != null && theRequestQueue.length() > 0) {

objQueue = qMgr.accessQueue(theRequestQueue, MQC.MQOO_OUTPUT, null, null, null);

} else {
System.out.println("Request Queue (request_queue) was not configured! Tool now tries to get any response..");
}

MQMessage mqmessage = new MQMessage();
// Added below 2 lines as per Mike's suggestion

if (resBund.getString("message_expiry") != null && resBund.getString("message_expiry").length() > 0) {
mqmessage.expiry = Integer.valueOf(resBund.getString("message_expiry"));
}

// The default value is MQC.MQEI_UNLIMITED (-1), which means that
// the message never expires.
System.out.println("Message expiry set to ... " + mqmessage.expiry);

if (!mesgId.equalsIgnoreCase("")) {
mqmessage.messageId = mesgId.getBytes();
// mqmessage.correlationId = mesgId.getBytes();
} else {
mqmessage.messageId = MQC.MQMI_NONE;
}

if (!corrId.equalsIgnoreCase("")) {
mqmessage.correlationId = corrId.getBytes();
} else {
mqmessage.correlationId = MQC.MQCI_NONE;
}

mqmessage.writeString(msgText);

if (!isResponse) {
mqmessage.replyTotheQueueMgrName = resBund.getString("replyToQmgr");
mqmessage.replyToQueueName = resBund.getString("replyToQueue");
}

MQPutMessageOptions mqputmessageoptions = new MQPutMessageOptions();
objQueue.put(mqmessage, mqputmessageoptions);

System.out.println("Message successfully PUT...  ");
} catch (MQException mqexception) {
System.out.println("An MQSeries error occurred : Completion code " + mqexception.completionCode + " Reason code " + mqexception.reasonCode);
System.out.println(mqexception.getCause());
} catch (IOException ioexception1) {
System.out.println("An error occurred whilst writing to the message buffer: " + ioexception1);
ioexception1.printStackTrace();
} catch (Exception exception) {
System.out.println("An error occurred : " + exception.getMessage());
exception.printStackTrace();
} finally {
try {
if (objQueue != null)
objQueue.close();
// qMgr.disconnect();
} catch (MQException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

public static void main(String[] args) throws ATSException {

String prop;
if (args.length > 0) {
prop = args[0];
} else {
prop = "

Подробнее здесь: [url]https://stackoverflow.com/questions/79219613/send-message-from-java-to-mq-results-mq-error-2063-randomly-for-certain-users[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»