DODS 7.3-2 release notes

DODS 7.3-2 release notes

Together Teamlösungen EDV-Dienstleistungen GmbH

Elmargasse 2-4 A-1190 Vienna Austria Phone: +43 (0) 5 04 04 - 122 Fax: +43 (0) 5 04 04 - 11 122 E-Mail: Web:

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written permission of the Together Teamlösungen EDV-Dienstleistungen GmbH.


Table of Contents

1. System requirements
2. What's new in DODS 7.3-2
3. What's new in DODS 7.3-1
4. What's new in DODS 7.3-beta2
5. What's new in DODS 7.3-beta1
6. What's new in DODS 7.2-1
7. What's new in DODS 7.1-4
8. What's new in DODS 7.1-3
9. What's new in DODS 7.1-2
10. What's new in DODS 7.1-1
11. What's new in DODS 7.0-6
12. What's new in DODS 7.0-5
13. What's new in DODS 7.0-4
14. What's new in DODS 7.0-3
15. What's new in DODS 7.0-2
16. What's new in DODS 7.0-1
17. What's new in DODS 7.0 beta1
18. What's new in DODS 6.7-1
19. What's new in DODS 6.6-2
20. What's new in DODS 6.6-1
21. What's new in DODS 6.5-1
22. What's new in DODS 6.4-1
23. What's new in DODS 6.3-1
24. What's new in DODS 6.2-2
25. What's new in DODS 6.2-1
26. What's new in DODS 6.1-2
27. What's new in DODS 6.1-1
28. What's new in DODS 6.0-2
29. What's new in DODS 6.0
30. What's new in DODS 5.1-15
31. What's new in DODS 5.1-14
32. What's new in DODS 5.1-13.3
33. What's new in DODS 5.1-13
34. What's new in DODS 5.1-12
35. What's new in DODS 5.1-11
36. What's new in DODS 5.1-10
37. What's new in DODS 5.1-9
38. What's new in DODS 5.1-7
39. What's new in DODS 5.1-6
40. What's new in DODS 5.1-5
41. What's new in previous releases.
Core improvements
Application configuration parameters and DOML attributes
Other improvements
42. Installation, platform, and system information
Platform support
43. Documentation

Chapter 1. System requirements

The minimum recommended system configuration is:

  • 128 MB RAM

  • 200 MHz processor or better

  • 50 MB disk space (see note below)

  • Java Development Kit (JDK) 1.4.x

    In runtime, DODS works also with jdk 1.3.x.

  • JDBC-compliant SQL database for database access

Note that the disk space specified above reflects the minimum system requirements to install and run the DODS example applications. A minimum installation consists of:

  • JDK 1.4.x (approximately 70 MB)

  • DODS 7.0 (approximately 30 MB)

Chapter 2. What's new in DODS 7.3-2

This chapter lists the new or updated features associated with DODS version 7.3-2.

  • Additional cache handling after failure to update

  • Fixed problem with maxRows value in methods _refreshCache and _enableCache

  • Enhydra Application Framework jars 7.3-2 included.

Chapter 3. What's new in DODS 7.3-1

This chapter lists the new or updated features associated with DODS version 7.3-1.

  • Fixed Wildcard settings in OracleConf.xml.

  • Added new configuration parameters: cursorless and defaultMaxRows

Chapter 4. What's new in DODS 7.3-beta2

This chapter lists the new or updated features associated with DODS version 7.3-beta2.

  • Several bug-fixes and improvements in cache implementation.

Chapter 5. What's new in DODS 7.3-beta1

This chapter lists the new or updated features associated with DODS version 7.3-beta1.

  • Build scripts reintroduced into community.

  • The transaction handling fixed in generated layer, thanks to João Paulo Ribeiro. The solution avoids possible connection leak.

  • Initial implementation of cache persistence functionality.

  • Enhydra Application Framework jars 7.3-beta1 included.

Chapter 6. What's new in DODS 7.2-1

This chapter lists the new or updated features associated with DODS version 7.2-1.

  • DODS MBeans are moved from EAF to DODS. DatabaseManager DODS registration introduced on Table MBean registration. added methods registerMBeans(ClassLoader clsLoader) and unregisterMBeans()

  • Several improvements and bug-fixes:

    -added new parameter for SortingDBTransaction: AutoWriteTables

    -bug fix in - close() method now does not annul hashtables

    -bug fix in xapool/ - when unbinding data sources during stop method execution the data source name without "java:comp/datasource/" prefix was used

  • Enhydra Application Framework jars 7.2-1 included.

Chapter 7. What's new in DODS 7.1-4

This chapter lists the new or updated features associated with DODS version 7.1-4.

  • Fixed cache initialization logic.

  • Batch file make.bat improved to accept multiple targets.

  • Enhydra Application Framework jars 7.1-4 included.

Chapter 8. What's new in DODS 7.1-3

This chapter lists the new or updated features associated with DODS version 7.1-3.

  • JTAObjectIdAllocator/JTAOIdAllocatorConnection is fixed.

    Now it does not demarcate transaction by the usage of TransactionManager but it auto-commits connection. This was necessary because the bug in previous implementation which appeared (when using allocator from several JVMs) when Id allocation failed for the first time, transaction was rolled back and second time exception was thrown during commit/rollback because there was no transaction.

  • External tools are updated with new version:

    - Apache Ant upgraded to version 1.7.0

    - hsqldb.jar upgraded to version 1.8.0

    - log4j.jar upgraded to version 1.12.13

    - FOP upgraded to version 0.93

  • Thanks to João Paulo Ribeiro QueryBuilder is fixed.

  • Some classes are optimized.Now they don't use dubious methods which waste memory.

Chapter 9. What's new in DODS 7.1-2

This chapter lists the new or updated features associated with DODS version 7.1-2.

  • Fixed asynchronous cache loading.

Chapter 10. What's new in DODS 7.1-1

This chapter lists the new or updated features associated with DODS version 7.1-1.

  • Thanks to Juan Pablo Rojas Jiménez LocalContextFactory is improved to support clean-up

  • Several improvements and bug-fixes:

    Multibase section of templates had couple of bugs that were introduced with cache changes.

    Cache sub-system improvements.

    DataSourceFactory has clear method to support cleaning up from container.

  • Two new transaction factories introduced: both reduce unnecessary locks of the main cache wrapper class.

Chapter 11. What's new in DODS 7.0-6

This chapter lists the new or updated features associated with DODS.

  • Several cache bugs fixed:

    Values in cache are now updated only when changed in database.

    Cache entries affected by mass update operations are reread to insure correctness.

  • JOTM's DataSource factory patched to read addtional parameters.

  • Documentation re-styling.

Chapter 12. What's new in DODS 7.0-5

This chapter lists the new or updated features associated with DODS.

  • XML column type support

    For vendors that support XML type columns SQL will be generated.

  • Database Manager API has gone to EAF/Together Application Framework.

  • Statistics and Include for Index extended to support DB2 and Oracle.

  • Added new parameter NextColumnType- type of column which contains next available value for "oid"

Chapter 13. What's new in DODS 7.0-4

This chapter lists the new or updated features associated with DODS.

- Adding support for STATISTICS create statements depending on parameter in dbVendor conf file: EnableCreateStatistics (for Microsoft SQL Server 2005).

Added support for statistics element in doml for create statistics statements

- Added support for includeIndexColumn in index as index extension. Adding support for INCLUDE in CREATE INDEX statement depending on parameter in dbVendor conf file: IncludeIndexColumns

Chapter 14. What's new in DODS 7.0-3

This chapter lists the new or updated features associated with DODS.

- Added <UseTopSyntax> tag in <dbVendorConf>.xml file. If set to true, DODS generates "TOP" keyword in SQL statement with value defined by maxDBrows attribute of Query object. With "TOP" keyword is defined maximum numbers of rows that can be retrieved from database (patch for Microsoft SQL Server 2005).

- Added patches in query cache mechanism for queries that contain security constraints and use database limit. Query results that had execly the same number of results as databaseLimit were retrieved from the database instead from the cache. Now, they are retrieved from the cache.

- Added logs for synchronous cache initialization.

- Patches to prevent exhausting connection pool, thanks to Joao Paulo Ribeiro.

- Applied patches for DB vendor-independant read/write of BLOBs in OracleDriverDependences, thanks to Monique Maker.

Chapter 15. What's new in DODS 7.0-2

This chapter lists the new or updated features associated with DODS .

- Added new parameters for cache initialitzation:

  • synchLoadRowCountLimit - max number of rows in the table for which the synchronous cache load is performed if defined by configuration. If the number of rows is greater, the table's cache will be loaded asynchronous and this number will be taken for the asynchLoadPriority. The default value is 0 and means that asynch cache load is not performed if configuration parameters for asynch cache load are not defined.

  • maxExecuteTimeCacheInit - max time for which the query is not printed in application's log file durung the cache initialization. If the time is greater, query (SQL statement, execution time and maxExecutionTime) is printed. Value 0 means that nothing is printed.

  • queryTimeoutCacheInit - max number of seconds for which the query for cache initialization should be executed. If the limit is exceeded, an exception is thrown. Value 0 means that there is no limit.

  • queryTimeLimitCacheInit - max number of milliseconds for which the query for cache initialization should be executed and the resulset read from ResultSet. If the limit is exceeded, an Exception is thrown. Value 0 means that there is no limit.

- Added new parameter simpleCacheRowCountLimit - max number of rows in the table for which simple cache is still used. If the table has more rows than defined by this parameter, complex cache is used for simple queries. The default value is 0 (simple cache is used for all simple queries).

- Added new method in the com.lutris.appserver.server.sql.StandardDatabaseManager class:

public void asynchInitCaches(int threadNum)
for postponed cache initialization.

- Added patches in query cache mechanism for queries with database limit. Query results that contained less results than databaseLimit were retrieved from the database instead from the cache. Now, they are retrieved from the cache.

- Apache Ant upgraded to version 1.6.5, consequently some scripts are updated too.

- JTA example switched to use LocalContextFactory.

Chapter 16. What's new in DODS 7.0-1

This chapter lists the new or updated features associated with DODS .

- Included TAF 7.0 jars, instead of Enhydra 5 utilities. Configuration changed accordingly.

- Connection's reset method fixed by introducing new parameter "RollbackOnReset", thanks to João Paulo Ribeiro.

- Added new cache implementation: Complete cache. This cache extends HashMap and is unbounded (max cache size is negative number). Full is now special case of complete caching: this is a complete cache, for which is the entire table queried and cached when the application starts (initial condition is "*").

- Fixed several minor generator, javadoc and typing issues.

Chapter 17. What's new in DODS 7.0 beta1

This chapter lists the new or updated features associated with DODS .

- New ExtendedTransaction - created as an attempt to reduce deadlocks happening. It honors order in tables modifications.

- New implementation of JTA in DODS - new transaction factory creates transactions that implement javax.transaction.Synchronization interface and also obey TransactionManager.

- Transaction encapsulated inside UserTransaction (JTA scenario) can be either ExtendedTransaction, or StandardTransaction.

- Several bug-fixes, changed CachedDBTransaction interface to support new features in extended transaction, switch back to early ObjectId allocation, while Identity stays lazy.

- ConnectionAllocators (both standard and datasource) fix, thanks to João Paulo Ribeiro.

- New method in generated DO classes to explicitly reload data.

Chapter 18. What's new in DODS 6.7-1

This chapter lists the new or updated features associated with DODS 6.7-1.

- Added asynchronous cache initialization: now, caches can be loaded while application is running.

- Added new parameters for asynchronous cache initialization: asynchLoadThreadNum (number of threads used for asynchronous cache load ) and asynchLoadPriority (order of asynchronous cache load for table every table).

- JtaDiscRack - This is a demonstration application for querying, inserting, deleting and updating a list Persons and their discs in a database. It uses enhydra DODS and it's newest XATransaction features. The default database is HSQL.

Chapter 19. What's new in DODS 6.6-2

This chapter lists the new or updated features associated with DODS 6.6-2.

- Bug fix in "" method: fixed comparison of ObjectId vs. CoreDataStruct.

Chapter 20. What's new in DODS 6.6-1

This chapter lists the new or updated features associated with DODS 6.6-1.

- jTDS driver (MS SQL Server 2000) version 1.2 is included in DODS release.

- Sequoia 2.5 jdbc driver is included in DODS release.

- JOTM 2.0.10 integrated in this DODS release.

- Added support for Microsoft JDBC driver for SQL server 2005.

- DODS generator also creates file with stored procedures and database functions which return next available oid. Currently supported for MSQL, Oracle and PostgreSQL.

- Added support for "lazy oid allocation" feature in dods.

- Added support for "oid-per-table" feature in dods.

- Added support for "identity columns" feature in dods.

- Added "ConnectionAllocateCheckSql" parameter, used to validate connections from connection pool, just before returning them.

- Added patch for data source "DisableConnectionPool" parameter.

- Added "UsePrefixWithUpdate" parameter,tell DODS to use full column name ( with table name prefix ) or just column name, during QueryBuilder.addUpdateColumn(RDBColumn column, Object value) method call.

- Added support for jTDS driver (MS SQL Server 2000)

- Added PreparedStatement Cache for all PreparedStatements (including Select/Query).

- Patch for oracle problem with "to many open cursors".

- Added driver specific "PrepareStatementCacheLatency" parameter to patch problem with PreparedStatementCache and msjdbc driver.

- Documentation update, added "ConnectionAllocateCheckSql", "UsePrefixWithUpdate", "AllocationScope", "DriverDependenciesClass" and "ObjectIdAllocationSource" parameters description.

- Documentation update, added chapters "Using database generated identity columns in DODS" and "Using OID per Table feature in DODS".

Chapter 21. What's new in DODS 6.5-1

This chapter lists the new or updated features associated with DODS 6.5-1.

- Added support for DataSources in standalone DODS applications (without EAF).

- Added patch for data source "DisableConnectionPool" parameter.

- Solved problem with sinchronization in QueryCacheImpl class.

- Added driver fully qualified class name for Oracle in dodsConf.xml

- Documentation updated.

Chapter 22. What's new in DODS 6.4-1

This chapter lists the new or updated features associated with DODS 6.4-1.

- Added new "PrimaryLogicalDatabase" parameter to tell DODS to use one objectId table to establish unique objectId(OID) across all logical databases (in multibase application).

- Added new "DODSCacheFactory" parameter to support multiple data cache mechanism implementation.

- Added new implementation of DODSCacheFactory, a DODSLinkedHashCacheFactory implementation.

- Added fix for Oracle blob update.

- Added SimpleConnectionAllocator and SimpleDataSourceConnectionAllocator (old implementation of StandardConnectionAllocator - in versions prior of 6.3.1).

- Added " equals()" patch to XATransaction and XAUserTransaction in DODS/JTA implementation.

- Added UserTransactionTimeout parameter patch to DODS/JTA implementation.

- Added new section "Using DODS with javax.sql.DataSource" to "Database Configurations" chapter in InsideDODS manual.

Chapter 23. What's new in DODS 6.3-1

This chapter lists the new or updated features associated with DODS 6.3-1.

- Java 5 compatibility.

- New StandardConnectionAllocator and DataSourceConnectionAllocator implementation.

- Changed commit for making MultiJoin query cache invisible/visible

- New JTA API implementation (Requires JTA Transaction Manager to work).

- Realigned synchronization monitors in cache implementation classes.

- Fix for configuration file initialisation.

- Fix for ClassCastException in QueryBuilder.

- Fix for PostgreSQL problem with Boolean SQL types.

- Fix in DODS SQL Generator 'database generateSecure="true" generateInsecure="false"' problem.

- Fix for connection idle timeout.

- Fix for to long stack trace in case of QueryTimeLimit exception.

- Fix for configuration file initialisation.

Chapter 24. What's new in DODS 6.2-2

This chapter lists the new or updated features associated with DODS 6.2-2.

- Support for JTA Transactions, added new Module "XATransaction" with JTA API implementation (Requires JTA Transaction Manager to work).

- Fix in DODS SQL Generator for, empty tables, “CREATE” statement.

- Fix in DODS SQL Generator for default size of “LONGVARCHAR” type columns.

- Added "QueryTimeLimit" parameter, fix to avoid long running queries.

Chapter 25. What's new in DODS 6.2-1

This chapter lists the new or updated features associated with DODS 6.2-1.

Fix for massUpdate/SelectCount problem. If selectCount method is used together with massUpdate(with selectOids option), it was a problem with open ResultSets.

Chapter 26. What's new in DODS 6.1-2

This chapter lists the new or updated features associated with DODS 6.1-2.

- Added support for "UTF-8" encoding in DODS generator.

- Added fix to caching system, to avoid concurrency problem in data struct cache.

Chapter 27. What's new in DODS 6.1-1

This chapter lists the new or updated features associated with DODS 6.1-1.

- Added fix for HSQL 1.7-2 database (database shutdown).

- Added fix for BLOB's in Oracle database - changes in templates.

- Added SetBytesAsBinaryStream parameter. This parameter force DODS to explicitly use Binary Stream when set's data for PreparedStatement parameters of "bytes" type (patch for MS Access).

- Added DisableConnectionPool parameter. This parameter is used only if ConnectionAllocator = "com.lutris.appserver.server.sql.datasourceDataSourceConnectionAllocator". If this parameter is set to "true" then DODS will disable internal connection pool.

- New method (wasReadOnly) is added in CachedDBTransaction interface and StandardDBTransaction implementation.

Chapter 28. What's new in DODS 6.0-2

This chapter lists the new or updated features associated with DODS 6.0-2.

- (ID: ) Parameters OidTableName and NextColumnName are implemented. They can replace default values for table and column names of table where oid numbers are stored.

- (ID: ) Added support for MS Access database (added AccessConf.xml file)

- (ID: ) Added CaseInsensitiveDatabase parameter. If this parameter is set to “true” then DODS will assume that database is case insensitive and will not use "LOWER" function in SQL statements (patch for MS Access).

- (ID: ) Added SetNullAsVarchar parameter. Tell DODS to explicitly use ''Varchar'' data type when PreparedStatement parameters to "Null" value (patch for MS Access).

- (ID: ) Added SetBytesAsLongvarbinary parameter. Tell DODS to explicitly use ''Longvarbinary'' data type when set's data for PreparedStatement parameters of "bytes" type (patch for MS Access).

- (ID: ) Added CustomNotEqualSqlOperator parameter. Tell DODS to use alternative (user defined) operator for "Not Equal" in SQL expressions (patch for MS Access).

Chapter 29. What's new in DODS 6.0

This chapter lists the new or updated features associated with DODS 6.0

- (ID: ) New modular structure of DODS 6.0 - dods-runtime.jar are devided into: dbmanager-api.jar, dbmanager, stdconnection.jar, stdtransaction.jar, stdcaches.jar

- (ID: ) New implementation for ConnectionAllocator and DBConnection that supports connecting to the database using DataSource objects are included in this release in separate DODS module (jar file - dsconnection.jar). This implementation in not compatibile with jdk 1.3.

- (ID: ) New util.jar is included. This version is the same as in Enhydra 5.1-16.

- (ID: ) Added patch in to fix problem with Hsql database and reserved word - next. Added new parameter in conf file - ObjectID section : NextWithPrefix.

- (ID: ) Added implementation for multijoin query cache in StandardCaches module.

- (ID: ) Implemented parameter maxMultiJoinCacheSize - size of multiJoin Query cache.

Chapter 30. What's new in DODS 5.1-15

This chapter lists the new or updated features associated with DODS 5.1-15

- (ID: ) Fixed problem in addWhereRightOuter() or addWhereLeftOuter() methods, Michael Strapp <> patch.

- (ID: ) Fixed originalData_getXXX method, reported by Michael Strapp <>.

- (ID: ) Fixed problem in generator with SQL statements names length constraint.

Chapter 31. What's new in DODS 5.1-14

This chapter lists the new or updated features associated with DODS 5.1-14

- (ID: ) Fixed problem with multiJoin queries and prefix parameter.

- (ID: ) Method addUnion in QueryBuilder class is implemented to support UNION SQL statements.

Chapter 32. What's new in DODS 5.1-13.3

This chapter lists the new or updated features associated with DODS 5.1-13.3

- (ID: ) Added patch to QueryBuilder class (getSQLwithParms() and recurseSQLwithParms methods).

- (ID: ) Fixed problem with open result sets.

- (ID: ) Fixed problem with set_CursorType method when overrides default ResultSetType values.

- (ID: ) Run-time distribution of dods now contains doml.dtd (and doml.xsd)

Chapter 33. What's new in DODS 5.1-13

This chapter lists the new or updated features associated with DODS 5.1-13

- (ID: ) Added connection close check on first write in transaction. - MySQL problem reported by Petr Stellik.

- (ID: ) bug fix - now throws exception if sql batch affects less then 1 row.

- (ID: ) fixed problem with get_Handle() exception - compatibility with old releases.

- (ID: ) implemented optional PreparedStatement caching. MaxPreparedStatements=0 means thet DODS turns off PreperedStatement caching.

Chapter 34. What's new in DODS 5.1-12

This chapter lists the new or updated features associated with DODS 5.1-12

- (ID: ) Fixed problem with cloneUnique method and lazyLoading=true.

- (ID: ) Added new parameter in app config file : SQLBatch. This option enables executing modifications in transaction using addBatch and executeBatch methods.

- (ID: ) During cache initialization, cursor type can be overridden using new parameters InitCachesResultSetConcurrency, InitCachesResultSetType.

- (ID: ) PreparedStatement cache is enabled for modifications (updates, inserts).

Chapter 35. What's new in DODS 5.1-11

This chapter lists the new or updated features associated with DODS 5.1-11

- (ID: ) New addWhereIn methods in QueryBuilder (RDBColumn, Array of )

- (ID: ) fetch size problem with MSJDBC driver - added new method in query class which overrides values of cursor types parameters from application

- (ID: ) FullCacheCountLimit parameter - query checks current cache size and depends on this parameter DODS

- (ID: ) fetch size will be set automatically to 1 for uniqueInstace queries.

- (ID: ) getDO method in DBTransaction interface returns Transaction interface instead of CoreDO.

- (ID: ) Added new parameters - initCacheSize and initFetchSize - for loading caches first time.

- (ID: ) P6Spy - version 1.3 is included in DODS.

Chapter 36. What's new in DODS 5.1-10

This chapter lists the new or updated features associated with DODS 5.1-10

- (ID: ) Changes in name convention logic for named constraints (not only for foreign keys) in SQL expression (uses ConstraintNameLength parameter)

- (ID: ) Optimized usage of synchronized methods and blocks.

- (ID: ) DODS Generator - DODS_ENDORSED system property support added, for IBM JDK.

- (ID: ) Added AbstractDBTransactionFactory - new interface, and new parameter in configuration file TransactionFactory. On this way new implementations of DBTransaction interface are enabled.

- (ID: ) Added ExtendedConnectionAllocator - new interface, and new parameter in configuration file ConnectionAllocator. On this way new implementations of ConnectionAllocator interface are enabled.

- (ID: ) Added DriverDependencies interface and OracleDriverDependencies class which are solved DODS problem with Blobs on Oracle database.

- (ID: ) Fixed problem with isDirty method when lazyLoading is set to true.

- (ID: ) EnableCaching method in DO class calls setMaxRows if maxRows is greater then 0, during data load in caches.

- (ID: ) Added new Parameter FullCacheCountLimit - depends of this parameter and number of rows in fully cached table, Query has to be executed at the first time against the database.

- (ID: ) If query is by Oid, DODS will automatically set fetch size to current query to 1.

- (ID: ) Added new interfaces ExtendedDBConnection and AbstractDBConnectionFactory to enable custom implementation of database connection (or ConnectionFactory class). Also new parameter is added in configuration file on connection level ('ConnectionFactory') to enable configuration of connectionAllocator/conectionAllocatorFactory. StandardDbConnectionFactory is default implementation.

Chapter 37. What's new in DODS 5.1-9

This chapter lists the new or updated features associated with DODS 5.1-9

- (ID: ) Added 'ResultSetType' and 'ResultSetConcurrency' parameters in driver specific section of database vendor *.conf file. Using of those two parameters can improve performance of complex queries.

- (ID: ) Added 'Drivers' section in dods.conf file. If 'ClassType' parameter in app configuration file are missing, DODS use 'Drivers' section to find database vendor name (based on driver class name).

- (ID: ) Fixed problem in method markNewValue ( - comparing byte[].

- (ID: ) Added parameter in conf file: ClassList - absolute path of XML file with list of DO classes - for loading caches during startup.

- (ID: ) Fixed refreshCache() and enableCaching() not to fill cache during cache initialization if parameter initAllCaches is set to true but caches are not used

- (ID: ) Condition object uses DataStract objects instead of DO objects (where clause of SQL statement). Performance issue.

- (ID: ) Sinchronized access in LRUMap - full caching - cacheHits

- (ID: ) Fixed handling of datastructs found in cache (ceInternal)

- (ID: ) Fix for statement close (to avoid problem with Oracle RDBMS - Shark mailing list)

- (ID: ) Introduced ignoring of commit requests, if no DOs are changed

- (ID: ) Support for HipersonicSQL in SQLSplitter ant-task. Problem with SQL command ALTER TABLE ... PRIMARY KEY - Added 'SplitSQLPrimary'. parameter

- (ID: ) Fixed bug in runQuery method - removeDO's from vector.

- (ID: ) Fix for 'userWildCard' support

- (ID: ) DODS icons and pictures are changed.

- (ID: ) Fixed bug - with static DatabaseManagerConfiguration fields

- (ID: ) Fixed bug - enable caching with tables fully cached

- (ID: ) Added method getParentConfig() in - returns parent DODS config object.

- (ID: ) Updated Javadoc in standard template.

- (ID: ) Patch to DBConnections pool control (too many open - waiting and wasting resources).

- (ID: ) Fix for 'isFinal' in doml31_2_doml60.xsl tool

- (ID: )

Chapter 38. What's new in DODS 5.1-7

This chapter lists the new or updated features associated with DODS 5.1-7

- (ID: 1854) Added docu about MS SQL support to delete cascade.

- (ID: ) New DODS startup method (DODS.startup(URL,String)), now DODS can read application configuration file from application classpath (folder or jar), or from given URL.

- (ID: ) ReadOnly attributes for template files are automatically changed

- (ID: ) Added new public methods oid_setXXX(BigDecimal), oid_setXXX(String), oid_setXXX(ObjectId) in DO templates.

- (ID: ) Added description for 'SendStringParametersAsUnicode' connection parameter for MS-JDBC driver (documented in 'Inside DODS').

- (ID: ) Fixed problem with closed connection in connection poll - problem with MS-JDBC driver.

- (ID: ) Added new parameter 'AppName' (DatabaseManager level) - used in Enhydra 6.0

- (ID: 1614) Added 'CaseSensitive' parameter for calculate/recalculate string comparisons in cache. Updated docu.

- (ID: ) Added new driver specific parameter 'DisableFetchSizeWithMaxRows'.

- (ID: 1684) Fixed problem with Simple Query Cache and readSkip - in runQuery method

- (ID: ) Fixed problem with calling setMaxRows() - without filtering data

- (ID: ) Changes to suport db querys with full columns naming (added for MSSQL support)

- (ID: ) Fixed problem with save() method - without transaction. Added rollback in catch block.

- (ID: 1619) New parameter IncrementVersions is added in conf file. If this parameter set to true (default value is true) values in version columns are incremented during mass Updates.

- (ID: ) Documantation is updated (related to supported Db Vendors): dods_qstart.xml and using_dods.xml

- (ID: 1572) Support for jdk 1.3.x in runtime: removed LinkedHashMap dependence for LRU cache, Cache implementation extends LRUMap and SequencedHashMap (for jdk 1.3) - new classes borrowed from Jakarta-common. Removed LinkedHashMap dependences for full caching.

- (ID: ) Fixed problem with force=false attribute in dods ant task (when output directory contains '.' character

- (ID: ) All examples use hsqldb.jar from dods lib-ext (not separate jar for each application)

- (ID: 1621/1623) Fixed bug for update set parameters - complex update statements

- (ID: 1620) New method for setting expressions in Update statements is implemented (exprSetXXX)

- (ID: 1597 ) Fixed problem with DEFAULT_WILDCARD_ESCAPE_CLAUSE value. Added support for disabling ESCAPE clause ('none' value for WildcardEscapeClause parameter). Docu in 'Inside DODS' ch.23.

- (ID: 1625 ) Support for DbVendor driver specific properties in vendor conf files. Added Cursor name parameter - implemenattion neccesery for MSJDBC driver - using cursors. Docu in 'Inside DODS' ch.23.

- (ID: 1625 ) Added new chapter 'Database Vendor and Driver Specific Parameters' in 'Inside DODS' (ch.23).

- (ID: 1625 ) Added 'UseCursorName' parameter in app. *.conf file (also exists in driver specific section of database vendor *.conf file)

- (ID: ) Fixed bug - full caching: set size of LRUMap according to Map - constructor argument.

- (ID: 1643) Fixed problem with AutoSaveCreateVirgin parameter. DODS didn't insert into transaction 'virgin' objects.

- (ID: 1654/1673) Clean transactions are used for cache initialization.

- (ID: 1594) Save method without trans-param is generated even when dirtyDos=omit.

- (ID: ) Fixed problem with selectOids parameter and executing mass Updates.

- (ID: ) Fixed problem with TransactionCaches=true, lazyLoading=true and calling createExisting methods with non persistent oid in database. This situation caused problem in TransactionCache - add DO which doesn't exist in database. New methods are created ceInternal - for internal usage - creating DO object which exists in database. Public createExisting methods now always check if DO exists in database.

Chapter 39. What's new in DODS 5.1-6

This chapter lists the new or updated features associated with DODS 5.1-6

- Added 'Mass modifications' features to DODS. Implemented mass Updates and mass Deletes SQL statements using new classes xxxUpdate and xxxDelete.

- Added tests for testing DODS features and functionality with difference combination of DODS parameters in conf files.

- (ID: 1584) Changes in SQL splitter - implemented generating of separate DropIndex.sql file with DROP INEDX SQL statements.

- (ID: 1567) Added new parameter to DB Vendor configuration files "ConstraintNameLength"

- (ID: 1567) Changes in name convension logic for named constraints in SQL expresion (uses ConstraintNameLength) .

- (ID: ) Changes in discRack example - HSQL database is used

- (ID: ) Changes in jspPhoneBook example - fixed problem with absoluth path in index.jsp and added README.txt

- (ID: 1450) Provided DOML2conf xsl migration tool.

- (ID: 1568) DODS now avoid "autocommit=true" code.

- (ID: 1460) New Release Notes style.

Chapter 40. What's new in DODS 5.1-5

This chapter lists the new or updated features associated with DODS 5.1-5

- (ID: 1583) Setings in dodsconf.xml for QED / Longbinary type fixed.

- (ID: 1567) Foreign Key Names (in generated SQL) now (again) compatible with DODS 3.1.

- (ID: 1585) Deprecation mark now suggesting new method.

- (ID: 1575) DODS package named "root" now is not necessary. DODS supports multiple roots packages in doml.

- (ID: 1571) New "Together Enhydra(R) DODS" logo / splash screen.

- (ID: 1441) Added DB Manager switch (autocommit), in application conf file, for MySQL.

- (ID: 1441) Added MS-JDBC information section in Getting started (also some others: McKoi ..).

- (ID: ) Added new example application - DODS under servlet servers without Enhydra .

- (ID: 1426) Anttask now supports docu-only generating.

- (ID: ) setNewVersion method implemented in templates.

- (ID: 1582) Fixed problem with caching when 2-column where-clause produces a table join.

- (ID: ) Added support to McKoi SQL database.

- (ID: 1403) Fix for doTouch method to really increment version.

Chapter 41. What's new in previous releases.

This chapter lists the new or updated features associated with DODS 5.1.

Core improvements

New DODS is independent from Enhydra. For more information, see "DODS independence" ( html, pdf), the fifth chapter of the document "Using DODS" ( html, pdf).

Pointer lazyLoading is implemented.


  • Changed caching: there is only one type of caching - LRU (least recently used) caching. LRU cache extends class LinkedHashMap which is standard jdk1.4 class.

  • Data object cache is transformed into DataStruct cache (LRU cache).

  • Full caching is a special case of LRU caching. It is unbounded LRU cache in which are put all table rows during the cache initialization.

  • Added query caching. Query cache is devided in two parts: simple query cache and complex query cache.

  • Added new transaction cache. It stores DOs from the same transaction. It is a HashMap.

  • Added possibility of disabling and enabling caching.

  • Added possibility of separete cache refreshing.

  • Usage of caches is configurable - parameteres in application conf file.

  • Added Global cache (Wrapper) that synchronizes all DataStruct caches.

  • Added negative list to DataStruct cache to hide DataStructs from using while are out of synchronization.

  • Logging again works thru Enhydra logging API. There are two implementations: Classic and Log4j.

  • DatabaseManager API is fixed, and generated classes don't contain anonymous classes for comparison (implementing CompareDO and CompareDS). Also xxxDO.cloneUnique() bug is fixed.


  • Many new features about transactions are implemented.

  • Fixed transactions, the change of cache content is performed after commit() of the transaction.

  • Added a lot of new transactions parameters in configuration file.

  • Transactions are detailly explained in document "Inside DODS" ( html, pdf).


  • Implemented methods for security that check user access rights.

  • Added attributes genereSecure and generateInsecure on database, table and column level in DOML file that define generating secure methods (methods with check of user access rights) and insecure methods (methods without check of user access rights).

  • Security is detailly explained in the Chapter "Security" of the document "Inside DODS" (html, pdf).

Application configuration parameters and DOML attributes

  • Provided possibility of overwritting Vendor from DOML file by DODS Ant task. The possibility also added in DODS generator.

  • In application's configuration file can be defined default table parameters on DatabaseManager and Database level and table parameters for every table.

  • In application's configuration file can be defined default cache parameters on DatabaseManager and Database level and cache parameters for every table.

  • Added switches for generating secure and insecure methods on database, table and column level in DOML file.

  • Added switches for multi databases and lazy loading in DOML file.

  • Added index element in DOML file. Added support for unique and clustered indexes.

  • In application's configuration file can be defined transacion parameters : AutoSave, AutoWrite, TransactionCaches, TransactionCheck,...

  • Updated DOML file.

Other improvements

  • CloneUnique patch is added - cloneUnique method didn't work because of DO changes - double DataStruct. Problem is solved.

  • Cleaning of DODS interfaces - Now we are compatible with Enhydra 5.0.

  • Removed anonymous classes for column compare (in DataStruct and DO classes).

  • DODS_HOME is not necessary at runtime, dodsConf and vendor xmls are in dbmanager.jar.

  • Separated DODS building (out of Enhydra). In Enhydra building are just copied DODS jars.

  • Dods Generator is replaced by new DODS-Ejen based on xsl transformation, Jakarta Ant and Ejen project.

  • Provided possibility for users to make their own template sets.

  • TemplateDir parameter in Ant task defines base directory of DODS templates.

  • Removed Dods GUI.

  • Dods.conf is in xml format (DodsConf.xml). It is splitted, there is one file for every database vendor. DodsConf has just information about location of templates and vendor configuration files.

  • Included informix.jar and oracle.jar as examples of databases that differ from standard (jars are placed in lib/dbvendors directory).

  • DODS generator creates java code independent of database. Database dependency is relocated to Database Manager (dbmanager.jar).

  • In DatabaseManager is put only standard funcionality of databases and made possibility for users to create their own jars. This is done dinamically (declare it in configuration file).

  • Multi databases included in DODS. This is possibility of working with more than one database at the same time.

  • SQLSplitter is included in DODS Generator as a tool (options) for creating more separated SQL files (for creating tables, creating indexes, primary keys, foreign keys...).

  • Added possibility to DODS to convert DOML file into four types of papers: html, pdf, xmi and ptl. This can be done from DODS Generator Wizard, or manually.

  • New command-line script for convertion of DOML 3.1 and 5.0 file into DOML 6.0 file.

  • Fixed thread safe lazy-loading.

  • DODS applications can use Microsoft JDBC driver, if the parameter SelectMethod is set to cursor.


    DatabaseManager.DB.sid1.Connection.Url = "jdbc:microsoft:sqlserver://;DatabaseName=discRack;SelectMethod=cursor".

  • Added possibility of selecting oids from database (for given "where" condition) and removing DOs with these oids from the DataStruct cache.

  • Added possibility of writing queries (which execution time is greater then parameter maxExecuteTime) into applications EventLog file.

  • Added new methods for maintaing table and cache statistics.

  • Implemented unDelete and undo methods of DOs.

  • Added new DODS document "Inside DODS" ( html, pdf) that detailly explains caching, transactions and new parameters in DODS.

  • added DODS FAQs (Frequently Asked Questions) to DODS documentation.


Patches for ejen.jar version 1.0:

  • class

    Added attribute CTX_DOM_SOURCE_FILE - path of DOM source file.

  • class

    Added method putInGlobalContext (in method setFile(String)). This method puts DOM_SOURCE_FILE in Global Context.

  • class

    Added attribute _outdated. It is true if output file needs to be generated.

    Added method setOutdated(String) which sets attribute _outdated.

    Added method outdated(String fileName) which checks if source file is newer than output file.

  • class

    Added support Ejen 1.0 to work with Xalan 2.4 (included in jdk 1.4.2)

    Transalation relative paths from xsl:import's and xsl:include's href attributes into absolute paths (because of Xalan compatibillity)

Vladimir Ritz Bossicard patches in and are included. Many thanks to Vladimir.

Chapter 42. Installation, platform, and system information

These release notes apply to DODS 6.0.


For more information about building, getting up and running quickly with DODS, see document "DODS Quick start" ( html, pdf)

Platform support

Through the open-source development process, DODS has been used on a wide variety of platforms and with many different JDBC-supported databases.


  • Oracle8i with the Oracle JDBC Driver

  • PostgreSQL 7.0.2 with the PostgreSQL JDBC Driver

  • Microsoft SQL Server 7.0 and 2000 on NT Server, and 2000 with the JTurbo 2.0 JDBC Driver

  • InstantDB

  • DB2

  • PostgreSQL

  • Sysbase

  • Informix

  • HSQL

  • QED

  • HypersonicSQL


  • Sun JDK 1.4.x on Windows NT & 2000, Linux, Solaris

Chapter 43. Documentation

The documentation for this release is located in

DODS 6.0 has a lot of updated documentation.

Documentation is written in XML format and transformed in HTML and PDF with DocBook templates, version 1.70.1.