Tags used in TAO

Overview

The CORBA specification defines several tags, a.k.a. magic numbers, to distinguish between several otherwise opaque entities. For example, all profiles are transmitted as a CDR encapsulation (a sequence of octets), using a tag the type of the profile can be determined and the encapsulation can be properly interpreted.

To ensure that the tags uniquely indentify the entities in each namespace the OMG acts as an allocation authority, keeps a registry of the tags allocated so far and assigning the new tag values on demand. The process to request a tag is very simple, interested readers can consult this link for more details

We have reserved several tags for TAO, this page documents those tags and how they are used, some details are subject to change. We recommend that interested readers check the release notes

List of TAGS

ORB Type ID

Hex ValueASCII Representation Description
0x54414f00"TAO\0x00"IIOP profiles contain a component list. One of the elements of this list (the IOP::TAG_ORB_TYPE) contains a identifier for the ORB that created the profile.

IOR Profile IDs

Hex ValueASCII Representation Description
0x54414f00"TAO\0x00"A TAO local IPC (aka Unix domain) profile.

The range 0x54414f01-0x54414f0f ("TAO\0x01"-"TAO\0x0f") is reserved for future use. Only for informational purposes we include the following list of potential uses:

Hex ValueASCII Representation Description
0x54414f01"TAO\0x01" GIOP over ATM/AAL5
0x54414f02"TAO\0x02" Shared memory transport
0x54414f03"TAO\0x03" Message queue
0x54414f04"TAO\0x04" UDP
0x54414f05"TAO\0x05" IP multicast
0x54414f06"TAO\0x06" Compact PCI bus
0x54414f07"TAO\0x07" VME bus
0x54414f08"TAO\0x08" NT named pipes
0x54414f09"TAO\0x09" HTTP-NG
0x54414f0A"TAO\0x0A" Pipes (for collocated calls)

Service Context ID

The range 0x54414f00-0x54414f0f ("TAO\0x00"-"TAO\0x0f") is reserved for future use.

Component IDs

Hex ValueASCII Representation Description
0x54414f00"TAO\0x00" Server side priority for the endpoint in this profile. The component is encoded a two shorts, the minimum and maximum priorities (in that order). The values correspond to the CORBA priorities defined in the real-time CORBA spec. The client will select the endpoint that matches its priorities and policies.

The range 0x54414f01-0x54414f0f ("TAO\0x00"-"TAO\0x0f") is reserved for future use.

Vendor Minor Code ID (VMCID)

Hex ValueASCII Representation Description
0x54410000"TA\x00x00" System exceptions thrown by TAO have their higher 20 bits set to 0x54410, the other 12 bits are used to describe more precisely the cause of the exception. The lower 7 bits encode the errno that caused the exception, the 5 intermediate bits encode the location where the exception was raised.

The following list describes the current use of errno and location encodings:

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

Please consult the documentation for your OS for more details about the errno meanings

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)


Back to the TAO documentation.