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

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

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

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

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

хорошо бы чтобы имя было QM2,
но без MQSC гадать не буду
...
Рейтинг: 0 / 0
05.03.2008, 17:40
    #35173641
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
Забыл написать. Тестовое сообщение посылаемое через MQ Explorer ходит нормально. То что формирую в приложении ни в какую.
...
Рейтинг: 0 / 0
05.03.2008, 17:43
    #35173650
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
На стэнде все ок в такой же конфигурации. У заказчика на серверах вот такая фигня.
...
Рейтинг: 0 / 0
05.03.2008, 17:56
    #35173682
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
Я всё-таки прошу предоставить информацию что вы там делаете.
MQSC, и в добавок код программы.
...
Рейтинг: 0 / 0
05.03.2008, 17:58
    #35173687
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
Сервер где менеджер очередей 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
05.03.2008, 18:07
    #35173713
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
Сервер где менеджер очередей 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
05.03.2008, 18:08
    #35173716
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
Код: 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
05.03.2008, 18:18
    #35173741
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
похоже на правду. а поле формат в отсылаемом сообщении какое получается?
...
Рейтинг: 0 / 0
05.03.2008, 18:25
    #35173761
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
MDXMIT
...
Рейтинг: 0 / 0
05.03.2008, 18:31
    #35173771
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
В QM2 приходит с пустым полем format
...
Рейтинг: 0 / 0
05.03.2008, 18:38
    #35173787
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
mekhos NewYearпохоже на правду. а поле формат в отсылаемом сообщении какое получается?
В QM2 приходит с пустым полем format


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


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


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



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


А то в java я не особо силен.
...
Рейтинг: 0 / 0
05.03.2008, 18:54
    #35173815
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
что нибудь вроде
Код: 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
05.03.2008, 19:00
    #35173824
mekhos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
"Hello World!" дошло!
Это значит размер сообщений слишком большой? Или с кодировкой какие-то проблемы? Я на русском в сообщение строки пишу.
...
Рейтинг: 0 / 0
05.03.2008, 19:10
    #35173842
NewYear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с доставкой в MQ
это значит ищите ошибку у себя в программе :)
как-то вы не так формируете сообщение :)

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


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