Many important new features and bug fixes have been introduced in TAO 1.5a.
They are described briefly here. These and many other features of TAO 1.5a are
detailed in OCI's TAO
Developer's Guide, Version 1.5a, which will be available separately.
For a detailed description of the motivation for and implementation of a
particular change, see the appropriate
file in the TAO 1.5a source code distribution, such as
ACE_wrappers/TAO/DevGuideExamples/ChangeLog. Some ChangeLog
entries may include a "ticket" number (e.g.,
[RT 1234]), to help
customers track specific changes they have sponsored.
Features added and bugs/fixes in TAO 1.5a_p15
- Various fixes to Mac OS X and VxWorks platforms.
- Various updates to MPC including enhanced gnuace support.
- Updated support for the Sun Studio 12 Update 1 compiler.
- -ORBUseSharedProfile now defaults to true.
- Merged fix for bug #3695 from TAO 1.6a.
- Merged -ORBUseSharedProfile fixes from TAO 1.6a.
- Corrected TAO_IDL wchar code generation behavior.
Features added and bugs/fixes in TAO 1.5a_p14
- Fixed bug #3704 [RT 13148] which could cause a thread
to loop with high CPU usage when the Blocking flusing
strategy is used with a server-side ORB.
- Fixed Bugzilla #3688 that TAO_Notify_Constraint_Interpreter::build_tree()
ignored the filter constraint expression when event type is defined.
- Added feature to forward request just once upon OBJECT_NOT_EXIST,COMM_FAILURE,
TRANSIENT and INV_OBJREF exceptions. (RT12994)
- Fixed case where the notification service would fail to enqueue without
printing a warning.
- Added support for Sun Studio 12 Update 1 compiler.
Features added and bugs/fixes in TAO 1.5a_p13
- Merged in coverity fixes from DOC repository.
- Made the ServerId be part of ServerInfo in IMR to help identify server process.
Added -UnregisterIfAddressReused option to IMR to enable the address reuse checking
upon server registering. The servers that address is reused are unregistered from IMR.
These changes support the capability of client automatically reconnects servers within same
port range upon server restart. (RT 12912)
- Added -ORBForwardInvocationOnObjectNotExist option to forward request to
next available profile upon receiving OBJECT_NOT_EXIST exception reply.
This is to support the capability of client automatically reconnects servers within same
port range upon server restart. (RT 12912)
Features added and bugs/fixes in TAO 1.5a_p12
- Fixed two bugs in the TAO transport: 1) Multiple followers can now
wait on the same connection event. 2) Added locking for the transport's
- Fixed Bugzilla 1884 - Notification Service: reconstruct the constraint expression
with event type and the expression provided by user so the
event types of a constraint are evaluated as well.
Features added and bugs/fixes in TAO 1.5a_p11
- Corrected problem in ACE's auto-determination of endian-ness on Itanium (IA64) platform, addressing RT 12823.
- Added log file size limiting and rotation capability to Notification
- Fixed filter persistent issue in Notification Service.
- Added stale proxy cleanup feature in Notification Service.
- Fixed default ConsumerAdmin and SupplierAdmin accessor based on spec.
Features added and bugs/fixes in TAO 1.5a_p10
- Fixed Notify service filtering to allow filterable header and body sequences to be length-checked like ordinary sequences.
- Notify service default consumer or supplier admin object's filter combining operation configurable via svc.conf. Default is still OR.
Fixed Notify service crash upon consumer shutdown [RT 12574].
Fixed Bug 3277, which
incorrectly mark non-permanent forwarding as permanent. This solved stub crash due to
accessing nil forward_profiles_ pointer in a client's special use case.
Added support for the upcoming OpenDDS 1.3 release.
Fixed DOC bugs 3393 and 3480.
Fixed DOC bug 3430.
Fixed a bug where a crash could occur while demarshaling a typecode.
Fixed nsadd/nsdel/nslist to work correctly with --max command line option [RT 12529].
Integrated fix for DOC bug 3165 from DOC repo, correcting memory leaks in SSLIOP.
Updated keys and certificates for Bidirectional security test until approximately Oct 2009.
Features added and bugs/fixes in TAO 1.5a_p9
Added Windows CE version 6 as a supported platform.
Added an option to the ACE_Process_Options class to use a wchar_t environment buffer on Windows.
Added support for Solaris Nevada (5.11).
Added a -m option to the ImplRepo (ImR, Implementation Repository) Activator,
which specifies the maximum number of environment variables which will be
passed to the child process. The default (and previous behavior) is 512.
Fixed Bug 3163, which
impacts sending large reply messages with -ORBFlushingStrategy blocking.
- Added code to support LynxOS-se.
- Incorporated a fix to an improperly checked POSIX fla
- Fixed problem in the Notification Service where a
properly shutdown channel to a subscriber that was
restarted on the same port would fail. This fixes
- Added global less than operator for TAO::String_Manager.
This is required by OpenDDS to support string type DCPS_DATA_KEY.
- Changed TAO_IDL idl_parse_line_and_file() function to compare the
full path to avoid not matched path problem when one uses full path
and the other uses relative path.
- Made changes in TAO_IIOP_Acceptor to allow TAO work on hosts with
only IPv4 when TAO is built with ACE_HAS_IPV6 and
ACE_USES_IPV4_IPV6_MIGRATION both set.
Features added and bugs/fixes in TAO 1.5a_p8
Fixed IFR issues related to the use of and browsing of declared but
undefined structs. This solved some crashing problems in the IFR
Service as well as strange behavior from the client's perspective.
Added a new ORB parameter, -ORBAcceptErrorDelay, that controls the amount
of time to wait before attempting to accept new connections when a
possibly transient error occurs during accepting a new connection.
Extended the Notification Monitor Control by adding the ability to remove
consumer and supplier proxies and consumer and suplier admins.
Fixed a bug in the AV Streams core that caused problems with multi-stage
Fixed an issue where invocations on servants with the
TAO::SYNC_DELAYED_BUFFERING policy enabled that caused a new connection
would have delayed sending of data. Now, data is sent directly after
the connection completes.
An experimental API, ACE_Stack_Trace, has been added to allow users to obtain
a stack trace within their application. It is not supported on all plaforms
at the moment, but will be refined and possibly extended to more platforms
for the next patch release.
Generated GNU makefiles for statically linked executables will no longer
be generated with both -lfoo and libfoo.a in the link line.
Features added and bugs/fixes in TAO 1.5a_p7
Notification Service Monitor and Control will not report queue sizes for empty queues.
Notification Service Monitor and Control: Statistics will be captured for each Consumer
Admin that can be used to calculate average, standard deviation, maximum, and most
recent queue depth. These statistics may be viewed individually, or combined to
produce statistics for the entire channel containing the Consumer Admins.
Notification Service Monitor and Control: A new control function has been added to
allow individual consumers or suppliers to be forcibly disconnected.
Improved support for VxWorks 6.2 and added initial support for VxWorks 6.5-6.6.
Features added and bugs/fixes in TAO 1.5a_p6
Fixed send side logic (both synchronous and asynchronous) to honor timeouts. An RTT enabled
two-way or one-way invocation could earlier hang indefinately if tcp buffers were flooded.
Notification service Monitor and Control will now return zero for oldest event wait time if no events are queued.
Formerly it returned ACE_Time_Value::max converted to a double which is hard to work with.
Features added and bugs/fixes in TAO 1.5a_p5
- Added list() iterator functionality for the Naming Service when using the -u persistence option.
- Added -T option to tao_ifr to allow duplicate typedefs in IDL files.
- Fixed recursion of IDL structs and unions in the IFR.
- Fixed a low-probability race condition when initializing static instances of classes that use static ACE_Atomic_Op instances.
- Fixed a bug where the Custom Servant Dispatching Thread Pool Strategy would fail to re-initialize if the ORB was destroyed and then re-created.
Features added and bugs/fixes in TAO 1.5a_p4
- NotifyExt named proxy associations now get automatically cleaned upon client 'disconnect'.
- Added support for VxWorks 6.4
Features added and bugs/fixes in TAO 1.5a_p3
- Modified the definiton of ACE_DEFAULT_THREAD_KEYS on Windows so it
is based on the version of the OS as defined by
Microsoft in this web page
This fixes bugzilla #2753
- Symlinks in $ACE_ROOT/lib are now relative by default. The earlier
style of having absolute symlinks made it hard to relocate the
- The refactored TAO Transport Cache has improved normal-path performance.
This also fixed at least one known fatal race condition.
in the invocation pathway.
Features added and bugs/fixes in TAO 1.5a_p2
- Fixed a hanging issue in persistent Notify Service during disconnection.
- Added a new interface that allows monitoring
of activities within the Notification Service.
Completely configurable through the Service
Configurator, the monitoring capabilities are only
in effect when chosen by the user. When the
monitoring capabilities are enabled, an outside
user can connect to a service that allows querying
statistics gathered by the Notification Service.
- Modified the Transport_Cache to eliminate a problem in which
too many connections were opened to the same endpoint -- thereby
wasting file handles.
- Fixed problems with the -ORBMuxedConnectionMax n option that could
cause hangs or crashes when this option was used.
- Fixed a bug in the Notify Service where events
sent (to a persistence enabled Notify Service)
by a supplier after a consumer "crashed" would
not be resent upon consumer reconnect.
- Fixed a bug in Collocated_Invocation that rethrows a
user exception that is not in the signature list. See
bug bugzilla 2064 for more information.
- Fixed an access violation in the transport object in
TAO_Connector after wait_for_transport() has error.
Made wait_for_transport() have return code and corrected
the transport reference counter based on the return code.
- Fixed bugzilla 2839, when an union is created by default
and the discriminator is for a value that is allocated
from the heap, allocate a value or else we will get
a crash when marshaling the default union.
- Fixed a bug that the typecode for recursive valuetypes
does not generate correctly as recursive. See bug 2776
for more information.
Features added and bugs/fixes in TAO 1.5a_p1
Changed the Notify Event Channel POA to be
persistent to allow restarting the
Notify_Service on the same host and port to
have the same IOR as a previous run.
Enhanced TAO_IDL's support for OpenDDS. This
version of TAO is compatible with OpenDDS 1.0. See
The TAO_IORManip library now has a filter
class that allows users to create new object
references based on existing multi-profile
object references by filtering out profiles
using user defined criteria. The use of
-ORBUseSharedProfile 0 is required for this to
Fixed a bug in the logic of transport connectors
and transport cache management in which a client
could create "too many" connections to a given
server endpoint in multi-threaded and
nested-upcall situations. Several connection
attempts might be tried before the first one had a
chance to complete. Now, subsequent requests can
wait for the first connection to be completed.
Also, fixed the implementation of the
-ORBMuxedConnectionMax option to avoid deadlocks
when the maximum number of allowed connections to
a server is reached. See DOC Group Bugs 2934 and
2935 and the new TAO/tests/ThreeTier/ for more information.
Pending bugs/fixes in TAO 1.5a
Rename README to be DOC-README, and add a prefix directing support requests to
OCI rather than to the DOC Group.
Add an OCI specific README file.
Features added to TAO 1.5a since TAO 1.5.6
Fixed a memory crash problem when using ETCL IN operator with Notify Service
Features added since TAO 1.4a as part of TAO 1.5.6
Better handling of partial and fragmented GIOP messages.
SHMIOP now supports dotted decimal addresses.
Enhancements to the TAO IDL compiler.
Support for visibility attributes of GCC.
Many TAO core and orbsvcs libraries have been refactored.
The ACE exception macros have been deprecated.
Versioned namespaces for ACE and TAO are supported.
Improved RTCORBA support.
TAO's sequence implementation has been rewritten.
The COIOP (Collocated Only IOP) pluggable protocol has been added.
The Transport::Current feature (providing transport statistics) has been added.
ORB-local configuration via Service Gestalt.
Parallel Connect Strategy.
Optimized Connection (OC) Endpoint Selector.
Support for the CORBA/e compact profile.
Support for POAManagerFactory.
Endpoint Policy (applied to POAManagerFactory) to constrain the endpoints
placed in profiles in IORs (e.g., on multi-homed hosts).
Important bug fixes since TAO 1.4a
Many bugs have been fixed or work-arounds provided since TAO 1.4a. For more
details, see the release announcements for the intervening DOC group beta kits
(from 1.4.4 to 1.5.6), the ChangeLogs, and the DOC group Bugzilla bug database
found at http://deuce.doc.wustl.edu/bugzilla/index.cgi.
(Ported from the DOC group version 5.5.7):
ACE_Log_Record (ACE_Log_Priority, long,
long) constructor, the second argument,
long time_stamp, was changed to be of
time_t. This aligns the type with
the expected value, a time stamp such as that
ace/Time_Request_Reply.cpp files were
The time arguments in the public API to
ACE_Time_Request were changed from
the portions of the on-wire protocol that contains
time was changed from
ACE_UINT64. Thus, code that uses the
ACE_Time_Request class to transfer time
information will not interoperate properly with
prior ACE versions. This will affect uses of the
netsvcs time clerk/server.
The portion of the
class that carries the on-wire seconds portion of a
timeout value was changed from
This means that Name server/clients at ACE 5.5a and
higher will not interoperate properly with previous
ACE versions' name servers/clients.