We are pleased to announce a new beta of ACE-5.4.9, TAO-1.4.9, and
CIAO-0.4.9. The documentation for this beta kit will be available shortly.
We are still working very hard on the x.5 release, which is scheduled to be
released by the beginning of March if all goes well.
We wanted to get this new beta out to fix several important bugs
reported by our
users, which we greatly appreciate, as always. We've also added a number
to the various components in ACE, TAO and CIAO.
As usual the latest release is available at:
The doxygen documentation for the beta is also available.
We encourage you to download the new beta, use it with your
applications, and let us know if you encounter any problems. Please use
so that we have the version/platform/compiler/options you're using to
report problems. We also request that you take a look at
for the status of various ongoing projects at the DOC groups of WashU,
UCI, and Vanderbilt to move ACE+TAO+CIAO forward. Overviews of our
recent progress and upcoming plans are available at
The overall success rates for the test results gathered from all our
daily builds is 95.68% for the ACE tests and 88.6% for the TAO tests.
for a summary of these tests. Our goal is to get these tests close to
100% for the x.5 release. We appreciate your help in resolving
the remaining problems.
The following is a list of key changes since the last beta. Please
refer to the corresponding ChangeLog files for more details on the
problem and the nature of fixes applied.
Changes to ACE
.. Added dozens of new ACE_LACKS and ACE_HAS defines which are used to
simplify the ACE_OS layer
.. Constructors of ACE_Time_Value have been made explicit to prevent
.. Added a shutdown() method to ACE_Barrier. The new method aborts the
wait by all threads.
.. Changed the behavior of ACE_Message_Queue::enqueue_head() and
enqueue_tail(). If the enqueued message block has other blocks
chained to it via its next() pointer, the entire chain of blocks
will be enqueued at once.
.. Improved the support for high-resolution timers with
.. Make it possible to disable file caching in JAWS.
.. Improved ACE_Pipe implementation so that it uses localhost to avoid
.. Added Unicode support to the Service Configurator.
Changes to TAO
.. (OCI) Added new endpoint selector implementation - Optimized
Connection Endpoint Selector. A member of the tao/Strategies library,
use svc.conf file to load the OC_Endpoint_Factory object. See
tests/AlternateIIOP/svc.conf for an example.
.. Continued splitting ORB Services into stub, skeleton, and
implementation libraries. Changes to the Concurrency Service,
Property Service, and RTEventLog Admin Service (TAO's RTEvent
varient of the OMG Telecom Log Service) have been committed.
.. Added a new ORB run-time option "-ORBUseLocalMemoryPool [0|1]" which
controls an individual application's use of TAO's Local Memory Pool.
TAO can use a local memory pool to satisfy some of its needs for
heap storage, as it is often more efficient than using the
platform's default memory allocator. The pool will always grow as
large as necessary to satisfy memory allocations, but it will never
shrink. This means that sometimes a process can retain memory that
it no longer needs. If the default allocator is used then TAO gives
memory back as soon as it is not needed.
The UseLocalMemoryPool option selects between using the local memory
pool or using the default allocator, where 0 means don't use the pool,
1 means use the pool. The default is still controlled by the original
compile-time option controlled by the #define TAO_USE_LOCAL_MEMORY_POOL
which defaults to 1 if not specified.
.. Add a property -ORBKeepalive to allow a user to specify that
SO_KEEPALIVE is set on IIOP connections. See docs/Options.html
and Bugzilla #2374.
.. Add support for RTCORBA::TCPPrototocolProperties::keep_alive, when
RTCORBA is used, and the application is using a Server or Client
.. Refined the Telecom Log Service Strategy Interface. Added methods
to fetch/store capacity alarm thresholds, log QoS, and "week mask".
Rework locking to avoid race conditions and to improve performance.
.. Fixed bugs in Interface Repository.
- Fixed bug in the lookup of a valuetype member's type using its
- Fixed bug in IFR loader in checking for pre-existence before
creating an entry corresponding to an IDL typedef.
- Fixed bug in lookup when checking for a local name clash.
- Fixed bug in the describe_interface() operation when the IDL
interface being described has multiple parents.
Changes to TAO's IDL compiler
.. Fixed bug in computation of repository ids for predefined types.
.. Fixed bug in the handling of TAO_IDL_INCLUDE_DIR.
Changes to CIAO & DAnCE
.. RTTI enabled versions of the Xerces library are no longer needed on
.. DAnCE now supports dynamically adding/removing components
to/from the existing running assembly without shutting down the
running appliation. This will allow the application developers to
evolve their applications on the fly without incuring service down
time. The service is called ReDaC (Redeployment and Reconfiguration)
Basically ReDAC provides a whole range of redeployment and
reconfiguration granularity level, including:
1) Install/remove component instances of the existing component types.
2) Install/remove component instances of a different type, i.e., a
totally new type of component.
3) Install/remove component instances from an existing container.
4) Install new component instances into a dynamically created brand
Move around existing components from one existing container to
another existing/new container.
5) Install new component instances into another component server in
the same physical node.
6) Install new component instances into another component server
into a remote host.
To see how to use this feature, please see the ReDaC-Usage.html
under the $CIAO_ROOT/examples/Hello/ directory.
.. Removed the Old Config Handlers, which have been deprecated for some
time. Please see tools/Config_Handlers for the current version.
.. Added a step-by-step CoSMIC tutorial for modeling CIAO components
using PICML($CIAO_ROOT/docs/tutorials/CoSMIC). Using a simple Stock
Quoter system as example, this tutorial demonstrates all the steps
that needed to model Component-Based applications.
.. DAnCE now supports making connections among components across
different assemblies, and allow components to be "shared"
across assemblies seamlessly.
Internally, DAnCE provides a reference counting mechanism when
deploying/destroying components, and a reference count table
is maintained on each NodeManager.
From a deployer's point of view, if he/she chooses to deploy
a new assembly of component and simultaneously wants to reuse
previous deployed components in an existing running assembly,
then in the new deployment plan descriptor, he could refer
to an old component instance in the <InstanceDeploymentDescriptions>
XML tag. The "key" to identify the old component instance is
through the <Component_UUID, Node> pair, if such a key is found
present in a previous deployed assembly, then DAnCE won't
install this component instance (specified by the <Component_UUID>)
again, but instead it will increase the reference count of this
DAnCE also supports making connections from existing running
components to newly deployed components in another assembly, and
.. The RepositoryManager has been enhanced to support standards based
interfaces. A number of techniques have been used to ensure high
performance and scalability.
.. The RepositoryManager can now retrieve packages from remote locations via
.. The Target Manager is released with this CIAO release. It is an
infrastructure component which keeps track of resource usage in the
target domain. The initial domain configuration remains with the
Target Manager. A monitor framework has been built into Node Manager which
monitors the resources used within each host. This monitor reports its
data intermittently to the Target Manager which aggregates the data
received across all such hosts acroos the Target domain. The monitor
is implemented using a strategy pattern, thus enabling the plug-in of
new monitors which can monitor different resources in the domain. The
Target manager is a component thus it needs to be started using a
deployment plan. It is right now a optional component in the DAnCE
.. We added a skeleton implementation of the Resource Allocation and
Control Engine (RACE) which is a middleware framework built atop
CIAO/DAnCE that integrates multiple resource management algorithms for
(re)deploying and (re)configuring application components. We are in
the process of developing resource management algorithms (both
resource allocation and control algorithms) that will be a part of
Changes to CIAO's CIDL Compiler
.. The CIDLC compiler now supports basic preprocessor directives:
#ifdef, #ifndef, #else, and #endif as well as the -D command-
.. The CIDLC compiler now supports incomplete struct and union
semantics which will appear in CORBA 3.1.
.. TAO is not currently compliable with ACE_USES_WCHAR being set.
This is to be addressed in the beta x.5.2.
Bugzilla Bug Fixes
7 ACE bugs fixed:
2341, 2348, 2333, 2360, 2274, 2376, 2357.
19 TAO bugs fixed:
2303, 2305, 2306, 2307, 2308, 2309, 2325, 2328, 2343, 2347,
2354, 2361, 2362, 2365, 2372, 2373, 2374, 2381, 2392.
1 CIAO Bug fixed:
1717. (many other CIAO bugs have been fixed - they just weren't in the