Microtec is pleased to announce a new release of our database replication engine, CopyCat Developer !
CopyCat Developer is a set of Delphi / C++Builder components providing customizable replication for Firebird, Interbase, Microsoft SQL Server, MySQL, NexusDB, SQLite, PostgreSQL and Oracle, including heteogenous replication between different database types.
Have a look at our site for more information : http://www.copycat.fr
This new release includes the following improvements:
* New error handling mechanism:
– Removed RPL$ERRORS table and TCcReplicator.LogErrors property.
– Added some new fields to RPL$LOG (ERROR_MESSAGE, ERROR_CONTEXT).
– Rows that cannot be replicated are now left in RPL$LOG with their ERROR_MESSAGE and ERROR_CONTEXT set.
* New option to keep rows in RPL$LOG
– A new property TCcReplicator.KeepRowsInLog allows you to keep replicated rows in RPL$LOG. This gives you a very detailed trace of everything that took place, and can be used instead of the depecated RPL$TRACE mechanism for debug purposes, or for auditing.
– Rows that have been replicated will have their RPL$LOG.REPLICATION_STATE set, so if you want to see the rows that need to be replicated, you check where REPLICATION_STATE is null.
– TCcReplicator: If a row can’t be replicated due to an error, we now place it in a list of failed rows, and continue to replicate. If the same row was changed again at a later point in the repliaction cycle, we skip it and leave it unreplicated. This is particularly important when using the new ReplicateOnlyChangedFields option, as data changes could otherwise get lost (and to avoid such problems, it would have been necessary to perform the entire replication cycle within a single transaction).
– TCcReplictor: Added a new SkipToRemote option in OnReplicationError event allowing you to skip replication of local rows if an error occurs, but to continue replicating the remote changes to the local database. This feature makes sense only if using ReplicateOnlyChangedFields. Using this option, you can ensure consistency (by rolling back when there is a replication error) without aborting replication altogether.
– TCcReplicator: Added queryPerformed parameter to OnRowReplFinishing and OnRowReplicated events, so that you can know what type of action was performed on the row (delete, update, or insert).
– TCcConnection: fixed a bug that sometimes caused an access violation when destroying a TCcConnection.
– Fix for SQL Server to correctly handle primary key fields of date or timestamp type.
– TCcConfig: fixed a bug causing the OnExecute event of the TCcConnection not to fire while using TCcConfig.
– TCcConfig: Added OnProgress event allowing you to keep the GUI active (using an Application.ProcessMessages for example) while configuring the databases.
– TCcConfig: Some internal meta-data caching during configuration so as to improve performance over slow connections.
– TCcConflictMgr: fixed a bug causing all the rows in RPL$LOG for a given row/table to be set to conflicted state rather than just the rows being replicated.
– FIREBIRD ONLY: Fixed a bug causing the new ReplicateOnlyChangedFields feature to fail when replicating floating point values on systems using a decimal separator other than ‘.’.
– FIREBIRD ONLY: Added a new RPL$NO_REPLICATION context variable. If you set this variable to ‘True’, the replication triggers will be by-passed. This is very useful if you want to execute a script that will cause massive updates to a large table.
– TCcLog: fixed a bug that caused the conflict detection mechanism to fail sometimes.
– TCcLog: fixed a bug that caused very bad performance when detecting a conflict using ReplicateOnlyChangedFields, in cases where there were a lot of changes in RPL$LOG.
– TCcQuery: Fixed a bug causing the OnExecute event not to get fired.
LINBIT, the leading provider of Linux based storage replication and disaster recovery, has announced the general availability release of its DRBD9 software. Developed to provide end-users, OEMs and ISVs a powerful tool to build redundant, highly scalable and flexible storage architectures, LINBIT’s new DRBD9 is the first replication design capable of connecting 30 nodes in real time to ensure data availability from multiple locations – even when disaster strikes.
Don’t try to read from an empty buffer
In some cases getSegment can get an empty (undefined) buffer which result to InternalError: "Cannot call method 'readUInt16LE' of undefined".
If you want to test apache with php 7 on windows here are the links
The firebird extensions are there, as you can see in
The first alpha for 7.0.0 was just released and can be downloaded from:
The Windows binaries are available at
This is the start of a new PHP era! Thanks everyone who made and helped
to make this happen. From now on we are looking straight forward to get
the final in time.
Please test it carefully, and report any bugs in the bug system.
Alpha 2 will be tagged on Tuesday 23th and released on Thursday 25th.
Kalle Sommer Nielsen, Anatol Belski and Ferenc Kovacs
Maximiliano Robain announced on django-firebird devel group :
I did just a little update on stable/1.6.x branch and a new release django-firebird v1.6.3. It includes a really minor fix on how catch and reraise exceptions and includes support for PEP 440 necessary to support PyPI updates.
The plan right now is to resume django 1.7 support (develop branch) and then continue with support for django 1.8 .
The idea is fix and close all open issues before merge it with master branch (now master branch == stable/1.6.x branch)
Any feedback is wellcome.
The incremental backup utility toolset nBackup is not a friendly beast. An operational misstep can break a database. Under load, in some conditions, it can be a database-killer without any human intervention, especially under Firebird v.2.1 or v.2.0.
There’s a proviso, though. A lot of the problem code was eliminated by a thorough revamp for Firebird 2.5. The threadability of attachments in v.2.5 is also thought to have reduced some of the instability of nBackup The improvements were not backported to the v.2.1 or 2.0 series because it was structurally infeasible.
This article is not a “How-to” for using nBackup. The Firebird Project documentation for proper use of this toolset is excellent and can be read or downloaded from the Documentation pages at the Firebird web site.