Problem:
- Product Name: VisiBroker
- Product Version: All
- Product Component: Exception
An exception also gives you a minor code, can one conclude anything from this? What is the meaning of the minor codes?
Resolution:
I give you an example how to conclude something from Minor Code 1330446466 on an Unix system. It means "Software caused connection abort". In fact there is no CORBA guidance for all minor codes, so everything concluded is "probably".
You mostly can use the minor code of an exception as followed:
A constant OMGVMCID can be found in the "orb.idl" definition:
In general to get information out of a Minor Code you must do the following:
- Convert the decimal minor code to hexadecimal.
- XOR the hexadecimal with 4F4D0000 (OMGVMCID).
- Convert the hexadecimal result to decimal.
For 0x4F4D0082 this leads to 82-hex or 130.
According to the CORBA specifications, there are standard Minor Codes.
Examples of some CORBA Exception Minor Codes and their explanations:
BAD_PARAM
1 - Failure to register, unregister or lookup value factory
2 - RID already defined in IFR
3 - Name already used in the context in IFR
4 - Target is not a valid container
5 - Name clash in inherited context
6 - Incorrect type for abstract interface
MARSHAL
1 - Unable to locate value factory
NO_IMPLEMENT
1 - Missing local value implementation
2 - Incompatible value implementation version
BAD_INV_ORDER
1 - Dependency exists in IFR preventing destruction of this object
2 - Attempt to destroy indestructible objects in IFR
3 - Operation would deadlock
4 - ORB has shutdown
OBJECT_NOT_EXIST
1 - Attempt to pass an inactivated (unregistered) value as an object reference
Etc ...
For COMM_FAILURE and TRANSIENT exceptions, if the standard numbers do not reveal the meaning, check the minor code against the system-specific error numbers (for example in the "/usr/include/sys/errno.h" header file in Solaris or "msdev\\include\\winerror.h" header file in Windows).
For example, "errno.h" in Solaris defined the following:
#define ECONNABORTED 130 /* Software caused connection abort */
In fact an ORB is not obliged to implement it like this, but it mostly is used in this way.
Reference:
See Table 3-13 Minor Exception Codes for the standard Minor Codes defined by CORBA 2.3 Specification.
See Appendix (A.5 Exception Codes) for the standard Minor Codes defined by CORBA 3.0 Specification.
#OMGVMCID
#exception
#TRANSIENT
#Security
#COMM_FAILURE
#VisiBroker
#minorcode




