NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: enp on August 16, 2012, 02:54:56 PM

Title: Прямое редактирование БД
Post by: enp on August 16, 2012, 02:54:56 PM
Здравствуйте!

Насколько допустимо прямое изменение БД (например, создание ноды или хотя бы изменение комментария)? От чего зависит время, через которое в запущенных консолях появятся сделанные изменения, произойдет ли это автоматически?
Title: Re: Прямое редактирование БД
Post by: Victor Kirhenshtein on August 16, 2012, 05:24:56 PM
В подавляющем большинстве случаев прямое изменение БД работать не будет. Большая часть информации кэшируэтся, и сервер не рассчитывает на то, что информация изменяется в БД. В большинстве случаев изменения, сделанные напрямую, будут перезаписаны сервером. Если какие-то изменения требуются для интеграции с другими системами, то можно использовать API сервера.
Title: Re: Прямое редактирование БД
Post by: enp on August 17, 2012, 11:36:57 AM
Проблема в том, что API только для Java - и это несколько неудобно :(
Title: Re: Прямое редактирование БД
Post by: Victor Kirhenshtein on August 17, 2012, 11:41:31 AM
Ну, есть еще C API :) А что конкретно надо сделать? Возможно есть обходной путь без использования API...
Title: Re: Прямое редактирование БД
Post by: enp on August 17, 2012, 12:04:34 PM
Пока именно создание ноды и изменение комментария внешним перловым скриптом - и городить для этого Java-прослойку совсем не хочется, а с другой стороны связываться с perl XS с учетом худшей документированности C API тоже не очень хочется.
Title: Re: Прямое редактирование БД
Post by: Victor Kirhenshtein on August 17, 2012, 12:17:43 PM
Да, без API ноду не создать. Похоже что надо раширять набор интерфейсов к системе :) Я вижу несколько возможных путей - web services, клиент для командной строки, или расширение возможностей NXSL скриптов + возможность их запуска внешней командой.
Title: Re: Прямое редактирование БД
Post by: enp on August 17, 2012, 12:44:12 PM
Если б протокол обмена с сервером базировался на чем-то широко распространенном (JSON/XML-RPC? REST? Hessian/Burlap? Protobuf? Thrift?), то проблемы, наверное, не было бы.

А возможность дернуть NXSL-скрипт извне как из командной строки, так и по HTTP  - замечательная идея. Но в этом случае внутри NXSL-скриптов должен быть доступен аналог Java API. Я даже боюсь себе представить трудоемкость такой задачи. Пока научить бы NXSL с таблицами работать ...