Проблема с data collection
-
Имеется сервер, назовем его megaserver
Для этого сервера создано следующее data collection:
Net.RemoteShareStatus(\\megaserver\price,MEGASERVER,price,BlaBlaBla)
Все работает отлично, но проходит чуть больше недели(точный интервал не скажу) и
вышеприведенное data collection приводится автоматически к следующему виду
Net.RemoteShareStatus(\megaserverprice,MEGASERVER,price,BlaBlaBla)
Меняю обратно на (\\megaserver\price,MEGASERVER,price,BlaBlaBla), поначалу полет нормальный, но
потом снова где-то через неделю data collection меняется на (\megaserverprice,MEGASERVER,price,BlaBlaBla).Пробовал заключать в двойные кавычки ("\\megaserver\price",MEGASERVER,price,BlaBlaBla) - не помогает.
netxms 1.0.11
nxagent 1.0.11
База данных (PostgreSQL 8.3) и сам netxms работают вместе на одном сервере (Win 2003 R2 Rus)
Кодировка в netxmsd.conf установлена в CP1251, кодировка БД WIN1251, т.е. кодировки совпадает.P.S. ситуация, когда кто-то посторонний вручную через консоль или напрямую через БД меняет data collection, исключается.
-
A v promezutke sluchajno ne proishodit restart servera monitoringa? I mozete posmotret', kak eto vigljadit v baze:
SELECT name FROM items WHERE item_id=<id problemnogo dci>
?
-
Спасибо за наводящий вопрос!
Действительно, в самой БД была запись вида Net.RemoteShareStatus(\megaserverprice,MEGASERVER,price,BlaBlaBla)Что интересно, в моем случае при создании любого data collection через NetXMS Console, где в записи будет содержатся \\, в БД заносится только \.
И правится это только вручную через БД. -
Очень странная ситуация. Выглядит так, что сервер перед записью в базу не заменяет \ на \\. Проверил на своей системе - все работает как надо, правда у меня postgreSQL 8.4.4. А вы могли бы запустить сервер с уровнем дебага 9, поменять какой-нибудь DCI с символами \, остановить сервер, и найти в логе соответствующий INSERT или UPDATE? Еще можно попробовать сделать UPDATE вручную, предварительно выставив
SET standard_conforming_strings TO off;
SET escape_string_warning TO off;для текущей сессии.
-
Огромное спасибо за помощь!
Проблема была в настройках PostgreSQL.
Помогла следующая запись в конфиге PostgreSQL - standard_conforming_strings = on (off - было по умолчанию).
В случае если этот параметр выставлен в on , строки будут обрабатываться в соответствии со стандартом SQL, т.е. символ "\" не будет иметь какого-либо специального значения.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login