2009-07-16 1 views
0

Проект, над которым я работаю, использует коммерчески доступный пакет для маршрутизации аудио в различные пункты назначения. Этот пакет представляет собой отдельное приложение, которое может использоваться для регистрации событий, генерируемых программным обеспечением маршрутизации звука, в базу данных, например. подключить устройство 1 к устройству 3.Возможно ли захватить сообщения MSMQ из частной очереди или добавить второй пункт назначения?

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

Я отметил, что аудио Routing sofware использует MSMQ для отправки информации о событиях в регистратор событий. Это означает, что данные о событиях могут нарастать, если программное обеспечение рекордера не работает некоторое время.

Я находится в очереди - «\ частного $ \ AudioLog.» И хотел бы выполнить следующие действия:

  1. Обнаружение и обрабатывать новые сообщения, как они вводятся в очередь.

  2. Разрешить текущее событие записи программного обеспечения продолжать работы, как и раньше - поэтому сообщения не могут быть удалены с помощью моего приложения.

  3. Убедитесь, что я всегда вижу сообщение .

Теперь я отмечаю, что я могу использовать MessageQueue заглядывать в очереди для того, чтобы читать сообщения без удаления, а также GetAllMessages(), чтобы взглянуть на все сообщения, которые не были удалены с помощью регистратора событий.

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

В идеале я хотел бы добавить свое приложение в качестве второго адресата для очереди сообщений. Возможно ли это программно?

Если нет, так как у меня есть права администратора, доступ к машине с очередью позволяет настроить очередь вручную, чтобы разветвить вторую копию очереди, к которой я могу подключить свое программное обеспечение?

ответ

1

У Msmq есть функция ведения журнала. Вы можете настроить очередь на наличие журнала. Затем каждое сообщение, которое удаляется из очереди (посредством операции чтения), перемещается в очередь журнала и не удаляется. Затем вы можете читать (или заглядывать) из журнала. Если вы используете операцию peek, убедитесь, что у вас есть задание, которое время от времени удаляет журнал.

+0

Спасибо. Я дам вам попытку и вернусь к вам. – ChrisBD

+0

Да выглядит так, как будто это путь. – ChrisBD

Смежные вопросы