powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / MQSeries clients. Вопрос по конфигурации.
25 сообщений из 124, страница 4 из 5
MQSeries clients. Вопрос по конфигурации.
    #33184634
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
ну осталось настроить каналы и вот эту "выделенная (для нас) очередь" сделать как Remote Queue Definition.
Видимо у меня какая-то сильно неполная документация. :(
Я сейчас делаю вот так:
на одном менеджере определяю request channel которому в Connection name определяю (по TCP\IP) имя своей машины и в скобках - порт на котором висит листенер целевого менеджера. Потом определяю Remote Queue. Но там нигде не указывается канал... думал, что может оно автоматом получает возможные имена удаленных менеджеров и имена очередей... но я указываю имена своих менеджера и очереди... но mqopen для этой очереди (где она remote definition) не выполняется. Вот еще интересно - где бы вводить эти mq команды вручную? У меня есть прилада MQSeries API Exerciser - но она шлет команды только такие как на кнопочках нарисовано (MQOPEN, MQDISC, MQCONN, etc)... еще есть коммандная строка для неких MQSC комманд - она запускается и говорит, что команды, которые она понимает: alter, clear, start, define, delete, etc... :(

Если это просто - может Вы могли бы мне дать пример, в рамках одного сервера, как можно обмениваться сообщениями между очередями разных менеджерами?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184704
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Дока http://www-306.ibm.com/software/integration/mqfamily/library/manualsa/
прога runmqsc
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184740
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
QMGR_1
1) define qlocal(<name>)
2) define channel(<name>) chltype(rcvr) trptype(<type>)

QMGR_2
1) define qlocal(QMGR_1) usage(xmitq)
2) defione channel(<name>) chltype(sdr) conname(<'string'>) trptype(<type>) xmitq(<name>)
3) define qremote(<name>) rname(<'name'>) rqname(QMGR_1)

все это по шагам описано в Quick Beginning который можно со ссылки на доку которую я дал найти, или вот для V6 -
http://www-306.ibm.com/software/integration/mqfamily/library/manualsa/manuals/platspecific.html
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184753
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Runner, прочитайте книжку Intrecommunication, так вообще невозможно говорить.


в Remote Queue Definition обычто указывается Remote Queue Name и Remote Queue Manager Name ( хотя есть идругие варианты),

>... но mqopen для этой очереди (где она remote definition
опции в MQOPEN указаны неправильно.

>как можно обмениваться сообщениями между очередями разных менеджерами?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184776
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
MQ.
Истории в картинках.
NewYear.
Это круче, чем банк "Империал".
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184782
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
только хочу таки дополнить, что application programming guide тоже читать надо вместе с intercommunication guide.
Но это исторически - я ставлю application programming guide на первое место,
а NewYear ставит intercommunication guide на первое место.
Таки придется читать оба и одновременно :))
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33185758
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Таки придется читать оба и одновременно :))
Угу. И быстро! :)

Ладно, что-то почитал (не все). Что-то поробовал - нифига не получилось. Если возможно, подскажите конкретно где я ошибся и как правильно.
Итак, два менеджера сообщений на одном сервере:
1. remote
Очереди:

a) cantsend - normal (установлена как дефолтная Dead-Letter Queue для remote)
b) send - transmission (установлена как дефолтная Transmission для remote)
c) local_sended - Remote Queue Definition (Remote Queue Name - sended, Remote Queue Manager Name - local, Transmission Queue Name - send)

Каналы:

а) ch1 - Server (TCP/IP, localhost(2222), Transmission Queue - send)

Listener слушает порт 1111

2. local
Очереди:

а) sended - normal

Каналы:

а) ch1 - Requester (TCP/IP, localhost(1111))

Listener слушает порт 2222

Теперь что пытаюсь делать:
1. Через MQSeries API Exerciser делаю MQCONN к remote
2. MQOPEN для send
3. Пару раз MQPUT
4. MQCLOSE, MQDISC

После этого в очереди send на remote у меня лежат эти два сообщения.
Теперь делаю на local: (в MQSEries Browser) правой кнопой на канале ch1, и - Start. Сообщения из send пропадают, но в sended на local не появляются! :( Зато появляются два сообщения в cantsend c Dead-Letter Header = MQFB_XMIT_Q_MSG_ERROR (в хелпе прочитал, что это означает, что он не может послать сообщение, т.к. оно неправильного формата).

В связи с этим у меня вопросы:
1. Что за формат, как его посмотреть, установить... если вам не трудно. Или когда еще может быть такая ошибка?
2. Названия\имена менеджеров, хостов, очередей - регистрозависимы млм нет? (конркетно у меня сейчас все сделано маленькими латинскими буквами, просто на будущее знать)
3. Столкнулся с тем, что после того как положу сообщения в очередь send и потом запущу старт канала на local, то потом не могу открыть очередь send - пишет, что объект занят. Я думал, что должна быть полная асинхронность и, соответственно, мультипользовательский доступ к очередям для записи и чтения. Я что-то не так делаю?
4. Не совсем понял - вроде бы в каких-то местах читал, что нужно открывать и делать MQPUT не в send, а в local_sended. Но она у меня не открывается. Если должна, то я, конечно, разберусь... но может быть вы мне подскажете сразу какие параметры мне нужно определить для MQOPEN и MQPUT?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33185798
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Что за формат, как его посмотреть, установить... если вам не трудно. Или когда еще может быть такая ошибка?

а вот не нужно ложить сообщение напрямую в transmission queue.
формат в доке есть. установить -- программно. т.е формировать сообщение именно такого формата. + поле Format в MQMD. в нормальном режиме queue manager дописывает к сообщению спец. заголовок, и потом кладет его в transmission queue.



2. Названия\имена менеджеров, хостов, очередей - регистрозависимы млм нет? (конркетно у меня сейчас все сделано маленькими латинскими буквами, просто на будущее знать)

регистрозависимы


3. Столкнулся с тем, что после того как положу сообщения в очередь send и потом запущу старт канала на local, то потом не могу открыть очередь send - пишет, что объект занят. Я думал, что должна быть полная асинхронность и, соответственно, мультипользовательский доступ к очередям для записи и чтения. Я что-то не так делаю?


так и должно быть. приложения обычно не обращаются к transmission queue.


4. Не совсем понял - вроде бы в каких-то местах читал, что нужно открывать и делать MQPUT не в send, а в local_sended. Но она у меня не открывается. Если должна, то я, конечно, разберусь... но может быть вы мне подскажете сразу какие параметры мне нужно определить для MQOPEN и MQPUT?

поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT.


P/S

каналы sender/receiver.

имя transmission queue обычно совпадает с именем менежера, на кот. нужно отправить сообщения. это важно для маршрутизации сообщений.

руками канал статровать не нужно, нужно настроить trigger condition на tramsmission queue.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33185923
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
а вот не нужно ложить сообщение напрямую в transmission queue.

Ну я так и думал, просто у меня не ложилось в правильную. :)


так и должно быть. приложения обычно не обращаются к transmission queue.

Ну да - в таком ключе становится более понятно его поведение.


поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT.

Вроде бы я так пробовал... завтра попробую еще.


каналы sender/receiver.

Хмм.. поправьте, если ошибусь, но при sender\reciver инициатором передачи выступает sender. А у меня ситуация, что сообщения помещаются в "мою" очередь на удаленном сервере, а мне нужно инициировать соединение и забирать сообщения для меня. Впрочем я запутался во всех этих сендерах\ресиверах\реквестерах\серверах...


имя transmission queue обычно совпадает с именем менежера, на кот. нужно отправить сообщения. это важно для маршрутизации сообщений.

У меня особой маршрутизации не будет, но, конечно, лучше делать сразу как принято де факто и как правильнее.


руками канал статровать не нужно, нужно настроить trigger condition на tramsmission queue.
На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186173
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT.

Так работает! :) А вчера я пробовал эту опцию включать, но, видимо, были включены еще другие опции.

NewYear , ggv - Спасибо вам огромное за терпение! Задача у меня пока окончательно не решена, но с мертвой точки сдвинулась однозначно. Да и в голове по чуть-чуть начинает укладываться.

З.Ы. Но вы все же ответьте на мое предыдущее сообщение, если будет минутка свободного времени.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186544
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент.

ну да для сендер\ресивер.


>Ведь у меня инициирует соединение клиент.
можно конечно так. на практике я никогда так не делал.

вообще вот такая последовательность.


1) программа A на S/390 порождает сообщения и записывает их в RQD.
2) при этом сообщения попадают в transmission queue.
3) для transmission queue генерируется триггерное событие
4) в ответ на триггерное событие channel initiator на S/390 стартует sender channel
5) устанавливается соединение sender/receiver
6) сообщения доставляются в целевую очередь на w2k
7) для этой целевой очереди генерируется триггерное событие
8) в ответ на триггерное событие trigger monitor запускает вашу программку.
9) программка читает пришедшие сообщения из очереди и записывает в sql server
10) щастье.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186578
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
чертовски занчт (просто как назло поперло - куча клиентов, которые все хотят использовать MQ не понимая как. И зачем)
Так что если не трудно - повторно вопросы требующие ответа.
Честно говоря, сумбурненькое немного сообщеньице было, вчитываться надо, а некогда.
И еще - Explorer на свалку.
Все что надо - в файл. Ну там определения очередей, каналов, define, alter.
затем runmqsc -v < input.file (проверяем синтаксис, verify короче)
ну и финально runmqsc < input.file > output.file
можно выполнить команды и на удаленном qmgr.
все это написано в system administration guide.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186617
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Explorer кстати не работает с S/390 т.к там нет PCF и способ работы с Command Server несколько иной. RQD на мейфрейме тоже, кстати не обязательна, но пока об этом рано говорить.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186800
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
RQD - или local definition of the remote queue (оно?) на любых платформах не обязательно.
Чтобы сообщение попало в удаленную очередь, должно выполняться одно из трех
1) быть local definition of the remote queue;
2) имя transmition queue должно полностью совпадать с именем remote qmgr;
3) определен local alias for the remote qmgr;

ну канал я не упоминаю.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186828
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>RQD - или local definition of the remote queue (оно?) на любых платформах не обязательно.

я имел в виду этот конкретный случай.


local alias for the remote qmgr тоже предсавляет собой Remote Queue Definition, в котором в поле RemoteQueue ниче не указано
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33186859
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
>Ведь у меня инициирует соединение клиент.
можно конечно так. на практике я никогда так не делал.

Ну, здесь я ставить задачу не могу, решаю задачу в тех рамках, в которых мне ее поставили.


вообще вот такая последовательность.

Согласен, что так будет правильнее и беспроблемнее, но (во всяком случае, на этом этапе) задача стоит так, что мы должны инициировать соединение и забирать наши сообщения - насколько я понял, в этом случае может вырасти сетевой трафик, т.к. проверять есть сообщения или нет придется просто через интервалы времени. Правда сообщений будет достаточно много скорее всего!

ggv
Так что если не трудно - повторно вопросы требующие ответа

Не трудно, но на них уже ответил New Year. Пока больше вопросов нет - вот сейчас пытаюсь читать про то, каким же образом можно управлять секурностью - где задавать\определять пользователей, пароли, принадлежности очередей. Но про это мне стоит почитать сначала, а уж потом вопросы задавать. :)

Вообще, конечно, тема достаточно большая и интересная, если бы у нас планировалось более масштабное внедрение сообщений, то, вероятно, был бы и более серьезный подход. А так эти сообщения воспринимаются просто дополнительной заморочкой, которую надо обойти и все (потому что уже есть и отлично функционирует схема получения данных из таблиц удаленного сервера, тем более, что sql server позволяет линковать удаленные сервера и обращаться к их таблицам, вьюшкам, функциям и процедурам). Мне бы по этой теме было бы очень интересно послушать\высказаться (хотя я не могу достаточно авторитетно сказать про плюсы и минусы очередей сообщений, но никак не могу найти минусы в использовании удаленных таблиц). Но это, наверно, лучше делать другой теме и когда у вас будет свободное время. А эту тему оставить для вопросов-ответов по конфигурации клиентов-каналов-серверов MQSeries.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187013
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
да очень просто все - MQ это IPC
Особого вида и с особыми свойствами
Поэтому если есть опыт программирования с IPC, или даже лучше сказать с RPC - то легче представить что такое MQ
Как и любой IPC это всего лишь API
а подробнее - в руководствах, там даже с картинками.
Ну не везде есть смысл лепить RDBMS для воплощения IPC
А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить. Вот и продукт есть - Information Integrator Replication Edition (если не ошибся в названии)
А попросту - Q-Replication, или репликация поверх MQ.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187042
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
MQ не занимается authentication.
MQ делает authorization - в руководстве написано в каких случаях
Если коротко - права доступа на сообщения не задаются.
Если недостаточно - есть куча API. можно воплотить все, что угодно.
А можно посмотреть на http://www-306.ibm.com/software/integration/wmq/securityedition/
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187048
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Ну не везде есть смысл лепить RDBMS для воплощения IPC

100% согласен.


А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить.
Представить-то легко. Но если стоит задача ТОЛЬКО репликации (или просто предоставления данных с одного сервера OLTP для нескольких серверов OLTP или OLAP), то и плюсов нет. Или я все же что-то еще недопонимаю?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187068
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну судя по тому, что IBM мигрирует с SQL-replication to Q-replication - видимо чего-то вы с IBM понимаете по другому.
Если посмотреть на
http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.ii.doc/start/cgpdif00.htm
то можно выявить, что есть всего лишь один случай, где SQL-replication имеет преимущество перед Q-replication -
http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.ii.doc/start/cgprsbdd.htm
второй пункт в таблице, Data Distribution.

Есть и практические примеры преимуществ - но уже на мыло, если хочешь.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187121
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
или по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера.... А ну как он аж фиг знает где....
А вот запросить функционал, послать request, это легко. Главное - интерфейс согласовать. Ну формат запроса. И ответа. А там - пусть хоть совсем перепишут SP, или вместо SP чё другое ответит - фиолетово. И пусть этот сервер и не фиг знает где, а в соседнем LPAR'е - фиолетово. Такая схема универсальна.
Ну и само собой - request не по HTTP пойдет, а mq message.
Ну это как пример(чик)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187123
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
То есть SOA - Service Oriented Architecture. (не путать с web services)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187236
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvну судя по тому, что IBM мигрирует с SQL-replication to Q-replication - видимо чего-то вы с IBM понимаете по другому.

По моему, пока очень небольшому, опыту общения с DB2 IBM очень многое понимает по другому. :)
Тем не менее (как мне кажется) абсолютное большинство RBDMS встраивает в свои продукты механизмы репликации и получения данных из удаленных БД. Вероятно они тоже имеют мнение отличное от мнения IBM. Впрочем, MS, говорят, в Юконе уже ввела более плотную интеграцию с очередями сообщений. Интересно - будут ли они напрямую поддерживать MQSeries.


Если посмотреть на

Я постараюсь.


Есть и практические примеры преимуществ - но уже на мыло, если хочешь.
r_runner at mail.ru
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187305
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
тут ведь как посмотреть
ВОт у того же oracle - ведь нет ничего кроме базы.
А IBM'у с его middleware is everywhere надо чтобы любой его продукт мог работать с любым другим его и не его продуктом. Ну то есть Information Integration по-другому.
Вот и получается, что подход разный. Пусть та же репликация будет конечно, но почему бы ей и не быть поверх MQ (который зарекомендовал себя со всех сторон и практически монополист на рынке, токо тихо об этом), при это возникают вот дополнительные возможности.
Ну типа - теперь мы, если надо, и для oracle могём Q репликацию прикрутить.
А фигли нам. И реплицировать из ораклы в IMS , да хоть в домино, хоть в текстовый файл, хоть в BerkeleyDB или ваще - отдать прямо в любое приложение и пусть делает чего угодно с данными.
Так что вот такой вот модульный подход имеет место быть.
Просто надо абстрагироваться от подхода "все в одном флаконе (оракле)", а иметь набор тулзов, способных интегрироваться и делать чего надо в разных сочетаниях.
Но ораклу тоже понять можно - надо же привязать клиента, так как весь доход только с базы - вот к ней и надо привязать.
А у MS доход более диверфецирован, вот и проявляется такая же тенденция, как и у IBM, но на одной платформе.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187350
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvили по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера....

Ну а что тут страшного, если
Главное - интерфейс согласовать.


А ну как он аж фиг знает где....

Да и пусть - ничего более страшного, чем и при очередях. Как мне кажется.

Однако SP - это очень неправильно. Особенно в DB2 - там они не могут быть федеративными. Да и другие СУБД понимают их ресальсеты как табличные значения со многими ограничениями. На мой взгляд наиболее гибко получается, если предоставляется вьюшка или табличная функция с инкрементальным ключом. Конечно, если вью или функцию переписать - все может сломаться, но ведь если формат сообщений поменять в одностороннем порядке, то все то же сломается. Вью или функция как раз и есть тот самый интерфейс, который надо согласовывать и менять только при обоюдной договоренности... ну, или хотя бы обязательном уведомлении.

Я пока увидел один (возможно очень серьезный для некоторых применений) плюс - при схеме, когда сообщение посылает сервер по триггеру получится реализовать соответствие таблиц (я так думаю, про триггеры еще не читал) в реальном (насколько позволит скорость сетевого соединения) времени. Просто с БД это можно также сделать достаточно эффективно, но несколько заморочено. И вижу (как мне кажется) один минус - надо договариваться о формате сообщений и реализовывать парсер(ы), а это означает дополнительное время на разработку и удорожание пересылки (в смысле объемов) и обработки (в смысле ресурсов - ЦП и памяти).
...
Рейтинг: 0 / 0
25 сообщений из 124, страница 4 из 5
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / MQSeries clients. Вопрос по конфигурации.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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