Автоматизация внешних приложений

Здесь обсуждаются любые продукты компании СофтЛаб-НСК для телевизионного вещания (Форвард Т, Форвард ТС, Форвард Голкипер, Форвард Рефери, Форвард Офис, Форвард Инжест)

Модераторы: ElenVR, Людмила, PR

Закрыто
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

krukovna писал(а): Название очереди может быть любое, как я понимаю. Главное указать получателя - т.е. экземпляр OnAir. А он ответит в ту же очередь.
Это в случае, если мы инициаторы, но мы-то хотим ничего не делать, а тупо ловить сообщения :)
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

хех

а как насчет результата?) Имхо результат важнее чем ничего не делать))

Не. я тоже бы за, если бы сообщения сами валились в очередь. Но вопрос. Тогда надо отслеживать, что они есть новые? Задавать те, которые нам нужны, а какие нет? Опять получается шибко умный софт. а не хитрые погарммеры :) Да и тоже не две кнопки нажать получится. Так что не шило ли на мыло меняется?
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

krukovna писал(а): Не. я тоже бы за, если бы сообщения сами валились в очередь. Но вопрос. Тогда надо отслеживать, что они есть новые? Задавать те, которые нам нужны, а какие нет? Опять получается шибко умный софт. а не хитрые погарммеры :) Да и тоже не две кнопки нажать получится. Так что не шило ли на мыло меняется?
Зачем отслеживать, что они новые? Исходя из интерфейса очереди (нет средств удаления сообщений), одно и то же сообщение не может прийти дважды :)
А наше/не наше сортируется буквально тремя строчками кода...
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

"Отслеживать" - я про другое немного. Надо будет дергать не OnAir, а очередь) так спросил - ответил, а так проверять, не сказал ли чего. Я не прав?

Ну а так буквально тремя строчками кода запрашивается только то что нужно )
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

krukovna писал(а):"Отслеживать" - я про другое немного. Надо будет дергать не OnAir, а очередь) так спросил - ответил, а так проверять, не сказал ли чего. Я не прав?
Не, не так. Там же при создании очереди указывается окно, в которое служба сообщение будет слать оконные сообщений.
Вот когда такое оконное пришло, тогда и надо очередь опрашивать...и только тогда.
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

Мммм, вариант да.

Но есть нюанс, как говорится :).
Эта система - уже сейчас работает и зависит от нас. А другое - это надо еще чтобы интегрировали, на это время надо.
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

krukovna писал(а):Но есть нюанс, как говорится :).
Эта система - уже сейчас работает и зависит от нас. А другое - это надо еще чтобы интегрировали, на это время надо.
Не понял? Я так понимаю, что все это уже есть. Вопрос только в том, как это правильно использовать...подождем ответа разработчиков.
krukovna
Сообщения: 57
Зарегистрирован: 30 май 2007 17:18

Сообщение krukovna »

ммм, я говорю о том, что есть вариант с сообщениями, когда надо опрашивать Форвард. Именно на эту тему могу скинуть рабочее приложение на посмотреть :)
Вариант с зеркалированием не факт что возможен все-таки уж... покрайней мере точно не банален.

Но решать Вам 8)
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Приятно видеть такое обсуждение :D

Хочется внести некоторую ясность в работу с MessageServer.

1)Каждый экземпляр программы OnAir всегда заводит очередь в MessageServer.

2)Все очереди создаются только на локальной машине.

3)Чтобы послать команду в OnAir (именно команду для осуществления в нем каких-нибудь действий, но не для запроса о его состоянии) очередь в клиентском приложении создавать не нужно. Команда посылается в очередь OnAir (см. п. 1). Здесь используется интерфейс Connection и его метод посылки сообщения.

4)Чтобы получить информацию из OnAir нужно создать очередь в клиентском приложении. После этого следует послать команду на запрос состояния в очередь OnAir. В данном случае используется точно такой же метод посылки сообщения, но интерфейса Queue. Программа OnAir, получив запрос на "состояние", ответит в очередь клиентского приложения. В своем клиентском приложении вы должны организовать опрос очереди для "выемки" ответа о состоянии OnAir.

5)Методы посылки сообщений в интерфейсах Queue и Connection одинаковы. Но в первом случае при посылке сообщения (через Queue) заполняется поле с "обратным адресом" и получатель сообщения знает куда ответить. Во втором случае (через Connection) поле "обратный адрес" не заполняется и связь получается односторонней. Заполнение этих полей происходит автоматически.
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

Спасибо за ответы!

Однако, я так и не увидел ответа на свой вопрос :) Может я тупой? :roll:
Вы мне скажите, как работают два сервера в режиме зеркалирования?
Неужели, один из серверов (дубликат) постоянно долбит мастер-сервер на предмет выяснения его состояния???
vd
Сообщения: 2311
Зарегистрирован: 05 мар 2003 19:21

Сообщение vd »

А зачем вам знать, как устроено зеркалирование внутри?
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

vd писал(а):А зачем вам знать, как устроено зеркалирование внутри?
Цитирую слова вашего коллеги:
А что это такая большая военная тайна?
А вообще, мне не надо знать как оно устроено внутри...мне надо знать, шлет ли местер-сервер дубликату команды сам или дубликат опрашивает состояние мастера?
Даниленко Сергей
Сообщения: 7093
Зарегистрирован: 26 фев 2004 09:53
Откуда: Techsupport SoftLab-NSK

Сообщение Даниленко Сергей »

Цитирую слова вашего коллеги:
Цитата:
А что это такая большая военная тайна?
А вообще, мне не надо знать как оно устроено внутри...мне надо знать, шлет ли местер-сервер дубликату команды сам или дубликат опрашивает состояние мастера?
Вообще-то мы вас спрашивали не о внутренностях вашего приложения. Нас не интересовала ни структура ваших классов, ни на чем вы пишите (васик, шарп, мфц). Нас интересовала только общая функциональность - что делает ваше приложение: посылает команды в OnAir, опрашивает состояние? Вы же почему-то из этого начали из этого делать великую тайну, хотя при этом же сразу и ответили :).
мне надо знать, шлет ли местер-сервер дубликату команды сам или дубликат опрашивает состояние мастера?
Система зеркалирования не предусматривает опроса состояния ведомого сервера со стороны ведущего - зачем это нужно? Задача системы зеркалирования - обеспечить одинаковость расписаний на обоих машинах. Чтобы все модификации расписания на одной машине повторялись и на другой. Соответственно посылаются только команды на исполнение. Зеркалирование может быть настроено как по системе ведущий-ведомый (команды летят только с одного сервера на другой), так и по системе "равноправные" (когда модификация расписания может происходить на обоих машинах и команды летят как на один, так и на другой сервера).
kasa
Сообщения: 90
Зарегистрирован: 04 сен 2008 01:50
Откуда: Красноярск

Сообщение kasa »

Очень хорошо, спасибо.
Ну и самое главное: а могу ли я написать свою программу так, как будто она ведомый сервер? И что для этого нужно сделать?
vd
Сообщения: 2311
Зарегистрирован: 05 мар 2003 19:21

Сообщение vd »

Да, можете. Нужно создать очередь сообщений для приема. Для этого нужно сначала создать объект с интерфейсом ISLMSConnection через CoCreateInstance, затем с помощью вызова из него метода CreateQueue создать объект с интерфейсом ISLMSQueue.

При создании очереди указывается окно, в которое будет приходить сообщение-нотификация. В обработчике этого сообщения нужно вызывать методы GetCounts и GetMessage из ISLMSQueue, чтобы уже вынуть сообщения из очереди со всеми параметрами.

Подробнее читайте в документе по SLMessageServer.
Закрыто