|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Добрый день. Рассматриваем вариант использования MQ транспорта в схеме 1:N, то есть клиенты соединяются с MQ сервером и кладут/забирают сообщения из соответствующих очередей. Вопрос в следующем, жизнеспособна ли такая схема? И как в плане безопасности, то есть несанкционированное чтение/запись в очереди ? Клиентов планируется около 2000, соединения по интернету. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2004, 17:21 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
схема не есть правильная. как минимум, нужен хороший канал с каждым клиентом, -- такое соединение не надежно. нельзя работать, когда центральный узел недоступен. кроме того, для каждого соединения запустится экземпляр MCA на сервере, а это 2000 процессов (или threads), это нечто. или они не все 2000 работают одновременно? в плане безопасности. во-первых, канал можно шифровать с SSL. конкретно чтение/запись в очередь - есть определенные права доступа к объектам mq для пользователей. это не надежно. в третьих, вы можете сами обеспечить security. Раньше поставлятся MQSeries 2.1 for Windows - урезанный вариант mq за символические деньги, он бы лучше подошел. сейчас есть Extended Transactional client, возможно(не знаю), он поддерживает очереди на клиенте, посмотреть стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2004, 18:55 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Нет, в том то и дело, что они все работают одновременно, читая и записывая в очереди достаточно часто обновляемую информацию. То, что 2000 процессов, не беда, есть возможность поделить между "инстансами" коннекты. Например 4 сервера по 500 клиентов, объединенных в MQ кластер. Вопрос еще, трафик между клиентом и сервером достаточно толст ? Можно ли пускать его через Inet ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 10:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
можно. кстати, траффик можно сжать при необходимости. смотри send/receive exit в книжке secirity. а так примерно можно считать данные + полтора килобайта на сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 10:44 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
А как насчет клиента (Win) ? Есть готовый пак или наработки с "выдиранием" DLL. Клиентская библиотека большая ? ( в плане распространения и дистрибуции). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 11:46 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
там галочку можно поставить, что устанавливать только клиент. отдельный дискс клиентом в 5.3. я не видел, хотя у IBM-а есть, наверно. в 5.2 дистрибутив клиента для одного я зыка (ЕN) где-то 10 MБ, целиком 100 мб. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 13:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Просмотрел инфо по SSL Насколько мне понятно SSL там может использоваться только для защиты каналов. А например защитить доступ одного клиента к очереди другого (при условии, что оба имеют установленное SSL соединение с менеджером) невозможно, по крайней мере ан платформах win. Для этой цели скорее всего подходит security exit.... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 13:27 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
да, 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 - смотри доку, я не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2004, 19:18 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Решил поднять тему, что бы не плодить - надеюсь ответите, хотя последнее сообщение довольно давно было. У меня вопрос про клиента для 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:11 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
этот апи должен коннектится к некоторому клиенту, который у меня должен быть установлен, а уже клиент будет общаться с сервером воттак. прочитай в документации про переменную среды MQSERVER. HIS как я понимаю должен работать непостедственно с server-ом. так что скрее всего ничего не выйдет :) я не знаю зачем вам здесь MSMQ, когда можно сразу из sql server писать в mqseries (server). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:40 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
да и вообще, лучше взять MQ 6.0 релиз то уже вышел а MQ Client - это для реализации работы клиента с менеджером через сеть посредством канала. Потому и большой такой. Если же клиент предполагаеться на той же машине что и менеджер, то можно линковать с "серверными" библиотеками, а не с "клиентскими" Ну в application programming guide написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:56 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear этот апи должен коннектится к некоторому клиенту, который у меня должен быть установлен, а уже клиент будет общаться с сервером воттак. Да, жаль тогда. Я наделся, что после линковки с скачанными библиотеками мое приложение и будет непосредственно клиентом (и, соответственно, не будет требовать устанавливать что-то еще) прочитай в документации про переменную среды MQSERVER. В документации к чему? В Books on-line ничего не находит ни на MQSERVER, ни на MQSeries. HIS как я понимаю должен работать непостедственно с server-ом. так что скрее всего ничего не выйдет :) В смысле с сервером? HIS, как мне казалось просто набор некоторых сервисов и интерфейсов к ним. В его составе идет некоторый MSMQ-MqSeries bridge. А в С# в visual studio есть набор компонент для работы с очередями - пока еще не успел их плотно попробовать (время мало дают, как всегда), но предполагаю, что эти компоненты работают с майкрософтовскими очередями. я не знаю зачем вам здесь MSMQ, когда можно сразу из sql server писать в mqseries (server). Мне нужно не писать, а читать, на данный момент. Но и писание было бы не лишним (может быть мы бы наших подписчиков перевели на них, что бы не грузили сам сервер селектами). Но как это делать я не нашел... если Вы занете - то может быть опишете подробнее или ссылку дадите? Особенно, если с примером. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:56 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:58 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
в том же application programming guide написано, как MQ работает в среде XA (распределенной транзакции) как ресурс или менеджер транзакции. Таким же образом можно и с MSSQL (хотя я кроме db2 ничего не торкал) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 12:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvда и вообще, лучше взять MQ 6.0 релиз то уже вышел Начальник сейчас договаривается с заказчиком на предмет получения сервера MQ для тестовых целей. Дело в том, что очереди не у нас, просто мы должны будем считывать из очереди в которую будут падать данные для нас. а MQ Client - это для реализации работы клиента с менеджером через сеть посредством канала. Потому и большой такой. А вот нечто версии 5.2 (то что я парой постов выше писал) такое маленькое - это же тоже клиент? Или оно не может через сеть? Если же клиент предполагаеться на той же машине что и менеджер, то можно линковать с "серверными" библиотеками, а не с "клиентскими" Ну в application programming guide написано. Нет, не на той. Если я правильно понял, то менеджер партнеры будут поднимать по ОС\390 с DB2. А нам нужно будет под MS Win получать данные для MS SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
про windows не знаю, а в *nix MQ имеет "Client" пакет, который нужен только в случае, если клиентсоая прога будет работать по сети через канал, и содержит только библиотеки (не считая трех бинарей второстепенных) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:11 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Нет, не на той. Если я правильно понял, то менеджер партнеры будут поднимать по ОС\390 с DB2. А нам нужно будет под MS Win получать данные для MS SQL. ну тогда вообще круто ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:12 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
щас по 5.2 даже доки не найти, только если спрашивать у людей Если надо, то я могу поискать, где-то среди старих CD могли заваляться ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:13 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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а... вот только не написано как именно это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:29 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
картинка с XA конечно в силе. только вот я сам когда работал с MSSQL через XА, я писал прогу на esql, а у Microsoft-а он отвратительный. если есть другой способ написать программу, конечно, стоит этим воспользоваться. но это уже вопрос по mssql. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:39 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 13:51 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>Только вот не могу понять - как это использовать выставить переменную среды MQSERVER. больше ничего не требуется. но такая конфигурация не жизнеспособна. на w2k тоже нужно ставить сервер, и работать с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:00 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
кстати вот текст оттуда 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:12 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYearвыставить переменную среды MQSERVER. больше ничего не требуется. Так это переменная какой среды? MS SQLа ? Не могу найти в справке упоминание про MQSERVER. Или операционки (MS win2k)? но такая конфигурация не жизнеспособна. на w2k тоже нужно ставить сервер, и работать с ним. А из-за чего? Нестабильно устанавливается коннект с OS\390? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:18 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
MQSERVER это переменная среды window, конечно. смотреть в документации по MQSeries. >Нестабильно устанавливается коннект с OS\390? да. и не только в OS\390. любое клиентское соединение не стабильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:23 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear у вас будет как раз приложение, которое "needs syncpoint coordination with other resource managers" Может быть я опять не врубаюсь в элементарные принципы функционирования менеджеров очередей, но точка синхронизации это ведь когда мне кроме чтения очередной порции сообщений надо "сказать" менеджеру: "Все, я сообщения принял и готов для получения следующих" и только после этого он начинает писать в очередь еще сообщения? Если так то мне это как раз не надо. Насколько я понимаю они хотят асинхронно кидать в очередь сообщения по мере появления последних в их БД, а я просто периодически читаю все сообщения, которые есть в этой очереди и заношу их в свою БД. При этом гарантируется, что все сообщения, отправленные мне, будут мне доставлены. И не свосем понятно что значит менеджер ресурсов... :( Менеджер очереди? Или MS SQL тоже является менеджером ресурсов? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:26 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Уважаемые, а почему не посмотреть в сторону Q-Replication + II или WebSphere MQ Message Broker??? Или ограничения по бюджету???? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:32 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
оба sql server и MQSeries являются менеджерами ресурсов. и им обоим нужно сказать коммит. причем коммит в данном случае это одна команда, а не две, и распространяется сразу и на MQSeries , и на sql server. в случае с клиентом такое сделать невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:33 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
коммит в mq -- то же самое, что и в базе -- зафиксировать изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:42 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYearMQSERVER это переменная среды window, конечно. смотреть в документации по MQSeries. Сейчас буду смотреть - со скачанным мною 10 Мб файлике только риадми шел. Но сейчас из Москвы прислали что-то большое версий 5.2 и 5.3 - может быть там и дока есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:44 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>я просто периодически читаю все сообщения, которые есть в этой очереди и заношу их в свою БД 1) начало транзакции. 2) прочитать сообщение из очереди 3) записать его в базу. 4) сделать коммит. после этого сообщение больше не лежит в очереди, оно в базе или так 1) начало транзакции. 2) прочитать сообщение из очереди 3) записать его в базу. 5) роллбак после этого сообщение находится в очереди, а в базе его нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:46 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
nkulikovУважаемые, а почему не посмотреть в сторону Q-Replication + II или WebSphere MQ Message Broker??? Или ограничения по бюджету???? Ограничения по бюджету есть всегда. Тем не менее в данном случае у нас вообще нет никакого бюджета, ка кни странно. Четко определено одно - нам будут закрывать прямой доступ к таблицам и будут для нас ложить данные в очереди. Мы должны эти сообщения читать. Скорее всего - не дадут покупать ничего. А что дают названные Вами приложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 14:47 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
2NewYear: Мы планировали примерно так: 1. Хранимая процедура начает транзакцию с MQ 2. Читает в некоторую временную таблицу все сообщения, которые там лежат для нас. 3. Открывает транзакцию на MS SQL 4. Пишет в постоянную таблицу из временной 5. Если нет ошибок, то подтверждает транзакцию, иначе откатывает и для MQ и для сервера и выходит 6. Подтверждает транзакцию для MQ Или, если нельзя так, то тогда - как ты сказал. Что мне нужно сделать я более менее понимаю, не понимаю - как именно это сделать. Опять же - если как ты сказал, то это нужно на нашем сервере БД поднимать свой сервер (а ведь он небось не халявный) и настраивать между ним и удаленным сервером некоторую синхронизацию? И при этом, если по каким-то причинам происходит сбой на нашем сервере-менеджере, то у них в очереди этих сообщений уже не останется да еще и мы будем виноваты в утере данных? Т.е. к резервированию и бэкапированию БД добавится еще и резервирование и бэкапирование очередей? Блин - как же просто с таблицами было! :( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 15:04 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну для такого простого случая 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 15:09 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Не, ну тут уже пошли просто полные непонятки и заблуждения. Давайте вы сначала немного Overview почитаете, а то так очень трудно будет общаться Я бы посоветовал Overview из application programming guide и из intercommunication quide. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 15:12 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
с таблицами как раз все сложней и хуже. С MQ все проще - но почитать надо и представлять как все работает Пока message не будет с ИХ сервера доставлено и сохранено на ВАШЕМ - оно не будет удалено на ИХНЕМ никакого вам backup не надо для обеспечение такой схемы - вам гарантируется однократная доставка сообщений. У вас получается асинхронный режим работы. У вас может постоянно висеть обработчик, вызывающий GET для получения сообщений, а можно просто настроить тригер, который будет срабатывать по некоему условию, типа приход сообщения, или достижение глубины очереди определенного количетсва сообщений, ну и так далее. Вы можете нафиг вообще потушить базу mssql с обработчиком сообщений, для обновления версий например, а опосля запустить на своей стороне все, и все "delayed" сообщения прибегут и будут обработаны. Но вспе равно - сначала доки, потом что-то хаять, типа как же оно все неправильно устроено :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 15:17 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Помоему Q-Replication (Event Publisher) Самое оно для данной задачи. На МF прописывается какие события (строки,транзакции должны будут передаваться), а на приемнике нужно будет парсить XML и вгружать его в БД. Самое главное, что в MF нужно только будет доп настройку сделать. А на клиенте можно и .Net воспользоваться что-бы из очередей читать. Есть .net провайдер для WS MQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 16:39 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
да можно и так Но не кузяво Да и опять же - для простой (отностительно) задачи - покупать еще лицензии Тут Q-replication Event-Publisher никакого преимущества не дает, кроме overhead Тем более, что источник (публикатор сообщений) не контролируется, а стоит у партнеров. Схема вполне работоспособная, но не несет никаких преимуществ по сравнению с обычным кодированием проги MQ, но добавляет стоимость и больше грузит системы. Тут надо сравнивать все возможности. А их, блин, как всегда у IBM, немало.... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 17:06 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
как я понял, партнеры _уже_ готовы слать сообщения, и имеют все готовое, так? Ну тогда на вашей стороне маленькая прога по вышеописанной логике , ну то есть с XA и напрямую в mssql не знаю как с ms оно будет работать, но для db2 такую вещь можно сделать за рабочий день, из которых половина уйдет на чтение application reference guide :) (утрирую, ибо понятия не имею чё там у вас за логика обработки, и прочее, и прочее) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 17:10 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
так это c db2. c oracle кстати тоже никакиx проблем. Майкрофт навыдумывал всякой хрени типа DTC, MTS и т.д. у меня подозрение, что и XA там работает через задницу, точнее, через DTC. так что, возможно, проще писать, используя не XA а MTS, wmq позволяет это сделать (хотя я так не делал). но это уж кто как привык. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 17:30 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvс таблицами как раз все сложней и хуже. С таблицами я могу легко и привычно сделать практически все, что мне надо - в смысле перегона данных к себе в базу. Впрочем спорить тут не о чем - стоит задача и надо ее выполнить, схему получения данных определяю не я. С MQ все проще - но почитать надо и представлять как все работает Почитал, но, очевидно, до конца не понял. Пока message не будет с ИХ сервера доставлено и сохранено на ВАШЕМ - оно не будет удалено на ИХНЕМ Вот! И в описаниях всех так написано. Вот я только не могу ясно понять - что понимается под ИХ сервером: DB2, их менеджер очередей или, может быть, приложение, которое работает прослойкой между БД и менеджером? никакого вам backup не надо для обеспечение такой схемы - вам гарантируется однократная доставка сообщений. Про этоя читал. Однако слова в документации (о ИХ сервере и МОЕМ сервере) я воспринял таким образом, что сервер - это менеджер очереди сообщений. И как любая программа он должен эти сообщения хранить до тех пор пока у него их не заберут. Но тут я почитал немного документации и мне показалось, что сообщения на ИХ сервере удалятся только тогда, когда их получит программа-клиент через МОЙ сервер. Так? Для такой схемы обязательно ли нашим серверам быть в одном TCP сегменте и в одном кластере? Кстати - тут выяснилось, что никто, специально для нас, не создает очередей. А на самом деле - есть одна очередь к которой будет допущено некоторое количество клиентов. Я должен забрать с нее сообщения, которые еще не получал, но НЕ УДАЛЯТЬ их (лично мне в этой схеме непонятно, кто и когда, в таком случае, будет их удалять). Кстати вот с такой проблемой, видимо, придется столкнуться - если я забираю из таблицы, то, в случае порчи их на стороне приемника (ну мало ли - повредился файл базы физически), я мог развернуть последний бэкап и просто запустить процедуру обновления - она бы из таблицы источника забрала бы снова те данные, которые были утеряны. А как тут быть - непонятно, просить перепослать... так в режиме общей очереди тогда у других участников может продублироваться. У вас может постоянно висеть обработчик, вызывающий GET для получения сообщений, а можно просто настроить тригер, который будет срабатывать по некоему условию, типа приход сообщения, или достижение глубины очереди определенного количетсва сообщений, ну и так далее. Ну до этого мне еще разбираться и разбираться. Вот сейчас не могу найти - как мне в своем менеджере зарегистрировать очередь на удаленном сервере? Или как заставить получать свою очередь сообщения из ИХ очереди? Не нашел нигде, что бы спрашивало ай-пи очереди сообщений. Нашел в хелпе как сделать простейшую MQ сеть, но случай дан для одного сегмента сети TCP/IP с присоединением к дефолтному кластеру, после чего все-все находится самостоятельнои автоматически. Как быть если у меня есть адрес-порт-имя менеджера и имя очереди? Версия - 5.2 все же. Но вспе равно - сначала доки, потом что-то хаять, типа как же оно все неправильно устроено :) Если у Вас сложилось впечатление, что я что-то хаю, значит я недостаточно точно формулировал свои мысли. Мне очень интересно разобраться с новым моментом, думаю, что опыт этот полезный будет, просто для глубокого проникновения в суть вопроса нет времени и поэтому приходится вот просить помощи. Тем более, я думал, что в моем варианте реализация должна быть достаточно простой, что бы знающие люди с ходу просто и понятно объяснили. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 17:34 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну вот чуток по-более инфы, и ситуевина выглядит иначе. Если уже есть очередь на _удаленном_ по отношеню к вам qmgr (что такое локальный и удалненный qmgr написано в доке, если коротко, то qmgr к которому вы выполнили MQCONN есть локальный) и вам надо делать browse (это и есть получение сообщения без удаления), то получается, что вам собвственно не нужен локальный qmgr Вам нужно приложение слинкованное с "client" library, defined client channel, ну и все - можете MQCONN, MQOPEN, MQGET -> вот только об XA можно забыть в таком типе приложения. Если надо что-то иное - то надо направлять сообщения в _вашу_ локальную очередь, и тогда приложение слинковать с "server" library, ну далее все как выше плюс XA ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 17:57 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
если ваш партнер просто дает вам доступ к своему qmgr и право на MQOPEN одной из его очередей - то in glance я не вижу способа иметь прогу, запускаемую на вашей машине, но с XA ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:00 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvкак я понял, партнеры _уже_ готовы слать сообщения, и имеют все готовое, так? Примерно так - они пока отлаживаются, но нам нужно успеть отладиться к завершению их разработки. Ну тогда на вашей стороне маленькая прога по вышеописанной логике , ну то есть с XA и напрямую в mssql не знаю как с ms оно будет работать, но для db2 такую вещь можно сделать за рабочий день, из которых половина уйдет на чтение application reference guide Открыл я довольно куцый хелпик, который с моим клиент-сервером прислали, про XA не нашел пока, про MTS - выбор языков для уровня приложения: ASP (VBScript), Visual Basic, Java, C/C++. С тем же успехом можно просто брать Си или С++ и писать расширенную хранимку на скачанном апи.ПРосто понять хочется. Кроме того - я вот слил эти 10 мб, они распаковались в библиотеки и заголовочные файлы, ну пара-тройка екзешников еще (вот не помню - были ли dll-ки). Каких-то управляющих оболочек, сервисов или источников данных не появилось. И в то же время мне говорят, что просто моего линкованного приложения будет недостаточно, что нужно, что бы был установлен еще и некий клиент (хотя я же вроде бы как раз и скачал клиента). Что физически представляет собой это необходимый клиент? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Не согласен, что Q-Replication Event Publisher дополнтельный overhead. По любому надо будет класть сообщения в очередь. В Случае Event Publisher приложение менять _не надо и программировать _не_ надо, на стороне отправителя. На стророне приемника придется пользоваться XA, и что... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:06 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну трудно из вашего описания понять, об чем речь Но как я уже писал, есть такой пакет с именем "Client" (по крайней мере на *nix'ах есть) Вот чего он такое и зачем я уже написал. Что за 10MB вы скачали - я без понятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:07 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
nkulikov - на отправителе или уже все написали, или вовсю пишут. На приемнике готовятся писать А вот и overhead - парсинг логов скрытый, парсинг долбанного XML - явный. При приличном message throughput распрекрасный XML даст приличный overhead Лучше всего - слать С-шный структуры, ну а для межплатформенности - в XDR их (часть RPC, представляет данные в машино-независимом формате, если кто не знает) То есть 1)С-шную структуру в XDR формат - один вызов, кодируется на ура - ну в принципе, можно и самому такую функцию сделать, зная формат структуры, но все же так правильнее 2)Передаем через MQ 3)Получаем и из XDR в машино-зависимый формат На выходе С-шная структура, а уж по скорости с XML не сравнить ну никак, просто нету шансов. Ну и Q-Capture, особенно если там всяких "фильтров" навешать (чтобы отправлять только желаемое, а не все db2 логи скопом) - тоже ресурсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:15 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
клиент представляет собой библиотеки. если там есть mqic32.dll то это он. однако, грустно как-то в свете последней инфы :( есть еще IBM WebSphere MQ Extended Transactional Client http://www-128.ibm.com/developerworks/subscription/descfiles/mqt5302w.htm там есть возможность работать с mts. ggv XDR хреново помогает при работе с мейнфреймом из-за того, что все время приходится конвертировать текстовые данные ASCII <-> EBCDIC. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:23 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну чего там - грустно.... Нельзя скрестить противоречивые требования. Если только доступ к удаленной очереди - то без XA Если нужна прога с XA и на локальной машине - то свой qmgr, channel, transmition queue, все по полной программе вплоть до проги на удаленном конце по посыланию message в вашу очередь. Это может быть так же и триггер (чтоб не трогать существующие проги которые постят) - ну типа если по некоторым признакам можно выделить сообщения которые вы должны читать (MsgID, CorrelID) то посылать копию сообщения в вашу очередь. По поводу перекодировки - мда, а как этот EBCDIC конвертить в ASCII ? есть функции или писать надо? что-то мне сдается, что задача уже кем-то когда-то решалась, нет? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:31 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну кончно решалась :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:35 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Вот чего он такое и зачем я уже написал. Вы писали, что это набор библиотек и несколько второстепенных бинарников. Насколько я понял - тут то же самое. Просто я думал, что если я слинковал свое приложение с этими библиотеками при компиляции, потом мне уже ничего и не надо для того, что бы приложение работало. Но кстати сейчас ставил сервер - он увидел, что на машине уже установлен клиент. Видимо эти библиотечки еще и регистрируются. В общем что такое клиент я, кажется, понял наконец! :) Вот конкретный вопрос - если у меня установлен сервер. Могу ли я через MQSeries Explorer создать такую свою очередь, что бы туда попадали сообщения из какой-то удаленной очереди (я знаю ее адрес, порт, имя менеджера и имя очереди) и при этом делался browse (т.е. сообщения не удалялись) и как (и вообще - можно ли?) просто увидеть эту очередь в моем експлорере? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:39 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
для этого нужно, чтобы ваш партнер послал сообщение на ваш сервер. просто делать browse удаленной очереди нельзя, в нее можно только записывать (серверной программой). это можно сделать клиентской программой. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:47 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Лучше всего - слать С-шный структуры, ну а для межплатформенности - в XDR их (часть RPC, представляет данные в машино-независимом формате, если кто не знает) Ну - с этим у нас "просто и легко" - такими проблемами глобальными голова не болит. :) Решение о функционировании очереди, доступе к ней, формате отдаваемых данных уже принято в одностороннем порядке. Так что нам осталось самое простое - сделать какой-то механизм выгребания оттуда данных и пользоваться. Никак не могк понять - нафига мне нужен MTS и\или XA? На схеме New Year просто он был показан как некая среда, которая давала доступ к MQ из MS SQL. А так - для моих задач он не нужен особо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:48 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
но клиентской программой нельзя записать сообщения в sql server. т.к в зтом случае нет XA :( можно клиентской программой переслать сообщение себе на сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:50 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
если приложение слинковано с клиентской бибблиотекой - больше ничего не надо для работы, это готовое приложение для работы. Никаких других процессов/компонент не требуется Explorer - на свалку Вся (!) работа с MQ строится на программировании. На использовании API Ну и как верно сказал NewYear - нельзя использовать MQGET для удаленной очереди MQOPEN может быть для удаленной очереди, но только на MQPUT То есть - если вы даже и развернете свой qmgr, и сделаете MQOPEN удаленной очереди - вы не сможете просматривать сообщения (то есть делать MQGET в режиме browse) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:53 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>нафига мне нужен MTS и\или XA чтобы включить в одну транзакцию SQL Server и WebSphere MQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:53 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear - да, можно клиентской программой сделать MQPUT в local qmgr, но как же быть с двухфазной транзакцией? Между удаленным и локальным qmgr? Хотя, учитывая, что только в режиме browse..... Возможны дупликаты сообщений. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:55 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvNewYear - да, можно клиентской программой сделать MQPUT в local qmgr, но как же быть с двухфазной транзакцией? Между удаленным и локальным qmgr? Хотя, учитывая, что только в режиме browse..... Возможны дупликаты сообщений. а там получается однофазная транзакция. фактически ведь сообщение только перекладывается в transmission queue на мейнфрейме. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 18:58 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну в таком случае - пойдет. Но опять же, на удаленной стороне надо определить канал/transmit queue к локальному qmgr А по трудозатратам это уже приближается к написанию проги, висящей на mainframe и отлавливающей нужные сообщения с направлением на локальный qmgr ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYearно клиентской программой нельзя записать сообщения в sql server. т.к в зтом случае нет XA :( В смысле - sql server ругнется, если я попробую в хранимой процедуре получить сообщения без транзакций (например - во временную таблицу), а потом открою транзакцию с mssql, закину данные в нужную мне таблицу и, если все без ошибок, подтвержу транзакцию? Он, вообще, может. :( До сих пор не могу понять, почему он считает, что нужно поднять распределенную транзакцию, если в одной и той же процедуре встречается обращение к линкованному серверу и открытие транзакции с уже полностью локальными участниками. Удивительно, что если обращение к удаленному серверу выполнить в динамическом запросе, то он прекрасно обходится без удаленных транзакций. :) В DB2, на мой взгляд, с этим еще ужаснее. Нетак давно решали проблему - нам на удаленном сервере дали права на запуск одной процедуры, которая возвращала нужные данные. Пришлось писать отдельный exe, который запускался из хранимой процедуры и через stdout передавал, полученные от процедуры данные. Процедура их парсила и уже после этого только они попадали в базу. А вот как сделать хранимую процедуру на Db2 так, что бы она коннектилась к удаленному серверу, запускала там процедуру и результат этой процедуры записывала в таблицу своего локального сервера мне никто не смог подсказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:14 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Ну и как верно сказал NewYear - нельзя использовать MQGET для удаленной очереди MQOPEN может быть для удаленной очереди, но только на MQPUT То есть - если вы даже и развернете свой qmgr, и сделаете MQOPEN удаленной очереди - вы не сможете просматривать сообщения (то есть делать MQGET в режиме browse) Но это справедливо только для сервера? Клиент сможет открыть очередь для MQGET в режиме BROWSE? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:18 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
это та же самая прога. просто тогда нужно перетащить ее на мейнфрейм. ну а что делать? кстати, в етой проге еще не плохо бы запоминать последний отработанный CorrelId (или что там будет) и хранить его где-то еще (в другой очереди, например) на случай сбоя. а когда сообщений в обр. очереди перевалит за 10000 начнутся дикие тормоза. к тому же, если использовать клиента, при каждом запуске программы все сообщения придется пересылать по сети. а долго висеть она не сможет, потому что клиент. ну вот нафига, спрашивается, вообще этот browse и одна очередь для всех? нельзя что ли каждому дать свою очередь. а так в любом случае придется извращаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Может ног только на ЛОКАЛЬНОМ QMGR NewYear имел ввиду , что без XA на удастся провести двухвазную транзакцию с одним участником - MQ, и вторым - MSSQL Как из SP db2 приконнектиться к удаленному db2 - скорее всег, никто не делал, никому не надо, вот никто и не полез пробовать. Я лично буду пробоватьт _только_ в случае это будет надо по работе. Если нет - то на удаленном сервере в MQ, на локальном - читаем и заливаем. Я практически все только так и делаю - все больше доступа к db2 через MQ - и гнать всех остальных в шею! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:22 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>только на ЛОКАЛЬНОМ QMGR ЛОКАЛЬНЫЙ QMGR это тот к которму был mqconn. это может быть удаленная машина. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:28 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
nkulikov вот подсказал, и я с ним согласен - если уже есть работающее приложение, и его не хочется трогать по всяким причинам, но есть задача чать данных переливать в другую базу с возможной попутной трансформацией, то Q-Replication верный путь Его можно иметь ввиду и при разработке нового приложения. Если обмен межплатформенный - то или Information Integrator как промежуточное звено, или Q-Replication Event-Publisher Короче - множество путей. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:30 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Ну что такое локальный qmgr ф уже коротко упомянул выше :) Как раз тот к которому был MQCONN :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:31 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
если приложение склинковано с клиентской библиотекой; если оно открыло удаленную очередь и делает browse; если оно результаты просмотра сохраняет в базу -> то нету двухфазной транзакции и могут быть дубликаты в базе. То есть integrity надо обеспечивать средствами базы, не допуская повторного внесения данных. Можно попробовать опиратся на MsgID - но не факт, что они будут всегда уникальны, если их генерит qmgr - то уникальны, а если назначает прога - то пролет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:38 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
nkulikov подсказал - если опираться не только на MsgID, но и на PutTime - и фиксировать сообщения которые уже просмотрели (ну в базе например) то можно избежать дубликатов вот таким вот образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:41 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну и что. совпадать могут MsgId + PutTime. у меня полно таких сообщений. но у меня они различаются по CorrelId. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:48 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear>только на ЛОКАЛЬНОМ QMGR ЛОКАЛЬНЫЙ QMGR это тот к которму был mqconn. это может быть удаленная машина. ggvНу что такое локальный qmgr ф уже коротко упомянул выше :) Как раз тот к которому был MQCONN :) Я уж было напугался! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:49 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYearэто та же самая прога. просто тогда нужно перетащить ее на мейнфрейм. ну а что делать? А просто никто не даст нам ничего разворачивать на мэйнфрейме. ну вот нафига, спрашивается, вообще этот browse и одна очередь для всех? нельзя что ли каждому дать свою очередь. а так в любом случае придется извращаться. Конечно извращаться. В таком варианте нет ни гарантии доставки (сообщение может быть убито до того, как его прочтут ВСЕ кому оно нужно) и нет гарантии доставки в ЕДИНСТВЕННОМ экземпляре, потому что никто не мешает читать уже приходившие сообщения. Правильно? И в таком варианте только дополнительные мучения от очереди этой. Я ж и писал - как было бы здорово работать с федеративной табличкой или вьюшкой. А отличать, я надеюсь, будем по естественному ключу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2005, 19:55 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Road Runner - ну тут ты опфть не прав. Мучения все из-за _неправильного_ использования MQ И никаких преимуществ и федеративной таблички нету - одни недостатки. Ну сам подумай - MQ это некий специальный вид IPC - Inter Process Communication - обладающий свойствами транзакционности, асинхронности, и транспорта. Никакая общая табличка и близко к таким возможностям не приблизится. Но вот судя по вашей задаче, у вас не тот тип работы с MQ выбран. Судя по тому, что сообщения должны читать многие - это чистый publish/subscribe, и в таком случае никаких мучений, проблем, и тормозов. Один/нусколько публикуют сообщения, все, кто подписался на "тему" - получают его. И вообще - работа с MQ требует соответсвующего дизайна системы, приложений. С подходом "одна общая табличка" MQ будет приносить одни проблемы. Ну и само собой - нежелание делать дизайн под соответсвующий IPC (MQ в данном случае) тоже принесет одни проблемы. Это только ораклисты способны делать IPC через oracle ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 08:38 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Мучения все из-за _неправильного_ использования MQ Как выяснилось - все же будет правильное или почти правильное использование. Режим просмотра нужен только пока - именно нашей очереди нет еще и есть одна общая очередь из которой можно потренироваться читать и парсить, в нее положили несколько сообщений. Реальная схема будет такая - есть выделенная (для нас) очередь расположенная на их менеджере (на OS/390). Наше приложение или сервер (насколько я понял с сервером так не получится) должны запросить сообщения, которые "ждут" нас, получить эти сообщения, поместить в БД, подтвердить их получение (что бы они удалились из очереди). Очевидно, тут транзакция была бы весьма кстати. А какие варианты есть у меня, кроме клиента перекладывающего сообщения в мою очередь (и в этом случае, насколько я понимаю, у меня все равно не будет транзакции между моим менеджером очереди и их, правильно?) ? ggv И никаких преимуществ и федеративной таблички нету - одни недостатки. Ну сам подумай - MQ это некий специальный вид IPC - Inter Process Communication - обладающий свойствами транзакционности, асинхронности, и транспорта. Никакая общая табличка и близко к таким возможностям не приблизится. Если у Вас есть время, то я бы с удовольствием узнал бы недостатки такого способа (таблички) - пока я их не вижу. Вот смотрите по поводу свойств MQ: 1. Транзакционность - двухфазная транзакция в случае федеративной таблички не нужна, т.к. при неудачном завершении транзакции на стороне сервера-приемника всегда можно получить эти же данные повторно. Гарантию отсутствия дубликатов записей можно получить при наличии в таблице авто-инкрементального ключа. 2. Асинхронность - на полную катушку, поставщик данных обеспечивает гарантированное наличие необходимых данных в таблице, приемники читают те данные, которые еще ими не были прочитаны. 3. Транспорт - практически любой сервер БД поддерживает некоторые протоколы, которые позволяют получать информацию от удаленных систем с гарантией ее неизменности при передаче. Кроме этого - во многих БД есть встроенные производителем механизмы репликации, есть подозрение, что они могут быть достаточно эффективны. Минусы MQ (на мой взгляд): 1. Дополнительные затраты (либо на написание своего клиента по работе с MQ, либо на покупку неких мостов, менеджеров) 2. Дополнительная головная боль (и потеря производительности) по стандартизации формата сообщения, организации парсинга этого сообщения. Я ни в коем случае не ругаю MQ, мне просто хочется понять. Ну и в любом случае мне придется с ним работать. ggv Это только ораклисты способны делать IPC через oracle Наверно еще MS SQL-ники ! ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 10:02 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
автор Реальная схема будет такая - есть выделенная (для нас) очередь расположенная на их менеджере (на OS/390). Наше приложение или сервер (насколько я понял с сервером так не получится) должны запросить сообщения, которые "ждут" нас, получить эти сообщения, поместить в БД, подтвердить их получение (что бы они удалились из очереди). ну осталось настроить каналы и вот эту "выделенная (для нас) очередь" сделать как Remote Queue Definition. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 10:25 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
абсолютно прав NewYear - вот в этом описанном вами случае вы тут же предложили _неправильный_ способ работы. Но чтение application programming guide и intercommunication guide будут хорошим подспорьем, в том числе в плане понимания преимуществ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 10:43 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear ну осталось настроить каналы и вот эту "выделенная (для нас) очередь" сделать как Remote Queue Definition. Видимо у меня какая-то сильно неполная документация. :( Я сейчас делаю вот так: на одном менеджере определяю request channel которому в Connection name определяю (по TCP\IP) имя своей машины и в скобках - порт на котором висит листенер целевого менеджера. Потом определяю Remote Queue. Но там нигде не указывается канал... думал, что может оно автоматом получает возможные имена удаленных менеджеров и имена очередей... но я указываю имена своих менеджера и очереди... но mqopen для этой очереди (где она remote definition) не выполняется. Вот еще интересно - где бы вводить эти mq команды вручную? У меня есть прилада MQSeries API Exerciser - но она шлет команды только такие как на кнопочках нарисовано (MQOPEN, MQDISC, MQCONN, etc)... еще есть коммандная строка для неких MQSC комманд - она запускается и говорит, что команды, которые она понимает: alter, clear, start, define, delete, etc... :( Если это просто - может Вы могли бы мне дать пример, в рамках одного сервера, как можно обмениваться сообщениями между очередями разных менеджерами? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:34 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Дока http://www-306.ibm.com/software/integration/mqfamily/library/manualsa/ прога runmqsc ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:51 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
QMGR_1 1) define qlocal(<name>) 2) define channel(<name>) chltype(rcvr) trptype(<type>) QMGR_2 1) define qlocal(QMGR_1) usage(xmitq) 2) defione channel(<name>) chltype(sdr) conname(<'string'>) trptype(<type>) xmitq(<name>) 3) define qremote(<name>) rname(<'name'>) rqname(QMGR_1) все это по шагам описано в Quick Beginning который можно со ссылки на доку которую я дал найти, или вот для V6 - http://www-306.ibm.com/software/integration/mqfamily/library/manualsa/manuals/platspecific.html ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 12:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Runner, прочитайте книжку Intrecommunication, так вообще невозможно говорить. в Remote Queue Definition обычто указывается Remote Queue Name и Remote Queue Manager Name ( хотя есть идругие варианты), >... но mqopen для этой очереди (где она remote definition опции в MQOPEN указаны неправильно. >как можно обмениваться сообщениями между очередями разных менеджерами? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
MQ. Истории в картинках. NewYear. Это круче, чем банк "Империал". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:08 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
только хочу таки дополнить, что application programming guide тоже читать надо вместе с intercommunication guide. Но это исторически - я ставлю application programming guide на первое место, а NewYear ставит intercommunication guide на первое место. Таки придется читать оба и одновременно :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 13:11 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Таки придется читать оба и одновременно :)) Угу. И быстро! :) Ладно, что-то почитал (не все). Что-то поробовал - нифига не получилось. Если возможно, подскажите конкретно где я ошибся и как правильно. Итак, два менеджера сообщений на одном сервере: 1. remote Очереди: a) cantsend - normal (установлена как дефолтная Dead-Letter Queue для remote) b) send - transmission (установлена как дефолтная Transmission для remote) c) local_sended - Remote Queue Definition (Remote Queue Name - sended, Remote Queue Manager Name - local, Transmission Queue Name - send) Каналы: а) ch1 - Server (TCP/IP, localhost(2222), Transmission Queue - send) Listener слушает порт 1111 2. local Очереди: а) sended - normal Каналы: а) ch1 - Requester (TCP/IP, localhost(1111)) Listener слушает порт 2222 Теперь что пытаюсь делать: 1. Через MQSeries API Exerciser делаю MQCONN к remote 2. MQOPEN для send 3. Пару раз MQPUT 4. MQCLOSE, MQDISC После этого в очереди send на remote у меня лежат эти два сообщения. Теперь делаю на local: (в MQSEries Browser) правой кнопой на канале ch1, и - Start. Сообщения из send пропадают, но в sended на local не появляются! :( Зато появляются два сообщения в cantsend c Dead-Letter Header = MQFB_XMIT_Q_MSG_ERROR (в хелпе прочитал, что это означает, что он не может послать сообщение, т.к. оно неправильного формата). В связи с этим у меня вопросы: 1. Что за формат, как его посмотреть, установить... если вам не трудно. Или когда еще может быть такая ошибка? 2. Названия\имена менеджеров, хостов, очередей - регистрозависимы млм нет? (конркетно у меня сейчас все сделано маленькими латинскими буквами, просто на будущее знать) 3. Столкнулся с тем, что после того как положу сообщения в очередь send и потом запущу старт канала на local, то потом не могу открыть очередь send - пишет, что объект занят. Я думал, что должна быть полная асинхронность и, соответственно, мультипользовательский доступ к очередям для записи и чтения. Я что-то не так делаю? 4. Не совсем понял - вроде бы в каких-то местах читал, что нужно открывать и делать MQPUT не в send, а в local_sended. Но она у меня не открывается. Если должна, то я, конечно, разберусь... но может быть вы мне подскажете сразу какие параметры мне нужно определить для MQOPEN и MQPUT? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 19:19 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
1. Что за формат, как его посмотреть, установить... если вам не трудно. Или когда еще может быть такая ошибка? а вот не нужно ложить сообщение напрямую в transmission queue. формат в доке есть. установить -- программно. т.е формировать сообщение именно такого формата. + поле Format в MQMD. в нормальном режиме queue manager дописывает к сообщению спец. заголовок, и потом кладет его в transmission queue. 2. Названия\имена менеджеров, хостов, очередей - регистрозависимы млм нет? (конркетно у меня сейчас все сделано маленькими латинскими буквами, просто на будущее знать) регистрозависимы 3. Столкнулся с тем, что после того как положу сообщения в очередь send и потом запущу старт канала на local, то потом не могу открыть очередь send - пишет, что объект занят. Я думал, что должна быть полная асинхронность и, соответственно, мультипользовательский доступ к очередям для записи и чтения. Я что-то не так делаю? так и должно быть. приложения обычно не обращаются к transmission queue. 4. Не совсем понял - вроде бы в каких-то местах читал, что нужно открывать и делать MQPUT не в send, а в local_sended. Но она у меня не открывается. Если должна, то я, конечно, разберусь... но может быть вы мне подскажете сразу какие параметры мне нужно определить для MQOPEN и MQPUT? поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT. P/S каналы sender/receiver. имя transmission queue обычно совпадает с именем менежера, на кот. нужно отправить сообщения. это важно для маршрутизации сообщений. руками канал статровать не нужно, нужно настроить trigger condition на tramsmission queue. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2005, 20:05 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear а вот не нужно ложить сообщение напрямую в transmission queue. Ну я так и думал, просто у меня не ложилось в правильную. :) так и должно быть. приложения обычно не обращаются к transmission queue. Ну да - в таком ключе становится более понятно его поведение. поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT. Вроде бы я так пробовал... завтра попробую еще. каналы sender/receiver. Хмм.. поправьте, если ошибусь, но при sender\reciver инициатором передачи выступает sender. А у меня ситуация, что сообщения помещаются в "мою" очередь на удаленном сервере, а мне нужно инициировать соединение и забирать сообщения для меня. Впрочем я запутался во всех этих сендерах\ресиверах\реквестерах\серверах... имя transmission queue обычно совпадает с именем менежера, на кот. нужно отправить сообщения. это важно для маршрутизации сообщений. У меня особой маршрутизации не будет, но, конечно, лучше делать сразу как принято де факто и как правильнее. руками канал статровать не нужно, нужно настроить trigger condition на tramsmission queue. На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 00:33 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear поле Options в MQOO должно иметь значение MQOO_OUTPUT. нельзя RQD открыть на INPUT. Так работает! :) А вчера я пробовал эту опцию включать, но, видимо, были включены еще другие опции. NewYear , ggv - Спасибо вам огромное за терпение! Задача у меня пока окончательно не решена, но с мертвой точки сдвинулась однозначно. Да и в голове по чуть-чуть начинает укладываться. З.Ы. Но вы все же ответьте на мое предыдущее сообщение, если будет минутка свободного времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 09:57 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
> На трансмишн? Это, наверно, для сендер\ресивер? Ведь у меня инициирует соединение клиент. ну да для сендер\ресивер. >Ведь у меня инициирует соединение клиент. можно конечно так. на практике я никогда так не делал. вообще вот такая последовательность. 1) программа A на S/390 порождает сообщения и записывает их в RQD. 2) при этом сообщения попадают в transmission queue. 3) для transmission queue генерируется триггерное событие 4) в ответ на триггерное событие channel initiator на S/390 стартует sender channel 5) устанавливается соединение sender/receiver 6) сообщения доставляются в целевую очередь на w2k 7) для этой целевой очереди генерируется триггерное событие 8) в ответ на триггерное событие trigger monitor запускает вашу программку. 9) программка читает пришедшие сообщения из очереди и записывает в sql server 10) щастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 11:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
чертовски занчт (просто как назло поперло - куча клиентов, которые все хотят использовать MQ не понимая как. И зачем) Так что если не трудно - повторно вопросы требующие ответа. Честно говоря, сумбурненькое немного сообщеньице было, вчитываться надо, а некогда. И еще - Explorer на свалку. Все что надо - в файл. Ну там определения очередей, каналов, define, alter. затем runmqsc -v < input.file (проверяем синтаксис, verify короче) ну и финально runmqsc < input.file > output.file можно выполнить команды и на удаленном qmgr. все это написано в system administration guide. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 12:06 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Explorer кстати не работает с S/390 т.к там нет PCF и способ работы с Command Server несколько иной. RQD на мейфрейме тоже, кстати не обязательна, но пока об этом рано говорить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 12:14 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
RQD - или local definition of the remote queue (оно?) на любых платформах не обязательно. Чтобы сообщение попало в удаленную очередь, должно выполняться одно из трех 1) быть local definition of the remote queue; 2) имя transmition queue должно полностью совпадать с именем remote qmgr; 3) определен local alias for the remote qmgr; ну канал я не упоминаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:17 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>RQD - или local definition of the remote queue (оно?) на любых платформах не обязательно. я имел в виду этот конкретный случай. local alias for the remote qmgr тоже предсавляет собой Remote Queue Definition, в котором в поле RemoteQueue ниче не указано ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:26 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear >Ведь у меня инициирует соединение клиент. можно конечно так. на практике я никогда так не делал. Ну, здесь я ставить задачу не могу, решаю задачу в тех рамках, в которых мне ее поставили. вообще вот такая последовательность. Согласен, что так будет правильнее и беспроблемнее, но (во всяком случае, на этом этапе) задача стоит так, что мы должны инициировать соединение и забирать наши сообщения - насколько я понял, в этом случае может вырасти сетевой трафик, т.к. проверять есть сообщения или нет придется просто через интервалы времени. Правда сообщений будет достаточно много скорее всего! ggv Так что если не трудно - повторно вопросы требующие ответа Не трудно, но на них уже ответил New Year. Пока больше вопросов нет - вот сейчас пытаюсь читать про то, каким же образом можно управлять секурностью - где задавать\определять пользователей, пароли, принадлежности очередей. Но про это мне стоит почитать сначала, а уж потом вопросы задавать. :) Вообще, конечно, тема достаточно большая и интересная, если бы у нас планировалось более масштабное внедрение сообщений, то, вероятно, был бы и более серьезный подход. А так эти сообщения воспринимаются просто дополнительной заморочкой, которую надо обойти и все (потому что уже есть и отлично функционирует схема получения данных из таблиц удаленного сервера, тем более, что sql server позволяет линковать удаленные сервера и обращаться к их таблицам, вьюшкам, функциям и процедурам). Мне бы по этой теме было бы очень интересно послушать\высказаться (хотя я не могу достаточно авторитетно сказать про плюсы и минусы очередей сообщений, но никак не могу найти минусы в использовании удаленных таблиц). Но это, наверно, лучше делать другой теме и когда у вас будет свободное время. А эту тему оставить для вопросов-ответов по конфигурации клиентов-каналов-серверов MQSeries. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 13:36 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
да очень просто все - MQ это IPC Особого вида и с особыми свойствами Поэтому если есть опыт программирования с IPC, или даже лучше сказать с RPC - то легче представить что такое MQ Как и любой IPC это всего лишь API а подробнее - в руководствах, там даже с картинками. Ну не везде есть смысл лепить RDBMS для воплощения IPC А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить. Вот и продукт есть - Information Integrator Replication Edition (если не ошибся в названии) А попросту - Q-Replication, или репликация поверх MQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
MQ не занимается authentication. MQ делает authorization - в руководстве написано в каких случаях Если коротко - права доступа на сообщения не задаются. Если недостаточно - есть куча API. можно воплотить все, что угодно. А можно посмотреть на http://www-306.ibm.com/software/integration/wmq/securityedition/ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:28 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggv Ну не везде есть смысл лепить RDBMS для воплощения IPC 100% согласен. А вот, например, связать несколько RDBMS посредством некоего IPC (MQ) - легко можно представить. И воплотить. Представить-то легко. Но если стоит задача ТОЛЬКО репликации (или просто предоставления данных с одного сервера OLTP для нескольких серверов OLTP или OLAP), то и плюсов нет. Или я все же что-то еще недопонимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:29 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну судя по тому, что IBM мигрирует с SQL-replication to Q-replication - видимо чего-то вы с IBM понимаете по другому. Если посмотреть на http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.ii.doc/start/cgpdif00.htm то можно выявить, что есть всего лишь один случай, где SQL-replication имеет преимущество перед Q-replication - http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.ii.doc/start/cgprsbdd.htm второй пункт в таблице, Data Distribution. Есть и практические примеры преимуществ - но уже на мыло, если хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:35 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
или по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера.... А ну как он аж фиг знает где.... А вот запросить функционал, послать request, это легко. Главное - интерфейс согласовать. Ну формат запроса. И ответа. А там - пусть хоть совсем перепишут SP, или вместо SP чё другое ответит - фиолетово. И пусть этот сервер и не фиг знает где, а в соседнем LPAR'е - фиолетово. Такая схема универсальна. Ну и само собой - request не по HTTP пойдет, а mq message. Ну это как пример(чик) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:50 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
То есть SOA - Service Oriented Architecture. (не путать с web services) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:51 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvну судя по тому, что IBM мигрирует с SQL-replication to Q-replication - видимо чего-то вы с IBM понимаете по другому. По моему, пока очень небольшому, опыту общения с DB2 IBM очень многое понимает по другому. :) Тем не менее (как мне кажется) абсолютное большинство RBDMS встраивает в свои продукты механизмы репликации и получения данных из удаленных БД. Вероятно они тоже имеют мнение отличное от мнения IBM. Впрочем, MS, говорят, в Юконе уже ввела более плотную интеграцию с очередями сообщений. Интересно - будут ли они напрямую поддерживать MQSeries. Если посмотреть на Я постараюсь. Есть и практические примеры преимуществ - но уже на мыло, если хочешь. r_runner at mail.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:23 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
тут ведь как посмотреть ВОт у того же oracle - ведь нет ничего кроме базы. А IBM'у с его middleware is everywhere надо чтобы любой его продукт мог работать с любым другим его и не его продуктом. Ну то есть Information Integration по-другому. Вот и получается, что подход разный. Пусть та же репликация будет конечно, но почему бы ей и не быть поверх MQ (который зарекомендовал себя со всех сторон и практически монополист на рынке, токо тихо об этом), при это возникают вот дополнительные возможности. Ну типа - теперь мы, если надо, и для oracle могём Q репликацию прикрутить. А фигли нам. И реплицировать из ораклы в IMS , да хоть в домино, хоть в текстовый файл, хоть в BerkeleyDB или ваще - отдать прямо в любое приложение и пусть делает чего угодно с данными. Так что вот такой вот модульный подход имеет место быть. Просто надо абстрагироваться от подхода "все в одном флаконе (оракле)", а иметь набор тулзов, способных интегрироваться и делать чего надо в разных сочетаниях. Но ораклу тоже понять можно - надо же привязать клиента, так как весь доход только с базы - вот к ней и надо привязать. А у MS доход более диверфецирован, вот и проявляется такая же тенденция, как и у IBM, но на одной платформе. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:47 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvили по другому - у меня и мысли никогда не возникнет, чтоб торкнуть SP прилинкованного сервера.... Ну а что тут страшного, если Главное - интерфейс согласовать. А ну как он аж фиг знает где.... Да и пусть - ничего более страшного, чем и при очередях. Как мне кажется. Однако SP - это очень неправильно. Особенно в DB2 - там они не могут быть федеративными. Да и другие СУБД понимают их ресальсеты как табличные значения со многими ограничениями. На мой взгляд наиболее гибко получается, если предоставляется вьюшка или табличная функция с инкрементальным ключом. Конечно, если вью или функцию переписать - все может сломаться, но ведь если формат сообщений поменять в одностороннем порядке, то все то же сломается. Вью или функция как раз и есть тот самый интерфейс, который надо согласовывать и менять только при обоюдной договоренности... ну, или хотя бы обязательном уведомлении. Я пока увидел один (возможно очень серьезный для некоторых применений) плюс - при схеме, когда сообщение посылает сервер по триггеру получится реализовать соответствие таблиц (я так думаю, про триггеры еще не читал) в реальном (насколько позволит скорость сетевого соединения) времени. Просто с БД это можно также сделать достаточно эффективно, но несколько заморочено. И вижу (как мне кажется) один минус - надо договариваться о формате сообщений и реализовывать парсер(ы), а это означает дополнительное время на разработку и удорожание пересылки (в смысле объемов) и обработки (в смысле ресурсов - ЦП и памяти). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:59 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
не думал отвечать, но не удержался- парсеры блин на меня как красная тряпка на быка. Я ж уже писал выше про С-труктуры Бинарный формат не надо забывать. Уперлись все в этот гребанный XML, туды его в качель.... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 16:20 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ggvне думал отвечать, но не удержался- парсеры блин на меня как красная тряпка на быка. Сорри, не хотел злить. Я ж уже писал выше про С-труктуры Бинарный формат не надо забывать. Я помню, про XDR. В хелпе Visual Studio .Net он связан везде с MSXML и написано, что это "XML Data-Reduced (XDR) is a subset of XML-Data". Насколько эффективно MS написал распарсивание его - ничего сказать не могу, может и эффективно. Однако ведь в этом случае все равно информация о типах передается в каждом сообщении? В то время как ODBC один раз передает информацию о том, какого типа будут поля (и сколько их) и после этого передаются только сами данные, в бинарном виде. Уперлись все в этот гребанный XML, туды его в качель.... Это точно - передать список, например, имен - и тут же пихают XML, в то время как можно совсем просто сгенерить и разобрать его разделяя запятыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 16:45 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
и при чем тут спрашивается всеми любимый MS???????????????????????? http://docs.sun.com/app/docs/doc/801-6741?q=XDR вот первоисточник man rpcgen все, я out - терпение кончилось Ничего личного, но просто день тяжелый. Три организации, очень блине крупные, все кругом технари, а спрашивают такое.... Испортили ораклы с M$ технарей..... Чтоб доки почитаь - да никогда.... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 17:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Я прошу прощения за назойливость, если вопрос не сложный и у вас есть время: Схема все же получается, насколько я понимаю, правильная - у партнеров канал типа сендер, у нас ресивер. Схему на двух win серверах я протестировал. Сейчас дал реквизиты партнерам - будут пробовать настраивать. Единственное, что обескуражило - на предложение сказать им имя и пароль пользователя, под которым их пустит к нашему менеджеру или что бы они сказали под каким пользователем будут соединяться, они ответили, что никаких юзер ай-ди и паролей они не передают и у всех работает так. Должно ли так быть? Просто при тестовой конфигурации я заводил такого же пользователя на сервере-приемнике из под которого был запущен сервис на сервере-отправителе и вносил его (на сервере приемнике) в группу mqm (группа администраторов MQSeries). Поэтому думаю, что если их поля ааутентификации будут пустыми, то мой сервер им не даст ничего ложить в очереди. Прочитал, что вроде как-то можно разруливать политику на уровне менеджеров очередей с помощью OAM, но пока еще не нашел как. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 10:46 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну при такой "конфигурации" - все правильно. Только с одним замечанием - "нормально" когда передающий инициирует передачу, а не принимающий запрашивает ее. То есть вы делаете MQGET на своей локальной очереди, и если у партнеров есть что передать - вам передадут. А по поводу security - system administration guide , chapter 10 у MQ с непривычки "непривычная" система безопастности :) В вашем случае главноге (imho) что если кто-то имет право на MQOPEN алиаса, то он может в конце концов доставить сообщение и в целевую очередь. Ну там все написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 11:11 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>что никаких юзер ай-ди и паролей они не передают и у всех работает так. Должно ли так быть ну да. у них же мейнфрейм. там для авторизации используется RACF например. с MF на Workstation или OS/400 и обратно по умолчанию будет работать и так. почему не знаю. если among workstations/OS400 нужно чтобы пользователь из Identity Context существавал на машине назначения. + см команду setmqaut. еще есть такая штука как MCA User Id. но это уже вспоминать нужно. >Поэтому думаю, что если их поля ааутентификации будут пустыми это как? они что, руками забьют туда пустые значения и выставят Identity Context? что-то я сильно сомневаюсь... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 11:13 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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 - нули, но это группа, насколько я понял не для секурности, а для объединения сообщений в группы. Можно ли на МФ задать определенный контекст для определенного канала и, если можно, насколько это сложно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 12:45 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
явно не прочитал указанную главу. Нифига никакой пароль никуда нафиг не передается. И вообще, как уже было сказано , MQ не занимается аутентификацией, только авторизацией (то есть права доступа к объектам) А тогда нафик ему пароль? По поводу что любой может прикинуться валидным юзером - точно, любой, который аутентифицирован системой. То есть, если я тут у себя на соляре, к примеру, создам канал к вашему qmgr, создам qremote на вашу очередь..... Если надо большего - Tivoli Directory Server, или Tivoli Access Manager, и внедряйте единую директорию, где все ваши юзвери и будут. MQ Extended Security Edition как раз и есть симбиоз с Tivoly Access Manager ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 12:54 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
прочитай when security checks are made там многое поясняется ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 12:58 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>Можно ли на МФ задать определенный контекст для определенного канала и, если можно, насколько это сложно? контекст вообще-то для сообщений. MCA User ID тоже как-то влияет, забыл я :) кроме этого MCA User ID нет ничего. >но вот факт - поле User ID в пршиедших сообщениях пустое (во всяком случае его так показывает MQ Manager) покажи код программы на MF. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 13:18 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
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, там ведь тоже аутентификация происходит через службу ОС, но при коннекте к конкретному экземпляру БД я могу указать логин и пароль. В общем, если таких вариантов нет, то тогда мы, наверно, просто закроем файрволом порт так, что бы на листенер этого менеджера мог коннектится только валидный МФ и локалхост... хотя лично мне этот вариант не очень нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 13:22 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
NewYear контекст вообще-то для сообщений. MCA User ID тоже как-то влияет, забыл я :) кроме этого MCA User ID нет ничего. Ну будем читать про MCA. Меня вот все же волнует точный механизм аутентификации - подробного описания я пока не нашел. А контекст можно задавать для каждого сообщения? NewYear покажи код программы на MF. Я бы с удовольствием, но мне его никто не даст! :) У нас нет доступа к МФ вообще никакого. Во всяком случае - к этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 13:26 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
>А контекст можно задавать для каждого сообщения? да, если есть привелегии. на workstation для этого нужно входить в группу mqm, на mf, вроде, вообще это пофиг. там используется RACF, его я не знаю. вот я боюсть что пробел в User ID это из-за того, что как-то криво задается контекст. но без кода мы этого не выясним. вообще пробел в User ID это не нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 13:41 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
ну я же написал - chapter (глава) 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 14:01 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
а по поводу IP Firewall - нормальное решение. С этого надо начинать, а все остальное - навороты, фильтрация ip завсегда хорошо, зачастую даже во внутренней сети. Но у вас ведь есть служба/человек отвечающий за безопастность. Вот они этим и должны заняться, в том числе и главу 10 прочитать. Разработчикам это как-то опционально. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 14:03 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
2 New Year: Попробую у партнеров узнать что у них там с кодом. 2 qqv: Да, Вы правы. Пойду читать. Вам обоим - большое спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 15:33 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Там с безопастностью главное понять: 1) При MQOPEN на алиас или на qremote - используются права доступа к локальному объекту qremote или к алиасу, но никак не к целевой очереди. 2) MQPUT/MQGET не требуют авторизации. Ну и как следствие (применимо к вашей ситуации) создав к вам channel chltype(sdr) и создав у себа локально qremote на вашу очередь, я смогу у себя здесь делать MQPUT в вашу очередь, если ваш PUAUT канала стоит по умолчанию. Вот про безопастность каналов и PUTAUT тоже стоит посмотреть. В MQ дается для windows какой-то channel exit в сырцах, который там чего-то добавляет к безопастности , но я никогда его не смотрел. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 16:23 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
вот, дивное введение в MQ нашел случайно, даже не знал, что такое есть :) http://www.redbooks.ibm.com/redpapers/pdfs/redp0021.pdf всего 34 страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 16:40 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
а вот security http://publib-b.boulder.ibm.com/abstracts/sg245306.html?Open ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 16:43 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
и еще security http://publib-b.boulder.ibm.com/abstracts/sg246814.html?Open ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2005, 16:53 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
И вообще - не надо считать 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2005, 09:43 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
2ggv: Я не успеваю читать всю ту информацию, которую Вы успеваете посоветовать! :) Но все равно спасибо и я надеюсь ее прочесть. Что касается безопасности, то я надеялся получить что-то похожее (хотя бы!!!) на реализацию аутентификации\авторизации в DB2 для Windows. В общем-то при коннекте сервер-сервер (на Win платформе) оно почти так и работает. Пересылающий сервер отсылает текущего win-пользователя\пароль, а принимающий обращается к системной службе безопасности, что бы провести аутентификацию, а с помощью setmqaut можно определить правила авторизации. Поскольку коннектится для пересылки сообщения именно канал, то мне казалось, что было бы логично дать возможность определять имя пользователя\пароль от имени которых канал будет запрашивать соединение. Если подобное можно определять на уровне сообщений, то это еще более гибко (особенно если можно определить поведение сервера источника в случае, если не все сообщения принимаются). Ну это я так думал. IBM думает совсем не так как я! :) Буду, значит, "учить матчасть". Спасибо, что есть такие люди как Вы и New Year, которые либо объяснят, либо носом в нужнуй документ ткнут, а то IBM настолько по своему думает, что я у них на сайте с трудом нахожу документацию, которая мне нужна. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2005, 10:09 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
Просто вы с помощью MQ решаете свою конкретную задачу на своей конкретной платформе. А IBM позиционирует MQ как средство интеграции, для задач очень широкого спектра на платформах очень широкого списка. Какое уж тут найик совпадение. Ничего не могу сказать про windows. Но на нормальных операционках канальное соединение происходит как описано, и если этого недостаточно - есть API Exits. По поводу доступа на уровне messages тоже все уже сказано - и API, и extended security. А попросту - любой чих в действиях при MQ вызывает програмирование. Если не хочется стоко программировать - есть продукты более высокого уровня, реализующие разный функционал - начиная от Event/Message Brokers заканчивая Process Choreographer. При использовании socket вы же не требуете аутентификации на каждый пакет переданной информации - вы используете протоколы более высокого уровня. Вот и рассматривайте MQ как IPC - InterProcess Communication. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2005, 11:06 |
|
MQSeries clients. Вопрос по конфигурации.
|
|||
---|---|---|---|
#18+
эээ автор Поскольку коннектится для пересылки сообщения именно канал, то мне казалось, что было бы логично дать возможность определять имя пользователя\пароль от имени которых канал будет запрашивать соединение. так это же SSL в каналах либо Security Exit. в книжке Security ведь написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2005, 11:07 |
|
|
start [/forum/topic.php?all=1&fid=43&tid=1605823]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
168ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 275ms |
0 / 0 |