|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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... :( Если это просто - может Вы могли бы мне дать пример, в рамках одного сервера, как можно обмениваться сообщениями между очередями разных менеджерами? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:34 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Дока http://www-306.ibm.com/software/integration/mqfamily/library/manualsa/ прога runmqsc ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:51 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Runner, прочитайте книжку Intrecommunication, так вообще невозможно говорить. в Remote Queue Definition обычто указывается Remote Queue Name и Remote Queue Manager Name ( хотя есть идругие варианты), >... но mqopen для этой очереди (где она remote definition опции в MQOPEN указаны неправильно. >как можно обмениваться сообщениями между очередями разных менеджерами? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
MQ. Истории в картинках. NewYear. Это круче, чем банк "Империал". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:08 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
только хочу таки дополнить, что application programming guide тоже читать надо вместе с intercommunication guide. Но это исторически - я ставлю application programming guide на первое место, а NewYear ставит intercommunication guide на первое место. Таки придется читать оба и одновременно :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:11 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 19:19 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 20:05 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear а вот не нужно ложить сообщение напрямую в transmission queue. Ну я так и думал, просто у меня не ложилось в правильную. :) так и должно быть. приложения обычно не обращаются к transmission queue. Ну да - в таком ключе становится более понятно его поведение. поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT. Вроде бы я так пробовал... завтра попробую еще. каналы sender/receiver. Хмм.. поправьте, если ошибусь, но при sender\reciver инициатором передачи выступает sender. А у меня ситуация, что сообщения помещаются в "мою" очередь на удаленном сервере, а мне нужно инициировать соединение и забирать сообщения для меня. Впрочем я запутался во всех этих сендерах\ресиверах\реквестерах\серверах... имя transmission queue обычно совпадает с именем менежера, на кот. нужно отправить сообщения. это важно для маршрутизации сообщений. У меня особой маршрутизации не будет, но, конечно, лучше делать сразу как принято де факто и как правильнее. руками канал статровать не нужно, нужно настроить trigger condition на tramsmission queue. На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 00:33 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT. Так работает! :) А вчера я пробовал эту опцию включать, но, видимо, были включены еще другие опции. NewYear , ggv - Спасибо вам огромное за терпение! Задача у меня пока окончательно не решена, но с мертвой точки сдвинулась однозначно. Да и в голове по чуть-чуть начинает укладываться. З.Ы. Но вы все же ответьте на мое предыдущее сообщение, если будет минутка свободного времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 09:57 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
> На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент. ну да для сендер\ресивер. >Ведь у меня инициирует соединение клиент. можно конечно так. на практике я никогда так не делал. вообще вот такая последовательность. 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) щастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 11:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
чертовски занчт (просто как назло поперло - куча клиентов, которые все хотят использовать MQ не понимая как. И зачем) Так что если не трудно - повторно вопросы требующие ответа. Честно говоря, сумбурненькое немного сообщеньице было, вчитываться надо, а некогда. И еще - Explorer на свалку. Все что надо - в файл. Ну там определения очередей, каналов, define, alter. затем runmqsc -v < input.file (проверяем синтаксис, verify короче) ну и финально runmqsc < input.file > output.file можно выполнить команды и на удаленном qmgr. все это написано в system administration guide. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 12:06 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Explorer кстати не работает с S/390 т.к там нет PCF и способ работы с Command Server несколько иной. RQD на мейфрейме тоже, кстати не обязательна, но пока об этом рано говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 12:14 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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; ну канал я не упоминаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:17 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>RQD - или local definition of the remote queue (оно?) на любых платформах не обязательно. я имел в виду этот конкретный случай. local alias for the remote qmgr тоже предсавляет собой Remote Queue Definition, в котором в поле RemoteQueue ниче не указано ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:26 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear >Ведь у меня инициирует соединение клиент. можно конечно так. на практике я никогда так не делал. Ну, здесь я ставить задачу не могу, решаю задачу в тех рамках, в которых мне ее поставили. вообще вот такая последовательность. Согласен, что так будет правильнее и беспроблемнее, но (во всяком случае, на этом этапе) задача стоит так, что мы должны инициировать соединение и забирать наши сообщения - насколько я понял, в этом случае может вырасти сетевой трафик, т.к. проверять есть сообщения или нет придется просто через интервалы времени. Правда сообщений будет достаточно много скорее всего! ggv Так что если не трудно - повторно вопросы требующие ответа Не трудно, но на них уже ответил New Year. Пока больше вопросов нет - вот сейчас пытаюсь читать про то, каким же образом можно управлять секурностью - где задавать\определять пользователей, пароли, принадлежности очередей. Но про это мне стоит почитать сначала, а уж потом вопросы задавать. :) Вообще, конечно, тема достаточно большая и интересная, если бы у нас планировалось более масштабное внедрение сообщений, то, вероятно, был бы и более серьезный подход. А так эти сообщения воспринимаются просто дополнительной заморочкой, которую надо обойти и все (потому что уже есть и отлично функционирует схема получения данных из таблиц удаленного сервера, тем более, что sql server позволяет линковать удаленные сервера и обращаться к их таблицам, вьюшкам, функциям и процедурам). Мне бы по этой теме было бы очень интересно послушать\высказаться (хотя я не могу достаточно авторитетно сказать про плюсы и минусы очередей сообщений, но никак не могу найти минусы в использовании удаленных таблиц). Но это, наверно, лучше делать другой теме и когда у вас будет свободное время. А эту тему оставить для вопросов-ответов по конфигурации клиентов-каналов-серверов MQSeries. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:36 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
да очень просто все - MQ это IPC Особого вида и с особыми свойствами Поэтому если есть опыт программирования с IPC, или даже лучше сказать с RPC - то легче представить что такое MQ Как и любой IPC это всего лишь API а подробнее - в руководствах, там даже с картинками. Ну не везде есть смысл лепить RDBMS для воплощения IPC А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить. Вот и продукт есть - Information Integrator Replication Edition (если не ошибся в названии) А попросту - Q-Replication, или репликация поверх MQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
MQ не занимается authentication. MQ делает authorization - в руководстве написано в каких случаях Если коротко - права доступа на сообщения не задаются. Если недостаточно - есть куча API. можно воплотить все, что угодно. А можно посмотреть на http://www-306.ibm.com/software/integration/wmq/securityedition/ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:28 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Ну не везде есть смысл лепить RDBMS для воплощения IPC 100% согласен. А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить. Представить-то легко. Но если стоит задача ТОЛЬКО репликации (или просто предоставления данных с одного сервера OLTP для нескольких серверов OLTP или OLAP), то и плюсов нет. Или я все же что-то еще недопонимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:29 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну судя по тому, что 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. Есть и практические примеры преимуществ - но уже на мыло, если хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:35 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
или по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера.... А ну как он аж фиг знает где.... А вот запросить функционал, послать request, это легко. Главное - интерфейс согласовать. Ну формат запроса. И ответа. А там - пусть хоть совсем перепишут SP, или вместо SP чё другое ответит - фиолетово. И пусть этот сервер и не фиг знает где, а в соседнем LPAR'е - фиолетово. Такая схема универсальна. Ну и само собой - request не по HTTP пойдет, а mq message. Ну это как пример(чик) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:50 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
То есть SOA - Service Oriented Architecture. (не путать с web services) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:51 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvну судя по тому, что IBM мигрирует с SQL-replication to Q-replication - видимо чего-то вы с IBM понимаете по другому. По моему, пока очень небольшому, опыту общения с DB2 IBM очень многое понимает по другому. :) Тем не менее (как мне кажется) абсолютное большинство RBDMS встраивает в свои продукты механизмы репликации и получения данных из удаленных БД. Вероятно они тоже имеют мнение отличное от мнения IBM. Впрочем, MS, говорят, в Юконе уже ввела более плотную интеграцию с очередями сообщений. Интересно - будут ли они напрямую поддерживать MQSeries. Если посмотреть на Я постараюсь. Есть и практические примеры преимуществ - но уже на мыло, если хочешь. r_runner at mail.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:23 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
тут ведь как посмотреть ВОт у того же oracle - ведь нет ничего кроме базы. А IBM'у с его middleware is everywhere надо чтобы любой его продукт мог работать с любым другим его и не его продуктом. Ну то есть Information Integration по-другому. Вот и получается, что подход разный. Пусть та же репликация будет конечно, но почему бы ей и не быть поверх MQ (который зарекомендовал себя со всех сторон и практически монополист на рынке, токо тихо об этом), при это возникают вот дополнительные возможности. Ну типа - теперь мы, если надо, и для oracle могём Q репликацию прикрутить. А фигли нам. И реплицировать из ораклы в IMS , да хоть в домино, хоть в текстовый файл, хоть в BerkeleyDB или ваще - отдать прямо в любое приложение и пусть делает чего угодно с данными. Так что вот такой вот модульный подход имеет место быть. Просто надо абстрагироваться от подхода "все в одном флаконе (оракле)", а иметь набор тулзов, способных интегрироваться и делать чего надо в разных сочетаниях. Но ораклу тоже понять можно - надо же привязать клиента, так как весь доход только с базы - вот к ней и надо привязать. А у MS доход более диверфецирован, вот и проявляется такая же тенденция, как и у IBM, но на одной платформе. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:47 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvили по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера.... Ну а что тут страшного, если Главное - интерфейс согласовать. А ну как он аж фиг знает где.... Да и пусть - ничего более страшного, чем и при очередях. Как мне кажется. Однако SP - это очень неправильно. Особенно в DB2 - там они не могут быть федеративными. Да и другие СУБД понимают их ресальсеты как табличные значения со многими ограничениями. На мой взгляд наиболее гибко получается, если предоставляется вьюшка или табличная функция с инкрементальным ключом. Конечно, если вью или функцию переписать - все может сломаться, но ведь если формат сообщений поменять в одностороннем порядке, то все то же сломается. Вью или функция как раз и есть тот самый интерфейс, который надо согласовывать и менять только при обоюдной договоренности... ну, или хотя бы обязательном уведомлении. Я пока увидел один (возможно очень серьезный для некоторых применений) плюс - при схеме, когда сообщение посылает сервер по триггеру получится реализовать соответствие таблиц (я так думаю, про триггеры еще не читал) в реальном (насколько позволит скорость сетевого соединения) времени. Просто с БД это можно также сделать достаточно эффективно, но несколько заморочено. И вижу (как мне кажется) один минус - надо договариваться о формате сообщений и реализовывать парсер(ы), а это означает дополнительное время на разработку и удорожание пересылки (в смысле объемов) и обработки (в смысле ресурсов - ЦП и памяти). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:59 |
|
|
start [/forum/topic.php?fid=43&msg=33186617&tid=1605823]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 476ms |
0 / 0 |