powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / MQSeries clients. Вопрос по конфигурации.
124 сообщений из 124, показаны все 5 страниц
MQSeries clients. Вопрос по конфигурации.
    #32718946
zest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Рассматриваем вариант использования MQ транспорта в схеме 1:N, то есть клиенты соединяются с MQ сервером и кладут/забирают сообщения из соответствующих очередей.

Вопрос в следующем, жизнеспособна ли такая схема?
И как в плане безопасности, то есть несанкционированное чтение/запись в очереди ?

Клиентов планируется около 2000, соединения по интернету.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719059
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
схема не есть правильная. как минимум, нужен хороший канал с каждым клиентом, -- такое соединение не надежно. нельзя работать, когда центральный узел недоступен. кроме того, для каждого соединения запустится экземпляр MCA на сервере, а это 2000 процессов (или threads), это нечто. или они не все 2000 работают одновременно?

в плане безопасности. во-первых, канал можно шифровать с SSL.

конкретно чтение/запись в очередь - есть определенные права доступа к объектам mq для пользователей. это не надежно.

в третьих, вы можете сами обеспечить security.

Раньше поставлятся MQSeries 2.1 for Windows - урезанный вариант mq за символические деньги, он бы лучше подошел. сейчас есть Extended Transactional client, возможно(не знаю), он поддерживает очереди на клиенте, посмотреть стоит.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719551
zest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, в том то и дело, что они все работают одновременно, читая и записывая в очереди достаточно часто обновляемую информацию.

То, что 2000 процессов, не беда, есть возможность поделить между "инстансами" коннекты. Например 4 сервера по 500 клиентов, объединенных в MQ кластер.

Вопрос еще, трафик между клиентом и сервером достаточно толст ?
Можно ли пускать его через Inet ?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719610
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно. кстати, траффик можно сжать при необходимости. смотри send/receive exit в книжке secirity. а так примерно можно считать данные + полтора килобайта на сообщение.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719833
zest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как насчет клиента (Win) ? Есть готовый пак или наработки с "выдиранием" DLL.
Клиентская библиотека большая ? ( в плане распространения и дистрибуции).
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719947
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там галочку можно поставить, что устанавливать только клиент. отдельный дискс клиентом в 5.3. я не видел, хотя у IBM-а есть, наверно. в 5.2 дистрибутив клиента для одного я зыка (ЕN) где-то 10 MБ, целиком 100 мб.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32719963
zest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просмотрел инфо по SSL
Насколько мне понятно SSL там может использоваться только для защиты каналов. А например защитить доступ одного клиента к очереди другого (при условии, что оба имеют установленное SSL соединение с менеджером) невозможно, по крайней мере ан платформах win.
Для этой цели скорее всего подходит security exit....
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #32720802
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, SSL только для каналов. я и не говорил, что он используется для защиты объектов.

для защиты объектов - стандартная авторизаци MQ. смотри команду setmqaut.

есть такая фигня, называется Identity context. это поля в message descriptor и в object desctiptor. одно из полей UserIdentifier в MQMD, и альтернативный идентификатор пользователя в MQOD.
вся авторизация MQ основаня на Identity context. беда в том, как он формируется.

допустим, например, ползователь alex имеет доступ ко всет объектам MQ на машине, где менеджер. если я создам на клиенте пользователя alex, я можу запустить им клиентскую программу и из нее делать что угодно с менеджером.

если ты каким-то образом. разрешишь устанавливать клиентское соединие

с машины orange - только ползователем alex
c машины pea - только ползователем vasya

и т.д., в принципе, ты получишь то, о чем и мечтал. может, SSL для этого сгодится, может, channel exsit, может API exit - смотри доку, я не помню.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182293
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил поднять тему, что бы не плодить - надеюсь ответите, хотя последнее сообщение довольно давно было.

У меня вопрос про клиента для MQSeries. Я скачал с сайта IBM "MQSeries Client for Windows NT and Windows 2000 - V5.2", пытаюсь разобраться. Возник такой простой вопрос - в скачанном архиве есть "либы" и заголовочные файлы некоего апи, судя по всему, для работы с очередью. Не могу только понять - достаточно будет этих библиотек, что бы мое приложение само коннектилось к серверу очереди (под OS\390) и получало оттуда сообщения или этот апи должен коннектится к некоторому клиенту, который у меня должен быть установлен, а уже клиент будет общаться с сервером? Просто сетап отработал - никаких сервисов или клиентов не появилось. А еще на сайте ibm есть некий Websphere MQ Client v5.3 - но он весит аж 90 мегабайт... что в нем, никто не скажет? Прояните мне плиз!!!
А то сейчас начальник собирается реализовывать схему, когда с MQSeries будет работать HIS 2004 от MS, а к нему через MSMQ будет коннектится прилада на си шарпе, разбирать-парсить мессаджи и потом (видимо через XML) вызывать хранимую процедуру на MS SQL и записывать данные в БД. Мне почему то кажется, что слишком много, и лишних, посредников. Может быть порекомендуете другие варианты? Мне надо получать мессаги, парсить их (под виндой) и ложить в MS SQL.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182378
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

этот апи должен коннектится к некоторому клиенту, который у меня должен быть установлен, а уже клиент будет общаться с сервером


воттак.
прочитай в документации про переменную среды MQSERVER.

HIS как я понимаю должен работать непостедственно с server-ом. так что скрее всего ничего не выйдет :)

я не знаю зачем вам здесь MSMQ, когда можно сразу из sql server писать в mqseries (server).
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182429
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
да и вообще, лучше взять MQ 6.0
релиз то уже вышел
а MQ Client - это для реализации работы клиента с менеджером через сеть посредством канала. Потому и большой такой. Если же клиент предполагаеться на той же машине что и менеджер, то можно линковать с "серверными" библиотеками, а не с "клиентскими"
Ну в application programming guide написано.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182430
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
этот апи должен коннектится к некоторому клиенту, который у меня должен быть установлен, а уже клиент будет общаться с сервером


воттак.

Да, жаль тогда. Я наделся, что после линковки с скачанными библиотеками мое приложение и будет непосредственно клиентом (и, соответственно, не будет требовать устанавливать что-то еще)


прочитай в документации про переменную среды MQSERVER.

В документации к чему? В Books on-line ничего не находит ни на MQSERVER, ни на MQSeries.


HIS как я понимаю должен работать непостедственно с server-ом. так что скрее всего ничего не выйдет :)

В смысле с сервером? HIS, как мне казалось просто набор некоторых сервисов и интерфейсов к ним. В его составе идет некоторый MSMQ-MqSeries bridge. А в С# в visual studio есть набор компонент для работы с очередями - пока еще не успел их плотно попробовать (время мало дают, как всегда), но предполагаю, что эти компоненты работают с майкрософтовскими очередями.


я не знаю зачем вам здесь MSMQ, когда можно сразу из sql server писать в mqseries (server).
Мне нужно не писать, а читать, на данный момент. Но и писание было бы не лишним (может быть мы бы наших подписчиков перевели на них, что бы не грузили сам сервер селектами). Но как это делать я не нашел... если Вы занете - то может быть опишете подробнее или ссылку дадите? Особенно, если с примером.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182437
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182441
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
в том же application programming guide написано, как MQ работает в среде XA (распределенной транзакции) как ресурс или менеджер транзакции. Таким же образом можно и с MSSQL
(хотя я кроме db2 ничего не торкал)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182450
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvда и вообще, лучше взять MQ 6.0
релиз то уже вышел

Начальник сейчас договаривается с заказчиком на предмет получения сервера MQ для тестовых целей. Дело в том, что очереди не у нас, просто мы должны будем считывать из очереди в которую будут падать данные для нас.


а MQ Client - это для реализации работы клиента с менеджером через сеть посредством канала. Потому и большой такой.
А вот нечто версии 5.2 (то что я парой постов выше писал) такое маленькое - это же тоже клиент? Или оно не может через сеть?


Если же клиент предполагаеться на той же машине что и менеджер, то можно линковать с "серверными" библиотеками, а не с "клиентскими"
Ну в application programming guide написано.
Нет, не на той. Если я правильно понял, то менеджер партнеры будут поднимать по ОС\390 с DB2. А нам нужно будет под MS Win получать данные для MS SQL.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182482
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
про windows не знаю, а в *nix MQ имеет "Client" пакет, который нужен только в случае, если клиентсоая прога будет работать по сети через канал, и содержит только библиотеки (не считая трех бинарей второстепенных)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182487
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не на той. Если я правильно понял, то менеджер партнеры будут поднимать по ОС\390 с DB2. А нам нужно будет под MS Win получать данные для MS SQL.

ну тогда вообще круто
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182490
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
щас по 5.2 даже доки не найти, только если спрашивать у людей
Если надо, то я могу поискать, где-то среди старих CD могли заваляться
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182539
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
ну тогда вообще круто
Да уж... Но я так понимаю, что вариант где была XA нарисована тоже в силе, что касается правой части рисунка?

Я пока не очень могу понять как можно что-то получить из транзакции, т.к. привык считать, что транзакции контролируют действия с объектами БД и не могу пока понять как они могут выступать в роли источника данных.

В документации по МС ЭсКюЭл написано вот что:
"Microsoft® SQL Server™ can operate as a resource manager in distributed transactions coordinated by transaction managers such as the Microsoft Distributed Transaction Coordinator (MS DTC), or other transaction managers that support the X/Open XA specification for Distributed Transaction Processing"

Из чего я делаю вывод, что у SQL Servera транзакшн координатор совместим с XA спецификацией. И еще написано, что:
"SQL Server applications can manage distributed transactions either through Transact-SQL or the database API."
А из этого - что управление этими самыми транзакциями может осуществляться из T-SQLа... вот только не написано как именно это сделать.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182561
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
картинка с XA конечно в силе.
только вот я сам когда работал с MSSQL через XА, я писал прогу на esql, а у Microsoft-а он отвратительный.

если есть другой способ написать программу, конечно, стоит этим воспользоваться. но это уже вопрос по mssql.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182600
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvщас по 5.2 даже доки не найти, только если спрашивать у людей
Если надо, то я могу поискать, где-то среди старих CD могли заваляться
Да пока не надо, наверное. Я вот отсюда скачивал - http://www-306.ibm.com/software/integration/support/supportpacs/individual/mack.html
около 10 мб зип. Только вот не могу понять - как это использовать. После установки появился в меню Start некий IBM MQ Series Client. Но в нем есть только пару ярлыков на риадми и анинсталл. В самой директории, куда прошла установка - библиотеки и заголовки для Си, С++ и еще других языков. И несколько запускаемых типа amqputc, amqgetc... - программы с такими же именами есть в исходниках в примерах. Мне казалось, что это и есть клиент... Единственно смутило: "Get(signal) on OS/390 is not supported" - это вообще get на ОС\390 не поддерживает или реализация клиента эта не поддерживает get с ОС\390?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182620
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Только вот не могу понять - как это использовать
выставить переменную среды MQSERVER. больше ничего не требуется.


но такая конфигурация не жизнеспособна.
на w2k тоже нужно ставить сервер, и работать с ним.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182660
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати вот текст оттуда

The full MQI is supported in the client environment and this enables almost any MQSeries application to be relinked to run on an MQSeries client. Link the application on the MQSeries client to the MQIC library, rather than to the MQI library. The exceptions are:

--An application that needs syncpoint coordination with other resource managers.
--Get(signal) on OS/390 is not supported.

у вас будет как раз приложение, которое
"needs syncpoint coordination with other resource managers"

про Get(signal) я тоже не понял. клиент, естественно, может работать с OS/390.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182679
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearвыставить переменную среды MQSERVER. больше ничего не требуется.

Так это переменная какой среды? MS SQLа ? Не могу найти в справке упоминание про MQSERVER. Или операционки (MS win2k)?


но такая конфигурация не жизнеспособна.
на w2k тоже нужно ставить сервер, и работать с ним.
А из-за чего? Нестабильно устанавливается коннект с OS\390?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182700
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MQSERVER это переменная среды window, конечно. смотреть в документации по MQSeries.

>Нестабильно устанавливается коннект с OS\390?
да. и не только в OS\390. любое клиентское соединение не стабильно.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182716
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
у вас будет как раз приложение, которое
"needs syncpoint coordination with other resource managers"

Может быть я опять не врубаюсь в элементарные принципы функционирования менеджеров очередей, но точка синхронизации это ведь когда мне кроме чтения очередной порции сообщений надо "сказать" менеджеру: "Все, я сообщения принял и готов для получения следующих" и только после этого он начинает писать в очередь еще сообщения? Если так то мне это как раз не надо. Насколько я понимаю они хотят асинхронно кидать в очередь сообщения по мере появления последних в их БД, а я просто периодически читаю все сообщения, которые есть в этой очереди и заношу их в свою БД. При этом гарантируется, что все сообщения, отправленные мне, будут мне доставлены. И не свосем понятно что значит менеджер ресурсов... :( Менеджер очереди? Или MS SQL тоже является менеджером ресурсов?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182744
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, а почему не посмотреть в сторону Q-Replication + II или WebSphere MQ Message Broker??? Или ограничения по бюджету????
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182749
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оба sql server и MQSeries являются менеджерами ресурсов. и им обоим нужно сказать коммит. причем коммит в данном случае это одна команда, а не две, и распространяется сразу и на MQSeries , и на sql server.

в случае с клиентом такое сделать невозможно.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182785
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
коммит в mq -- то же самое, что и в базе -- зафиксировать изменения.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182794
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearMQSERVER это переменная среды window, конечно. смотреть в документации по MQSeries.
Сейчас буду смотреть - со скачанным мною 10 Мб файлике только риадми шел. Но сейчас из Москвы прислали что-то большое версий 5.2 и 5.3 - может быть там и дока есть.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182802
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>я просто периодически читаю все сообщения, которые есть в этой очереди и заношу их в свою БД

1) начало транзакции.
2) прочитать сообщение из очереди
3) записать его в базу.
4) сделать коммит.

после этого сообщение больше не лежит в очереди, оно в базе

или так

1) начало транзакции.
2) прочитать сообщение из очереди
3) записать его в базу.
5) роллбак

после этого сообщение находится в очереди, а в базе его нет.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182808
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nkulikovУважаемые, а почему не посмотреть в сторону Q-Replication + II или WebSphere MQ Message Broker??? Или ограничения по бюджету????
Ограничения по бюджету есть всегда. Тем не менее в данном случае у нас вообще нет никакого бюджета, ка кни странно. Четко определено одно - нам будут закрывать прямой доступ к таблицам и будут для нас ложить данные в очереди. Мы должны эти сообщения читать. Скорее всего - не дадут покупать ничего. А что дают названные Вами приложения?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182877
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2NewYear:

Мы планировали примерно так:

1. Хранимая процедура начает транзакцию с MQ
2. Читает в некоторую временную таблицу все сообщения, которые там лежат для нас.
3. Открывает транзакцию на MS SQL
4. Пишет в постоянную таблицу из временной
5. Если нет ошибок, то подтверждает транзакцию, иначе откатывает и для MQ и для сервера и выходит
6. Подтверждает транзакцию для MQ

Или, если нельзя так, то тогда - как ты сказал. Что мне нужно сделать я более менее понимаю, не понимаю - как именно это сделать. Опять же - если как ты сказал, то это нужно на нашем сервере БД поднимать свой сервер (а ведь он небось не халявный) и настраивать между ним и удаленным сервером некоторую синхронизацию? И при этом, если по каким-то причинам происходит сбой на нашем сервере-менеджере, то у них в очереди этих сообщений уже не останется да еще и мы будем виноваты в утере данных? Т.е. к резервированию и бэкапированию БД добавится еще и резервирование и бэкапирование очередей? Блин - как же просто с таблицами было! :(
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182902
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну для такого простого случая Broker не нужен точно.
Да и Q replication можно не торкать.
Это когда логи db2 отправляются посредством MQ сообщения. Вас может заинтересовать случай, когда на стороне "приемника" выступает SP как промежуточное звено (если есть необходимость обработать данные перед помещением в MSSQL)
Так же схема Event Publishing в этом случае может быть интересна - это когда логи db2 отправляются MQ сообщением в XML формате, а уже ваше приложение его может получить и обработать
Ключевые слова - логи.
И несмотря на все возможности фильтрации, зачастую это уже чересчур - логами то швыряться.
Я бы просто писал проги. Если партнер уже кладет сообщения в очередь - надо установить свой Queue Manager (потому как только так XA будет возможна, то есть приложение линковать с "серверной" библиотекой) и дальше последовательнойть описанная NewYear -
1) Begin;
2) Get;
3) Business Logic;
4) Commit/Rollback;
все
Ну само собой надо настроить каналы/transnition queue между queue manager вашего партнера и вашим
Вообще-то, тривиальная задача. IMHO.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182913
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Не, ну тут уже пошли просто полные непонятки и заблуждения.
Давайте вы сначала немного Overview почитаете, а то так очень трудно будет общаться
Я бы посоветовал Overview из application programming guide и из intercommunication quide.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33182927
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
с таблицами как раз все сложней и хуже. С MQ все проще - но почитать надо и представлять как все работает
Пока message не будет с ИХ сервера доставлено и сохранено на ВАШЕМ - оно не будет удалено на ИХНЕМ
никакого вам backup не надо для обеспечение такой схемы - вам гарантируется однократная доставка сообщений.
У вас получается асинхронный режим работы.
У вас может постоянно висеть обработчик, вызывающий GET для получения сообщений, а можно просто настроить тригер, который будет срабатывать по некоему условию, типа приход сообщения, или достижение глубины очереди определенного количетсва сообщений, ну и так далее.
Вы можете нафиг вообще потушить базу mssql с обработчиком сообщений, для обновления версий например, а опосля запустить на своей стороне все, и все "delayed" сообщения прибегут и будут обработаны.
Но вспе равно - сначала доки, потом что-то хаять, типа как же оно все неправильно устроено :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183196
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помоему Q-Replication (Event Publisher) Самое оно для данной задачи. На МF прописывается какие события (строки,транзакции должны будут передаваться), а на приемнике нужно будет парсить XML и вгружать его в БД. Самое главное, что в MF нужно только будет доп настройку сделать. А на клиенте можно и .Net воспользоваться что-бы из очередей читать. Есть .net провайдер для WS MQ.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183293
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
да можно и так
Но не кузяво
Да и опять же - для простой (отностительно) задачи - покупать еще лицензии
Тут Q-replication Event-Publisher никакого преимущества не дает, кроме overhead
Тем более, что источник (публикатор сообщений) не контролируется, а стоит у партнеров.
Схема вполне работоспособная, но не несет никаких преимуществ по сравнению с обычным кодированием проги MQ, но добавляет стоимость и больше грузит системы.
Тут надо сравнивать все возможности. А их, блин, как всегда у IBM, немало....
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183306
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
как я понял, партнеры _уже_ готовы слать сообщения, и имеют все готовое, так?
Ну тогда на вашей стороне маленькая прога по вышеописанной логике , ну то есть с XA и напрямую в mssql
не знаю как с ms оно будет работать, но для db2 такую вещь можно сделать за рабочий день, из которых половина уйдет на чтение application reference guide :)
(утрирую, ибо понятия не имею чё там у вас за логика обработки, и прочее, и прочее)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183360
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так это c db2. c oracle кстати тоже никакиx проблем.

Майкрофт навыдумывал всякой хрени типа DTC, MTS и т.д.
у меня подозрение, что и XA там работает через задницу, точнее, через DTC.

так что, возможно, проще писать, используя не XA а MTS, wmq позволяет это сделать (хотя я так не делал).

но это уж кто как привык.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183370
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvс таблицами как раз все сложней и хуже.

С таблицами я могу легко и привычно сделать практически все, что мне надо - в смысле перегона данных к себе в базу. Впрочем спорить тут не о чем - стоит задача и надо ее выполнить, схему получения данных определяю не я.


С MQ все проще - но почитать надо и представлять как все работает

Почитал, но, очевидно, до конца не понял.


Пока message не будет с ИХ сервера доставлено и сохранено на ВАШЕМ - оно не будет удалено на ИХНЕМ

Вот! И в описаниях всех так написано. Вот я только не могу ясно понять - что понимается под ИХ сервером: DB2, их менеджер очередей или, может быть, приложение, которое работает прослойкой между БД и менеджером?


никакого вам backup не надо для обеспечение такой схемы - вам гарантируется однократная доставка сообщений.

Про этоя читал. Однако слова в документации (о ИХ сервере и МОЕМ сервере) я воспринял таким образом, что сервер - это менеджер очереди сообщений. И как любая программа он должен эти сообщения хранить до тех пор пока у него их не заберут. Но тут я почитал немного документации и мне показалось, что сообщения на ИХ сервере удалятся только тогда, когда их получит программа-клиент через МОЙ сервер. Так? Для такой схемы обязательно ли нашим серверам быть в одном TCP сегменте и в одном кластере? Кстати - тут выяснилось, что никто, специально для нас, не создает очередей. А на самом деле - есть одна очередь к которой будет допущено некоторое количество клиентов. Я должен забрать с нее сообщения, которые еще не получал, но НЕ УДАЛЯТЬ их (лично мне в этой схеме непонятно, кто и когда, в таком случае, будет их удалять). Кстати вот с такой проблемой, видимо, придется столкнуться - если я забираю из таблицы, то, в случае порчи их на стороне приемника (ну мало ли - повредился файл базы физически), я мог развернуть последний бэкап и просто запустить процедуру обновления - она бы из таблицы источника забрала бы снова те данные, которые были утеряны. А как тут быть - непонятно, просить перепослать... так в режиме общей очереди тогда у других участников может продублироваться.


У вас может постоянно висеть обработчик, вызывающий GET для получения сообщений, а можно просто настроить тригер, который будет срабатывать по некоему условию, типа приход сообщения, или достижение глубины очереди определенного количетсва сообщений, ну и так далее.

Ну до этого мне еще разбираться и разбираться. Вот сейчас не могу найти - как мне в своем менеджере зарегистрировать очередь на удаленном сервере? Или как заставить получать свою очередь сообщения из ИХ очереди? Не нашел нигде, что бы спрашивало ай-пи очереди сообщений. Нашел в хелпе как сделать простейшую MQ сеть, но случай дан для одного сегмента сети TCP/IP с присоединением к дефолтному кластеру, после чего все-все находится самостоятельнои автоматически. Как быть если у меня есть адрес-порт-имя менеджера и имя очереди? Версия - 5.2 все же.


Но вспе равно - сначала доки, потом что-то хаять, типа как же оно все неправильно устроено :)
Если у Вас сложилось впечатление, что я что-то хаю, значит я недостаточно точно формулировал свои мысли. Мне очень интересно разобраться с новым моментом, думаю, что опыт этот полезный будет, просто для глубокого проникновения в суть вопроса нет времени и поэтому приходится вот просить помощи. Тем более, я думал, что в моем варианте реализация должна быть достаточно простой, что бы знающие люди с ходу просто и понятно объяснили.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183429
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну вот чуток по-более инфы, и ситуевина выглядит иначе.
Если уже есть очередь на _удаленном_ по отношеню к вам qmgr (что такое локальный и удалненный qmgr написано в доке, если коротко, то qmgr к которому вы выполнили MQCONN есть локальный) и вам надо делать browse (это и есть получение сообщения без удаления), то получается, что вам собвственно не нужен локальный qmgr
Вам нужно приложение слинкованное с "client" library, defined client channel, ну и все - можете MQCONN, MQOPEN, MQGET -> вот только об XA можно забыть в таком типе приложения.
Если надо что-то иное - то надо направлять сообщения в _вашу_ локальную очередь, и тогда приложение слинковать с "server" library, ну далее все как выше плюс XA
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183437
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
если ваш партнер просто дает вам доступ к своему qmgr и право на MQOPEN одной из его очередей - то in glance я не вижу способа иметь прогу, запускаемую на вашей машине, но с XA
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183448
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvкак я понял, партнеры _уже_ готовы слать сообщения, и имеют все готовое, так?

Примерно так - они пока отлаживаются, но нам нужно успеть отладиться к завершению их разработки.


Ну тогда на вашей стороне маленькая прога по вышеописанной логике , ну то есть с XA и напрямую в mssql не знаю как с ms оно будет работать, но для db2 такую вещь можно сделать за рабочий день, из которых половина уйдет на чтение application reference guide
Открыл я довольно куцый хелпик, который с моим клиент-сервером прислали, про XA не нашел пока, про MTS - выбор языков для уровня приложения: ASP (VBScript), Visual Basic, Java, C/C++. С тем же успехом можно просто брать Си или С++ и писать расширенную хранимку на скачанном апи.ПРосто понять хочется. Кроме того - я вот слил эти 10 мб, они распаковались в библиотеки и заголовочные файлы, ну пара-тройка екзешников еще (вот не помню - были ли dll-ки). Каких-то управляющих оболочек, сервисов или источников данных не появилось. И в то же время мне говорят, что просто моего линкованного приложения будет недостаточно, что нужно, что бы был установлен еще и некий клиент (хотя я же вроде бы как раз и скачал клиента). Что физически представляет собой это необходимый клиент?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183455
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не согласен, что Q-Replication Event Publisher дополнтельный overhead. По любому надо будет класть сообщения в очередь. В Случае Event Publisher приложение менять _не надо и программировать _не_ надо, на стороне отправителя. На стророне приемника придется пользоваться XA, и что...
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183458
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну трудно из вашего описания понять, об чем речь
Но как я уже писал, есть такой пакет с именем "Client" (по крайней мере на *nix'ах есть)
Вот чего он такое и зачем я уже написал.
Что за 10MB вы скачали - я без понятия.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183482
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
nkulikov - на отправителе или уже все написали, или вовсю пишут.
На приемнике готовятся писать
А вот и overhead - парсинг логов скрытый, парсинг долбанного XML - явный.
При приличном message throughput распрекрасный XML даст приличный overhead
Лучше всего - слать С-шный структуры, ну а для межплатформенности - в XDR их (часть RPC, представляет данные в машино-независимом формате, если кто не знает)
То есть
1)С-шную структуру в XDR формат - один вызов, кодируется на ура - ну в принципе, можно и самому такую функцию сделать, зная формат структуры, но все же так правильнее
2)Передаем через MQ
3)Получаем и из XDR в машино-зависимый формат

На выходе С-шная структура, а уж по скорости с XML не сравнить ну никак, просто нету шансов.

Ну и Q-Capture, особенно если там всяких "фильтров" навешать (чтобы отправлять только желаемое, а не все db2 логи скопом) - тоже ресурсы.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183504
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
клиент представляет собой библиотеки.
если там есть mqic32.dll то это он.

однако, грустно как-то в свете последней инфы :(

есть еще IBM WebSphere MQ Extended Transactional Client
http://www-128.ibm.com/developerworks/subscription/descfiles/mqt5302w.htm
там есть возможность работать с mts.


ggv
XDR хреново помогает при работе с мейнфреймом из-за того, что все время приходится конвертировать текстовые данные ASCII <-> EBCDIC.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183513
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну чего там - грустно.... Нельзя скрестить противоречивые требования.
Если только доступ к удаленной очереди - то без XA
Если нужна прога с XA и на локальной машине - то свой qmgr, channel, transmition queue, все по полной программе вплоть до проги на удаленном конце по посыланию message в вашу очередь. Это может быть так же и триггер (чтоб не трогать существующие проги которые постят) - ну типа если по некоторым признакам можно выделить сообщения которые вы должны читать (MsgID, CorrelID) то посылать копию сообщения в вашу очередь.

По поводу перекодировки - мда, а как этот EBCDIC конвертить в ASCII ? есть функции или писать надо? что-то мне сдается, что задача уже кем-то когда-то решалась, нет? :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183521
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну кончно решалась :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183530
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Вот чего он такое и зачем я уже написал.

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

Вот конкретный вопрос - если у меня установлен сервер. Могу ли я через MQSeries Explorer создать такую свою очередь, что бы туда попадали сообщения из какой-то удаленной очереди (я знаю ее адрес, порт, имя менеджера и имя очереди) и при этом делался browse (т.е. сообщения не удалялись) и как (и вообще - можно ли?) просто увидеть эту очередь в моем експлорере?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183551
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для этого нужно, чтобы ваш партнер послал сообщение на ваш сервер.
просто делать browse удаленной очереди нельзя, в нее можно только записывать (серверной программой).

это можно сделать клиентской программой.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183553
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Лучше всего - слать С-шный структуры, ну а для межплатформенности - в XDR их (часть RPC, представляет данные в машино-независимом формате, если кто не знает)

Ну - с этим у нас "просто и легко" - такими проблемами глобальными голова не болит. :) Решение о функционировании очереди, доступе к ней, формате отдаваемых данных уже принято в одностороннем порядке. Так что нам осталось самое простое - сделать какой-то механизм выгребания оттуда данных и пользоваться.

Никак не могк понять - нафига мне нужен MTS и\или XA? На схеме New Year просто он был показан как некая среда, которая давала доступ к MQ из MS SQL. А так - для моих задач он не нужен особо.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183561
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но клиентской программой нельзя записать сообщения в sql server. т.к в зтом случае нет XA :(

можно клиентской программой переслать сообщение себе на сервер
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183572
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
если приложение слинковано с клиентской бибблиотекой - больше ничего не надо для работы, это готовое приложение для работы. Никаких других процессов/компонент не требуется
Explorer - на свалку
Вся (!) работа с MQ строится на программировании. На использовании API
Ну и как верно сказал NewYear - нельзя использовать MQGET для удаленной очереди
MQOPEN может быть для удаленной очереди, но только на MQPUT
То есть - если вы даже и развернете свой qmgr, и сделаете MQOPEN удаленной очереди - вы не сможете просматривать сообщения (то есть делать MQGET в режиме browse)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183573
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>нафига мне нужен MTS и\или XA

чтобы включить в одну транзакцию SQL Server и WebSphere MQ.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183579
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
NewYear - да, можно клиентской программой сделать MQPUT в local qmgr, но как же быть с двухфазной транзакцией? Между удаленным и локальным qmgr?
Хотя, учитывая, что только в режиме browse.....
Возможны дупликаты сообщений.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183586
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvNewYear - да, можно клиентской программой сделать MQPUT в local qmgr, но как же быть с двухфазной транзакцией? Между удаленным и локальным qmgr?
Хотя, учитывая, что только в режиме browse.....
Возможны дупликаты сообщений.

а там получается однофазная транзакция. фактически ведь сообщение только перекладывается в transmission queue на мейнфрейме.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183599
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну в таком случае - пойдет.
Но опять же, на удаленной стороне надо определить канал/transmit queue к локальному qmgr
А по трудозатратам это уже приближается к написанию проги, висящей на mainframe и отлавливающей нужные сообщения с направлением на локальный qmgr
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183613
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearно клиентской программой нельзя записать сообщения в sql server. т.к в зтом случае нет XA :(

В смысле - sql server ругнется, если я попробую в хранимой процедуре получить сообщения без транзакций (например - во временную таблицу), а потом открою транзакцию с mssql, закину данные в нужную мне таблицу и, если все без ошибок, подтвержу транзакцию? Он, вообще, может. :( До сих пор не могу понять, почему он считает, что нужно поднять распределенную транзакцию, если в одной и той же процедуре встречается обращение к линкованному серверу и открытие транзакции с уже полностью локальными участниками. Удивительно, что если обращение к удаленному серверу выполнить в динамическом запросе, то он прекрасно обходится без удаленных транзакций. :) В DB2, на мой взгляд, с этим еще ужаснее. Нетак давно решали проблему - нам на удаленном сервере дали права на запуск одной процедуры, которая возвращала нужные данные. Пришлось писать отдельный exe, который запускался из хранимой процедуры и через stdout передавал, полученные от процедуры данные. Процедура их парсила и уже после этого только они попадали в базу. А вот как сделать хранимую процедуру на Db2 так, что бы она коннектилась к удаленному серверу, запускала там процедуру и результат этой процедуры записывала в таблицу своего локального сервера мне никто не смог подсказать.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183621
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Ну и как верно сказал NewYear - нельзя использовать MQGET для удаленной очереди
MQOPEN может быть для удаленной очереди, но только на MQPUT
То есть - если вы даже и развернете свой qmgr, и сделаете MQOPEN удаленной очереди - вы не сможете просматривать сообщения (то есть делать MQGET в режиме browse)
Но это справедливо только для сервера? Клиент сможет открыть очередь для MQGET в режиме BROWSE?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183625
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это та же самая прога. просто тогда нужно перетащить ее на мейнфрейм.
ну а что делать?

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

а когда сообщений в обр. очереди перевалит за 10000 начнутся дикие тормоза.

к тому же, если использовать клиента, при каждом запуске программы все сообщения придется пересылать по сети. а долго висеть она не сможет, потому что клиент.


ну вот нафига, спрашивается, вообще этот browse и одна очередь для всех? нельзя что ли каждому дать свою очередь. а так в любом случае придется извращаться.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183627
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Может ног только на ЛОКАЛЬНОМ QMGR

NewYear имел ввиду , что без XA на удастся провести двухвазную транзакцию с одним участником - MQ, и вторым - MSSQL

Как из SP db2 приконнектиться к удаленному db2 - скорее всег, никто не делал, никому не надо, вот никто и не полез пробовать.
Я лично буду пробоватьт _только_ в случае это будет надо по работе.
Если нет - то на удаленном сервере в MQ, на локальном - читаем и заливаем. Я практически все только так и делаю - все больше доступа к db2 через MQ - и гнать всех остальных в шею! :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183637
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>только на ЛОКАЛЬНОМ QMGR

ЛОКАЛЬНЫЙ QMGR это тот к которму был mqconn. это может быть удаленная машина.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183638
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
nkulikov вот подсказал, и я с ним согласен - если уже есть работающее приложение, и его не хочется трогать по всяким причинам, но есть задача чать данных переливать в другую базу с возможной попутной трансформацией, то Q-Replication верный путь
Его можно иметь ввиду и при разработке нового приложения.
Если обмен межплатформенный - то или Information Integrator как промежуточное звено, или Q-Replication Event-Publisher

Короче - множество путей.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183640
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Ну что такое локальный qmgr ф уже коротко упомянул выше :)
Как раз тот к которому был MQCONN :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183652
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
если приложение склинковано с клиентской библиотекой;
если оно открыло удаленную очередь и делает browse;
если оно результаты просмотра сохраняет в базу ->
то нету двухфазной транзакции и могут быть дубликаты в базе.
То есть integrity надо обеспечивать средствами базы, не допуская повторного внесения данных.
Можно попробовать опиратся на MsgID - но не факт, что они будут всегда уникальны, если их генерит qmgr - то уникальны, а если назначает прога - то пролет.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183655
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
nkulikov подсказал - если опираться не только на MsgID, но и на PutTime - и фиксировать сообщения которые уже просмотрели (ну в базе например) то можно избежать дубликатов вот таким вот образом.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183663
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и что. совпадать могут MsgId + PutTime. у меня полно таких сообщений.
но у меня они различаются по CorrelId.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183664
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear>только на ЛОКАЛЬНОМ QMGR

ЛОКАЛЬНЫЙ QMGR это тот к которму был mqconn. это может быть удаленная машина.

ggvНу что такое локальный qmgr ф уже коротко упомянул выше :)
Как раз тот к которому был MQCONN :)

Я уж было напугался! :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183668
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearэто та же самая прога. просто тогда нужно перетащить ее на мейнфрейм.
ну а что делать?

А просто никто не даст нам ничего разворачивать на мэйнфрейме.


ну вот нафига, спрашивается, вообще этот browse и одна очередь для всех? нельзя что ли каждому дать свою очередь. а так в любом случае придется извращаться.
Конечно извращаться. В таком варианте нет ни гарантии доставки (сообщение может быть убито до того, как его прочтут ВСЕ кому оно нужно) и нет гарантии доставки в ЕДИНСТВЕННОМ экземпляре, потому что никто не мешает читать уже приходившие сообщения. Правильно? И в таком варианте только дополнительные мучения от очереди этой. Я ж и писал - как было бы здорово работать с федеративной табличкой или вьюшкой. А отличать, я надеюсь, будем по естественному ключу.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33183960
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Road Runner - ну тут ты опфть не прав.
Мучения все из-за _неправильного_ использования MQ
И никаких преимуществ и федеративной таблички нету - одни недостатки.
Ну сам подумай - MQ это некий специальный вид IPC - Inter Process Communication - обладающий свойствами транзакционности, асинхронности, и транспорта.
Никакая общая табличка и близко к таким возможностям не приблизится.
Но вот судя по вашей задаче, у вас не тот тип работы с MQ выбран.
Судя по тому, что сообщения должны читать многие - это чистый publish/subscribe, и в таком случае никаких мучений, проблем, и тормозов.
Один/нусколько публикуют сообщения, все, кто подписался на "тему" - получают его.
И вообще - работа с MQ требует соответсвующего дизайна системы, приложений. С подходом "одна общая табличка" MQ будет приносить одни проблемы. Ну и само собой - нежелание делать дизайн под соответсвующий IPC (MQ в данном случае) тоже принесет одни проблемы.
Это только ораклисты способны делать IPC через oracle
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184107
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
Мучения все из-за _неправильного_ использования MQ

Как выяснилось - все же будет правильное или почти правильное использование. Режим просмотра нужен только пока - именно нашей очереди нет еще и есть одна общая очередь из которой можно потренироваться читать и парсить, в нее положили несколько сообщений.
Реальная схема будет такая - есть выделенная (для нас) очередь расположенная на их менеджере (на OS/390). Наше приложение или сервер (насколько я понял с сервером так не получится) должны запросить сообщения, которые "ждут" нас, получить эти сообщения, поместить в БД, подтвердить их получение (что бы они удалились из очереди). Очевидно, тут транзакция была бы весьма кстати. А какие варианты есть у меня, кроме клиента перекладывающего сообщения в мою очередь (и в этом случае, насколько я понимаю, у меня все равно не будет транзакции между моим менеджером очереди и их, правильно?) ?

ggv
И никаких преимуществ и федеративной таблички нету - одни недостатки.
Ну сам подумай - MQ это некий специальный вид IPC - Inter Process Communication - обладающий свойствами транзакционности, асинхронности, и транспорта.
Никакая общая табличка и близко к таким возможностям не приблизится.

Если у Вас есть время, то я бы с удовольствием узнал бы недостатки такого способа (таблички) - пока я их не вижу. Вот смотрите по поводу свойств MQ:
1. Транзакционность - двухфазная транзакция в случае федеративной таблички не нужна, т.к. при неудачном завершении транзакции на стороне сервера-приемника всегда можно получить эти же данные повторно. Гарантию отсутствия дубликатов записей можно получить при наличии в таблице авто-инкрементального ключа.
2. Асинхронность - на полную катушку, поставщик данных обеспечивает гарантированное наличие необходимых данных в таблице, приемники читают те данные, которые еще ими не были прочитаны.
3. Транспорт - практически любой сервер БД поддерживает некоторые протоколы, которые позволяют получать информацию от удаленных систем с гарантией ее неизменности при передаче. Кроме этого - во многих БД есть встроенные производителем механизмы репликации, есть подозрение, что они могут быть достаточно эффективны.

Минусы MQ (на мой взгляд):
1. Дополнительные затраты (либо на написание своего клиента по работе с MQ, либо на покупку неких мостов, менеджеров)
2. Дополнительная головная боль (и потеря производительности) по стандартизации формата сообщения, организации парсинга этого сообщения.

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


ggv
Это только ораклисты способны делать IPC через oracle
Наверно еще MS SQL-ники ! ;)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184181
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Реальная схема будет такая - есть выделенная (для нас) очередь расположенная на их менеджере (на OS/390). Наше приложение или сервер (насколько я понял с сервером так не получится) должны запросить сообщения, которые "ждут" нас, получить эти сообщения, поместить в БД, подтвердить их получение (что бы они удалились из очереди).


ну осталось настроить каналы и вот эту "выделенная (для нас) очередь" сделать как Remote Queue Definition.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33184239
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
абсолютно прав NewYear - вот в этом описанном вами случае вы тут же предложили _неправильный_ способ работы.
Но чтение application programming guide и intercommunication guide будут хорошим подспорьем, в том числе в плане понимания преимуществ.
...
Рейтинг: 0 / 0
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
MQSeries clients. Вопрос по конфигурации.
    #33187427
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
не думал отвечать, но не удержался- парсеры блин на меня как красная тряпка на быка.
Я ж уже писал выше про С-труктуры
Бинарный формат не надо забывать.
Уперлись все в этот гребанный XML, туды его в качель....
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187496
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvне думал отвечать, но не удержался- парсеры блин на меня как красная тряпка на быка.

Сорри, не хотел злить.


Я ж уже писал выше про С-труктуры
Бинарный формат не надо забывать.

Я помню, про XDR. В хелпе Visual Studio .Net он связан везде с MSXML и написано, что это "XML Data-Reduced (XDR) is a subset of XML-Data". Насколько эффективно MS написал распарсивание его - ничего сказать не могу, может и эффективно. Однако ведь в этом случае все равно информация о типах передается в каждом сообщении? В то время как ODBC один раз передает информацию о том, какого типа будут поля (и сколько их) и после этого передаются только сами данные, в бинарном виде.


Уперлись все в этот гребанный XML, туды его в качель....
Это точно - передать список, например, имен - и тут же пихают XML, в то время как можно совсем просто сгенерить и разобрать его разделяя запятыми.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33187556
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
и при чем тут спрашивается всеми любимый MS????????????????????????
http://docs.sun.com/app/docs/doc/801-6741?q=XDR
вот первоисточник
man rpcgen
все, я out - терпение кончилось
Ничего личного, но просто день тяжелый.
Три организации, очень блине крупные, все кругом технари, а спрашивают такое....
Испортили ораклы с M$ технарей.....
Чтоб доки почитаь - да никогда....
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33193753
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я прошу прощения за назойливость, если вопрос не сложный и у вас есть время:
Схема все же получается, насколько я понимаю, правильная - у партнеров канал типа сендер, у нас ресивер. Схему на двух win серверах я протестировал. Сейчас дал реквизиты партнерам - будут пробовать настраивать. Единственное, что обескуражило - на предложение сказать им имя и пароль пользователя, под которым их пустит к нашему менеджеру или что бы они сказали под каким пользователем будут соединяться, они ответили, что никаких юзер ай-ди и паролей они не передают и у всех работает так. Должно ли так быть? Просто при тестовой конфигурации я заводил такого же пользователя на сервере-приемнике из под которого был запущен сервис на сервере-отправителе и вносил его (на сервере приемнике) в группу mqm (группа администраторов MQSeries). Поэтому думаю, что если их поля ааутентификации будут пустыми, то мой сервер им не даст ничего ложить в очереди. Прочитал, что вроде как-то можно разруливать политику на уровне менеджеров очередей с помощью OAM, но пока еще не нашел как.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33193836
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну при такой "конфигурации" - все правильно. Только с одним замечанием - "нормально" когда передающий инициирует передачу, а не принимающий запрашивает ее. То есть вы делаете MQGET на своей локальной очереди, и если у партнеров есть что передать - вам передадут.
А по поводу security - system administration guide , chapter 10
у MQ с непривычки "непривычная" система безопастности :)
В вашем случае главноге (imho) что если кто-то имет право на MQOPEN алиаса, то он может в конце концов доставить сообщение и в целевую очередь.
Ну там все написано.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33193842
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>что никаких юзер ай-ди и паролей они не передают и у всех работает так. Должно ли так быть

ну да. у них же мейнфрейм. там для авторизации используется RACF например.

с MF на Workstation или OS/400 и обратно по умолчанию будет работать и так. почему не знаю.

если among workstations/OS400 нужно чтобы пользователь из Identity Context
существавал на машине назначения.

+ см команду setmqaut.


еще есть такая штука как MCA User Id. но это уже вспоминать нужно.


>Поэтому думаю, что если их поля ааутентификации будут пустыми
это как? они что, руками забьют туда пустые значения и выставят Identity Context? что-то я сильно сомневаюсь...
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194129
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
>что никаких юзер ай-ди и паролей они не передают и у всех работает так. Должно ли так быть

с MF на Workstation или OS/400 и обратно по умолчанию будет работать и так. почему не знаю.

Действительно работает. Даже и не знаю - радоваться ли этому факту или нет. Получается, что любой может закинуть в мою очередь сообщений...

NewYear
если among workstations/OS400 нужно чтобы пользователь из Identity Context
существавал на машине назначения.
+ см команду setmqaut.

Смотрю - может определить объекту права для определенных пользователей и групп. Вроде бы то, что надо. Единственное непонятно - передается ли серверами, кроме ай-ди юзера также и его пароль (а тогда в каком виде, тем более, что ОС/390 коннектится к в2к), ведь иначе любой может "притвориться" валидным юзером. Пока еще не прочел про это ничего.

NewYear
еще есть такая штука как MCA User Id. но это уже вспоминать нужно.

Попробую и про это почитать... :(

NewYear
>Поэтому думаю, что если их поля ааутентификации будут пустыми
это как? они что, руками забьют туда пустые значения и выставят Identity Context? что-то я сильно сомневаюсь...
Честно говоря, я не понимаю, может быть, глубин, но вот факт - поле User ID в пршиедших сообщениях пустое (во всяком случае его так показывает MQ Manager). В group id - нули, но это группа, насколько я понял не для секурности, а для объединения сообщений в группы.
Можно ли на МФ задать определенный контекст для определенного канала и, если можно, насколько это сложно?
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194159
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
явно не прочитал указанную главу.
Нифига никакой пароль никуда нафиг не передается.
И вообще, как уже было сказано , MQ не занимается аутентификацией, только авторизацией (то есть права доступа к объектам)
А тогда нафик ему пароль?
По поводу что любой может прикинуться валидным юзером - точно, любой, который аутентифицирован системой. То есть, если я тут у себя на соляре, к примеру, создам канал к вашему qmgr, создам qremote на вашу очередь.....
Если надо большего - Tivoli Directory Server, или Tivoli Access Manager, и внедряйте единую директорию, где все ваши юзвери и будут.
MQ Extended Security Edition как раз и есть симбиоз с Tivoly Access Manager
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194175
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
прочитай when security checks are made
там многое поясняется
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194238
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Можно ли на МФ задать определенный контекст для определенного канала и, если можно, насколько это сложно?

контекст вообще-то для сообщений. MCA User ID тоже как-то влияет, забыл я :) кроме этого MCA User ID нет ничего.


>но вот факт - поле User ID в пршиедших сообщениях пустое (во всяком случае его так показывает MQ Manager)

покажи код программы на MF.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194256
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvявно не прочитал указанную главу....прочитай when security checks are made
Ну, я прочитал про "setmqaut (set or reset authority)" и про "Chapter 20. Authorization service". Где почитать про "when security checks are made"? Или, может быть, я не все правильно перевел или что-то проглядел.

ggv
Нифига никакой пароль никуда нафиг не передается.

С трудом себе это могу представить. На каком-то уровне (пусть даже на уровне установки сетевого соединения) он ведь передается.
Еслия себе правильно представляю, то пароль передается даже не системе, а сервису, который "слушает" порт, а уже этот сервис может реализовывать свою систему безопасности (как это сделано в MS SQL Server 2000) либо пользоваться предоставляемым системой API для использования встроенной в ОС службой. MQSeries делает, насколько я понимаю, второй вариант.

ggv
А тогда нафик ему пароль?
По поводу что любой может прикинуться валидным юзером - точно, любой, который аутентифицирован системой.

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

ggv
То есть, если я тут у себя на соляре, к примеру, создам канал к вашему qmgr, создам qremote на вашу очередь.....

Как бы сейчас Вам не понадобиться даже аутентификации от системы - положит от любого пользователя, насколько я понял.

ggv
Если надо большего - Tivoli Directory Server, или Tivoli Access Manager, и внедряйте единую директорию, где все ваши юзвери и будут.
MQ Extended Security Edition как раз и есть симбиоз с Tivoly Access Manager
Ну, пока это не оправдано. Если нет простых вариантов, что бы MQ на МФ проходил аутентификацию в нашей ОС под специальным аккаунтом (т.е. назначал нашей очереди определенный Identity Context, если я, опять таки, правильно понимаю) - как это, например, делается в DB2 UDB под Windows, там ведь тоже аутентификация происходит через службу ОС, но при коннекте к конкретному экземпляру БД я могу указать логин и пароль. В общем, если таких вариантов нет, то тогда мы, наверно, просто закроем файрволом порт так, что бы на листенер этого менеджера мог коннектится только валидный МФ и локалхост... хотя лично мне этот вариант не очень нравится.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194269
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYear
контекст вообще-то для сообщений. MCA User ID тоже как-то влияет, забыл я :) кроме этого MCA User ID нет ничего.

Ну будем читать про MCA. Меня вот все же волнует точный механизм аутентификации - подробного описания я пока не нашел. А контекст можно задавать для каждого сообщения?

NewYear
покажи код программы на MF.
Я бы с удовольствием, но мне его никто не даст! :) У нас нет доступа к МФ вообще никакого. Во всяком случае - к этому.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194305
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А контекст можно задавать для каждого сообщения?
да, если есть привелегии. на workstation для этого нужно входить в группу mqm, на mf, вроде, вообще это пофиг. там используется RACF, его я не знаю.


вот я боюсть что пробел в User ID это из-за того, что как-то криво задается контекст. но без кода мы этого не выясним. вообще пробел в User ID это не нормально.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194364
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну я же написал - chapter (глава) 10
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194371
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
а по поводу IP Firewall - нормальное решение. С этого надо начинать, а все остальное - навороты, фильтрация ip завсегда хорошо, зачастую даже во внутренней сети.
Но у вас ведь есть служба/человек отвечающий за безопастность.
Вот они этим и должны заняться, в том числе и главу 10 прочитать.
Разработчикам это как-то опционально.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194614
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 New Year:
Попробую у партнеров узнать что у них там с кодом.

2 qqv:
Да, Вы правы. Пойду читать.

Вам обоим - большое спасибо!
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194757
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Там с безопастностью главное понять:
1) При MQOPEN на алиас или на qremote - используются права доступа к локальному объекту qremote или к алиасу, но никак не к целевой очереди.
2) MQPUT/MQGET не требуют авторизации.

Ну и как следствие (применимо к вашей ситуации) создав к вам channel chltype(sdr) и создав у себа локально qremote на вашу очередь, я смогу у себя здесь делать MQPUT в вашу очередь, если ваш PUAUT канала стоит по умолчанию. Вот про безопастность каналов и PUTAUT тоже стоит посмотреть.
В MQ дается для windows какой-то channel exit в сырцах, который там чего-то добавляет к безопастности , но я никогда его не смотрел.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194802
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
вот, дивное введение в MQ нашел случайно, даже не знал, что такое есть :)
http://www.redbooks.ibm.com/redpapers/pdfs/redp0021.pdf
всего 34 страницы.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194806
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
а вот security
http://publib-b.boulder.ibm.com/abstracts/sg245306.html?Open
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33194833
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
и еще security
http://publib-b.boulder.ibm.com/abstracts/sg246814.html?Open
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33195629
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
И вообще - не надо считать MQ продуктом или решением, а надо считать платформой для разработки, или IPC
И считать транспортную составляющую MQ - транспортом низкого уровня (с точки зрения приложения)

application programming guide, page 33 - "Application can use ApplIdentityData for any extra information that they want to include about the user (for example, the encrypted password)"

application programming reference, page 193 - "After a message have been received, use UserIdentifier in the AlternateUserId field of the ObjDesc parameter of a subsequent MQOPEN or MQPUT1 call to perform the autorization check for UserIdentifier user instead of the application performing the open"

Ну тут все совсем уж полностью сказано. Только если аналогию привести (хотя, как и все аналогии, эта тоже притянута за уши). Ну вот httpd, принимает http request и шлет http reply.
Без ip фильтрации любой может сделать telnet http_server 80 и использовать http протокол для отправки request, ну самое примитивное GET /
так вот сервер ведь принимает этот request, а потом уже сам думает, посылать отлуп на аутентификацию, или сразу вернуть контент. Так же примерно и в MQ - любой может послать request/datagram если нет ip фильтрации и известен <hostname>:<port>, а уж чего делать с этим запросом - это к приложению, которое и играет роль httpd, но без транспортной составляющей, которая вынесена в MQ.

Фух, все, можно работать начинать - чего накипело - высказал.
Добавлю только, что можно взять Tivoli Access Manager for Business Integration (который базируется на лучшей реализации LDAP - Tivoli Directory Server) ну и так далее. Все равно в конце концов вся безопастной сообщения упирается в обработку UserIdentifier.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33198257
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2ggv:
Я не успеваю читать всю ту информацию, которую Вы успеваете посоветовать! :) Но все равно спасибо и я надеюсь ее прочесть.

Что касается безопасности, то я надеялся получить что-то похожее (хотя бы!!!) на реализацию аутентификации\авторизации в DB2 для Windows. В общем-то при коннекте сервер-сервер (на Win платформе) оно почти так и работает. Пересылающий сервер отсылает текущего win-пользователя\пароль, а принимающий обращается к системной службе безопасности, что бы провести аутентификацию, а с помощью setmqaut можно определить правила авторизации. Поскольку коннектится для пересылки сообщения именно канал, то мне казалось, что было бы логично дать возможность определять имя пользователя\пароль от имени которых канал будет запрашивать соединение. Если подобное можно определять на уровне сообщений, то это еще более гибко (особенно если можно определить поведение сервера источника в случае, если не все сообщения принимаются). Ну это я так думал. IBM думает совсем не так как я! :) Буду, значит, "учить матчасть". Спасибо, что есть такие люди как Вы и New Year, которые либо объяснят, либо носом в нужнуй документ ткнут, а то IBM настолько по своему думает, что я у них на сайте с трудом нахожу документацию, которая мне нужна. :)
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33198481
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Просто вы с помощью MQ решаете свою конкретную задачу на своей конкретной платформе.
А IBM позиционирует MQ как средство интеграции, для задач очень широкого спектра на платформах очень широкого списка.
Какое уж тут найик совпадение.
Ничего не могу сказать про windows.
Но на нормальных операционках канальное соединение происходит как описано, и если этого недостаточно - есть API Exits.
По поводу доступа на уровне messages тоже все уже сказано - и API, и extended security.
А попросту - любой чих в действиях при MQ вызывает програмирование.
Если не хочется стоко программировать - есть продукты более высокого уровня, реализующие разный функционал - начиная от Event/Message Brokers заканчивая Process Choreographer.

При использовании socket вы же не требуете аутентификации на каждый пакет переданной информации - вы используете протоколы более высокого уровня.
Вот и рассматривайте MQ как IPC - InterProcess Communication.
...
Рейтинг: 0 / 0
MQSeries clients. Вопрос по конфигурации.
    #33198485
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эээ

автор
Поскольку коннектится для пересылки сообщения именно канал, то мне казалось, что было бы логично дать возможность определять имя пользователя\пароль от имени которых канал будет запрашивать соединение.


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


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