...
Директиву to
из маршрута удалять не стоит: при необходимости «включения» достаточно будет закомментировать или удалить строку с stop
.
Входящая системная очередь
Задача
Гидра поддерживает механизм перевыполнения команд при записи сообщений определенного формата во входящую системную очередь (см. Запрос текущего состояния). Для записи этих сообщений в очередь удобно использовать ActiveMQ в качестве прокси, который поддерживает множество различных протоколов (STOMP, AMPQ, REST), вместо использования оракловых процедур
Решение
Настроить в AcitveMQ получение этих сообщений с отправкой в системную очередь:
Code Block | ||||
---|---|---|---|---|
| ||||
...
<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&durableSubscriptionName=HB"/>
</route>
</camelContext>
... |
Выдать права для пользователя AIS_PROVISIONING для записи сообщений в системную очередь:
Code Block | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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.