Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

Proces D2000 DBManager bol testovaný a mal by fungovať s týmito databázami:

  • Oracle Database (verzie 9i, 10g, 11g, 12c, 18c, 19c)
    Poznámka: odporúčame aplikovať dostupné patche na Oracle klienta aj Oracle ODBC ovládač - staršie verzie ovládača a Oracle klienta trpeli rôznymi chybami (presakovanie pamäte, nestabilita a pod.)
  • Microsoft SQL Server (verzie 2000 a vyyššie)
    Poznámka: v konkrétnej situácii dokázal UPDATE trigger ovplyvniť akciu DB(S)_UPDATE tak, že zlyhala a to kvôli tomu, že ODBC funkcia SQLRowCount vrátila 0 (napriek tomu, že k aktualizácii dát došlo). Tento prípad je možné diagnostikovať po zapnutí ladiacej kategórie RTM.DBMANAGER.UPDATE.MSSQL.0 (ak je kategória aktívna, ignoruje sa, že SQLRowCount vráti 0 zmenených riadkov).
  • - 2005)Microsoft Access (verzie 2000 - XP)
  • PostgreSQL (verzie 9.x a vyššie). Dbmanager podporuje štartovací parameter /NQ na lepšiu podporu práce s PostgreSQL (citlivosť na malé/veľké písmená v názvoch tabuliek a stĺpcoch).
    Poznámka 1: v konfigurácii ODBC ovládačov pre PostgreSQL odporúčame nastaviť parameter "Level of rollback on errors" na hodnotu Statement (prípadne Transaction), nie na Nop. Nastavenie . Nastavenie Nop spôsobí, že databázové spojenie je po ľubovolnej chybe nepoužiteľné. Nastavenie Transaction spôsobí neštandardné chovanie niektorých akcií (napr. akcia DB(S)_INSUPD vkladajúca niekoľko riadkov nevloží nič, ak pri vkladaní niektorého riadku dôjde k chybe).
    Poznámka 2: v konfigurácii ODBC ovládačov pre PostgreSQL odporúčame nastaviť parameter "Max Varchar" na dostatočne veľkú hodnotu (väčšiu ako maximálna veľkosť VARCHAR stĺpcov), v opačnom prípade môžu byť pri stránkovom prístupe dáta orezané. Podobne odporúčame nastaviť parameter "Max LongVarchar" na dostatočne veľkú hodnotu (väčšiu ako maximálna používaná veľkosť VARCHAR dát v stĺpcoch, ktorých veľkosť nie je explicitne špecifikovaná).
    Poznámka 3: v konfigurácii ODBC ovládačov pre PostgreSQL odporúčame ponechať zaškrtnutý parameter "bytea as LO" kvôli korektnej práci s BLOBmi (DB_READ_BLOB, DB_UPDATE_BLOB).
  • Sybase Anywhere (verzie 6 - 12)
  • Informix (verzia 4.10.00.16554, nutné zapnúť na záložke Advanced voľbu Scrollable Cursors a na záložke Environment nastaviť Cursor Behavior na hodnotu "1 - Preserve")
  • Firebird (verzia 2.0.4, natívny ODBC ovládač alebo ovládač od GM - Software)
    Poznámka 1: Natívny ODBC ovládač (verzia 2.0.0.148) neumožňuje editovanie v stránkovom prístupe (browser v HI, akcie PG*). Navonok editovanie funguje, ale do databázy sa zmeny nezapíšu.
    Poznámka 2: ODBC ovládač firmy GM - Software umožňuje pridávanie dát v stránkovom prístupe a editáciu, ale zobrazuje iba prvý riadok v tabuľke.

Poznámka: od verzie D2000 v 11.2.57, patche 14.1.2018 a novšie je implementovaný štartovací parameter /DBS na podporu práce s dlhými reťazcami (>4000 znakov).

Poznámka: od verzie D2000 v 22.0.74 existuje v procese D2000 DBManager ochrana voči SQL injection útokom. Ochrana generuje chybový kód "Malevolent SQL command detected" (chyba č. 666). Vypnutie ochrany je možné štartovacím parameterom /E-DBG.DBMANAGER.SANITIZE resp. za behu pomocou D2000 System Console vypnutím kategórie DBG.DBMANAGER.SANITIZE.

Od verzie D2000 v. 7.0 existuje okrem tradičnej verzie procesu D2000 DBManager aj variant, pracujúci iba s databázami Oracle (dbmanager_ora.exe). Tento variant nepoužíva ODBC rozhranie, ale pristupuje k databáze cez OCI (Oracle Client Interface) a je dostupný nielen na platforme Windows ale aj pre OpenVMS, HP-UX a Linux. Pri použití dbmanager_ora.exe konfiguračný dialóg objektu typu Databáza v položke DSN (Data Source Name) v skutočnosti obsahuje TNS (Transparent Network Substrate, viď popis súboru tnsnames.ora v dokumentácii Oracle).

...

  • Dostupnosť aj pre platformy OpenVMS a HP-UX.
  • Možnosť stránkového prístupu k indexovo organizovaným tabuľkám databázy Oracle (IOT-index organized tables). ODBC ovládače Oracle majú chybu (testované pre verzie 9.02.00.00 až 9.02.00.06), ktorá spôsobuje pád aplikácie pri stránkovom prístupe k IOT a preto ODBC verzia procesu D2000 DBManager neumožní stránkový prístup, ak zistí, že tabuľka je IOT.
  • Menšie strácanie systémových prostriedkov: ODBC ovládače pre Oracle (testované pre verzie 9.02.00.00 až 9.02.00.06) pri cykle connect/disconnect neuvoľnia 4 handles, OCI rozhranie neuvoľní iba 1 :-).. V každom prípade odporúčame nastaviť dostatočne veľké množstvo predpripravených spojení na objekte typu Databáza, aby nedochádzalo k častému zatváraniu a otváraniu spojení.
  • Možnosť zapnutia ladiacich výpisov o stave Oracle clustera (viď parameter /DBCY).

Rôzne runtime kategórie procesu dbmanager.exe:

  • RTM.DBMANAGER.UPSERT - Na platforme PostgreSQL sa použije UPSERT (INSERT ... ON CONFLICT (...) DO UPDATE ) pri vkladaní dát akciou DB(S)_INSUPD. Túto syntax podporuje PostgreSQL od verzie 9.5.
  • RTM.DBMANAGER.UPDATE.MSSQL.0 – Na platforme Microsoft SQL Server pri aktualizácii údajov pomocou akcií DB(S)_UPDATEDB(S)_INSUPD je ignorovaných chybne vrátených 0 zmenených riadkov (v dôsledku UPDATE triggra na tabuľke).

Rôzne runtime kategórie procesu dbmanager_ora.exe:

  • RTM.DBMANAGER.STRICT_CHECK - Ak je v tabuľke stĺpec textového typu a v D2000 je tento stĺpec numerický, môže pri načítaní dôjsť k chybe konverzie na číslo (ORA_01722: invalid number). Ak je aktívna táto runtime kategória vykonáva sa prísna kontrola typov stĺpcov a pokiaľ je zistený takýto stĺpec, DbManager odmietne s tabuľkou pracovať (a log bude obsahovať chybové hlášky).
  • RTM.DBMANAGER.NO_COUNT_OVER - Pri stránkovom prístupe (akcia PG_CONNECT a browser) sa štandardne zisťuje počet záznamov pomocou načítania v rámci SQL dotazu ( COUNT(*) OVER () ). V niektorých prípadoch môže byť toto načítanie pomalšie ako spustenie explicitného dotazu (SELECT COUNT(*) FROM <table>). Konkrétny prípad sme zaznamenali na Oracle 19.21 a tabuľke s viac ako 2.6 milióna riadkov (pri veľkosti SGA 12GB). Ak je aktívna táto runtime kategória, zisťovanie počtu riadkov bude prebiehať pomocou explicitného dotazu pred samotným načítaním dát.


Info
titleBlog

O procese DbManager si môžete prečítať nasledujúce blogy:



Info
titleSúvisiace stránky:

Procesy systému

...