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

Для запроса текущего состояния необходимо отправить в системную очередь AIS_NET.HB_SYS_IN_* специальным образом сформированное сообщение, формат которого зависит от типа запроса и описан ниже. Сообщения из данной очереди извлекаются и обрабатываются системным заданием «Обработка входящей системной очереди».

Наименование очереди для конкретной фирмы можно получить c помощью запроса:

SELECT SS_QUEUES_PKG_S.GET_QUEUE_FOR_FIRM(
         num_N_FIRM_ID       => :num_N_FIRM_ID,
         num_N_QUEUE_TYPE_ID => SYS_CONTEXT('CONST', 'QUEUE_SystemIn'))
FROM   DUAL;

Все действия при обработке запроса происходят в рамках фирмы, идентификатор которой указан в элементе system_message.n_firm_id самого запроса.

Формирование команд применения конфигураций

Если необходимо, например, восстановить состояние программного файервола, ограничивающего доступ абонентов в сеть, необходимо отправить в очередь сообщение следующего вида:

<system_message>
    <vc_message_type>ProvisioningCurrentStateRequest</vc_message_type>
    <n_firm_id>100</n_firm_id>
    <content>
        <vc_key>Provider-Equipment-Attribute-Name</vc_key>
        <vc_value>Attribute-Value</vc_value>
        <n_value />
        <d_value />
    </content>
</system_message>

Элемент system_message.content данного типа сообщений состоит включается в себя пару «Атрибут — Значение». Система формирует и отправляет на выполнение команды с типом «Подключение» по всем действующим конфигурациям, в которых участвуют профили операторского оборудования, содержащие указанные в сообщении атрибуты и значения.

Отправка профилей и привязок оборудования агенту HARD

Если необходимо восстановить или заполнить заново кэш агента HARD, необходимо отправить в очередь сообщение следующего вида:

<system_message>
    <vc_message_type>ProvisioningSendProfilesAndBinds</vc_message_type>
    <n_firm_id>100</n_firm_id>
</system_message>

Такую же отправку можно вызвать непосредственно из основной БД:

BEGIN
  RP_PROFILES_PKG.SEND_ALL_PROFILES(
    num_N_FIRM_ID   => 100);
  COMMIT;

  EP_EQUIPMENT_PKG.ENQUEUE_BINDS_BY_FIRM(
    num_N_FIRM_ID   => 100,
    b_CommitBatches => CONST.b_TRUE);
  COMMIT;
END;
/


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