OpenFusion TAO 2.3.1 Release Notes

Contents

The OpenFusion TAO 2.3.1 Release Notes cover the following topics:

Supported Platforms and Compilers

OpenFusion TAO Directory Organisation

Default Build Options

TAO 2.3.1 Features

Upgrading to OpenFusion TAO 2.3.1

Fixed Bugs

Changes and Enhancements

Interoperability and Compatibility

Product deliverables

Error Codes

Known Issues

Supported Platforms and Compilers

Micro Focus offers various builds:

Micro Focus supports a wide variety of platforms and compilers. For an up-to-date list, please see the Product Availability and Support Schedule or contact us via https://www.microfocus.com/

Additional operating system / compiler combinations may be supported based on demand.

OpenFusion TAO Directory Organisation

The OpenFusion TAO directory organisation is different from other TAO distributions.

The Micro Focus distribution has a modified directory structure to make it more readable and usable.

The directory structure is as follows:

OpenFusion TAO Default Build Options

Micro Focus 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, Unicode, MFC, IPv6, SSL and FT 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 XP, Windows Vista, Windows 7)
stdcpplib Enable standard C++ library Y 1 0
threads Enable threads (if OS supports) Y 1 1
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
purify Third party product support N 0 0
quantify Third party product support N 0 0
profile Enable profiling 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
ami Enable Asynchronous Method Invocation (AMI) Y 1 1
smart_proxies Enable Smart Proxies Y 1 0
corba_messaging Enable CORBA Messaging Y 1 1
rt_corba Enable Real-time CORBA support Y 1 1
interceptors Enable portable interceptors Y 1 1
interface_repo Enable Interface Repository support N 1 1

TAO 2.3.1 Features

Product deliverables

The following libraries and executables are the TAO product deliverables:

Error Codes

CORBA applications report errors via catching thrown CORBA exceptions. (Note that TAO no longer provides CORBA defined/emulated exceptions, instead it relies on standard, native C++ exception-handling, using try and catch statements.) CORBA exceptions are split into two different forms: "System exceptions" which are thrown by the ORB itself and "User exceptions" that are defined by IDL statements declared by the ORB provided services or end-user applications.

Normally simply catching the specific CORBA exception is enough to indicate the problem; but the CORBA standard allows the ORB vendor to supply supplemental information with each exception in the form of its minor code which is a numerical CORBA::ULong value (obtained from the caught exception itself via the minor() accessor function). This value is split up into several sub-fields; the upper most significant 20-bits are reserved to indicate which ORB originated the minor code itself, while the least significant 12-bits are used by that ORB as it sees fit (TAO splits these 12-bits into two sub-fields). Note that the actual ORB specific minor codes are not meant to be portable between different CORBA ORBs; those provided by TAO are listed below. In addition some simple minor codes are actually detailed in the CORBA standard for specific circumstances; a minor code of 0x00000000u for example, simply indicates no further details are available. All of these CORBA defined codes have zero in the most significant 20-bits. These codes are mainly used to enable support or debugging to determine why the exceptions are being thrown in the first place. They will probably have little relevance to an end user's application unless they are attempting to specialise the handling of certain otherwise generic exceptions.


CORBA Exception Minor Code (CORBA::ULong):
20-MSBits 5-Bits 7-LSBits
Identifier 0x54410u << 12 (in ASCII "TA" and a zero nibble) Location Code Error Code

Full details of the TAO Location Codes can be found in the "Error Handling" chapter of the OCI "TAO Developer's Guide" book, but the best insight may be found by searching the TAO source code directly for the specific used #define Location Code identifiers shown in the table below.


TAO (5-bit) Location Code Description Value
No specific location details indicated (0x00u << 7)
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 the TAO Error Codes; these are based upon the posix standard C errno equivalent codes. These errno values may help determine what the real problem might have been, as they represent the underlying Operating System error that resulted in the exception being thrown (if any).


TAO (7-bit) Error Code Description Value
TAO_UNSPECIFIED_MINOR_CODE Unspecified minor code 0x00u
TAO_ETIMEDOUT_MINOR_CODE Connection timed out 0x01u
TAO_ENFILE_MINOR_CODE Too many files open in system 0x02u
TAO_EMFILE_MINOR_CODE Too many open files 0x03u
TAO_EPIPE_MINOR_CODE Broken pipe 0x04u
TAO_ECONNREFUSED_MINOR_CODE Connection refused 0x05u
TAO_ENOENT_MINOR_CODE No such file or directory 0x06u
TAO_EBADF_MINOR_CODE Bad file descriptor 0x07u
TAO_ENOSYS_MINOR_CODE Function not implemented 0x08u
TAO_EPERM_MINOR_CODE Operation not permitted 0x09u
TAO_EAFNOSUPPORT_MINOR_CODE Protocol family not supported 0x0au
TAO_EAGAIN_MINOR_CODE Resource temporarily not available 0x0bu
TAO_ENOMEM_MINOR_CODE Not enough space 0x0cu
TAO_EACCES_MINOR_CODE Permission denied 0x0du
TAO_EFAULT_MINOR_CODE Bad address 0x0eu
TAO_EBUSY_MINOR_CODE Device or resource busy 0x0fu
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

Known Issues


TOP
Top

Copyright © Micro Focus 2002-2016. All rights reserved.  Micro Focus