Можно ли перехватить сообщения MSMQ из частной очереди или добавить второй пункт назначения? - PullRequest
0 голосов
/ 16 июля 2009

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

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

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

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 18 июля 2009

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

...