powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с доставкой в MQ
16 сообщений из 16, страница 1 из 1
Проблема с доставкой в MQ
    #35173391
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конфигурация:
QM1 - менеджер
Request - удаленная очередь (remote queue definition)
RequestTQ - трансмиссионая очередь
RequestCH - sender канала

QM2 - менеджер
Request - локальная очередь
RequestCH - receiver канала

кладу на машине где QM1 в очередь Request сообщение на машине где QM2 приходит другое сообщение размером всего 78 байтов и в кодировке 866 насолько я понимаю. Если я останавливаю канал, то в трансмиссионой очереди лежит моё нормальное сообщение.
версия MQ на обеих машинах 6.0.2.3.

В чем дело не могу понять. Прошу помощи :)
Спасибо.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173581
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Нет проблем с доставкой в MQ.
Покажите пожалуйста MQSC для создания объектов которые упомянуты выше.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173603
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>RequestTQ - трансмиссионая очередь

хорошо бы чтобы имя было QM2,
но без MQSC гадать не буду
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173641
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл написать. Тестовое сообщение посылаемое через MQ Explorer ходит нормально. То что формирую в приложении ни в какую.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173650
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На стэнде все ок в такой же конфигурации. У заказчика на серверах вот такая фигня.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173682
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я всё-таки прошу предоставить информацию что вы там делаете.
MQSC, и в добавок код программы.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173687
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер где менеджер очередей QM1

Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
    19 : display QUEUE('D2KRequest')
AMQ8409: Display Queue details.
   QUEUE(D2KRequest)                       TYPE(QREMOTE)
   ALTDATE(2008-03-05)                     ALTTIME(18.54.08)
   CLUSNL( )                               CLUSTER( )
   CLWLPRTY(0)                             CLWLRANK(0)
   DEFBIND(OPEN)                           DEFPRTY(0)
   DEFPSIST(NO)                            DESCR( )
   PUT(ENABLED)                            RQMNAME(QM2)
   RNAME(D2KRequest)                       SCOPE(QMGR)
   XMITQ(D2KRequestTQ)


    20 : display QUEUE('D2KRequestTQ')
AMQ8409: Display Queue details.
   QUEUE(D2KRequestTQ)                     TYPE(QLOCAL)
   ACCTQ(QMGR)                             ALTDATE(2008-03-05)
   ALTTIME(19.17.14)                       BOQNAME( )
   BOTHRESH(0)                             CLUSNL( )
   CLUSTER( )                              CLWLPRTY(0)
   CLWLRANK(0)                             CLWLUSEQ(QMGR)
   CRDATE(2008-03-05)                      CRTIME(18.54.27)
   CURDEPTH(0)                             DEFBIND(OPEN)
   DEFPRTY(0)                              DEFPSIST(NO)
   DEFSOPT(SHARED)                         DEFTYPE(PREDEFINED)
   DESCR( )                                DISTL(YES)
   GET(ENABLED)                            HARDENBO
   INITQ( )                                IPPROCS(1)
   MAXDEPTH(5000)                          MAXMSGL(4194304)
   MONQ(QMGR)                              MSGDLVSQ(PRIORITY)
   TRIGGER                                 NPMCLASS(NORMAL)
   OPPROCS(1)                              PROCESS( )
   PUT(ENABLED)                            QDEPTHHI(80)
   QDEPTHLO(20)                            QDPHIEV(DISABLED)
   QDPLOEV(DISABLED)                       QDPMAXEV(ENABLED)
   QSVCIEV(NONE)                           QSVCINT(999999999)
   RETINTVL(999999999)                     SCOPE(QMGR)
   SHARE                                   STATQ(QMGR)
   TRIGDATA( )                             TRIGDPTH(1)
   TRIGMPRI(0)                             TRIGTYPE(FIRST)
   USAGE(XMITQ)


    22 : display CHANNEL('RequestCH')
AMQ8414: Display Channel details.
   CHANNEL(DEPOT2KIS)                      CHLTYPE(SDR)
   ALTDATE(2008-03-05)                     ALTTIME(18.55.18)
   BATCHHB(0)                              BATCHINT(0)
   BATCHSZ(50)                             COMPHDR(NONE)
   COMPNONE                           CONNAME(12.34.56.78)
   CONVERT(NO)                             DESCR( )
   DISCINT(6000)                           HBINT(300)
   KAINT(AUTO)                             LOCLADDR( )
   LONGRTY(999999999)                      LONGTMR(1200)
   MAXMSGL(4194304)                        MCANAME( )
   MCATYPE(PROCESS)                        MCAUSER( )
   MODENAME( )                             MONCHL(QMGR)
   MSGDATA( )                              MSGEXIT( )
   NPMSPEED(FAST)                          PASSWORD( )
   RCVDATA( )                              RCVEXIT( )
   SCYDATA( )                              SCYEXIT( )
   SENDDATA( )                             SENDEXIT( )
   SEQWRAP(999999999)                      SHORTRTY(10)
   SHORTTMR(60)                            SSLCIPH( )
   SSLPEER( )                              STATCHL(QMGR)
   TPNAME( )                               TRPTYPE(TCP)
   USERID( )                               XMITQ(D2KRequestTQ)
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173713
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сервер где менеджер очередей QM2

Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
     1 : display QUEUE('D2KRequest')
AMQ8409: Display Queue details.
   QUEUE(D2KRequest)                       TYPE(QLOCAL)
   ACCTQ(QMGR)                             ALTDATE(2008-03-05)
   ALTTIME(18.00.28)                       BOQNAME( )
   BOTHRESH(0)                             CLUSNL( )
   CLUSTER( )                              CLWLPRTY(0)
   CLWLRANK(0)                             CLWLUSEQ(QMGR)
   CRDATE(2008-01-23)                      CRTIME(16.14.30)
   CURDEPTH(4)                             DEFBIND(OPEN)
   DEFPRTY(0)                              DEFPSIST(YES)
   DEFSOPT(SHARED)                         DEFTYPE(PREDEFINED)
   DESCR( )                                DISTL(NO)
   GET(ENABLED)                            HARDENBO
   INITQ( )                                IPPROCS(0)
   MAXDEPTH(5000)                          MAXMSGL(4194304)
   MONQ(QMGR)                              MSGDLVSQ(PRIORITY)
   NOTRIGGER                               NPMCLASS(NORMAL)
   OPPROCS(0)                              PROCESS( )
   PUT(ENABLED)                            QDEPTHHI(80)
   QDEPTHLO(20)                            QDPHIEV(DISABLED)
   QDPLOEV(DISABLED)                       QDPMAXEV(ENABLED)
   QSVCIEV(NONE)                           QSVCINT(999999999)
   RETINTVL(999999999)                     SCOPE(QMGR)
   SHARE                                   STATQ(QMGR)
   TRIGDATA( )                             TRIGDPTH(1)
   TRIGMPRI(0)                             TRIGTYPE(FIRST)
   USAGE(NORMAL)

     2 : display CHANNEL('RequestCH')
AMQ8414: Display Channel details.
   CHANNEL(RequestCH)                      CHLTYPE(RCVR)
   ALTDATE(2008-01-23)                     ALTTIME(16.11.00)
   BATCHSZ(50)                             COMPHDR(NONE)
   COMPNONE                           DESCR( )
   HBINT(300)                              KAINT(AUTO)
   MAXMSGL(4194304)                        MCAUSER( )
   MONCHL(QMGR)                            MRDATA( )
   MREXIT( )                               MRRTY(10)
   MRTMR(1000)                             MSGDATA( )
   MSGEXIT( )                              NPMSPEED(FAST)
   PUTAUT(DEF)                             RCVDATA( )
   RCVEXIT( )                              SCYDATA( )
   SCYEXIT( )                              SENDDATA( )
   SENDEXIT( )                             SEQWRAP(999999999)
   SSLCAUTH(REQUIRED)                      SSLCIPH( )
   SSLPEER( )                              STATCHL(QMGR)
   TRPTYPE(TCP)
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173716
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
import java.io.IOException;

import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
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;

public class Client {
	Arguments					arguments;	// Агргументы коммандной строки
	private MQQueueManager	qmgr;		// Соединение с менеджером очередей

	/*
	 * Constructor
	 */
	public Client(String[] args) {
		arguments = new Arguments(args);
	}

	/*
	 * Создание нового менеджера очередей, если он еще не создан
	 */
	private MQQueueManager getQueueManager() throws MQException {
		MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, arguments.transport);
		MQEnvironment.hostname = arguments.hostname;
		MQEnvironment.port = arguments.port;
		MQEnvironment.channel = arguments.channel;
		MQEnvironment.CCSID = 1251;
		if (qmgr == null || !qmgr.isConnected())
			qmgr = new MQQueueManager(arguments.queueManager);
		return qmgr;
	}

	/*
	 * Отправка сообщения в очередь
	 */
	public void sendMessage(MQMessage message) throws MQException {
		MQQueue mqQueue = getQueueManager().accessQueue(arguments.requestQueue, MQC.MQOO_OUTPUT);
		MQPutMessageOptions pmo = new MQPutMessageOptions();
		mqQueue.put(message, pmo);
		mqQueue.close();
		disconnect();
	}

	/*
	 * Получение сообщения из очереди
	 */
	public MQMessage receiveMessage(int wait) throws MQException {
		MQQueue mqQueue = getQueueManager().accessQueue(arguments.responseQueue, MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT);
		MQGetMessageOptions gmo = new MQGetMessageOptions();
		gmo.options = MQC.MQGMO_WAIT;
		gmo.waitInterval = wait;
		MQMessage message = new MQMessage();
		mqQueue.get(message, gmo);
		mqQueue.close();
		disconnect();
		return message;
	}

	/*
	 * Разрыв соединения с менеджером очередей
	 */
	private void disconnect() {
		try {
			if (qmgr != null && qmgr.isConnected())
				qmgr.disconnect();
		} catch (MQException e) {
			qmgr = null;
		}
	}

	/*
	 * Класс используемый для получения параметров коммандной строки
	 */
	private class Arguments {
		int				index	= 0;
		private String	hostname;
		private String	channel;
		private int		port;
		private String	queueManager;
		private String	requestQueue;
		private String	responseQueue;
		private String	transport;

		private String	firstName;
		private String	lastName;
		private String	middleName;
		private String	documentNumber;
		private String	symbol;
		private String	region;

		public Arguments(String[] args) {
			process(args);
		}

		private void process(String[] args) {
			while (index < args.length) {
				String arg = args[index++];
				String value = args[index++];
				if (value.startsWith("-")) {
					value = null;
					index--;
				}
				if (value != null) {
					if (arg.startsWith("-hostname"))
						this.hostname = value;
					else if (arg.startsWith("-channel"))
						this.channel = value;
					else if (arg.startsWith("-port"))
						this.port = Integer.parseInt(value);
					else if (arg.startsWith("-queueManager"))
						this.queueManager = value;
					else if (arg.startsWith("-requestQueue"))
						this.requestQueue = value;
					else if (arg.startsWith("-responseQueue"))
						this.responseQueue = value;
					else if (arg.startsWith("-transport")) {
						if (value.equals("bindings"))
							this.transport = MQC.TRANSPORT_MQSERIES_BINDINGS;
						else
							this.transport = MQC.TRANSPORT_MQSERIES_CLIENT;
					} else if (arg.startsWith("-lastName")) {
						this.lastName = value;
					} else if (arg.startsWith("-firstName")) {
						this.firstName = value;
					} else if (arg.startsWith("-middleName")) {
						this.middleName = value;
					} else if (arg.startsWith("-documentNumber")) {
						this.documentNumber = value;
					} else if (arg.startsWith("-symbol")) {
						this.symbol = value;
					} else if (arg.startsWith("-region")) {
						this.region = value;
					}
				}
			}
		}
	}

	public MQMessage createMessage() {
		MQMessage request = new MQMessage();
		try {
			// создаем сообщение с запросом
			// lastName
			request.writeUTF(arguments.lastName);
			// firstName
			request.writeUTF(arguments.firstName);
			// middleName
			request.writeUTF(arguments.middleName);
			// documentNumber
			request.writeUTF(arguments.documentNumber);
			// symbol
			request.writeUTF(arguments.symbol);
			// region
			request.writeUTF(arguments.region);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return request;
	}

	public static void main(String[] args) {
		Client client = new Client(args);
		try {
			MQMessage request = client.createMessage();
			// Send the message
			client.sendMessage(request);
			// Wait for response
			MQMessage response = client.receiveMessage(5000);
			System.out.println("Response from Service:" + response.readUTF());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173741
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже на правду. а поле формат в отсылаемом сообщении какое получается?
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173761
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
MDXMIT
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173771
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
В QM2 приходит с пустым полем format
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173787
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mekhos NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
В QM2 приходит с пустым полем format


Всё правильно.


MDXMIT это queue manager добавляет заголовок к сообщению. но я посмотрел конструктор там должно быть правильно, MQFMT_NONE.


со стороны MQ тут похоже всё корректно.



попробуйте ваш message распечатать непосредственно перед отправкой.
и вот этот ваш аргументс.


А то в java я не особо силен.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173815
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что нибудь вроде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public void sendMessage(MQMessage message) throws MQException {		MQQueue 

MQMessage message1 = new MQMessage();
      message1.writeUTF("Hello World!");


mqQueue = getQueueManager().accessQueue(arguments.requestQueue, MQC.MQOO_OUTPUT);		MQPutMessageOptions pmo = new MQPutMessageOptions();		mqQueue.put(message1, pmo);		mqQueue.close();		disconnect();	}

должно работать
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173824
mekhos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Hello World!" дошло!
Это значит размер сообщений слишком большой? Или с кодировкой какие-то проблемы? Я на русском в сообщение строки пишу.
...
Рейтинг: 0 / 0
Проблема с доставкой в MQ
    #35173842
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это значит ищите ошибку у себя в программе :)
как-то вы не так формируете сообщение :)

с кодировкой проблем здесь нет ( я имею в виду того что касается WebSphere MQ)
размер сообщения корректный :) . см чему равен MAXMSGL выше
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с доставкой в MQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]