Dashboard > Data Handling Interface > ... > DHI 2 > Exception Guidelines
  Data Handling Interface Log In | Sign Up   View a printable version of the current page.  
  Exception Guidelines
Added by Philip Crotwell, last edited by Charlie Groves on Feb 23, 2006  (view change)
Labels: 
(None)

SystemExceptions thrown by DHI Servers

In general there are three classes of problems that the client needs to know about.

  1. The method on the server does not have an implementation, perhaps because the underlying system does not support it. In this case the server should raise a NO_IMPLEMENT.
  2. The request that the client sent is not valid. For example, bad formatting of date strings. Unless there is an explicit instruction in the javadocs for the call, this should result in an UNKNOWN. This can also be generated by uncaught runtime exceptions within the server, which generally indicate a bug in the server code.
  3. The server is not in a functional state and cannot service the request. For example, its database connection is not up. The String in the TRANSIENT can be populated with other information if the server desires, but notification of the server maintainers as well as logging of debugging information is solely the responsibility of the service, not the client.

Individual methods may also use one or more of these system exceptions, as well as checked exceptions depending on their individual circumstances. Please see the javadocs for each method for details.

We have also learned that the reason a string in System Exceptions is not returned is Orb specific. Orbacus does not send back a string, JacORB does. So switching to a different ORB will allow messages to be returned by system exceptions.

CORBA System Exceptions Used

  • org.omg.CORBA.NO_IMPLEMENT - This exception indicates that even though the operation that was invoked exists (it has an IDL definition), no implementation for that operation exists.
  • org.omg.CORBA.NO_PERMISSION - Exception thrown when an invocation failed because the caller has insufficient privileges.
  • org.omg.CORBA.TRANSIENT - Exception thrown when the ORB attempted to reach an object and failed. It is not an indication that an object does not exist. Instead, it simply means that no further determination of an object's status was possible because it could not be reached. This exception is raised if an attempt to establish a connection fails, for example, because the server or the implementation repository is down.
  • org.omg.CORBA.UNKNOWN

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.9 Build:#527 Sep 07, 2006) - Bug/feature request - Contact Administrators