Войти

Для чего нужны специальные очереди?

Специальные очереди (мульти-очереди) используются для ускорения взаимодействий в СМЭВ по отдельным видам сведений.
    
В обычном режиме у каждой ИС УВ есть две очереди сообщений в СМЭВ. В одну направляются ответы на запросы, во вторую - входящие запросы от других ИС УВ.
 
Для извлечения из очереди очередного ответа, ИС УВ направляет в СМЭВ запрос 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 и корневому элементу ВС:


Авторизуйтесь, чтобы оставить комментарий к статье