TAO 2.0a Release Announcement

ACE+TAO 2.0a is now available for download.  Please see https://downloads.opendds.org/TAO-2.0a for the download. Our sincere thanks to the large community of ACE+TAO users and contributors, without whom this release would not have been possible.

TAO 2.0a derives from the DOC TAO 2.0.4 micro kit with bugfix-related patches selectively applied to enhance stability. A record of applied patches can be found in OCIChangeLog files installed with the distribution.

Many important new features and bug fixes have been introduced in TAO 2.0a. They are described briefly here. These and many other features of TAO 2.0a are detailed in OCI's TAO Developer's Guide, Version 2.0a, which will be available separately. For a detailed description of the motivation for and implementation of a particular change, see the appropriate OCIChangeLog or ChangeLog file in the TAO 2.0a source code distribution, such as ACE_wrappers/OCIChangeLog, ACE_wrappers/TAO/OCIChangeLog, ACE_wrappers/TAO/CIAO/OCIChangeLog and ACE_wrappers/TAO/DAnCE/OCIChangeLog. Some ChangeLog entries may include a "ticket" number (e.g., [RT 12345]), to help customers track specific changes they have sponsored.

Features added since TAO 1.6a

Many features have been added to ACE and TAO since the release of TAO 1.6a. A comprehensive listing is available in the NEWS files of each of the major package root directories. See in particular summaries from the top of the file down to the x.6.7 release.

The following list provides some highlights.

  • Added build support for the Android native development environment.
  • Many performance improvements to the TAO core libraries.
  • Improved support for the use of mt_noupcall wait strategy.
  • Improved performance of the Parallel Connect Strategy.
  • Improved Unicode compatibility, including WinCE support.
  • Improved service configuration processing.
  • Updated ZIOP to match the OMG Beta 2 specification.
  • Sequences can now optionally check to see if an element request is beyond the length of the sequence. When encountered, a BAD_PARAM exception is raised. This is enabled by default in debug builds, and can be explicitly enabled by defining TAO_CHECKED_SEQUENCE_INDEXING in your ace/config.h file.
  • New ORB initialization options added: -ORBHandleLoggingStrategyEvents -ORBIgnoreDefaultSvcConfFile -ORBForwardOnceOnObjectNotExist -ORBForwardOnceOnCommFailure -ORBForwardOnceOnTransient -ORBForwardOnceOnInvObjref See TAO/docs/options.html or the TAO Developer's Guide 2.0a for details about these new options. - Deprecated configuration options removed: -ORBConnectionCachingStrategy -ORBObjectKeyTableLock -ORBPOALock

The IDL Compiler has undergone significant improvement since TAO 1.6a. Detail of these changes can be found in TAO/docs/compiler.html and in the TAO Developer's Guide 2.0a. Here are highlights of the changes:

  • Added support for IDL3+ keywords.
  • Improved the speed of processing large files with many module reopenings.
  • Many changes to improve the support for generating CCM related files.
  • Anonymous type use now triggers an error. This behavior can be modified by compiling with options described in docs/compiler.html.
  • Added new command line option -iC to override the default include path for *C.h files included in generated *A.h files.
  • Added code generation for export header files.
  • Initial support for IDL->C++ mapping added, including support for std::string and std::vector use.
  • Renamed ALL ORB service executables. There were many instances where services from multiple vendors were installed on the same host. Adding tao_ to the name of the service makes it unambiguous which vendor's service is being invoked. To see the full list, look at the changes between TAO-1.8.2 and TAO-1.8.3 in TAO/NEWS.
  • The Naming service may now be run with multiple processing threads.
  • Many improvements to the Notification service are available including:
  • The Monitor/Control feature now works in static builds.
  • The Monitor nw reports queue-overflow and has improved reporting of queue depth.
  • Codeset negotiation support in the notification service is now a compile-time option.
  • The -ORBRunThreads option is now called -RUNThreads.
  • The clean up of proxies when a peer dies has been improved.
  • Topology persistence now includes persisting filters.
  • Improved the Implementation repository performance - Added a new utility, tao_logWalker to assist with the diagnosis of problems that may span many processes in a distributed system.

Important bug fixes since TAO 1.6a

Many bugs have been fixed or work-arounds provided since TAO 1.6a. For more details, see the release announcements for the intervening DOC group beta kits (from 1.6.7 to 2.0.4), the ChangeLogs, and the DOC group Bugzilla bug database found at http://bugzilla.dre.vanderbilt.edu. A summary and selection of the more important fixes are listed below.

Fixed many ACE bugs:

  • bug #3336 was added for the formatting of time values.
  • bug #3104 regarding interval timers.
  • bug #3729 regarding INET multicast addresses.
  • Addtional bugs fixed: 2748, 3164, 3480, 3494, 3502, 3541, 3542, 3544, 3557.

Fixed many TAO bugs:

  • Addressed several Coverity reported issues.
  • Fixed several bugs related to recursive typecodes.
  • bug #2200, cleaned up issues in the IDL compiler
  • Fixed optional ostream operator generation for IDL arrays
  • Fixed missing request id in logging of LocateRequest/LocateReply & CancelRequest.
  • Fixed problems with ORB shutdown in combination with active requests.
  • Fix problem in the IDL compiler where set/get methods for attributes in a local interface derived from a non local interface where not regenerated as pure virtual
  • Fixed some bugs concerning spaces within roots, to allow TAO_IDL to be used by user projects that are installed on windows paths such as "c:\Project Files\..." or "c:\Documents and Settings\.." etc.
  • Fixed bug in code generation for components, where a derived component or home with more than one generation of ancestors was missing inherited operations in its operation table
  • Corrected TAO_IDL dds code generation to count WChar size for wstring marshal size. - bug #3688, Notification Service filter constraint expressions were being ignored when event type domain_name or type_name is specified.
  • Fixed IDL compiler bug that in some cases caused code generation for inherited operations to be skipped.
  • Fixed several bugs related to the purging of transports when the cache is almost full.
  • bug #3543, Fixed race condition when multiple threads make a connection to the same server
  • Fixed some race conditions in the transport cache.
  • Fixed memory leaks and make sure the TAO singletons are destructed when the TAO DLL gets unloaded.
  • Fixed memory leak in string and object reference sequences.
  • Additional bugs fixed: 3078, 3499, 3524, 3543, 3549, 3557, 3559, 3853.