VisiBroker for Java

org.omg.PortableInterceptor
Interface ServerRequestInterceptorOperations

All Superinterfaces:
InterceptorOperations
All Known Subinterfaces:
ServerRequestInterceptor

public interface ServerRequestInterceptorOperations
extends InterceptorOperations

A Server Request interceptor intercepts the flow of an incoming request into a server and its reply through the ORB at specific points.


Method Summary
 void receive_request_service_contexts(ServerRequestInfo ri)
          At this receive_request_service_contexts() interception point, interceptors must get their service context information from the incoming request and transfer it to Current's slots.This interception point is called before the servant manager is called.
 void receive_request(ServerRequestInfo ri)
          This receive_request() interception point allows an interceptor to query request information after all the information, including method parameters, are available.
 void send_exception(ServerRequestInfo ri)
          This send_exception() interception point is called when an exception occurs.
 void send_other(ServerRequestInfo ri)
          Allows an interceptor to query the information available when a request results in something other than a normal reply or an exception.
 void send_reply(ServerRequestInfo ri)
          This send_reply() interception point allows an interceptor to query reply information and modify the reply service context after the target operation has been invoked and before the reply is returned to the client.
 
Methods inherited from interface org.omg.PortableInterceptor.InterceptorOperations
destroy, name
 

Method Detail

send_other

void send_other(ServerRequestInfo ri)
                throws ForwardRequest
Allows an interceptor to query the information available when a request results in something other than a normal reply or an exception. For example, a request could result in a retry (e.g., a GIOP Reply with a LOCATION_FORWARD status was received). This interception point shall execute in the same thread as the target invocation.

This interception point may throw a system exception. If it does, no other interceptor's send_other operations are called. The remaining interceptors in the flow stack shall have their send_exception interception points called.

This interception point may also throw a ForwardRequest exception. If an interceptor throws this exception, successive interceptor's send_other operations are called with the new information provided by the ForwardRequest exception.

Compliant interceptors shall properly follow completion_status semantics if they throw a system exception from this interception point. The completion_status shall be COMPLETED_NO.

Parameters:
ri - This is the ServerRequestInfo instance to be used by interceptor.
Throws:
ForwardRequest - The ForwardRequest exception is the means by which an Interceptor can indicate to the ORB that a retry of the request should occur with the new object given in the exception.

send_exception

void send_exception(ServerRequestInfo ri)
                    throws ForwardRequest
This send_exception() interception point is called when an exception occurs. It allows an interceptor to query the exception information and modify the reply service context before the exception is raised to the client. This interception point will execute in the same thread as the target invocation. This interception point may raise a system exception. This has the effect of changing the exception which successive interceptors popped from the flow stack receive on their calls to send_exception. The exception raised to the client will be the last exception raised by an interceptor, or the original exception if no interceptor changes the exception.This interception point may also raise a ForwardRequest exception.

Parameters:
ri - This is the ServerRequestInfo instance to be used by interceptor.
Throws:
ForwardRequest - The ForwardRequest exception is the means by which an Interceptor can indicate to the ORB that a retry of the request should occur with the new object given in the exception.

send_reply

void send_reply(ServerRequestInfo ri)
This send_reply() interception point allows an interceptor to query reply information and modify the reply service context after the target operation has been invoked and before the reply is returned to the client. This interception point will execute in the same thread as the target invocation. This interception point may raise a system exception. If it does, no other interceptor's send_reply() interception points are called. The remaining interceptors in the flow stack will have their send_exception() interception point called.

Parameters:
ri - This is the ServerRequestInfo instance to be used by interceptor.

receive_request

void receive_request(ServerRequestInfo ri)
                     throws ForwardRequest
This receive_request() interception point allows an interceptor to query request information after all the information, including method parameters, are available. This interception point will execute in the same thread as the target invocation.In the DSI model, since the parameters are first available when the user code calls arguments(), receive_request() is called from within arguments().

It is possible that arguments() is not called in the DSI model. The target may call set_exception() before calling arguments().The ORB will guarantee that receive_request() is called once,either through arguments() or through set_exception(). If it is called through set_exception(), requesting the arguments() will result in NO_RESOURCES being raised with a standard minor code of 1.

This interception point may raise a system exception. If it does, no other interceptor's receive_request() methods are called. Those interceptors on the flow stack are popped and their send_exception interception points are called.This interception point may also raise a ForwardRequest exception. If an interceptor raises this exception, no other Interceptor's receive_request() methods are called. Those interceptors on the flow stack are popped and their send_other() interception points are called.

Parameters:
ri - This is the ServerRequestInfo instance to be used by interceptor.
Throws:
ForwardRequest - The ForwardRequest exception is the means by which an Interceptor can indicate to the ORB that a retry of the request should occur with the new object given in the exception.

receive_request_service_contexts

void receive_request_service_contexts(ServerRequestInfo ri)
                                      throws ForwardRequest
At this receive_request_service_contexts() interception point, interceptors must get their service context information from the incoming request and transfer it to Current's slots.This interception point is called before the servant manager is called. Operation parameters are not yet available at this point. This interception point may or may not execute in the same thread as the target invocation. This interception point may raise a system exception. If it does, no other interceptor's receive_request_service_contexts() interception points are called. Those interceptors on the flow stack are popped and their send_exception() interception points are called.

This interception point may also raise a ForwardRequest exception. If an interceptor raises this exception, no other interceptor's receive_request_service_contexts() methods are called. Those interceptors on the flow stack are popped and their send_other interception points are called.

Parameters:
ri - This is the ServerRequestInfo instance to be used by interceptor.
Throws:
ForwardRequest - The ForwardRequest exception is the means by which an Interceptor can indicate to the ORB that a retry of the request should occur with the new object given in the exception.

Borland Software Corporation
http://www.borland.com
100 Enterprise Way
Scotts Valley, CA 95066
Voice: (831) 431-1000
pubsweb@borland.com

Read the latest documentation online