|
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 |
|
|
start [/forum/topic.php?fid=43&msg=33183196&tid=1605823]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 157ms |
0 / 0 |