JavaTM Platform
Standard Ed. 6

org.omg.PortableInterceptor
인터페이스 ClientRequestInterceptorOperations

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


public interface ClientRequestInterceptorOperations
extends InterceptorOperations

클라이언트측의 요구 인타세프타입니다.

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

클라이언트측의 인타세프타를 작성하려면 ,ClientRequestInterceptor 인터페이스를 구현합니다.

관련 항목:
ClientRequestInfo

메소드의 개요
 void receive_exception (ClientRequestInfo  ri)
          예외가 발생한 것을 인타세프타에 통지합니다.
 void receive_other (ClientRequestInfo  ri)
          요구에 의해 일반적으로의 응답 또는 예외 이외의 것이 돌려주어졌을 때에, 인타세프타가 이용 가능한 정보를 조회할 수 있도록(듯이) 합니다.
 void receive_reply (ClientRequestInfo  ri)
          서버로부터 응답이 돌려주어지고 나서 제어가 클라이언트에 돌려주어질 때까지, 인타세프타가 응답에 관한 정보를 조회할 수 있도록(듯이) 합니다.
 void send_poll (ClientRequestInfo  ri)
          TII (Time-Independent Invocation) 폴링 취득 응답 순서의 실행시에 인타세프타가 정보를 조회할 수 있도록(듯이) 합니다.
 void send_request (ClientRequestInfo  ri)
          요구가 서버에 송신되기 전에, 인타세프타가 요구 정보를 조회하거나 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다.
 
인터페이스 org.omg.PortableInterceptor. InterceptorOperations 로부터 상속된 메소드
destroy , name
 

메소드의 상세

send_request

void send_request(ClientRequestInfo  ri)
                  throws ForwardRequest 
요구가 서버에 송신되기 전에, 인타세프타가 요구 정보를 조회하거나 서비스 문맥을 변경하거나 할 수 있도록(듯이) 합니다.

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

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

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

send_poll

void send_poll(ClientRequestInfo  ri)
TII (Time-Independent Invocation) 폴링 취득 응답 순서의 실행시에 인타세프타가 정보를 조회할 수 있도록(듯이) 합니다.

TII 를 사용하면(자), 어플리케이션은, 폴링 클라이언트등의 클라이언트에 의해 이전에 송신된 요구에 대한 응답을 폴링 할 수 있습니다. 이 폴링은,send_poll 차단점을 개입시켜 인타세프타에 보고되어receive_reply 또는 receive_exception 차단점을 개입시켜 응답이 돌려주어집니다. 폴링의 타임 아웃이 지나지 않았는데 응답을 사용할 수 없는 경우는, 시스템 예외 TIMEOUT 가 throw 되어 이 예외에 의해 receive_exception 가 불려 갑니다.

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

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

파라미터:
ri - 차단되는 현재의 요구에 관한 정보
예외:
TIMEOUT - 폴링의 타임 아웃이 지나지 않았는데 응답을 사용할 수 없는 경우

receive_reply

void receive_reply(ClientRequestInfo  ri)
서버로부터 응답이 돌려주어지고 나서 제어가 클라이언트에 돌려주어질 때까지, 인타세프타가 응답에 관한 정보를 조회할 수 있도록(듯이) 합니다.

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

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

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

receive_exception

void receive_exception(ClientRequestInfo  ri)
                       throws ForwardRequest 
예외가 발생한 것을 인타세프타에 통지합니다. 예외가 클라이언트에 throw 되기 전에 인타세프타가 그 예외의 정보를 조회할 수 있도록(듯이) 합니다.

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

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

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

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

일부의 조건의 아래에서는, 어느 정책가 유효하게 되어 있을까에 의해,COMM_FAILURE 등의 예외에 의해 요구의 재시행을 할 가능성이 있습니다. 이 재시행은 인타세프타에 대한 새로운 요구가 됩니다만, 원의 요구와 재시행 요구와의 사이에는 1 곳 뿐 상관관계가 있습니다. 즉, 제어가 클라이언트에 돌려주어지지 않았기 (위해)때문에, 원의 요구와 재시행 요구의 PortableInterceptor.Current 가 같게 됩니다.

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

receive_other

void receive_other(ClientRequestInfo  ri)
                   throws ForwardRequest 
요구에 의해 일반적으로의 응답 또는 예외 이외의 것이 돌려주어졌을 때에, 인타세프타가 이용 가능한 정보를 조회할 수 있도록(듯이) 합니다. 예를 들어, 요구에 의해 재시행이 생길 가능성이 있습니다 (LOCATION_FORWARD 상태가 설정된 GIOP 응답이 수신되었을 경우 등). 비동기 호출에서는, 요구의 직후에 응답이 돌려주어질 것은 없습니다만, 제어는 클라이언트에 돌려주어져 종료 차단점이 불려 갑니다.

재시행에서는, 유효하게 되어 있는 정책에 의해, 재시행이 지시받았을 때에 새로운 요구가 계속되는 경우와 계속되지 않는 경우가 있습니다. 새로운 요구가 계속되는 경우, 이 요구는 인타세프타에 대한 새로운 요구가 됩니다만, 원의 요구와 재시행 요구와의 사이에 1 곳 뿐 상관관계가 있습니다. 즉, 제어가 클라이언트에 돌려주어지지 않았기 (위해)때문에, 원의 요구와 재시행 요구의 어느쪽이나, 요구의 스코프가 지정된 PortableInterceptor.Current 가 같게 됩니다.

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

이 차단점에서는,ForwardRequest 예외가 throw 되는 경우도 있습니다. 이 예외가 throw 되었을 경우는, 후속의 인타세프타의 receive_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 도 참조해 주세요.