The OpenFusion TAO 1.5 Release Notes cover the following topics:
Supported Platforms and Compilers
OpenFusion TAO Directory Organisation
Upgrading to OpenFusion TAO 1.5
Interoperability and Compatibility
PrismTech offers various builds:
See the table below for build availability.
Platform / Architecture / Compiler | Standard | Inline | Debug |
---|---|---|---|
SunOS 5.10 Generic / SPARC / Sun Studio 10 C++ 5.7 - 32 bits | Yes | Yes | Yes |
SunOS 5.10 Generic / SPARC / Sun Studio 9 C++ 5.6 - 64 bits / ipV6 | Yes | No | Yes |
SunOS 5.10 Generic / SPARC / Sun Studio 9 C++ 5.6 - 32 bits / ipV6 | Yes | No | No |
SunOS 5.10 Generic / SPARC / gcc version 3.4.4 | Yes | Yes | Yes |
SunOS 5.9 Generic_112233-12 / SPARC / Sun Studio 9 C++ 5.6 - 64 bits | No | Yes | Yes |
SunOS 5.8 Generic_108528-17 / SPARC / Sun ONE Studio 8, Compiler Collection C++ 5.5 - 32 bits | Yes | Yes | Yes |
Red Hat Enterprise Linux ES release 4 (Nahant Update 2) / x86 / gcc version 3.4.4 | Yes | Yes | Yes |
Suse Linux 9.3 / x86 / gcc version 3.3.3 | Yes | No | No |
MontaVista Linux PRO 3.1 PQ3 target (Red Hat 9 host) / 85xx PowerPC / gcc version 3.4.1 | Yes | No | No |
Microsoft Windows / x86 / Microsoft Visual C++ v7.1 (MFC) - 32 bits | Yes | Yes | Yes |
Microsoft Windows / x86 / Microsoft Visual C++ v7.1 (No MFC) - 32 bits | Yes | Yes | Yes |
PrismTech supports a wide variety of platforms and compilers. For an up-to-date list, contact us via http://www.prismtechnologies.com/
Additional operating system / compiler combinations may be supported based on demand.
The OpenFusion TAO directory organisation is different from other TAO distributions.
The PrismTech distribution has a modified directory structure to make it more readable and usable.
The directory structure is as follows:
PrismTech's TAO distribution is by default built with the following options:
Key: The values in the Must Match column have the meanings defined below.
Y - the application must have the same value as the build
N - the application may use any value it chooses
E = the application can only use this option if it was set at
build time
B - this option is only effective at build time
The inline, debug and MFC flags are set according to the build. See the build availability list above.
Option | Description | Must Match | Default Build Flags (Solaris, HP-UX, Linux, LynxOS) | Default Build Flags (Windows 2000, Windows NT, Windows XP) |
---|---|---|---|---|
exceptions | Enable native C++ exceptions | Y | 1 | 1 |
Include_env | Enable ACE_TRY_ENV macro backward compatibility mode. | Y | 0 | 0 |
rtti | Enable C++ RTTI | N | 1 | 0 |
optimize | Turn on compiler optimiztion | N | 1 | 1 |
repo | Use GNU template repository | N | 0 | 0 |
fast | Use -fast compiler option (SunCC only) | N | 0 | 0 |
threads | Enable threads (if OS supports) | Y | 1 | 1 |
purify | Third party product support | N | 0 | 0 |
quantify | Third party product support | N | 0 | 0 |
shared_libs | Build shared libraries | E | 1 | 0 |
static_libs | Build archive libraries | E | 0 | 0 |
shared_libs_only | Build shared libraries only | E | 1 | 0 |
static_libs_only | Build static libraries only | E | 0 | 0 |
minimum_corba | Build with minimum CORBA support | B | 0 | 0 |
probe | Enable ACE_Timeprobes | B | 0 | 0 |
profile | Enable profiling | N | 0 | 0 |
xt_reactor | Build with xt reactor | Y | 0* | 0 |
fl_reactor | Build with fl reactor | Y | 0 | 0 |
tk_reactor | Build with tk reactor | Y | 0 | 0 |
qt-reactor | Build with Qt reactor | Y | 0 | 0 |
ami | Enable Asynchronous Method Invocation (AMI) | Y | 1 | 1 |
smart_proxies | Enable Smart Proxies | Y | 0 | 0 |
corba_messaging | Enable CORBA Messaging | Y | 1 | 1 |
rt_corba | Enable Real-time CORBA support | Y | 1 | 1 |
Interface_repo | Enable Interface Repository support | N | 1 | 1 |
interceptors | Enable portable interceptors | Y | 1 | 1 |
fakesvcconf | Build in default Service Configurator options | B | 0 | 0 |
* The Sun ONE Studio 7, 8, 9 and 10 and HP ANSI C++ B3910B A.03.39 compiler builds have the xt_reactor flag set to 1.
The following libraries and executables are the TAO product deliverables:
The table below contains a list of the TAO location error codes. Each error code constant is of the type CORBA::ULong.
Error Code Constant | Description | Value |
---|---|---|
TAO_INVOCATION_LOCATION_FORWARD_MINOR_CODE | Location forward failed | (0x01U << 7) |
TAO_INVOCATION_SEND_REQUEST_MINOR_CODE | Send request failed | (0x02U << 7) |
TAO_POA_DISCARDING | POA in discarding state | (0x03U << 7) |
TAO_POA_HOLDING | POA in holding state | (0x04U << 7) |
TAO_UNHANDLED_SERVER_CXX_EXCEPTION | Unhandled C++ exception in server side | (0x05U << 7) |
TAO_INVOCATION_RECV_REQUEST_MINOR_CODE | Failed to receive request response | (0x06U << 7) |
TAO_CONNECTOR_REGISTRY_NO_USABLE_PROTOCOL | All protocols failed to parse the IOR | (0x07U << 7) |
TAO_MPROFILE_CREATION_ERROR | Error during MProfile creation | (0x08U << 7) |
TAO_TIMEOUT_CONNECT_MINOR_CODE | Timeout during connect | (0x09U << 7) |
TAO_TIMEOUT_SEND_MINOR_CODE | Timeout during send | (0x0AU << 7) |
TAO_TIMEOUT_RECV_MINOR_CODE | Timeout during receive | (0x0BU << 7) |
TAO_IMPLREPO_MINOR_CODE | Implrepo server exception | (0x0CU << 7) |
TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE | Endpoint initialization failure in Acceptor Registry | (0x0DU << 7) |
TAO_ORB_CORE_INIT_LOCATION_CODE | ORB core initialization failed | (0x0EU << 7) |
TAO_POLICY_NARROW_CODE | Failure when narrowing a Policy | (0x0FU << 7) |
TAO_GUARD_FAILURE | Failure when trying to acquire a guard/monitor | (0x10U << 7) |
TAO_POA_BEING_DESTROYED | POA has been destroyed or is currently being destroyed | (0x11U << 7) |
TAO_POA_INACTIVE | POA in inactive state | (0x12U << 7) |
TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE | Initialization failure in Connector Registry | (0x13U << 7) |
TAO_AMH_REPLY_LOCATION_CODE | Failure when trying to send AHM reply | (0x14U << 7) |
TAO_RTCORBA_THREAD_CREATION_LOCATION_CODE | Failure in thread creation for RTCORBA thread pool | (0x15U << 7) |
The table below lists errno encoding codes defined within TAO. Each error code constant is of type CORBA::ULong. The codes are based on Posix standard C errno codes. These codes are combined with the location code at the time of the problem to allow the user more detail about what the problem might have been. The codes represent the underlying OS error value that was returned by the preceding OS call. An exception minor code will have be combination of a location code and an errno code.
Minor Error Code | Description | Value |
---|---|---|
TAO_UNSPECIFIED_MINOR_CODE | Unspecified minor code | 0x0U |
TAO_ETIMEDOUT_MINOR_CODE | Connection timed out | 0x1U |
TAO_ENFILE_MINOR_CODE | Too many files open in system | 0x2U |
TAO_EMFILE_MINOR_CODE | Too many open files | 0x3U |
TAO_EPIPE_MINOR_CODE | Broken pipe | 0x4U |
TAO_ECONNREFUSED_MINOR_CODE | Connection refused | 0x5U |
TAO_ENOENT_MINOR_CODE | No such file or directory | 0x6U |
TAO_EBADF_MINOR_CODE | Bad file descriptor | 0x7U |
TAO_ENOSYS_MINOR_CODE | Function not implemented | 0x8U |
TAO_EPERM_MINOR_CODE | Operation not permitted | 0x9U |
TAO_EAFNOSUPPORT_MINOR_CODE | Protocol family not supported | 0xAU |
TAO_EAGAIN_MINOR_CODE | Resource temporarily not available | 0xBU |
TAO_ENOMEM_MINOR_CODE | Not enough space | 0xCU |
TAO_EACCES_MINOR_CODE | Permission denied | 0xDU |
TAO_EFAULT_MINOR_CODE | Bad address | 0xEU |
TAO_EBUSY_MINOR_CODE | Device or resource busy | 0xFU |
TAO_EEXIST_MINOR_CODE | File exists | 0x10U |
TAO_EINVAL_MINOR_CODE | Invalid argument | 0x11U |
TAO_ECOMM_MINOR_CODE | Communication error on send | 0x12U |
TAO_ECONNRESET_MINOR_CODE | Connection reset | 0x13U |
TAO_ENOTSUP_MINOR_CODE | Operation not supported | 0x14U |
When using tao_ifr to add idl to the interface repository on Windows NT with Microsoft Visual C++, you need to have the following in your path:
<TAO Installation dir>\bin
<TAO Installation dir>\lib
<Microsoft Visual Studio dir>\vc98\bin
<Microsoft Visual Studio dir>\Common\MSDev98\bin
where <TAO Installation dir> is the path to the TAO installation directory and <Microsoft Visual Studio dir> is the path to the installation of Microsoft Developer Studio. This is necesary because tao_ifr makes use of the cl.exe C++ preprocessor which is in the <Microsoft Visual Studio dir>\vc98\bin directory, which in turn uses dlls which reside in the <Microsoft Visual Studio dir>\Common\MSDev98\bin directory.
Use of ORB::create_operation_list operation will require the TAO_IFR_Client library to be linked into a program. If the TAO_IFR_Client is not linked a NO_IMPLEMENT exception will be raised if ORB::create_operation_list is invoked.
The examples do not build for a Microsoft Visual C++ V6.0 debug distribution.
The gcc 3.2 compiler fails to compile generated code for IDL containing fixed size arrays. The gcc 3.2.1 compiler fixes this problem (except on MontaVista Linux release 3.0). This was identified during interoperability testing of OpenFusion TAO releases.
UTF-16 Wide Characters / Wide String Interoperability. (Bug ID 00RE)
Issue 1: UTF-16 strings are being marshalled and demarshalled incorrectly. On little endian platforms little endian encoding is employed without an appropriate byte order marker being used. Characters within incoming strings are assumed to be encoded as per the byte order of the encapsulating stream. These are both in contravention of section "15.3.1.6 Character Types" of the CORBA 3.0 specification.
Issue 2: No account is taken of the byte order of an input stream when decoding a wide character type. Wide character passing between platforms with differing endian setting results in corrupted data.
Table Key:
Product | Direction | Product | Status |
---|---|---|---|
JacORB | -> | TAO-BF LE | wstring OK, wchar Broken |
JacORB | <-> | TAO-BF BE | OK |
TAO-BF LE | -> | JacORB | Broken |
TAO-BF LE | <-> | TAO-BF BE | OK |
TAO-BF LE | <-> | TAO-BF BE | wstring OK, wchar Broken |
TAO-BF BE | <-> | TAO-BF BE | OK |
Product | Direction | Product | Status |
---|---|---|---|
JacORB | -> | TAO-AF LE | OK |
JacORB | <-> | TAO-AF BE | OK |
TAO-AF LE | -> | JacORB | OK |
TAO-AF LE | <-> | TAO-AF BE | OK |
TAO-AF LE | <-> | TAO-AF BE | OK |
TAO-AF BE | <-> | TAO-AF BE | OK |
Product | Direction | Product | Status |
---|---|---|---|
TAO-AF LE | <-> | TAO-BF LE | Broken |
TAO-AF BE | <-> | TAO-BF BE | OK |
TAO-AF LE | -> | TAO-BF BE | Broken |
TAO-AF BE | <- | TAO-BF LE | wstring OK, wchar Broken |
TAO-AF LE | <- | TAO-BF BE | Broken |
TAO-AF BE | -> | TAO-BF LE | wstring OK, wchar Broken |
Memory mapped IFR persistence doesn't work on RedHat Linux. (Internal issue TAO#453)
The memory mapped IFR persistence mechanism (-p service option) has been discovered to have incompatibilities with the RedHat Enterprise Server 4 kernel libraries. These consistently result in memory corruption and crashes of the service. There have also been reports of problems on Fedora Core systems and earlier versions of RedHat Enterprise Linux. The problem occurs outside of ACE / TAO. We strongly recommend that this persistence option is not use with this operating system. Please use the flat file persistence mechanism instead (-f option) as this mechanism is more stable.