History of Changes
-
Introduction and explanation of symbols
- Version 2.0.12 (March 18, 2008)
- Version 2.0.11 (January 14, 2008)
- Version 2.0.10 (January 8, 2008)
- Version 2.0.9 (December 28, 2007)
- Version 2.0.8 (November 19, 2007)
- Version 2.0.7 (November 9, 2007)
- Version 2.0.6 (October 17, 2007)
- Version 2.0.5 (October 15, 2007)
- Version 2.0.4 (October 4, 2007)
- Version 2.0.3 (September 24, 2007)
- Version 2.0.2 (September 14, 2007)
- Version 2.0.1 (July 23, 2007)
- Version 2.0.0 (July 16, 2007)
- Version 2.0-rc-4 (July 7, 2007)
- Version 2.0-rc-3 (July 2, 2007)
- Version 2.0-rc-2 (June 25, 2007)
- Version 2.0-rc-1 (June 18, 2007)
- Version 2.0-beta-1 (April 23, 2007)
- Version 1.2-beta-7 (December 1, 2006)
- Version 1.2-beta-6 (October 24, 2006)
- Version 1.2-beta-5 (September 22, 2006)
- Version 1.2-beta-4 (September 11, 2006)
- Version 1.2-beta-3 (August 26, 2006)
- Version 1.2-beta-2 (August 10, 2006)
- Version 1.2-beta-1 (July 19, 2006)
- Version 1.1 (April 21, 2006)
- Version 1.1-rc-2 (April 18, 2006)
- Version 1.1-rc-1 (April 9, 2006)
- Version 1.1-beta-7 (March 20, 2006)
- Version 1.1-beta-6 (February 15, 2006)
- Version 1.1-beta-5 (February 13, 2006)
- Version 1.1-beta-4 (February 10, 2006)
- Version 1.1-beta-3 (January 27, 2006)
- Version 1.1-beta-2 (January 23, 2006)
- Version 1.1-beta-1 (December 13, 2005)
- Version 1.0 (September 22, 2005)
- Version 1.0-rc-5 (September 15, 2005)
- Version 1.0-rc-4 (September 6, 2005)
- Version 1.0-rc-3 (August 23, 2005)
- Version 1.0-rc-2 (August 21, 2005)
- Version 1.0-rc-1 (August 2, 2005)
- Version 1.0-beta-8 (April 27, 2005)
- Version 1.0-beta-7 (April 5, 2005)
- Version 1.0-beta-6 (March 31, 2005)
- Version 1.0-beta-5 (March 3, 2005)
- Version 1.0-beta-4 (February 18, 2005)
- Version 1.0-beta-3 (February 7, 2005)
- Version 1.0-beta-2 (January 8, 2005)
- Version 1.0-beta-1 (October 1, 2004)
- Version 1.0-alpha-3 (August 30, 2004)
- Version 1.0-alpha-2 (July 17, 2004)
- Version 1.0-alpha-1 (July 14, 2004)
Introduction and explanation of symbols
Changes are sorted by "true" and then chronologically with the most recent at the top. These symbols denote the various action types:
=add,
=fix,
=remove,
=update
Version 2.0.12 (March 18, 2008)
Changes to documentation
-
Added linked source to javadoc.
Committed by PF.
Changes to dependencies
-
Upgraded Retrotranslator to 1.2.6.
Committed by PF. -
Upgraded JGroups to 2.6.2.
Committed by PF. -
Upgraded SLF4J to 1.5.0.
Committed by PF.
Changes to code
-
Fixed case normalization in DatabaseMetaDataSupport.normalize(String, String).
Committed by PF. -
Fixed NullPointerException using CallableStatement stream methods.
Committed by PF. -
Optimized Balancer implementations using copy-on-write concurrent collections.
Committed by PF. -
Eliminated some unnecessary runtime reflection.
Committed by PF. -
Fixed potential deadlock when synchronization is triggered while there are open transactions.
Refactored statement read locking to lock and unlock at transaction boundaries.
Removed obsoleted table locking in synchronization strategies.
Committed by PF. -
Added ConnectionPoolDataSource and XADataSource proxies, the latter required to detect distributed transaction boundaries.
Added necessary <xa-datasource> and <pool-datasource> configuration file elements.
Committed by PF. -
Renamed net.sf.hajdbc.sql.DataSource to net.sf.hajdbc.DataSourceFactory.
This should hopefully eliminate some confusion about its usage, as it is a javax.naming.spi.ObjectFactory and not a java.sql.DataSource implementation.
Committed by PF. -
Fixed Spanish translation of log messages.
Committed by PF. Thanks to Alejandro Domenech.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Alejandro Domenech.
Version 2.0.11 (January 14, 2008)
Changes to code
-
Replaced accidental use of Method.getTypeParameters() with intended Method.getParameterTypes() in AbstractInvocationHandler.
This fixes bug where state changing methods were not recorded properly and subsequently not replayed correctly on newly activated databases.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.10 (January 8, 2008)
Changes to code
-
Fixed CronThreadPoolExecutor to work around potential inaccuracies in java.util.Date that could cause a task to be scheduled multiple times in a single cron interval.
Committed by PF. -
Connection.setReadOnly() should use DatabaseWriteInvocationStrategy instead of DriverWriteInvocationStrategy.
Committed by PF. -
Refactored invoker recording to support any JDBC method regardless of InvocationStrategy implementation.
Committed by PF. -
Fixed replay of PreparedStatement and CallableStatement set*() methods for a newly activated database.
Committed by PF. -
Cleanup logic in DatabaseWriteInvocationStrategy by splitting into TransactionalDatabaseWriteInvocationStrategy and NonTransactionalDatabaseWriteInvocationStrategy.
Committed by PF. -
Rollback TestNG to 5.6. Version 5.7 mysteriously skipped test methods.
Committed by PF. -
CallableStatement does not need to parse out sequences nor identity columns, nor detect SELECT...FOR UPDATE in SQL.
Committed by PF.
Changes to tests
-
Fixed broken test cases.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.9 (December 28, 2007)
Changes to dependencies
-
Upgraded JGroups to 2.6.1.
Committed by PF.
Changes to code
-
In DatabaseWriteInvocationStrategy, acquire read locks before Balancer.all() so that a newly activated database will not miss any pending write statements.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.8 (November 19, 2007)
Changes to dependencies
-
Upgraded JGroups to 2.6.0.
Committed by PF.
Changes to code
-
Fixed infinite loop in CronThreadPoolExecutor when scheduled task throws an ExecutionException.
Committed by PF. Thanks to gamani. See Issue 1832392.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
gamani.
Version 2.0.7 (November 9, 2007)
Changes to dependencies
-
Upgraded Retrotranslator to 1.2.3.
Committed by PF. -
Upgraded TestNG to 5.7.
Committed by PF.
Changes to code
-
Added local="true|false" attribute to database/datasource.
Cluster panic detection now consults this flag instead of weight to determine whether a database is local or remote.
Committed by PF. -
LocalLockManager now uses a custom semaphore-based ReadWriteLock implementation instead of ReentrantReadWriteLock.
Removed obsolete DistributableLockAdapter hack.
Committed by PF. -
Optimized DistributableLockManager using RpcDispatcher instead VotingAdapter.
Committed by PF. -
Fixed deadlocking in DistributableLockManager when simultaneous voting occurs for he same resource from different peers.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.6 (October 17, 2007)
Changes to code
-
Fixed exception handling during startup to prevent subsequent javax.management.InstanceAlreadyExistsExceptions if database cluster fails to start.
Committed by PF. -
Fixed potential deadlocking sources and improved cpu friendliness of DistributableLockManger.
Committed by PF. See Issue 1814865.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.5 (October 15, 2007)
Changes to documentation
-
Removed obsolete JBoss jmx-console FAQ entry.
Committed by PF.
Changes to code
-
Fixed bug in Dialect.getAlterSequenceSQL(...) and Dialect.getAlterIdentityColumnSQL(...) causing values > 999 to get formatted with grouping separators.
Committed by PF. See Issue 1811698. -
Added "cluster panic" detection to prevent asymmetric database deactivation during a network fragmentation when in distributable mode where databases are colocated on peer nodes.
If HA-JDBC detects a cluster panic, the cluster is stopped.
Manual intervention is required to resolve any consequent synchronization problems and to start the cluster.
Committed by PF. See Issue 1738533.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.4 (October 4, 2007)
Changes to code
-
Added look-ahead and to Dialect.evaluateCurrentTime() regular expression so that it does not match CURRENT_TIMESTAMP functions.
Committed by PF. -
Fixed NullPointerException regression in DistributableLockManager preventing database activation in distributable mode.
Committed by PF. -
Use new official JDK 1.4 backport of JGroups instead of retrotranslating our own.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.3 (September 24, 2007)
Changes to dependencies
-
Upgraded JGroups to 2.5.1.
Committed by PF.
Changes to code
-
Fixed infinite loop in DistributableLockManager while acquiring a lock when only one peer node is present.
Committed by PF. See Issue 1799618. -
Fixed missing membership listener registration in DistributableLockManager preventing proper lock cleanup.
Committed by PF. -
Defer creation of connection factories until needed since DataSource creation relies on JNDI environment properties that may not yet be established.
Committed by PF. See Issue 1796975.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.2 (September 14, 2007)
Changes to documentation
-
Fixed example Tomcat DataSource configuration.
Committed by PF.
Changes to dependencies
-
Upgraded SLF4J to 1.4.3.
Committed by PF.
Changes to code
-
Added Dialect.getIdentifierPattern(...) method to work around buggy DatabaseMetaData.getExtraNameCharacters() in PostgreSQL driver since version 8.1.
Bug causes unexpected failures during identity column detection when schema or table name contains non-standard characters.
Committed by PF. -
Optimized StandardDialect.getDefaultSchemas() by replacing separate CURRENT_USER query with DatabaseMetaData.getUserName().
Committed by PF. -
Fixed currentTimestampFunction() method of MaxDBDialect.
Committed by PF. -
Created separate OracleDialect, formerly an alias of MaxDBDialect.
Committed by PF. -
Created separate H2Dialect, formerly an alias of HSQLDBDialect.
Committed by PF. -
Added new dialect for Sybase.
Committed by PF. -
Added evaluateCurrentDate(String, java.sql.Date), evaluateCurrentTime(String, java.sql.Time), evaluateCurrentTimestamp(String, java.sql.Timestamp), and evaluateRandom(String) to Dialect interface to replace non-deterministic SQL functions (e.g. CURRENT_TIMESTAMP, RAND()) with deterministic static values.
Added optional eval-current-date, eval-current-time, eval-current-timestamp, and eval-rand cluster attribute to enable these behaviors.
Committed by PF. -
Both sequence and identity column detection are no longer enabled by default.
Committed by PF. -
Removed supportsSequences() and supportsIdentityColumns() methods from Dialect interface.
The corresponding parseSequence(String) and parseInsertTable(String) methods now return null for dialects that do not support these features.
Committed by PF. -
Fixed race condition in DistributableLockAdapter that may prevent a lock from being released.
Committed by PF. -
Added SynchronizationSupport.synchronizeIdentityColumns(...).
Consequently, MySQL AUTO_INCREMENT columns are now fully supported.
Committed by PF. -
Added DatabaseProperties.getSequences() and TableProperties.getIdentityColumns() to meta data cache facility.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.1 (July 23, 2007)
Changes to code
-
LazyDatabaseMetaDataCache now caches DatabaseProperties using a SoftReference to prevent the cache from causing OutOfMemoryErrors.
Committed by PF. -
Refactored ThreadLocalDatabaseMetaDataCache to NullDatabaseMetaDataCache which no long stores its DatabaseProperties instance in a ThreadLocal since this can inadvertently act like a lazy cache if application threads are pooled.
Replaced SynchronizationContext.getDatabaseMetaDataCache() with SynchronizationContext.getDatabaseProperties() so that meta data used during synchronization is still cached for the lifetime of the SynchronizationContext, regardless of cache implementation.
Committed by PF. -
Re-implemented BalancerFactory, DialectFactory, and DatabaseMetaDataCacheFactory using enums.
Committed by PF. -
In DatabaseMetaDataSupport.normalize(...), adjust case of table to match the way identifiers are stored in the database.
Committed by PF. -
In DatabaseMetaDataSupport.quote(...), normalize identifiers to lower case if database is case-insensitive, yet stores identifiers in mixed case.
Committed by PF. -
Fixed all benign compiler warnings reported by Eclipse.
Committed by PF. -
Migrated simple string constants to Strings.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0.0 (July 16, 2007)
Changes to documentation
-
Revised documentation.
Committed by PF.
Changes to dependencies
-
Upgraded EasyMock to 2.3.
Committed by PF. -
Upgraded SLF4J to 1.4.2.
Committed by PF. -
Upgraded JGroups to 2.5 GA.
Committed by PF.
Changes to code
-
Optimized failure handling in DatabaseWriteInvocationStrategy.
Committed by PF. -
Optimized thread synchronization in DistributableLockAdapter.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0-rc-4 (July 7, 2007)
Changes to code
-
In distributable mode, try to retrieve initial state from any remote node, not just "coordinator".
Committed by PF. -
Fixed deadlocking during activation/deactivation in distributable mode caused by redundant secondary notifications.
Committed by PF. -
In distributable mode, do not send activation notifications to other nodes during cluster startup.
Committed by PF. -
In distributable mode, do not respond to initial state queries until cluster startup is complete.
Committed by PF. -
Upgraded SLF4J to 1.4.1.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0-rc-3 (July 2, 2007)
Changes to code
-
FailureDetectionTask and SQLProxy.handleFailure() will not deactivate any databases if they all appear to be dead.
Committed by PF. -
Convert dynamic Class.cast() and Class.isInstance() to static cast and instanceof expressions wherever possible.
Committed by PF. -
Fixed bug during initialization where databases are added as dirty, triggering export of configuration file.
Committed by PF. -
When adding a database to the cluster, perform duplicate id check before registering database to avoid InstanceAlreadyExistsException.
Committed by PF. -
Fixed broken error message when attempting to remove a database that is still active.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 2.0-rc-2 (June 25, 2007)
Changes to dependencies
-
Upgraded Retrotranslator to 1.2.2.
Committed by PF.
Changes to code
-
Added toString() to DatabaseClusterMBean interface so that log messages will display cluster id properly.
Committed by PF. -
Fixed IllegalAccessError in JiBX marshalling during configuration export.n
Committed by PF. Thanks to David White. -
Removed Retrotranslator plugin for java.lang.management.ManagementFactory.
This is now natively supported by Retrotranslator.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
David White.
Version 2.0-rc-1 (June 18, 2007)
Changes to dependencies
-
Upgraded SLF4J to 1.4.0.
Committed by PF. -
Upgraded JiBX to 1.1.5.
Committed by PF. -
Upgraded JGroups to 2.5.0-cr1.
Committed by PF. -
Upgraded TestNG to 5.6.
Committed by PF.
Changes to code
-
Fixed memory leak with CONCUR_READ_ONLY result sets when using ResultSet.getStatement().close().
Committed by PF. -
Removed problematic singleton references to database clusters in DatabaseClusterFactory.
Committed by PF. -
Require separate XML config file per database cluster.
Committed by PF. -
Consolidated database-cluster and datasource cluster elements into single cluster element, as in 1.1.
Removed id attribute from cluster element.
Committed by PF. -
Modified configuration locator logic to first check driver connection properties or datasource config property for resource URL.
Default resource name is now ha-jdbc-{0}.xml, where {0} is the cluster id.
Committed by PF. -
Added test for UnsupportedOperationException thrown when Quartz cron expression uses both day-of-week and day-of-month values.
Committed by PF. Thanks to Hanson Char. -
If a group member leaves, any distributed locks it held must be freed.
Committed by PF. -
DistributableLockManager uses default vote response processor instead of its own implementation.
Committed by PF. -
Removed quoting of cluster ID and database ID in mbean ObjectName.
JBoss users no longer need to patiently wait for this long standing jmx-console bug to be fixed.
Committed by PF. -
Fixed NoSuchElementException thrown during database activation when there are no active databases.
Committed by PF. -
Fixed IllegalMonitorStateExceptions in DistributableLockManager resulting from improper use of reentrant locks by multiple threads.
Committed by PF. -
Optimized DistributableLockManager using a single phase VotingAdapter.
Committed by PF. -
Re-implemented DistributableStateManager to use synchronous MessageDispatcher instead of asynchronous NotificationBus.
This will ensure that all nodes are notified of database activation prior to unlocking database tables during synchronization.
Changed default jgroups protocol stack to "udp-sync".
Committed by PF. -
Do not auto-deactivate the last database of a cluster.
Committed by PF. -
JGroups 2.5 uses Java 1.5 as a baseline, so retrotranslate this jar as part of 1.4 build.
Committed by PF. -
Modified build to produce 3 different binary distributions, for Java 1.4, 1.5, and 1.6.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Hanson Char.
Version 2.0-beta-1 (April 23, 2007)
Changes to documentation
-
Updated documentation to use Forrest 0.8.
Committed by PF.
Changes to dependencies
-
Upgraded JiBX to 1.1.3.
Committed by PF. -
Upgraded JGroups to 2.5.0-beta-2.
concurrent-*.jar is now obsolete.
Committed by PF. -
Upgraded SLF4J to 1.3.1.
Committed by PF. -
Upgraded Retrotranslator to 1.2.1.
Committed by PF. -
Upgraded Woodstox to 3.2.1.
Committed by PF. -
Upgraded TestNG to 5.5.
Committed by PF. -
Added JDBC RowSet API to Java 1.4 runtime dependencies.
Committed by PF.
Changes to code
-
Optimized PostgreSQLDialect.getLockTableSQL() by removing unnecessary select statement.
Committed by PF. Thanks to David Goodenough. -
Removed JVM shutdown hook since it may prevent proper shutdown of a server-managed connection pool.
Committed by PF. -
Fixed NullPointerException accessing meta data if database does not support schemas.
Committed by PF. See Issue 1618746. -
Refactored Balancer.list() to return a set to better reflect balancer semantics.
Committed by PF. -
Refactored DatabaseClusterMBean interface into DriverDatabaseClusterMBean and DataSourceDatabaseClusterMBean.
LocalDatabaseCluster refactored into generic AbstractDatabaseCluster.
Replaced <cluster> element in DTD with <database-cluster> and <datasource-cluster>.
Committed by PF. -
Created StateManager to encapsulate management of database cluster state.
Committed by PF. -
Distributable functionality no longer added via inheritance, but through lock manager and state manager implementations.
Committed by PF. -
Created schema definition of HA-JDBC configuration as an alternative to DTD.
Committed by PF. -
Reimplemented core logic to use dynamic instead of explicit proxies, decoupling HA-JDBC from a specific version of the JDBC API.
Resulting jar is approximately half the size as before.
Committed by PF. -
Refactored SynchronousExecutor implementation to extend AbstractExecutorService since the ExecutorService interface in Java 1.6 is not compatible with that of 1.5.
Committed by PF. -
Java 1.6 adds auto-increment column identification to DatabaseMetaData.getColumns().
Added isAutoIncrement() to ColumnProperties interface populated only if this information exists.
This value is now be consulted prior to querying the dialect to identify identity columns.
Committed by PF. -
Fixed regular expressions in dialects to properly negotiate whitespace.
Committed by PF. -
Added support for JDBC 4.0 (i.e. Java 1.6).
Committed by PF. -
Added support for mutable LOBs.
Committed by PF. -
Added Java 1.6 service provider hook for HA-JDBC driver.
Committed by PF. -
Added max batch size property to differential synchronization strategy to help prevent out of memory errors when a table contains many changes.
Committed by PF. -
Use platform mbean server for cluster/database mbean registration.
Provide retrotranslator plugin for java.lang.management.ManagementFactory that uses old logic to locate mbean server.
Committed by PF. -
Forced cleanup of open java.sql objects that were not accessed during an deactivate/reactivate cycle.
Committed by PF. -
Fixed german message transations.
Committed by PF. Thanks to Kurt Huwig.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
David Goodenough, Kurt Huwig.
Version 1.2-beta-7 (December 1, 2006)
Changes to dependencies
-
Upgraded JGroups to 2.4 GA (final).
Committed by PF. -
Upgraded Retrotranslator to 1.1.0.
Committed by PF. -
Upgraded Quartz to 1.6.0.
Committed by PF. -
Upgraded Woodstox to 3.1.0.
Committed by PF. -
Upgraded SLF4J to 1.1.0 RC1.
Committed by PF. -
Upgraded TestNG to 5.3.
Committed by PF.
Changes to code
-
Fixed sequence synchronization logic to use next value instead of current value since it may be undefined.
Committed by PF. -
Refactored SynchronizationStrategy interface into distinct prepare (e.g. lock), synchronize, and cleanup (e.g. unlock) stages.
Committed by PF. -
Created SynchronizationContext to simplify SynchronizationStrategy interface methods.
Committed by PF. -
Refactored CronExecutorService to use CronExpression instead of CronTrigger.
Committed by PF. -
Changed default distributable stack to "udp".
Committed by PF. -
Disabled support for identity columns in MySQL dialect.
MySQL's implementation has no mechanism to synchronize auto-increment counter.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.2-beta-6 (October 24, 2006)
Changes to dependencies
-
Upgraded Woodstox to 3.0.2.
Committed by PF.
Changes to code
-
Added support for identity columns.
Committed by PF. -
Added new cluster attributes "detect-sequences" and "detect-identity-columns".
Committed by PF. -
Added dialect implementations for Ingres and Mckoi.
Committed by PF. -
Fixed PostgreSQL Blob/Clob handling in differential and full synchronization strategies when large objects require updating.
Committed by PF. -
Refactored DefaultDialect to StandardDialect and renamed dialect alias from "default" to "standard".
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.2-beta-5 (September 22, 2006)
Changes to dependencies
-
Upgraded TestNG to 5.2.
Committed by PF.
Changes to code
-
Fixed binding compilation error that only seemed to affect windows users.
Committed by PF. -
Fixed mbean registration race condition during startup in distributable mode.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.2-beta-4 (September 11, 2006)
Changes to dependencies
-
Upgraded JGroups to 2.4-cr-2.
Committed by PF. -
Upgraded Woodstox to 3.0.1.
Committed by PF. -
Upgraded TestNG to 5.1.
Committed by PF.
Changes to code
-
Force cleanup of underlying connections, statements, and result sets when a database is deactivated.
Committed by PF. See Issue 1543962. -
Log cause of DatabaseCluster.isAlive(Database) failures.
Committed by PF. -
Fixed bug in DatabaseMetaDataSupport.getForeignKeyConstraints() causing method to always return an empty collection.
Committed by PF. -
Fixed bug in PostgreSQLDialect.getSequences(...) causing method to fail to when database does not contain any sequences.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.2-beta-3 (August 26, 2006)
Changes to dependencies
-
Upgraded JGroups to 2.4-cr-1.
Committed by PF. -
Upgraded Retrotranslator to 1.0.8.
Committed by PF.
Changes to code
-
Fixed bug in DifferentialSynchronizationStrategy where generated select statements had duplicated columns.
Committed by PF. -
Extracted interfaces from ColumnProperties, ForeignKeyConstraint, and UniqueConstraint.
Implementations refactored into net.sf.hajdbc.cache package.
Committed by PF. -
Fixed bugs in MySQLDialect related to generating SQL for creating and dropping foreign keys and unique constraints.
Committed by PF. Thanks to Stephan Hesse.
Changes to tests
-
Added long needed unit tests for each synchronization strategy.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Stephan Hesse.
Version 1.2-beta-2 (August 10, 2006)
Changes to dependencies
-
Upgraded TestNG to 5.0.1.
Committed by PF. -
Upgraded Woodstox to 3.0.0.
Committed by PF.
Changes to code
-
Fixed premature quoting of schema and tables in DatabaseMetaDataCacheSupport.
Committed by PF. -
Fixed NullPointerException in ThreadLocalDatabaseMetaDataCache.
Committed by PF. -
Fixed bug in SimpleBalancer where a database deactivation would trigger the deactivation of other databases of identical weight.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.2-beta-1 (July 19, 2006)
Changes to dependencies
-
Upgraded Retrotranslator to version 1.0.7.
Committed by PF. -
Upgraded JiBX to version 1.1.
Committed by PF. -
Replaced XMLPull runtime library with StAX API + Woodstox implementation.
Committed by PF. -
Upgraded JGroups to version 2.3-sp1.
Committed by PF. -
Upgraded SLF4J to version 1.0.2.
Committed by PF. -
Upgraded Quartz to version 1.5.2.
Committed by PF. -
Upgraded EasyMock to version 2.2.
Committed by PF. -
Upgraded TestNG to version 5.0.
Committed by PF.
Changes to code
-
Fixed create/drop constraint methods of DefaultDialect to quote constraint names.
Committed by PF. Thanks to Ryan Holmes. -
Modified Dialect interface to leverage ForeignKeyConstraint and UniqueConstraint objects to encapsulate constraint details.
Committed by PF. -
Fixed DefaultDialect to correctly generate create foreign key statements for foreign keys containing multiple columns, ON DELETE/UPDATE actions, and deferrability.
Committed by PF. -
Created dialects for MySQL and Firebird.
Committed by PF. -
DerbyDialect, HSQLDBDialect, MaxDBDialect now override createForeignKeySQL().
Committed by PF. -
Fixed synchronization of PostgreSQL tables containing Blob (oid) columns.
Committed by PF. -
Modified differential synchronization strategy to use UPDATE statements instead of using updatable ResultSet, due to poor driver support.
e.g. ResultSet.updateBlob(...) is not implemented in PostgreSQL driver.
Committed by PF. -
Added DatabaseMetaData caching. New meta-data-cache attribute of cluster. Options are eager, lazy, or none.
Committed by PF. -
Modified Dialect and SynchronizationStrategy interfaces to use DatabaseMetaDataCache objects.
Committed by PF. -
Refactored Dialect interface with much simpler method signatures.
Committed by PF. -
Leverages JGroups 2.3 multiplexing so that notification bus and distributable lock manager share the same channel.
No more "discarded message from different group..." warnings in logs!
"protocol" attribute of "distributable" element in DTD is replaced by "config" and "stack" attributes.
Default for "config" is "stacks.xml" from JGroups distribution. Default for "stack" is "fc-fast-minimalthreads".
Committed by PF. -
Moved mbean registration to DatabaseCluster.start() and added mbean unregistration to DatabaseCluster.stop().
HA-JDBC initialization failures will no longer leave stray registered mbeans.
Committed by PF. -
Replaced simple read-write locking with named read-write locking encapsulated by a LockManager.
Committed by PF. -
Added support for sequences.
Committed by PF. -
Fixed non-default charset handling of Clobs.
Committed by PF.
Changes to tests
-
Refactored unit tests so that test classes implement subject interfaces.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Ryan Holmes.
Version 1.1 (April 21, 2006)
Changes to code
-
Ensure that causes of initialization failures are logged.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-rc-2 (April 18, 2006)
Changes to code
-
Fixed IllegalArgumentException during startup when using transactions="xa".
Committed by PF. -
Fixed NullPointerException during startup when database does not define a driver.
Committed by PF. -
Fixed CronExecutorService to use daemon threads so that it doesn't prevent the shutdown hook from firing.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-rc-1 (April 9, 2006)
Changes to dependencies
-
Upgraded Retrotranslator to version 1.0.3.
Committed by PF.
Changes to code
-
Fixed Blob/Clob handling in PreparedStatement.setBlob(...)/setBlob(...) and ResultSet.updateBlob(...)/updateClob(...) methods.
Committed by PF. -
Fixed bug in DefaultDialect.qualifyTable(...) for databases that do not support schemas.
Committed by PF. -
Added new required transactions="local|xa" option to cluster.
When in local mode, database writes are performed concurrently.
When in xa mode, database writes are performed synchronously to ensure a predictable execution order and prevent deadlocks.
Committed by PF. -
Added fault tolerance measures to cluster thread pool under high load.
If pool size reaches max-threads threshold, database writes will be executed in the caller thread using java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.
Committed by PF.
Changes to tests
-
Upgraded TestNG to 4.7.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-beta-7 (March 20, 2006)
Changes to documentation
-
Revised main documentation. Added more FAQs.
Committed by PF.
Changes to dependencies
-
New dependency on Quartz (http://opensymphony.com/quartz/).
Committed by PF. -
New dependency on SLF4J (http://slf4j.org).
Committed by PF. -
Upgraded Retrotranslator to version 1.0.1.
Committed by PF. -
Replaced commons-logging-1.0.4.jar with jcl104-over-slf4j.jar from SLF4J distribution.
Committed by PF.
Changes to code
-
Added auto-activate-period cluster option that will auto-activate failed database nodes at a configurable interval.
Committed by PF. Thanks to Tapan Paul. -
Created CronThreadPoolExecutor, a java.util.concurrent.ThreadPoolExecutor that leverages a Quartz CronTrigger to calculate future execution times of a scheduled task.
Committed by PF. -
Enhanced auto-activation and failure detection to use a cron schedule, instead of a simple fixed-delay period.
Renamed failure-detect-period to failure-detect-schedule and auto-activate-period to auto-activate-schedule in DTD.
Committed by PF. -
Migrated repository to Subversion.
Committed by PF. -
Migrated logging facade from commons-logging to SLF4J.
Committed by PF. -
Added management interface methods for adding and removing databases from a cluster.
Committed by PF. -
Separated DatabaseMBean interface into InactiveDatabaseMBean (read-write) and ActiveDatabaseMBean (read-only).
Committed by PF. -
Activating/Deactivating database reregisters the database using the appropriate active/inactive mbean interface.
Committed by PF. -
Added dirty flag logic for Database attributes. If a database is dirty when it is activated, then the HA-JDBC configuration is exported.
Committed by PF. -
Renamed "name" property of DataSource to "cluster", since "name" cannot be set by the BeanFactory from Tomcat's server.xml file.
Committed by PF.
Changes to tests
-
Migrated test suite to TestNG.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Tapan Paul.
Version 1.1-beta-6 (February 15, 2006)
Changes to code
-
Added workaround for missing ReentrantReadWriteLock(boolean) constructor in backport-util-concurrent package.
Committed by PF. -
Added verify flag to retrotranslator compilation to catch future Java 1.4 compatibility issues.
Committed by PF. -
Rollback change to PostgreSQL dialect.
Removed batching of lock table commands.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-beta-5 (February 13, 2006)
Changes to code
-
Database activation uses Lock.lockInterruptibly() instead of Lock.tryLock() to prevent activation from failing due to concurrent writes.
Committed by PF. -
Fixed getLockTableSQL() from PostgreSQL dialect so that it can be executed within a batch.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-beta-4 (February 10, 2006)
Changes to dependencies
-
Upgraded Retrotranslator to version 0.9.8.
Committed by PF.
Changes to code
-
Added optional failure-detect-period to configuration file.
If defined, HA-JDBC will proactively detect database failures every specified number of seconds.
Committed by PF. -
Replace DatabaseCluster.init() with start() and stop() methods.
Committed by PF. -
Added JVM shutdown hook that calls stop() on each DatabaseCluster.
Committed by PF. -
Derby dialect overrides getLockTableSQL().
Committed by PF. Thanks to Kurt Huwig. -
Refactored DistributableDatabaseCluster to extend LocalDatabaseCluster rather than contain/decorate it.
Committed by PF. -
Refactored JiBX configuration to support both input and output binding directions.
Committed by PF. -
Removed configuration related methods from SynchronizationStrategy interface removing the need for AbstractSynchronizationStrategy.
Committed by PF. -
Implemented distributable read-write locking so that database writes are locked during database activation.
This eliminates the need to deactivate databases that were newly actived upon completion of a database write.
Committed by PF. -
Added mbean interfaces for Databases.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Kurt Huwig.
Version 1.1-beta-3 (January 27, 2006)
Changes to code
-
Changed exceptions thrown by DatabaseClusterMBean methods to built-in Java exceptions so that they can be interpretted by a remote JMX client.
Committed by PF. -
Added distributable locking to prevent multiple simultaneous synchronizations on the same cluster.
Committed by PF. -
Added configurable timeout attribute to DTD for distributable operations.
Committed by PF. -
Moved SELECT ... FOR UPDATE pattern definition to dialect.
Committed by PF. -
Fixed IndexOutOfBoundsException during database activation when one or more databases in the cluster is not alive.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.1-beta-2 (January 23, 2006)
Changes to dependencies
-
Upgraded JiBX to version 1.0.1.
Committed by PF. -
Upgraded JGroups to version 2.2.9.1.
Committed by PF. -
Retrotranslator (http://retrotranslator.sf.net) leveraged for JDK 1.4 compatibility.
Build script generates separate 1.4 jar and includes additional dependencies.
Committed by PF.
Changes to code
-
Recorded Operations are stored in a Map keyed by class instead of a List to prevent unnecessary boundless growth.
Committed by PF. Thanks to Ilkka Lassila. -
DifferentialSynchronizationStrategy generates bad DELETE statements when table has multiple primary keys.
Committed by PF. Thanks to Kurt Huwig. -
Fixes german error message translations.
Committed by PF. Thanks to Kurt Huwig. -
DatabaseClusterFactory.createDatabaseClusterFactory() throws RuntimeException instead of SQLException to prevent java.sql.DriverManager from masking root cause of HA-JDBC configuration failures.
Committed by PF. -
Fixes potential NullPointerException if database is deactivated as a result of a read operation.
Committed by PF. -
Migrated code base to Java 1.5.
Committed by PF. -
Replaced Balancer.toArray() : Database[] with Balancer.list() : List<Database>
Committed by PF. -
Added requiresTableLocking() method to SynchronizationStrategy interface.
Committed by PF. -
During database activation, table locking is only performed if required by synchronization strategy.
Committed by PF. -
All vendor specific customizations to HA-JDBC are now encompassed in the Dialect attribute of a cluster.
This replaces the validate-sql attribute of a cluster; and the truncateTableSQL, createForeignKeySQL, dropForeignKeySQL, createUniqueKeySQL, and dropUniqueKeySQL properties of the diff and full synchronization strategies.
Committed by PF. -
Created dialects for PostgreSQL, MaxDB, Derby, HSQLDB, and a default dialect.
Committed by PF. -
Changed default table locking query used during synchronization to use an innocuous UPDATE statement.
Committed by PF. -
Added more explicit logging for exceptions thrown during HA-JDBC initialization that end up getting masked by JiBX.
Committed by PF. -
Added missing rollback to exception handling in diff and full synchronization strategies.
Committed by PF. Thanks to Kurt Huwig. -
In distributable mode, JGroups channel and protocols are registed with the mbean server.
Committed by PF. -
Removed obsolete net.sf.hajdbc.sql.pool.xa and net.sf.hajdbc.sql.pool packages.
Committed by PF.
Changes to tests
-
Unit tests now use EasyMock 2.0.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Ilkka Lassila, Kurt Huwig.
Version 1.1-beta-1 (December 13, 2005)
Changes to dependencies
-
New dependency on JDK 1.4 backport of JDK 1.5 java.util.concurrent package.
Committed by PF. -
Upgraded JGroups to version 2.2.9.
Committed by PF.
Changes to code
-
Uses configurable thread pooling for asynchronously executed write operations for improved efficiency and fault tolerance under high load.
Committed by PF. -
Uses default-minimalthreads.xml from JGroups distribution as default distributable protocol.
Committed by PF. -
Synchronization strategies now use schema qualified table names when appropriate.
Committed by PF. -
Fixed problematic co-dependency between DatabaseCluster and ConnectionFactory.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0 (September 22, 2005)
Changes to documentation
-
Added FAQ section for manually deleting local cluster state.
Committed by PF. -
Added FAQ section for distinguishing application database users vs. HA-JDBC database users.
Committed by PF.
Changes to dependencies
-
Upgraded EasyMock to version 1.2.
Committed by PF.
Changes to code
-
Fixed JDK 1.4 source compatibility issues.
Committed by PF. Thanks to Roman Kurmanowytsch. -
Added explicit logging to expose root causes of exceptions that are hidden by JiBX.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Roman Kurmanowytsch.
Version 1.0-rc-5 (September 15, 2005)
Changes to code
-
During DatabaseClusterFactory initialization, if no mbean server can be found, an exception is thrown, rather than attempting to create a new one.
Committed by PF. -
Quote all identifiers used in synchronization to prevent SQL syntax errors in identifier is a reserved word.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-rc-4 (September 6, 2005)
Changes to documentation
-
Added FAQ section for running HA-JDBC under Tomcat 5.0.
Committed by PF.
Changes to code
-
Correct error message when connection to config url fails.
Committed by PF. Thanks to Nick Rudnick. -
Avoid wrapping SQLException cause when a database operation fails.
Committed by PF. -
Fixed readProperties() and writeProperties(...) methods of AbstractSynchronizationStrategy to ignore the property "class".
Committed by PF. Thanks to Matthew Wooller. -
Reintroduced PassiveSynchronizationStrategy.
Committed by PF. -
Added logic to LocalDatabaseCluster.loadState() to validate locally persisted cluster state.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Matthew Wooller, Nick Rudnick.
Version 1.0-rc-3 (August 23, 2005)
Changes to code
-
Fixed NullPointerException bug in LocalDatabaseCluster.loadState().
Committed by PF. -
Distributable database activation commands should not reinvoke synchronization.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-rc-2 (August 21, 2005)
Changes to code
-
SELECT...FOR UPDATE queries are now detected and distributed to each database cluster node.
Committed by PF. -
Corrected German translation of error messages.
Committed by PF. Thanks to Nick Rudnick. -
Fixed infinite loop in AbstractSynchronizationStrategy.getProperties().
Committed by PF. -
Fixed bug in LocalDatabaseCluster.loadState() when cluster is empty.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Nick Rudnick.
Version 1.0-rc-1 (August 2, 2005)
Changes to documentation
-
Upgraded Forrest documentation to version 0.7.
Committed by PF.
Changes to dependencies
-
Upgraded JGroups to version 2.2.8.
Committed by PF. -
Upgraded JiBX to version 1.0-rc-1.
Committed by PF.
Changes to code
-
Refactored HA-JDBC initialization and DTD. Synchronization strategies are now shared across all clusters. Each cluster defines a default synchronization strategy.
Committed by PF. -
Added properties to cluster configuration to allow DataSources to define custom JNDI environment parameters and to allow Driver to define additional runtime parameters.
Committed by PF. -
Changed default JGroups protocol stack to use FD instead of FD_SOCK.
Committed by PF. -
activate(String) method in DatabaseClusterMBean interface will synchronize using the default synchronization strategy for the cluster.
Committed by PF. -
Removed getSynchronizationStrategies() from DatabaseClusterMBean interface.
Committed by PF. -
Fixed ClassCastException during XADataSource initialization.
Committed by PF. -
SQLException wrapper properly reports vendor-specific error code and SQL state.
Committed by PF. -
Updated DifferentialSynchronizationStrategy to use PreparedStatements for inserts and deletions instead of using problematic updatable result set methods.
Committed by PF. -
Fixed DifferentialSynchronizationStrategy to drop and re-create unique keys on each table to prevent possible unique constraint violations during sync.
Committed by PF. -
DifferentialSynchronizationStrategy now correctly compares byte[] columns.
Committed by PF.
Changes to tests
-
Migrated unit tests from TestNG to JUnit in order to utilize EasyMock.
Committed by PF. -
Added unit tests for net.sf.hajdbc.sql package.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-8 (April 27, 2005)
Changes to dependencies
-
Upgraded JiBX to version 1.0-rc-0.
Committed by PF.
Changes to code
-
Cluster state is now persisted locally so that it can be restored between application restarts.
Committed by PF. -
Added customizable fetchSize property to each synchronization strategy to avoid out of memory errors when synchronizing large tables.
Committed by PF. -
Fixed issue with driver returning non-distributable connections when in distributable mode.
Committed by PF. -
Fixed issue in DifferentialSynchronizationStrategy with some updatable result set implementations where inserted rows were deleted again.
Committed by PF. -
Fixed ClassCastException in Connection.releaseSavepoint(Savepoint) and Connection.rollback(Savepoint) methods.
Committed by PF. -
Minor fixes to zero weight handling in random and load balancers.
Committed by PF. -
Corrected German translation of error messages.
Committed by PF. Thanks to Oezcan Acar. -
executeWriteToDatabase() will now throw SQLException for Statements and ResultSets if some valid databases fail while others succeed and auto-commit is off, giving the client the opportunity to rollback the current transaction.
Committed by PF. -
Connection.isReadOnly() was changed from executeReadFromDatabase() to executeReadFromDriver().
Committed by PF. -
Refactored java.sql.* proxy classes.
Committed by PF.
Changes to tests
-
Added TestNG unit tests for Driver, Connection, Statement, and each balancer implementation.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
Oezcan Acar.
Version 1.0-beta-7 (April 5, 2005)
Changes to code
-
Fixed buggy weighted round-robin algorithm.
Committed by PF. -
Round-robin balancer now handles databases with 0 weight properly.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-6 (March 31, 2005)
Changes to code
-
Database cluster now specifies 1 of 4 different strategies for balancing read requests: simple, random, round-robin, or load.
Committed by PF. -
A database can define a weight to affect how it is prioritized by the balancer.
Committed by PF. -
In distributed environment, a database cluster will get its initial state from the JGroups group coordinator.
Committed by PF. -
Fixed bug where auto (i.e. non-manual) database deactivation behaved locally even if environment is distributed.
Committed by PF. -
Fixed bug where synchronization strategies will fail if foreign key constraints have names that require quoting (e.g. $1, $2).
Committed by PF. -
Lots of refactored code. Most notably, the HA-JDBC driver has moved to net.sf.hajdbc.sql.Driver
Committed by PF. -
Protocol parameter is now optional for distributable clusters.
Committed by PF. -
Added error message translations for German, Spanish, French, Italian, and Portuguese.
Committed by PF. Thanks to AltaVista Babel Fish. -
Added error message for tables without primary keys in DifferentialSynchronizationStrategy.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
This is a list of other contributors:
AltaVista Babel Fish.
Version 1.0-beta-5 (March 3, 2005)
Changes to code
-
Added better data type support for SynchronizationStrategy properties.
Committed by PF. -
Fixed Java 1.4 compatibility.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-4 (February 18, 2005)
Changes to documentation
-
Fixed various bugs in documentation and javadoc.
Committed by PF.
Changes to code
-
getActiveDatabases() and getInactiveDatabases() no longer throw SQLException
Committed by PF. -
Configuration DTD updated: Synchronization strategies and properties are now explicitly defined per cluster.
Committed by PF. -
Added getSynchronizationStrategies() method to cluster management interface.
Committed by PF. -
Changed symantics of activate(...) methods on management interface: activate(String, String) uses synchronization strategy identifier instead of class name; activate(String) now activates a database without synchronizing.
Committed by PF. -
PassiveSynchronizationStrategy is obsolete. Use activate(String) instead.
Committed by PF. -
synchronize() method of SynchronizationStrategy interface no longer uses DatabaseClusterDescriptor.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-3 (February 7, 2005)
Changes to code
-
All log/exception messages are now localized.
Committed by PF. -
Driver is no longer required when defining a driver-based cluster since underlying driver already be registered via the jdbc.drivers system property.
Committed by PF. -
Fixed bug in SQLException when nested exception chain is already initialized.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-2 (January 8, 2005)
Changes to documentation
-
Upgraded Forrest documentation to v0.6.
Committed by PF.
Changes to code
-
Added JMX interface to DatabaseCluster to allow administration of each cluster.
Committed by PF. -
Refactored cluster initialization and management.
Committed by PF. -
Distributable behavior implemented using command pattern.
Committed by PF. -
Restructured configuration DTD adding new synchronization-related cluster properties.
Committed by PF. -
Refactored distributable behavior to support activation.
Committed by PF. -
Added ability to activate a failed database.
Committed by PF. -
Created database synchronization strategies used during activation.
Committed by PF. -
Allow simple names for DriverManager-based database cluster.
Committed by PF. -
Enhanced large object support.
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-beta-1 (October 1, 2004)
Changes to dependencies
-
Upgraded JGroups to v2.2.7
Committed by PF.
Changes to code
-
Fixed bug in connection.rollback()
Committed by PF. -
Fixed logic in PreparedStatement/CallableStatement.setXXXStream() and ResultSet.updateXXXStream() methods
Committed by PF. -
Optimized asynchronous execution of write operations.
Committed by PF. -
Improved consistancy of cluster when autocommit is true.
Committed by PF. -
Prevent multiple logging of database deactivation
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-alpha-3 (August 30, 2004)
Changes to dependencies
-
Upgraded JGroups to v2.2.6
Committed by PF.
Changes to code
-
Configuration DTD is now PUBLIC
Committed by PF. -
Fixed thread safety bug in SQLProxy.executeWrite()
Committed by PF. -
Changed license to LGPL, added license details to source code
Committed by PF. -
Removed obsolete RowSetProxy class, javax.sql.RowSet implementation are implicitly supported
Committed by PF. -
Refactored package names to reflect project name
Committed by PF. -
Replaced CHANGES.txt with this page
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).
Version 1.0-alpha-2 (July 17, 2004)
Changes to code
-
Added ability specify location of configuration file using a system property
Committed by PF. -
Extended classpath search for configuration file to include system classpath
Committed by PF. -
Fixed DataSource proxy initialization
Committed by PF. -
DriverProxy now expects the cluster name to match the JDBC url
Committed by PF. -
Several refactorings affecting configuration dtd
Committed by PF. -
Fixed bug in clean target of ant build file
Committed by PF.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Paul Ferraro (PF).


