Специальные очереди (мульти-очереди) используются для ускорения взаимодействий в СМЭВ по отдельным видам сведений.
В обычном режиме у каждой ИС УВ есть две очереди сообщений в СМЭВ. В одну направляются ответы на запросы, во вторую - входящие запросы от других ИС УВ.
Для извлечения из очереди очередного ответа, ИС УВ направляет в СМЭВ запрос GetResponseRequest, в ответ на него СМЭВ присылает сообщение GetResponseResponse с ответом или пустое сообщение GetResponseResponse, если ответа нет в очереди.
Получив ответ ИС УВ направляет в СМЭВ подтверждение успешной обработки этого ответа (Ack), после чего СМЭВ удаляет ответ из очереди.
Для получения следующего ответа требуется повторная отправка в СМЭВ запроса GetResponseRequest
Аналогично происходит и выборка входящих запросов из очереди. Только вместо запроса GetResponseRequest в СМЭВ направляется запрос GetRequestRequest.
Содержимое очереди ИС УВ в СМЭВ не сортируется и не ранжируется. Разработчикам ИС УВ нельзя ориентироваться на какой-либо порядок получения ответов и входящих запросов.
Запросы GetResponeRequest и GetRequestRequest позволяют извлекать сообщения, связанные с определенными видами сведений.
Для этого необходимо передать в запросах содержимое элементов NamespaceURI (пространство имен вида сведений) и RootElementLocalName (наименование корневого элемента запроса или ответа).
При этом на стороне СМЭВ происходит поиск подходящих записей в очереди по вхождению указанных параметров в текст XML-сообщения, поэтому такие запросы обладают невысокой производительностью.
В некоторых случаях такая низкая скорость получения сообщений из очереди недопустима. Например, в случаях, когда ответ должен отобразиться в пользовательском интерфейсе за одну-две секунды.
Для решения этой проблемы в СМЭВ был создан механизм специальных очередей сообщений.
Запрос с параметрами NamespaceURI и RootElementLocalName к специальной очереди сообщений СМЭВ выполняется существенно быстрее.
Специальные очереди содержат индексированные теги для ускорения отбора записей.
Шаги добавления специальной очереди в ЛК УВ расписаны в статье Добавление специальной очереди.
При взаимодействии со СМЭВ через Адаптер требуется дополнительно настроить специальную очередь в интерфейсе администратора Адаптера.
Для настройки специальной очереди требуется выполнить следующие действия:
1. Выбрать интерфейсе настройки Адаптера пункт «Управление специальными очередями»:
2. На открывшейся форме перечня специальных очередей нажать кнопку «Добавить».
3. В карточке специальной очереди заполнить идентификатор вида сведений (его namespace) и указать корневой тег из схемы ВС.
Примечание: Для выбора namespace адаптер предлагает выпадающий список c ВС, настроенными в адаптере. Настроить ВС в адаптере можно только если хотя бы одно взаимодействие настроено в режиме «Встроенный интерфейс».
4. Проконтролировать наличие настроенной специальной очереди в перечне:
Запросы Адаптера от имени ИС по ВС с настроенной специальной очередью содержат критерий выбора сообщений по namespace и корневому элементу ВС:
В обычном режиме у каждой ИС УВ есть две очереди сообщений в СМЭВ. В одну направляются ответы на запросы, во вторую - входящие запросы от других ИС УВ.
Для извлечения из очереди очередного ответа, ИС УВ направляет в СМЭВ запрос GetResponseRequest, в ответ на него СМЭВ присылает сообщение GetResponseResponse с ответом или пустое сообщение GetResponseResponse, если ответа нет в очереди.
Получив ответ ИС УВ направляет в СМЭВ подтверждение успешной обработки этого ответа (Ack), после чего СМЭВ удаляет ответ из очереди.
Для получения следующего ответа требуется повторная отправка в СМЭВ запроса GetResponseRequest
Аналогично происходит и выборка входящих запросов из очереди. Только вместо запроса GetResponseRequest в СМЭВ направляется запрос GetRequestRequest.
Содержимое очереди ИС УВ в СМЭВ не сортируется и не ранжируется. Разработчикам ИС УВ нельзя ориентироваться на какой-либо порядок получения ответов и входящих запросов.
Запросы GetResponeRequest и GetRequestRequest позволяют извлекать сообщения, связанные с определенными видами сведений.
Для этого необходимо передать в запросах содержимое элементов NamespaceURI (пространство имен вида сведений) и RootElementLocalName (наименование корневого элемента запроса или ответа).
При этом на стороне СМЭВ происходит поиск подходящих записей в очереди по вхождению указанных параметров в текст XML-сообщения, поэтому такие запросы обладают невысокой производительностью.
В некоторых случаях такая низкая скорость получения сообщений из очереди недопустима. Например, в случаях, когда ответ должен отобразиться в пользовательском интерфейсе за одну-две секунды.
Для решения этой проблемы в СМЭВ был создан механизм специальных очередей сообщений.
Запрос с параметрами NamespaceURI и RootElementLocalName к специальной очереди сообщений СМЭВ выполняется существенно быстрее.
Специальные очереди содержат индексированные теги для ускорения отбора записей.
Для использования специальной очереди требуется настроить такую очередь в ЛК УВ.
Примечание: Если для взаимодействия со СМЭВ используется Адаптер, то в Адаптере СМЭВ также требуется настроить специальную очередь.
Для обращения к специальной очереди ИС должна отправить запрос GetRequestRequest или GetResponseResponse с параметрами NamespaceURI и RootElementLocalName.
Настройка специальной очереди в ЛК УВ
Шаги добавления специальной очереди в ЛК УВ расписаны в статье Добавление специальной очереди.
Настройка специальной очереди в Адаптере СМЭВ
При взаимодействии со СМЭВ через Адаптер требуется дополнительно настроить специальную очередь в интерфейсе администратора Адаптера.
Для настройки специальной очереди требуется выполнить следующие действия:
1. Выбрать интерфейсе настройки Адаптера пункт «Управление специальными очередями»:
2. На открывшейся форме перечня специальных очередей нажать кнопку «Добавить».
3. В карточке специальной очереди заполнить идентификатор вида сведений (его namespace) и указать корневой тег из схемы ВС.
Примечание: Для выбора namespace адаптер предлагает выпадающий список c ВС, настроенными в адаптере. Настроить ВС в адаптере можно только если хотя бы одно взаимодействие настроено в режиме «Встроенный интерфейс».
4. Проконтролировать наличие настроенной специальной очереди в перечне:
Запросы Адаптера от имени ИС по ВС с настроенной специальной очередью содержат критерий выбора сообщений по namespace и корневому элементу ВС: