Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Директиву to из маршрута удалять не стоит: при необходимости «включения» достаточно будет закомментировать или удалить строку с stop.

Входящая системная очередь

Задача

Гидра поддерживает механизм перевыполнения команд при записи сообщений определенного формата во входящую системную очередь (см. Запрос текущего состояния). Для записи этих сообщений в очередь удобно использовать ActiveMQ в качестве прокси, который поддерживает множество различных протоколов (STOMP, AMPQ, REST), вместо использования оракловых процедур

Решение

Настроить в AcitveMQ получение этих сообщений с отправкой в системную очередь:

Code Block
languagexml
titleКонфигурация маршрутов в ActiveMQ: /etc/hydra/activemq/instances-enabled/provisioning/activemq.xml
...
    <camelContext xmlns="http://camel.apache.org/schema/spring" id="camel">
        <route>
            <from uri="activemq:queue:hydra_input_messages_1"/>
            <to uri="oracleTopic:topic:AIS_NET.HB_SYS_IN_1?clientId=ActiveMQ&amp;durableSubscriptionName=HB"/>
        </route>
    </camelContext>
...

Выдать права для пользователя AIS_PROVISIONING для записи сообщений в системную очередь:

Code Block
languagesql
titlesqplus
BEGIN
    DBMS_AQADM.GRANT_QUEUE_PRIVILEGE(
     privilege     =>     'enqueue',
     queue_name    =>     'AIS_NET.HB_SYS_IN_1',
     grantee       =>     'AIS_PROVISIONING');
END;

 

Теперь можно отправлять сообщения в ActiveMQ. Например, можно использовать для этой цели REST API:

Code Block
languagebash
titleREST API
echo -n "body=<system_message>
    <vc_message_type>ProvisioningCurrentStateRequest</vc_message_type>
    <n_firm_id>100</n_firm_id>
    <content>
        <vc_key>Shaper-IP</vc_key>
        <vc_value>127.0.0.1</vc_value>
        <n_value />
        <d_value />
    </content>
</system_message>" | curl -u admin:admin --data-binary '@-' "http://192.168.1.1:8161/api/message/hydra_input_messages_1?type=queue"

Где Shaper-IP - название атрибута шаблона операторского профиля (IP-адрес шейпера), 127.0.0.1 - его значение, 192.168.1.1 - IP-адрес ActiveMQ.