NonStop Software

POA Minor Codes

Previous Topic | Next Topic | Contents | Index
Getting Started Guide | Administration Guide | Reference Guide

POA Minor Code Values

When a system exception is raised by an operation under the POA's management, the POA provides a minor code with the exception to give a more precise context to detail the system exception.

600 - MINOR_BAD_OBJECT_ID
This minor code occurs in the context of a BAD_PARAM system exception. Thrown from POA::activate_object_with_id( ), this minor code indicates that the object id given to the POA was not generated by the POA executing the call (this( ) POA).

Note: When a server is restarted, any POA on that server that has LifespanPolicy::PERSISTENT policy does not need to (and in fact does not) recognize all object ids.



601 - MINOR_BAD_SERVANT_MANAGER
This minor code occurs in the context of a BAD_PARAM system exception. Thrown from POA::set_servant_manager( ), this minor code indicates that the servant manager given to the POA in a call to set_servant_manager( ) is not of the correct type. For example, a POA with the RETAIN policy requires a servant manager which can be narrowed to the type PortableServer::ServantActivator, and a NON_RETAIN POA requires a PortableServer::ServantLocator.

602 - MINOR_NO_SERVANT_ACTIVATOR
This minor code occurs in the context of an OBJ_ADAPTER system exception. This minor code indicates that a servant activator is required in order to process a request, but one is not available. This scenario occurs when the POA has the policies RETAIN and USE_SERVANT_MANAGER and a request comes into this POA but there is no existing servant to handle it. In this case, a servant manager is required; it must set up beforehand by a call toset_servant_manager( ).

603 - MINOR_NO_SERVANT_LOCATOR
This minor code occurs in the context of an OBJ_ADAPTER system exception. This is similar to the MINOR_NO_SERVANT_ACTIVATOR minor code detailed above for NON_RETAIN POAs. An incoming request requires a servant locator in order to find a servant but one has not been set. One difference is that this minor code will be generated for every request since, for a NON_RETAIN POA with the USE_SERVANT_MANAGER policy, the servant locator is required to service any request.

604 - MINOR_NOT_IN_AOM
This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. It indicates that an incoming request could not find a servant in the POA's active object map. This implies that the POA has policies of RETAIN and USE_ACTIVE_OBJECT_MAP_ONLY.

605 - MINOR_NO_ADAPTER
This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. It indicates that the POA named in the incoming request could not be located. (POAs are also referred to more generically as object adapters). This code can also be generated in the context of an OBJ_ADAPTER system exception. In this case, it indicates that a local request could not find its associated POA. This happens when a reference to a servant is locally generated and the POA is subsequently destroyed (and can't be automatically re-created).

606 - MINOR_WRONG_STATE
This minor code occurs in the context of either a TRANSIENT or OBJ_ADAPTER system exception. In either case, the minor code indicates that the POA manager is not in the correct state (it is not active) in order to process a request. A TRANSIENT exception is generated when the actual state is Discarding; otherwise, the OBJ_ADAPTER exception is raised, typically because the state is Inactive. (If the state were Holding, an exception would not be raised; instead, the request would be delayed (held) until the POA manager was requested to change to another state.

607 - MINOR_WRONG_PROCESS
This minor code occurs in the context of an INV_OBJECT system exception. It indicates that a request was delivered to a server, but the IOR indicates a different server. This can be caused by a corrupt IOR. If generated in response to a local request (that is, where a client and server are in the same process) this would indicate an internal error in the NonStop DOM runtime and details should be reported to your Tandem representative.

608 - MINOR_WRONG_POLICY
This minor code occurs in the context of either an OBJECT_NOT_EXIST or OBJ_ADAPTER system exception. In the case of OBJECT_NOT_EXIST, it indicates a corrupt or stale IOR; a client request indicates a POA, which does exist, however, the POA's current policy does not match that given in the IOR. This is not legal. The OBJECT_NOT_EXIST exception is returned, indicating the object previously referred to by the old IOR is gone. In the case of an OBJ_ADAPTER, exception this indicates that the POA was asked to create an object reference (for example, by calling create_reference_with_id( ), and the POA has a PERSISTENT value for the Lifespan policy, but no ORB profile was set for the server process. To remedy this, re-run the server giving a correct -ORBprofile <value> command.

609 - MINOR_NO_OBJECT_ID
This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. This is generated when a local request is made using an uninitialized object. A proper object reference will always have an object id and the MINOR_NO_OBJECT_ID code indicates that one was not present. Make sure that your application obtained the object reference properly.

610 - MINOR_NO_DEFAULT_SERVANT
This minor code occurs in the context of an OBJ_ADAPTER system exception. It indicates that a request arrived which required a default servant to be present but no default servant was set. The POA has the USE_DEFAULT_SERVANT value for the RequestProcessing policy and a servant was not found for the request.

611 - MINOR_NONE_GIVEN
This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. This minor code indicates that a servant manager was called but the manager returned NULL and no exception; the locator did not return a servant. This may be considered an application error since the servant manager is supposed to return an exception indicating the specific cause for not finding a servant.

612 - MINOR_NO_SUCH_OPERATION
This minor code occurs in the context of a BAD_OPERATION system exception. It indicates that during the process of servicing a request, the operation name present in the request was not among those handled by the servant. This indicates, typically, that the type of the servant handling the request does not match that of the client's target object. This is illegal. This might happen if an application servant manager returned an incorrect servant for a request. This might also happen if the client sending the request is a not a NonStop DOM ORB and the client is trying to invoke a method on a CORBA object that NonStop DOM currently does not support. Turn POA tracing on (environment variable NSDOM_CFG_TRACE_POA) to see the name of the operation that is having a problem.

613 - MINOR_POA_DESTROYED
This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. If this occurs in response to any call on a POA, it indicates that the POA upon which the call was made has been destroyed. The application should release the POA reference. Subsequent operations on that POA are illegal; continuing operations are still possible within the application by re-creating a new POA with the same properties as the one that was destroyed (that is, same name, same policies, same parent).

614 - MINOR_BAD_VALUE
This minor code occurs in the context of a BAD_PARAM system exception. This minor code indicates that a call to PortableServer::ObjectId_to_string( ) or string_to_ObjectId( ) failed because of illegal data. The input to ObjectId_to_string( ) must not contain null characters. The operation string_to_ObjectId( ) raises this exception if the ObjectId parameter contains nulls, because, although legal for an object identifier, such values cannot be represented in a string.

615 - MINOR_TOO_MANY_POLICIES
This minor code occurs in the context of a BAD_PARAM system exception. This minor code occurs when a user calls PortableServer::create_POA( ) with a set of policies that contains too many policy members. Each policy may be present in the list just once (or not at all).


Previous Topic | Next Topic | Contents | Top
Getting Started Guide | Administration Guide | Reference Guide
Bibliography | Glossary | Index
© Tandem, a division of Compaq. All rights reserved. Legal notices.