Меню Рубрики

Microsoft windows message queuing windows xp

Обзор Message Queuing

В пространстве имен System.Messaging определены классы, которые позволяют выполнять чтение и запись сообщений с использованием такого предлагаемого в составе операционной системы Windows средства для организации сообщений, как .

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

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

При синхронном программировании, когда вызывается метод, то вызвавший его код должен ожидать, пока метод не завершит свою работу. При асинхронном программировании вызывающий поток запускает метод и параллельно продолжает свою работу. Асинхронное программирование основано на применении делегатов, библиотек классов, которые уже поддерживают асинхронные методы (например, прокси-классы веб-служб и классы из пространств System.Net и System.IO), либо специальных потоков. Как при синхронном, так и при асинхронном программировании клиент и сервер должны работать в одно и то же время.

Хотя Message Queuing работает асинхронно, поскольку клиент (отправитель) не ожидает прочтения получателем (сервером) оправленных ему данных, между Message Queuing и асинхронным программированием существует принципиальная разница: Message Queuing может выполняться в автономной (отключенной) среде. На момент отправки данных их получатель может быть отключен. Позднее, когда получатель подключится, он получит данные без вмешательства отправляющего приложения.

Подключенное и отключенное программирование можно сравнить с разговором по телефону и отправкой почтовых сообщений. При разговоре с кем-либо по телефону оба участника должны быть подключены одновременно — это синхронная коммуникация. В случае обмена электронной почтой отправитель не знает, когда его послание будет прочитано. Люди, использующие эту технологию, работают в автономном (отключенном) режиме.

Конечно, может случиться так, что почта не будет прочитана никогда, а просто проигнорирована. Такова природа отключенных коммуникаций. Чтобы избежать этой проблемы, можно запросить ответ или подтверждение факта прочтения письма. Если ответ не придет в течение определенного времени, возможно, придется как-то справляться с таким «исключением». Все это также возможно в Message Queuing.

Message Queuing, по сути, можно считать технологией для обмена электронными сообщениями между приложениями, а не людьми. Она обладает множеством функциональных возможностей, которые в других службах обмена сообщениями не доступны: гарантированием доставки, применением транзакций, получением подтверждений, экспресс-режимом, использующим память, и т.д. Message Queuing предлагает массу полезных средств для коммуникаций между приложениями.

С помощью Message Queuing можно отправлять, принимать и маршрутизировать сообщения в подключенной и отключенной (автономной) среде. На рисунке ниже показан очень простой способ использования сообщений. Отправитель посылает сообщения в очередь сообщений, а получатель принимает их из этой очереди:

Когда следует использовать Message Queuing

Одной из ситуаций, в которых удобно применять Message Queuing — это когда клиентское приложение часто отключается от сети (например, у коммивояжера, навещающего заказчиков на местах). Коммивояжер может вводить данные заказа непосредственно у заказчика. Приложение ставит сообщение о каждом заказе в очередь сообщений, находящуюся на клиентской системе. Как только коммивояжер возвращается в свой офис, заказ автоматически передается из очереди сообщений клиентской системы в очередь сообщений целевой системы, где и обрабатывается.

Помимо портативного компьютера, коммивояжер может использовать устройство Pocket Windows, где также доступно Message Queuing.

Технология Message Queuing может быть полезна и в подключенной среде. Представьте сайт электронной коммерции (показан на рисунке ниже), где в определенные периоды времени сервер полностью загружен обработкой заказов, например, в ранний вечер и в выходные, при этом по ночам нагрузка значительно уменьшается. Решение проблемы может состоять в приобретении более быстрого сервера или в добавлении дополнительных серверов к системе, чтобы они справлялись с пиковыми нагрузками.

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

Функциональные возможности Message Queuing

Технология Message Queuing является службой, которая поставляется как часть операционной системы Windows. Ниже перечислены ее основные функциональные возможности:

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

В экспресс-режиме сообщения могут пересылаться очень быстро. В экспресс-режиме сообщения просто сохраняются в памяти.

Для механизма восстановления сообщения могут отправляться с гарантированной доставкой. Такие сообщения сохраняются в файлах и доставляются даже в случае перезагрузки сервера.

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

В Message Queuing 3.0 поддерживается возможность отправки многоадресных (multicast) сообщений.

В Message Queuing 4.0 поддерживается возможность распознавания вредоносных сообщений. Для таких сообщений может быть определена специальная очередь.

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

В Message Queuing 5.0 поддерживаются более безопасные алгоритмы аутентификации, и может обрабатываться большее количество очередей. (В Message Queuing 4.0 при обработке нескольких тысяч очередей начинали возникать проблемы с производительностью.)

Из-за того, что Message Queuing является частью операционной системы, установить версию Message Queuing 5.0 в системе Windows XP или Windows Server 2003 не получится. Эта версия входит в состав ОС Windows Server 2008 R2 и Windows 7.

Продукты Message Queuing

Версия Message Queuing 5.0 поставляется в составе Windows 7 и Windows Server 2008 R2. В Windows 2000 входила версия Message Queuing 2.0, в которой не было поддержки ни протокола HTTP, ни многоадресных сообщений. Версия Message Queuing 3.0 поставлялась в составе Windows XP и Windows Server 2003, а версия Message Queuing 4.0 — в составе Windows Vista и Windows Server 2003.

При использовании ссылки Turn Windows Features on or off (Включение или отключение компонентов Windows), которая предлагается в Windows 7 в окне Configuring Programs and Features (Программы и компоненты), можно обнаружить отдельный раздел с опциями, касающимися Message Queuing:

В этом разделе доступны для выбора перечисленные ниже компоненты:

Microsoft Message Queue (MSMQ) Server Core

Основные компоненты сервера очереди сообщений (MSMQ), которые необходимы для получения базовой функциональности Message Queuing.

Active Directory Domain Services Integration

Интеграция MSMQ доменных служб Active Directory. Это средство позволяет записывать имена очередей сообщений в Active Directory. С помощью этой опции можно находить очереди в Active Directory и защищать их на основе пользователей и групп пользователей Windows.

MSMQ HTTP Support

Поддержка протокола HTTP MSMQ. Поддержка MSMQ HTTP позволяет отправлять и принимать сообщения, используя протокол HTTP.

Triggers

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

Multicast Support

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

MSMQ DCOM Proxy

С помощью DCOM-прокси система может подключаться к удаленному серверу, используя API-интерфейс DCOM.

После установки Message Queuing в системе должна быть обязательно запущена служба Message Queuing (показана на рисунке). Эта служба читает и записывает сообщения, а также взаимодействует с другими серверами Message Queuing для осуществления маршрутизации сообщений по сети:

Источник

How does the message queue work in Win32?

I read some stuff on Win32 and how the message loop works, and there’s something that is still unclear to me: What exactly is stored in the message queue? The integer value that corresponds to a message ( WM_COMMAND , WM_CREATE , etc) or a pointer to a MSG structure containing the message integer value and other stuff like wParam , lParam , etc?

3 Answers 3

To answer your question narrowly, each message in the queue stores, at the least,

  • a window handle to which the message is directed,
  • the message code, wParam and lParam, as you already correctly noted,
  • the time when the message was posted, that you retrieve with GetMessageTime() ,
  • for UI messages, the position of the cursor when the message was posted (see GetMessagePos() ).

Note that not all messages are actually stored in the queue. Messages that are sent with SendMessage() to a window from the thread that owns the window are never stored; instead, a receiver window’s message function is called directly. Messages sent from other threads are stored until processed, and the sending thread blocks until the message is replied to, either by exiting the window function or explicitly with a call to ReplyMessage() . The API function InSendMessage() helps figure out whether the windows function is processing a message sent from another thread.

Messages that you or the system post are stored in the queue, with some exceptions.

WM_TIMER messages are never actually stored; instead, GetMessage() constructs a timer message if there are no other messages in the queue and a timer has matured. This means that, first, the timer messages have the lowest dequeuing priority, and, second, that multiple messages from a short period timer would never overflow queue, even if GetMessage() is not called for a while. As a result, a single WM_TIMER message is sent for the given timer, even if the timer has elapsed multiple times since the last WM_TIMER message from that timer has been processed.

Similarly, WM_QUIT is also not stored, and rather only flagged. GetMessage() pretends to have retrieved the WM_QUIT after the queue has been exhausted, and this is the last message it retrieves.

Another example is the WM_PAINT message (hat tip to @cody-gray for reminding about this). This message is also simulated when any part of the window¹ is marked as «dirty» and needs repainting. This is also a low-priority message, made so that multiple invalidated regions in a window are repainted all at once when the queue becomes empty, to reduce responsiveness of the GUI and reduce flicker. You can force an immediate repaint by calling UpdateWindow() . This function acts like SendMessage() , in the sense that it does not return until the exposed part of the window is redrawn. This function does not send a WM_PAINT to the window if the invalid region of that window is empty, as an obvious optimization.

Probably, there are other exceptions and internal optimizations.

Messages posted with PostMessage() end up in the queue of a thread that owns the window to which the message is posted.

In what form the messages are stored internally, we do not know, and we do not care. Windows API abstracts that completely. The MSG structure is filled in memory you pass to GetMessage() or PeekMessage() . You do not need to know or to worry about the details of internal implementation beyond those documented in Windows SDK guides.

¹ I do not know how exactly WM_PAINT and WM_TIMER are prioritized relative to each other. I assume WM_PAINT has a lower priority, but I may be wrong.

Источник

3 шага, чтобы скачать и исправить ошибки Mqsvc.exe

Последнее обновление: 05/05/2020 [Время, требуемое для чтения: 3,5 мин.]

Разработка Microsoft Message Queue компанией Microsoft послужила толчком для создания последней версии файла mqsvc.exe. Он также известен как файл Message Queuing Service (расширение EXE), который классифицируется как файл Win32 EXE (Библиотека динамической компоновки).

Первый выпуск файла mqsvc.exe на платформе Windows XP состоялся 10/25/2001 для Windows XP. Согласно нашим сведениям, это единственная версия файла от компании Microsoft.

Ниже приведены подробные сведения, порядок устранения неполадок, возникших с файлом EXE, и бесплатные загрузки различных версий файла mqsvc.exe.

Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с mqsvc.exe и (или) Windows.

Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Обзор файла

Общие сведения ✻
Имя файла: mqsvc.exe
Расширение файла: расширение EXE
Описание: Message Queuing Service
Тип объектного файла: Dynamic link library
Файловая операционная система: Win32
Тип MIME: application/octet-stream
Пользовательский рейтинг популярности:
Сведения о разработчике и ПО
Разработчик ПО: Microsoft Corporation
Программа: Microsoft Message Queue
Авторское право: Copyright (C) Microsoft Corporation. 1981-2000
Сведения о файле
Набор символов: Unicode
Код языка: English (U.S.)
Флаги файлов: (none)
Маска флагов файлов: 0x003f
Точка входа: 0x1121
Размер кода: 1536
Информация о файле Описание
Размер файла: 4.5 kB
Дата и время изменения файла: 2008:04:14 12:00:00+00:00
Дата и время изменения индексного дескриптора файлов: 2017:11:05 07:07:15+00:00
Тип файла: Win32 EXE
Тип MIME: application/octet-stream
Тип компьютера: Intel 386 or later, and compatibles
Метка времени: 2008:04:13 18:39:54+00:00
Тип PE: PE32
Версия компоновщика: 7.10
Размер кода: 1536
Размер инициализированных данных: 2048
Размер неинициализированных данных: 0
Точка входа: 0x1121
Версия ОС: 5.1
Версия образа: 5.1
Версия подсистемы: 4.0
Подсистема: Windows command line
Номер версии файла: 5.1.0.1110
Номер версии продукта: 5.1.0.1110
Маска флагов файлов: 0x003f
Флаги файлов: (none)
Файловая ОС: Win32
Тип объектного файла: Dynamic link library
Подтип файла: 0
Код языка: English (U.S.)
Набор символов: Unicode
Наименование компании: Microsoft Corporation
Описание файла: Message Queuing Service
Версия файла: 5.01.1110
Авторское право: Copyright (C) Microsoft Corporation. 1981-2000
Оригинальное имя файла: MQSVC.EXE
Название продукта: Microsoft Message Queue
Версия продукта: 5.01.1110
Товарные знаки: Microsoft(R) is a registered trademark of Microsoft Corporation. Windows NT(TM) is a trademark of Microsoft Corporation

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

Что такое сообщения об ошибках mqsvc.exe?

mqsvc.exe — ошибки выполнения

Ошибки выполнения — это ошибки Windows, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла mqsvc.exe — либо при запуске приложения Windows, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Windows.

В большинстве случаев ошибки выполнения mqsvc.exe, возникающие во время работы программы, приводят к ненормальному завершению ее работы. Большинство сообщений об ошибках mqsvc.exe означают, что либо приложению Windows не удалось найти этот файл при запуске, либо файл поврежден, что приводит к преждевременному прерыванию процесса запуска. Как правило, Windows не сможет запускаться без разрешения этих ошибок.

К числу наиболее распространенных ошибок mqsvc.exe относятся:

  • mqsvc.exe — недопустимое изображение.
  • mqsvc.exe — ошибка приложения.
  • Не удается найти mqsvc.exe.
  • Не удается установить mqsvc.exe.
  • Не удается запустить mqsvc.exe. Класс не зарегистрирован.
  • Не удается запустить mqsvc.exe.
  • Не удалось правильно инициализировать mqsvc.exe.
  • Ошибка файла mqsvc.exe; файл должен быть закрыт. Приносим извинения за неудобства.
  • Файл mqsvc.exe не является допустимым приложением Win32.
  • Файл mqsvc.exe не выполняется.
  • Не удается найти mqsvc.exe.
  • Ошибка при запуске программы: mqsvc.exe.
  • Неправильный путь приложения: mqsvc.exe.
  • Файл mqsvc.exe отсутствует или поврежден.
  • Windows не удалось запустить — mqsvc.exe.

Не удается запустить программу из-за отсутствия mqsvc.exe на компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.

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

Поиск причины ошибки mqsvc.exe является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок EXE, влияющих на mqsvc.exe, происходят во время запуска, иногда ошибка выполнения возникает при использовании Microsoft Message Queue. Причиной этого может быть недостаточное качество программного кода со стороны Microsoft Corporation, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок mqsvc.exe могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Как исправить ошибки mqsvc.exe — 3-шаговое руководство (время выполнения:

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

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Восстановление системы» и нажмите ENTER.
  3. В результатах поиска найдите и нажмите «Восстановление системы»
  4. Введите пароль администратора (при необходимости).
  5. Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
  6. Восстановите компьютер к этому образу резервной копии.

Если на этапе 1 не удается устранить ошибку mqsvc.exe, перейдите к шагу 2 ниже.

Шаг 2. Запустите средство проверки системных файлов (System File Checker), чтобы восстановить поврежденный или отсутствующий файл mqsvc.exe.

Средство проверки системных файлов (System File Checker) — это утилита, входящая в состав каждой версии Windows, которая позволяет искать и восстанавливать поврежденные системные файлы. Воспользуйтесь средством SFC для исправления отсутствующих или поврежденных файлов mqsvc.exe (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите cmd, но НЕ НАЖИМАЙТЕ ENTER.
  3. Нажмите и удерживайте CTRL-Shift на клавиатуре, одновременно нажимая ENTER.
  4. Появится диалоговое окно запроса разрешения.
  5. В поле нажмите «ДА».
  6. Должен отображаться черный экран с мигающим курсором.
  7. На этом черном экране введите sfc /scannow и нажмите ENTER.
  8. Средство проверки системных файлов (System File Checker) начнет поиск неполадок, связанных с mqsvc.exe, а также других неполадок с системными файлами.
  9. Для завершения процесса следуйте инструкциям на экране.

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

Если на этапе 2 также не удается устранить ошибку mqsvc.exe, перейдите к шагу 3 ниже.

Шаг 3. Выполните обновление Windows.

Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках mqsvc.exe может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Обновить» и нажмите ENTER.
  3. В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
  4. Если обновления доступны для загрузки, нажмите «Установить обновления».
  5. После завершения обновления следует перезагрузить ПК.

Если Центр обновления Windows не смог устранить сообщение об ошибке mqsvc.exe, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл mqsvc.exe (внимание: для опытных пользователей)

Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла mqsvc.exe. Мы храним полную базу данных файлов mqsvc.exe со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Windows . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

  1. Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы mqsvc.exe».
  2. Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
  3. Копировать файл в соответствующий каталог вашей версии Windows:

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows XP.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Microsoft windows media video 9 vcm что это
  • Microsoft windows kernel power код события 41
  • Microsoft windows kernel eventtracing admin
  • Microsoft windows installer для windows 7 64 bit
  • Microsoft windows imaging component для windows xp