Cybersecurity
DevOps Cloud (ADM)
IT Operations Cloud
What information can we know from minor code?
User sees exceptions with minor code thrown from VisiBroker process from time to time. How to use this minor code to understand the cause for the exception?
According to OMG CORBA specifications, there are 39 SystemExceptions defined. These standard system exceptions are described in Common Object Request Broker Architecture: Core Specification Section 4.12.3, "Standard System Exception Definitions".
Each standard CORBA exception includes a minor code to designate the subcategory of the exception. Minor exception codes are of type unsigned long and consist of a 20-bit "Vendor Minor CodesetID" (VMCID), which occupies the high order 20 bits, and the minor code occupies the low order 12 bits.
Here is the list of some VMCIDs that users often encounter
(OMG) experimental use
|
0x00000000
|
(OMG) experimental use
|
0xFFFFF000
|
OMG reserved use (1 - F)
|
0x0000N000
|
OMG standard minor exceptions
|
0x4F4D0000
|
GNU Classpath
|
0x47430000
|
IONA (ORBix)
|
0x49540000
|
JacORB
|
0x4A430000
|
omniORB
|
0x41540000
|
Sun
|
0x53550000
|
TAO
|
0x54410000
|
Borland (VisiBroker)
|
0x56420000
|
*VMCID assigned to OMG is CORBA::OMG VMCID (0x4F4D0000). Borland's VMCID is 0x56420000.
Minor Code Range and VMCID
The exception and its corresponding minor codes provide very useful information to users.
Example 1
Exception: CORBA::BAD_INV_ORDER
Minor: 1330446340
CompletionStatus: MAYBE
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. | |
... | ||
20 | An OTS/XA integration xa_ call returnedXAER_PROTO. |
It means ORB has been shut down. You can refer to What is the meaning of the minor codes for more information.
Example 2
CORBA exception: CORBA::COMM_FAILURE. Minor code: 10055
Example 3
System Exception, name=CORBA::TIMEOUT, minor_code=1447165953,completion_status=no.
"CORBA::TIMEOUT exceptions being thrown during an attempt to make a connection, sending a request or receiving a reply now have different minor codes in the Vmcid::VBVMCID1 namespace to distinguish them. For connection time-out, the minor code is 1 | Vmcid::VBVMCID1. For request timeout, the minor code is 2 | Vmcid::VBVMCID1. For reply timeout, the minor code is 3 | Vmcid::VBVMCID1. "
It indicates TCP connection timeout.
Example 4
org.omg.CORBA.TIMEOUT: Read timed out at waiting stage vmcid: OMG minor code: 0 completed: No