CoordinatorException class
The CoordinatorException exception class indicates that a two-phase commit coordinator has returned an error.
The NewGlobal function and SetGlobal of the Transaction system classes are method that can throw a CoordinatorException exception. For more information about catching a thrown exception, see Try and Catch.
The following example shows a Try and Catch of a CoordinatorException exception.
begin %xid is string len 64 %coex is object coordinatorException try %xid = %(transaction):NewGlobal("Silly example transaction") catch coordinatorException to %coex printText NewGlobal failed: printText {%coex:reason}: {%coex:description} stop end try ... end
Note: It is necessary to declare the exception object, but instantiating it is taken care of by the Transaction class NewGlobal method.
The CoordinatorException methods
The following are the available CoordinatorException class methods.
| Method | Description |
|---|---|
| Description | Brief description of the exception |
| New | Create a new CoordinatorException object |
| Reason | Enumerated cause of the exception |
The methods in the class are described in the subsections that follow. In addition:
- Notation conventions for methods has information about the conventions followed.
- CoordinatorException methods syntax is a single page that contains the syntax diagrams of all the methods in the class.
Description property
Brief description of the exception (CoordinatorException class)
This ReadOnly property returns a string that describes the error.
Syntax
%string = coordinatorException:Description
Syntax terms
| %string | This describes the error. |
|---|---|
| coordinatorException | A reference to an instance of a CoordinatorException object. |
New constructor
Create a new CoordinatorException object (CoordinatorException class)
This Constructor generates an instance of a CoordinatorException exception. As shown below, the optional argument of the New method is a setting of the DaemonOutput property.
Syntax
%coordinatorException = [%(CoordinatorException):]New( Reason= coordinatorExceptionReason, - [Description= string])
Syntax terms
| %coordinatorException | A reference to an instance of a CoordinatorException object. |
|---|---|
| [%(CoordinatorException):] | The class name in parentheses denotes a Constructor. |
| CoordinatorExceptionReason | This optional, but name required, parameter specifies a CoordinatorExceptionReason value that indicates the error. |
| Description | This optional, but name required, parameter specifies a string that describes the error. |
Reason property
Enumerated cause of the exception (CoordinatorException class)
This ReadOnly property returns a CoordinatorExceptionReason enumeration value that indicates the error.
Syntax
%coordinatorExceptionReason = coordinatorException:Reason
Syntax terms
| %soordinatorExceptionReason | Enumeration value that indicates the error. |
|---|---|
| coordinatorException | A reference to an instance of a CoordinatorException object. |
CoordinatorExceptionReason enumeration
A CoordinatorExceptionReason enumeration may have one of the following values:
| ConnectionLost | The connection with the coordinator was lost after it was established. This could be indicative of a compatibility issue between Model 204 and the coordinator. |
|---|---|
| InsufficientVirtualStorage | There was insufficient virtual storage to allocate the blocks needed to connect to the coordinator. |
| InvalidResponse | an invalid response to a request was received from the coordinator. This could be indicative of a compatibility issue between Model 204 and the coordinator. |
| MaximumConnectionsExceeded | The maximum authorized Janus or Janus Two-Phase Commit connections are in use. |
| NameLookupError | The host name specified in an ADDCOORDINATOR could not be resolved because of a DNS error. |
| NameUnresolved | The host name specified in an ADDCOORDINATOR could not be located via DNS. |
| NoneAvailable | There are either no 2PC ports defined or the first started 2PC port has no coordinators added to it. |
| NoPortConnectionsAvailable | The maximum connections specified for the 2PC port are all in use. |
| TlsHandshakeError | The TLS handshake with the coordinator specified in an ADDCOORDINATOR failed. |
| Unreachable | It was not possible to connect to the coordinator host/port specified in an ADDCOORDINATOR. |