NOTE: | These release notes are current as of TAO 1.1a (which corresponds to OCI part number 021-01). The latest version of these release notes can be viewed or downloaded from OCI's web site at http://www.theaceorb.com/releasenotes. |
---|
Table of Contents
TAO 1.1a derives from the DOC 1.1.4 beta 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. At the time of this release, the current DOC beta kit is 1.1.10.
This CD's format is ISO-9660 with Rock Ridge and Joliet extensions. Thus, it should be readable on nearly every Unix platform (Rock Ridge extensions) as well as Windows (Joliet extensions). We mastered it using the freely-available mkhybrid tool, and recorded it using the freely-available cdrecord.
With the exception of Windows operating systems, building ACE and TAO from source code requires GNU Make. While you can use other tools to build applications using ACE & TAO, using GNU Make lets you leverage the existing build system distributed with ACE & TAO. If you need GNU Make, you can get a source distribution here as well as other places.
To install a Windows build of TAO 1.1a from CD, run setup on a Windows platform. Likewise, to install for a UNIX or UNIX-like platform, run setup on a UNIX or UNIX-like platform.
During installation, a dialog will ask you to select the service executables you wish to install. The dialog lists two event service executables, and does not provide much help in discerning the difference.
Select CosEvent to install the service executable for the OMG's CosEvent service; select Event to install the service executable for TAO's Real-Time Event service (RTEC).
TAO 1.1a includes support not only for GIOP 1.0 and GIOP 1.1, but also most of GIOP 1.2.
Several services were added including Concurrency Control, Load Balancing, Logging and Notification.
The TAO 1.1a release targets compliance with the CORBA 2.3 Specification, whereas TAO 1.0a targeted compliance with the CORBA 2.2 specification.
TAO 1.1a includes an implementation of the Interoperable Naming Service (INS).
TAO 1.1a includes support for Asynchronous Method Invocation and a subset of the QoS policies of the CORBA Messaging Specification.
TAO 1.1a includes in-progress support for the Real-time CORBA specification.
View runtime platform version information here.
-j
for GNU Make can cause
strange build errors when building code generated by
the IDL compiler if dependencies are not correctly
specified in the Makefile.
POA/TIE
test fails to build using the Sun Workshop 5.1/Forte compiler
platform_*
files for
these compilers, and will override any setting to the
contrary in your
platform_macros.GNU
. Also, the "old"
iostreams
library is used rather than the
"new" one.
Process_Manager_Test
fails on Solaris
Process_Manager_Test
fails when
compiled multi-threaded (i.e., using the -mt
option for SunCC or -D_REENTRANT linked with
-lthread for gcc) on SunOS 5.6-5.8. This is
not a bug in ACE, but rather a bug in
Solaris' thread implementation. The bug is documented
in the setitimer(2)
manual page, and
relates to the disposition of SIGALRM
in
the face of multiple threads. There is no known
workaround for this problem.
CORBA::Transient
errors with EAFNOSUPPORT
set
The problem's been
discussed on tao-users several times, and the
only workaround/explanation is to run the server
using -ORBDottedDecimalAddresses 1
.
The best guess is that it's related to delays during
name-to-address resolution.
CDR_Array_Test
fails to link on compilers using implicit template instantiation
CDR_Array_Test
fails to link when
compiled with compilers using implicit template
instantiation. We discovered this using the Sun
Workshop 4.2 compiler/linker where we got the
following error:
$ CC -mt -fast -O -DACE_NDEBUG -features=castop -DACE_LACKS_RTTI -xtarget=generic -D__ACE_INLINE__ -I/export/home/tao_builds/cleeland/tao11a/ocitao/ACE_wrappers/build/sunos56_sun42_d0o1 -DACE_HAS_EXCEPTIONS -o CDR_Array_Test .obj/CDR_Array_Test.o -mt -R /export/home/tao_builds/cleeland/tao11a/ocitao/ACE_wrappers/build/sunos56_sun42_d0o1/ace -R./ -xildoff -fast -xtarget=generic -L/export/home/tao_builds/cleeland/tao11a/ocitao/ACE_wrappers/build/sunos56_sun42_d0o1/ace -L./ -lACE -lsocket -ldl -lnsl -lgen -lposix4 Undefined first referenced symbol in file digits Templates.DB/[email protected] ld: fatal: Symbol referencing errors. No output written to CDR_Array_Test make: [CDR_Array_Test] Error 1This problem does not occur using explicit template instantiation.
The linkage failure is caused by a template's code referencing a static array declared in file scope. For the case of explicit template instantiation, this is okay because the instantiations remain in the same compilation/linkage unit as the static array. However, for implicit instantiation, the templates and the static array exist in separate compilation units, and standard linker rules do not permit visibility of the static array from the template instantiation.
At the time of this release, this failure's been fixed in DOC Beta kit 1.1.10 by moving the static array into the template itself.
This section contains a few things you will need to know to build applications which use the TAO and ACE libraries distributed on this CD. You can find more detailed information in bldgapps.html, adapted from the TAO Developer's Guide (OCI part number 510-01), available for purchase online.
On UNIX and UNIX-like systems, you should use GNU Make to build applications with TAO. The document bldgapps.html shows an example Makefile.
Briefly, you will need to set the following environment variables:
ACE_ROOT
TAO_ROOT
$ACE_ROOT/TAO
LD_LIBRARY_PATH (SHLIB_PATH on HP-UX)
$ACE_ROOT/ace
These can all be set by "sourcing" the environment script located
in your ACE_wrappers directory.
For example, assuming the base of your installation of TAO is in
/usr/local/ACE_wrappers
, and assuming you are using the
C-shell (csh):
ace_env.sh
is also supplied for Bourne-like Shell users
To build applications with ACE/TAO the following environment variables need to be set:
ACE_ROOT
TAO_ROOT
%ACE_ROOT%\TAO
PATH
%ACE_ROOT%\bin
See bldgapps.html for detailed instructions on setting the environment variables for the various Windows OSs. On Windows NT and Windows 2000, the installer script sets the ACE_ROOT and TAO_ROOT environment variables, but you need to explicitly add the specified directory to the PATH variable. You may need to log out and back in to actually see these variables propagated to all running processes. On Windows 98, you need to explictly set all the variables listed above.
You also need to add various directories to the global Visual C++ settings so that VC++ can properly locate the ACE/TAO header files and libraries. This is described in bldgapps.html.
Any existing Visual C++ projects that need to use TAO should be modified as described in bldgapps.html. Briefly, you need to:
The CD includes a sample application which you can build and run to verify that your installation of TAO was successful. The application consists of a simple message server and client. The client sends a message to the server by invoking an operation on a Messenger object.
Source code for this application is found on the CD in the file
example.tgz
. We have also included a Makefile for building the
application on UNIX and UNIX-like systems, and a Visual C++ project file
for building it on Windows.
On UNIX and UNIX-like platforms, use gunzip
and
tar
to uncompress and unpack this file. Then, run GNU Make in the
example directory to build the MessengerServer and MessengerClient. You can
then run them after they are successfully built.
On Windows, use WinZip
to unpack the file. You will find a
Visual C++ workspace called GettingStartedVC
in the
example\GettingStartedVC
subdirectory which you can use to compile the
interfaces and build the MessengerServer and MessengerClient programs.
The server creates a Messenger object and prints its IOR as a string to a file, then waits for client requests. The client reads the IOR string from the file and sends a message using the Messenger object. The server then prints the contents of the message to stdout.
Here is sample output from running the server and client on Linux: