Release Notes for OCI's Distribution of TAO 1.1a
Copyright 2000 by Object Computing, Inc.


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 {{site.baseurl}}/releasenotes.

Table of Contents

  1. General Notes
    1. Heritage--Relationship to DOC Releases
    2. CD Format Notes
    3. Building Requires GNU Make
    4. Installing on Windows vs. UNIX
    5. Clarification of Event Service Installation Nomenclature
  2. New Features Since TAO 1.0a
    1. GIOP 1.2
    2. New Services (Concurrency, Logging, Notification, Load Balancing)
    3. Compliance directed towards CORBA 2.3
    4. Interoperable Naming Service
    5. CORBA Messaging
    6. Real-time CORBA Support
  3. Platform-specific Notes
    1. Version Information
    2. Known Problems
  4. Quickstart for Building with TAO
    1. TAO on UNIX
    2. TAO on Win32 with Visual C++
  5. Sample Application

  1. General Notes

    1. Heritage--Relationship to DOC Releases

      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.

    2. CD Format

      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.

    3. GNU Make Required on Unix

      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.

    4. Installing on Windows vs. UNIX

      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.

    5. Clarification of Event Service Installation Nomenclature
    6. 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).

  2. New Features Since TAO 1.0a

    1. GIOP 1.2

      TAO 1.1a includes support not only for GIOP 1.0 and GIOP 1.1, but also most of GIOP 1.2.

    2. New Services

      Several services were added including Concurrency Control, Load Balancing, Logging and Notification.

    3. Compliance directed towards CORBA 2.3

      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.

    4. Interoperable Naming Service

      TAO 1.1a includes an implementation of the Interoperable Naming Service (INS).

    5. CORBA Messaging Support

      TAO 1.1a includes support for Asynchronous Method Invocation and a subset of the QoS policies of the CORBA Messaging Specification.

    6. Real-time CORBA Support

      TAO 1.1a includes in-progress support for the Real-time CORBA specification.

    Details on these, and many other features of TAO 1.1a, are detailed in OCI's TAO Developer's Guide, available separately.

  3. Platform-specific Notes

    1. Version Information

      View runtime platform version information here.

    2. Known Problems

      Problems using GNU Make Parallel Builds

      Using the -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

      Workshop 5.1/Forte is new, uncharted territory, and template instantiation rears its ugly head once again.

      Sun Workshop 5.0 and 5.1/Forte oddities

      Both Sun Workshop 5.0 and 5.1/Forte require explicit template instantiation and do not support function inlining. These settings are enforced by the 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.

      Installer Window looks "weird" with Big Fonts in Windows

      For some reason the Installer's window looks weird when using Big Fonts under Windows. The simple workaround is to resize the window to redraw and make it look sane.

      The ACE Process_Manager_Test fails on Solaris

      The ACE 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.

      Some TAO tests generate CORBA::Transient errors with EAFNOSUPPORT set

      This problem cuts across platforms and tests; we've seen it happen on SunOS 5.6 as well as on NT. On Solaris, it predominantly occurs in the Latency performance test and in the MT_Client test. On NT, it consistently fails Latency as well as occasional failures of MT_Client, EndPoint_Per_Priority, and Leader_Followers.

      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.

      The ACE CDR_Array_Test fails to link on compilers using implicit template instantiation

      The ACE 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/47Eq@z43fkK3.o
      ld: fatal: Symbol referencing errors. No output written to CDR_Array_Test
      make:  [CDR_Array_Test] Error 1
                      
      This 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.

      Incomplete testing under Windows 98

      The automated tests included with TAO do not fully support this platform and this resulted in a number of test failures beyond those seen on Windows NT. Some of these tests fail because they use features that Windows 98 does not support, others fail because the tests run too slowly and time-out, and still others fail because of problems in the test automation framework specific to Windows 98. These failures should not affect the basic functionality of TAO (and your applications).

  4. Quickstart for Building with TAO

    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.

    1. TAO on UNIX

      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
      The base of your ACE and TAO installation
      TAO_ROOT
      $ACE_ROOT/TAO
      LD_LIBRARY_PATH (SHLIB_PATH on HP-UX)
      Must include $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):

      source /usr/local/ACE_wrappers/ace_env.csh
      Note: ace_env.sh is also supplied for Bourne-like Shell users

    2. TAO on Win32 with Visual C++

      To build applications with ACE/TAO the following environment variables need to be set:

      ACE_ROOT
      The base of your ACE and TAO installation
      TAO_ROOT
      %ACE_ROOT%\TAO
      PATH
      Must include %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:

      • Modify the default compiler settings to use multi-threaded DLLs;
      • Modify the Input Object/Library modules to use the debug or release versions of the ACE, TAO, and orbsvcs libraries, as appropriate for your development environment;
      • Set up a custom build configuration to invoke the TAO IDL compiler to generate C++ header and source files from OMG IDL files.

  5. Sample Application

    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:

    $ MessengerServer &
    [1] 25291
    IOR written to file Messenger.ior

    $ MessengerClient
    Message from: rick
    Subject: Test
    Message: Howdy!
    message was sent

EMail TAO Support at taosupport