Unknown database syntax

Started by sova12345, January 29, 2008, 10:17:25 PM

Previous topic - Next topic

sova12345

Пытаюсь поставить NetXMS 0.2.19(из портов) на FreeBSD 6.2-10 с базой на другом сервере (MSSQL 2000 Server). Настроил unixODBC/FreeTDS, проверил - база через ODBC доступна.

Настраиваю netxmsd.conf
------------------
DBDriver = /usr/local/lib/libnxddr_odbc.so
DBServer = ИМЯ_ИСТОЧНИКА
DBLogin = netxms
DBPassword = пароль
------------------

Инициализирую базу:
-------------------
mx# /usr/local/bin/nxdbmgr -c /usr/local/etc/netxmsd.conf init /usr/local/share/netxms/sql/dbinit_mssql.sql
NetXMS Database Manager Version 0.2.19

Configuration file OK
Initializing database...
Database initialized successfully
-------------------
Таблицы в базе создаются, в таблице config параметр DBSyntax=MSSQL

Вроде все нормально, но когда пытаюсь запустить сервер:
-------------------
mx# /usr/local/bin/netxmsd --config /usr/local/etc/netxmsd.conf --check-db
NetXMS Database Manager Version 0.2.19

Configuration file OK
Unknown database syntax
-------------------

В чем дело? Подскажите, пожалуйста, что я делаю не так.

Victor Kirhenshtein

Dejstvija pravil'nie, problema gde-to v softe.

nxdbmgr v soobschenii ob oshibke pishet znachenie DBSyntax kotoroe on prochital iz bazi, t.e. v nashem sluchae on poluchil pustuju stroku v otvet na zapros

SELECT var_value FROM config WHERE var_name='DBSyntax'


Vozmoznie problemi sledujuschie:
1. Kakoj-to bug v nashem ODBC draivere
2. Bug vo FreeTDS draivere - mi ispol'zuem UNICODE versii ODBC funkcij i SQL_C_WCHAR v SQLGetData - podderzivaet li ih FreeTDS?

Poprobuju pokopat' glubze...

Victor Kirhenshtein

Po rezul'tatam poiska v Internete, pohoze chto problema imenno v tom, chto FreeTDS draiver ne podderzivaet peredachu dannih klientu v UCS-2 (t.e. SQL_C_WCHAR binding). Nekotorie ssilki:

http://osdir.com/ml/db.tds.freetds/2004-05/msg00114.html
http://lists.ibiblio.org/pipermail/freetds/2006q2/020068.html

Edinstvennij variant reshenija problemi kotorij mne poka-chto prihodit v golovu eto sdelat' otdel'nuju versiju NetXMS ODBC draivera kotorij budet ispol'zovat' single-byte versii vseh funkcij.

sodalist

Hello,

If I understand correctly currently it is not possible to run architecture
netxmsd (linux) -> mssql (windows) with netxms version higher than 0.2.19...
Somehow I can confirm this trying to use:

-   netxms-0.2.22
-   unixODBC-2.2.12
-   freetds-0.82

symptoms is:
- DEBUG: Successful sync query: "SELECT var_value FROM config WHERE var_name='DBFormatVersion'" [0 ms]
- Your database has format version 0, but server is compiled for version 83

I will check forum next time first :(

Btw:
-   Is fixing/suporting this planned
-   How much work does fix require (some, a lot)
-   Did someone try:  linux odbc – > linux jdbc -> mssql ?

Ales

Victor Kirhenshtein

Hi!

Since 0.2.22, you can set NetXMS ODBC database driver not to use unicode by adding

DBDrvParams = unicode=no

to your netxmsd.conf file. I have tested NetXMS server running on Ubuntu Linux with MS SQL 2005 via UNIX ODBC, and it works fine.


Best regards,
Victor