This forum has been archived. Please start a new discussion on GitHub.

Ice 1.2.0 released!

ZeroC, Inc. is pleased to announce the availability of the Internet Communications Engine (Ice), version 1.2.0.

Changes since version 1.1.1 include:
  • A garbage collector for Ice for C++ that automatically resolves cyclic object dependencies in class instances. With this new addition, there is no longer any need to resolve cycles manually.
  • Ice no longer uses Xerces-C. Freeze now stores data in a much more efficient and compact binary format; for configuration purposes, Ice uses a light-weight XML parser based on Expat.
  • A new database migration tool supports the binary format used by Freeze, and provides much greater control over the migration process than the old XML schema based approach.
  • Freeze now uses transactions for all write operations. This reduces the likelihood of database corruption when an application is terminated abruptly.
  • The persistence strategies of the Freeze evictor have been replaced by a new saving mechanism: a background thread periodically saves created, modified and destroyed objects.
  • A new Freeze evictor index class provides easy-to-use and efficient secondary-key querying.
  • Freeze maps can now be updated using application-demarcated transactions. Concurrent access to the same on-disk map is now possible through the use of several map instances (typically one per thread).
  • Marshaling performance has been improved.
  • Ice now supports per-proxy default contexts.
  • Classes now have an ice_clone() operation that performs a shallow copy.
  • Numerous minor improvements and bug fixes.
For a detailed description of Ice, please have a look at For a comparison of Ice and CORBA, please see

In addition to traditional proprietary licensing models for commercial customers, Ice is also freely available as Open Source under the terms of the GNU General Public License (GPL). You can download the complete Ice source and documentation from