JavaTM Platform
Standard Ed. 6

org.omg.PortableInterceptor
인터페이스 ServerRequestInterceptorOperations

모든 슈퍼 인터페이스:
InterceptorOperations
기존의 서브 인터페이스의 일람:
ServerRequestInterceptor


public interface ServerRequestInterceptorOperations
extends InterceptorOperations

서버측의 요구 인타세프타입니다.

요구 인타세프타는, 특정의 지점에서 ORB 를 개입시켜 요구/응답 순서의 흐름을 차단해, 서비스가 요구 정보를 조회하거나 클라이언트와 서버와의 사이에 거래되는 서비스 문맥을 조작하거나 할 수 있도록(듯이) 설계되고 있습니다. 요구 인타세프타의 주된 사용 목적은, ORB 서비스가 클라이언트와 서버와의 사이에 문맥 정보를 전송 할 수 있도록(듯이) 하는 것입니다. 요구 인타세프타에는, 클라이언트측과 서버측의 2 종류가 있습니다.

서버측의 인타세프타를 작성하려면 , ServerRequestInterceptor 인터페이스를 구현합니다.

관련 항목:
ServerRequestInfo

메소드의 개요
 void receive_request_service_contexts (ServerRequestInfo  ri)
          인타세프타로 서비스 문맥 정보를 처리할 수 있도록(듯이) 합니다.
 void receive_request (ServerRequestInfo  ri)
          오퍼레이션 파라미터등의 모든 정보를 사용할 수 있게 된 후에, 인타세프타가 요구 정보를 조회할 수 있도록(듯이) 합니다.
 void send_exception (ServerRequestInfo  ri)
          예외가 클라이언트에 throw 되기 전에, 인타세프타가 예외 정보를 조회하거나 응답 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다.
 void send_other (ServerRequestInfo  ri)
          요구에 의해 일반적으로의 응답 또는 예외 이외의 것이 돌려주어졌을 때에, 인타세프타가 이용 가능한 정보를 조회할 수 있도록(듯이) 합니다.
 void send_reply (ServerRequestInfo  ri)
          타겟 오퍼레이션이 불려 가고 나서 응답이 클라이언트에 돌려주어질 때까지, 인타세프타가 응답 정보를 조회하거나 응답 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다.
 
인터페이스 org.omg.PortableInterceptor. InterceptorOperations 로부터 상속된 메소드
destroy , name
 

메소드의 상세

receive_request_service_contexts

void receive_request_service_contexts(ServerRequestInfo  ri)
                                      throws ForwardRequest 
인타세프타로 서비스 문맥 정보를 처리할 수 있도록(듯이) 합니다.

이 차단점으로써, 인타세프타는 착신 요구로부터 그 서비스 문맥 정보를 취득해, 그것을 PortableInterceptor.Current 의 슬롯에 전송 할 필요가 있습니다.

이 차단점은, 서번트 매니저가 불려 가기 전에 불려 갑니다. 오퍼레이션 파라미터는, 이 시점에서는 아직 사용할 수 없습니다. 이 차단점은, 타겟의 호출과 같은 thread내에서 동작하는 경우도 하지 않는 경우도 있습니다.

이 차단점에서는, 시스템 예외가 throw 되는 경우가 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 receive_request_service_contexts 오퍼레이션은 불려 가지 않습니다. 플로우 스택상의 그러한 인타세프타가 표시되어 그 send_exception 차단점이 불려 갑니다.

이 차단점에서는,ForwardRequest 예외가 throw 되는 경우도 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 receive_request_service_contexts 오퍼레이션은 불려 가지 않습니다. 플로우 스택상의 그러한 인타세프타가 표시되어 그 send_other 차단점이 불려 갑니다.

이 차단점으로부터 시스템 예외를 throw 하는 경우, 준거하고 있는 인타세프타는 completion_status 시멘틱스에 엄밀하게 따릅니다. completion_statusCOMPLETED_NO 가 됩니다.

파라미터:
ri - 차단되는 현재의 요구에 관한 정보
예외:
ForwardRequest - throw 되었을 경우는, 예외로 지정되고 있다 새로운 객체를 사용해 요구의 재시행을 하는 것을 ORB 에 통지한다

receive_request

void receive_request(ServerRequestInfo  ri)
                     throws ForwardRequest 
오퍼레이션 파라미터등의 모든 정보를 사용할 수 있게 된 후에, 인타세프타가 요구 정보를 조회할 수 있도록(듯이) 합니다. 이 차단점은, 타겟의 호출과 같은 thread내에서 동작합니다.

DSI 모델에서는, 사용자 코드에 의해 arguments 가 불려 간 시점에서 처음으로 파라미터를 사용할 수 있게 되기 (위해)때문에,receive_requestarguments 내로부터 불려 갑니다. DSI 모델에서는,arguments 가 불려 가지 않는 것도 있습니다. 또,set_exception 가 불려 가고 나서,arguments 가 불려 가는 일도 있습니다. ORB 에서는,arguments 또는 set_exception 의 어느 쪽인지를 개입시켜 receive_request 가 1 번만 불려 가는 것을 보증하고 있습니다. set_exception 를 개입시켜 불려 갔을 경우, 인수를 요구하면(자), 표준 마이너 코드 1 이 설정된 NO_RESOURCES 가 throw 됩니다.

이 차단점에서는, 시스템 예외가 throw 되는 경우가 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 receive_request 오퍼레이션은 불려 가지 않습니다. 플로우 스택상의 그러한 인타세프타가 표시되어 그 send_exception 차단점이 불려 갑니다.

이 차단점에서는,ForwardRequest 예외가 throw 되는 경우도 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 receive_request 오퍼레이션은 불려 가지 않습니다. 플로우 스택상의 그러한 인타세프타가 표시되어 그 send_other 차단점이 불려 갑니다.

이 차단점으로부터 시스템 예외를 throw 하는 경우, 준거하고 있는 인타세프타는 completion_status 시멘틱스에 엄밀하게 따릅니다. completion_statusCOMPLETED_NO 가 됩니다.

파라미터:
ri - 차단되는 현재의 요구에 관한 정보
예외:
ForwardRequest - throw 되었을 경우는, 예외로 지정되고 있다 새로운 객체를 사용해 요구의 재시행을 하는 것을 ORB 에 통지한다

send_reply

void send_reply(ServerRequestInfo  ri)
타겟 오퍼레이션이 불려 가고 나서 응답이 클라이언트에 돌려주어질 때까지, 인타세프타가 응답 정보를 조회하거나 응답 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다. 이 차단점은, 타겟의 호출과 같은 thread내에서 동작합니다.

이 차단점에서는, 시스템 예외가 throw 되는 경우가 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 send_reply 오퍼레이션은 불려 가지 않습니다. 플로우 스택내의 나머지의 인타세프타가 표시되어 그 send_exception 차단점이 불려 갑니다.

이 차단점으로부터 시스템 예외를 throw 하는 경우, 준거하고 있는 인타세프타는 completion_status 시멘틱스에 엄밀하게 따릅니다. completion_statusCOMPLETED_YES 가 됩니다.

파라미터:
ri - 차단되는 현재의 요구에 관한 정보

send_exception

void send_exception(ServerRequestInfo  ri)
                    throws ForwardRequest 
예외가 클라이언트에 throw 되기 전에, 인타세프타가 예외 정보를 조회하거나 응답 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다. 예외가 발생하면(자), 이 차단점이 불려 갑니다. 이 차단점은, 타겟의 호출과 같은 thread내에서 동작합니다.

이 차단점에서는, 시스템 예외가 throw 되는 경우가 있습니다. 이 예외가 throw 되면(자), 플로우 스택으로부터 표시된 후속의 인타세프타가 그 send_exception 호출로 수신하는 예외가 변경됩니다. 클라이언트에 throw 되는 예외는, 인타세프타에 의해 마지막에 throw 되는 예외가 됩니다. 다만, 예외를 변경하는 인타세프타가 없는 경우는 원의 예외가 됩니다.

이 차단점에서는,ForwardRequest 예외가 throw 되는 경우도 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 send_exception 오퍼레이션은 불려 가지 않습니다. 플로우 스택내의 나머지의 인타세프타가 표시되어 그 send_other 차단점이 불려 갑니다.

이 예외의 completion_statusCOMPLETED_NO 의 경우, 이 차단점에 의해 ForwardRequest 예외가 throw 되는 것은 적절하지는 않습니다. 이 요구의 「최대로 1 회」라고 하는 시멘틱스가 없어집니다.

이 차단점으로부터 시스템 예외를 throw 하는 경우, 준거하고 있는 인타세프타는 completion_status 시멘틱스에 엄밀하게 따릅니다. 원의 예외가 시스템 예외인 경우, 새로운 예외의 completion_status 는 원의 예외의 그것과 같게 됩니다. 원의 예외가 사용자 예외인 경우, 새로운 예외의 completion_statusCOMPLETED_YES 가 됩니다.

파라미터:
ri - 차단되는 현재의 요구에 관한 정보
예외:
ForwardRequest - throw 되었을 경우는, 예외로 지정되고 있다 새로운 객체를 사용해 요구의 재시행을 하는 것을 ORB 에 통지한다

send_other

void send_other(ServerRequestInfo  ri)
                throws ForwardRequest 
요구에 의해 일반적으로의 응답 또는 예외 이외의 것이 돌려주어졌을 때에, 인타세프타가 이용 가능한 정보를 조회할 수 있도록(듯이) 합니다. 예를 들어, 요구에 의해 재시행이 생길 가능성이 있습니다 (LOCATION_FORWARD 상태가 설정된 GIOP 응답이 수신되었을 경우 등). 이 차단점은, 타겟의 호출과 같은 thread내에서 동작합니다.

이 차단점에서는, 시스템 예외가 throw 되는 경우가 있습니다. 이 예외가 throw 되었을 경우, 다른 인타세프타의 send_other 오퍼레이션은 불려 가지 않습니다. 플로우 스택내의 나머지의 인타세프타가 표시되어 그 send_exception 차단점이 불려 갑니다.

이 차단점에서는,ForwardRequest 예외가 throw 되는 경우도 있습니다. 이 예외가 throw 되었을 경우는, 후속의 인타세프타의 send_other 오퍼레이션이 불려 가ForwardRequest 예외에 의해 새로운 정보가 제공됩니다.

이 차단점으로부터 시스템 예외를 throw 하는 경우, 준거하고 있는 인타세프타는 completion_status 시멘틱스에 엄밀하게 따릅니다. completion_statusCOMPLETED_NO 가 됩니다.

파라미터:
ri - 차단되는 현재의 요구에 관한 정보
예외:
ForwardRequest - throw 되었을 경우는, 예외로 지정되고 있다 새로운 객체를 사용해 요구의 재시행을 하는 것을 ORB 에 통지한다

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.