JavaTM Platform
Standard Ed. 6

javax.management.remote.rmi
클래스 RMIConnectorServer

java.lang.Object 
  상위를 확장 javax.management.NotificationBroadcasterSupport 
      상위를 확장 javax.management.remote.JMXConnectorServer 
          상위를 확장 javax.management.remote.rmi.RMIConnectorServer
모든 구현된 인터페이스:
MBeanRegistration , NotificationBroadcaster , NotificationEmitter , JMXAddressable , JMXConnectorServerMBean


public class RMIConnectorServer
extends JMXConnectorServer

원격 클라이언트로부터의 RMI 베이스의 접속을 작성하는 JMX API 연결기 서버입니다. 일반적으로, 이러한 연결기 서버의 작성에는,JMXConnectorServerFactory 가 사용됩니다. 그러나,RMIServerImpl 객체 등, 이 클래스를 사용할 수 있는 특수한 어플리케이션도 있습니다.

도입된 버젼:
1.5

필드의 개요
static String JNDI_REBIND_ATTRIBUTE
          RMI 연결기 서버를 나타내는 RMIServer Stub가 같은 주소의 기존의 Stub를 오버라이드(override) 할지 어떨지를 지정하는 속성의 이름입니다.
static String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
          작성된 RMI 객체 RMIClientSocketFactory 를 이 연결기로 지정하는 속성의 이름입니다.
static String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
          작성된 RMI 객체 RMIServerSocketFactory 를 이 연결기로 지정하는 속성의 이름입니다.
 
클래스 javax.management.remote. JMXConnectorServer 로부터 상속된 필드
AUTHENTICATOR
 
생성자 의 개요
RMIConnectorServer (JMXServiceURL  url, Map <String ,? > environment)
          RMIConnectorServer 를 작성합니다.
RMIConnectorServer (JMXServiceURL  url, Map <String ,? > environment, MBeanServer  mbeanServer)
          지정된 MBean 서버의 RMIConnectorServer 를 작성합니다.
RMIConnectorServer (JMXServiceURL  url, Map <String ,? > environment, RMIServerImpl  rmiServerImpl, MBeanServer  mbeanServer)
          지정된 MBean 서버의 RMIConnectorServer 를 작성합니다.
 
메소드의 개요
protected  void connectionClosed (String  connectionId, String  message, Object  userData)
          클라이언트 접속이 정상적으로 종료했을 때 서브 클래스에 의해 불려 갑니다.
protected  void connectionFailed (String  connectionId, String  message, Object  userData)
          클라이언트 접속에 실패했을 때 서브 클래스에 의해 불려 갑니다.
protected  void connectionOpened (String  connectionId, String  message, Object  userData)
          새로운 클라이언트 접속을 유효하게 했을 때 서브 클래스에 의해 불려 갑니다.
 JMXServiceURL getAddress ()
          이 연결기 서버의 주소
 Map <String ,? > getAttributes ()
          이 연결기 서버의 속성
 boolean isActive ()
          연결기 서버가 액티브한가 어떤가를 판정합니다.
 void setMBeanServerForwarder (MBeanServerForwarder  mbsf)
          이 연결기 서버 경유로 착신한 MBean 서버에의 요구를 차단하는 객체를 추가합니다.
 void start ()
          액티브하게 된 연결기 서버는, 클라이언트 접속의 대기를 개시합니다.
 void stop ()
          연결기 서버를 종료해, 클라이언트 접속의 대기를 정지합니다.
 JMXConnector toJMXConnector (Map <String ,? > env)
          이 연결기 서버의 클라이언트 Stub를 돌려줍니다.
 
클래스 javax.management.remote. JMXConnectorServer 로부터 상속된 메소드
getConnectionIds , getMBeanServer , getNotificationInfo , postDeregister , postRegister , preDeregister , preRegister
 
클래스 javax.management. NotificationBroadcasterSupport 로부터 상속된 메소드
addNotificationListener , handleNotification , removeNotificationListener , removeNotificationListener , sendNotification
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

JNDI_REBIND_ATTRIBUTE

public static final String  JNDI_REBIND_ATTRIBUTE

RMI 연결기 서버를 나타내는 RMIServer Stub가 같은 주소의 기존의 Stub를 오버라이드(override) 할지 어떨지를 지정하는 속성의 이름입니다. 이 속성에 값을 관련짓는 경우,"true" 또는 "false" 와 동등의 캐릭터 라인 (영문자의 대문자와 소문자의 구별은 하지 않는다)을 지정할 필요가 있습니다. 디폴트 값는 false 입니다.

관련 항목:
정수 필드치

RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

public static final String  RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

작성된 RMI 객체 RMIClientSocketFactory 를 이 연결기로 지정하는 속성의 이름입니다. 이 속성에는,RMIClientSocketFactory 형의 값을 관련지을 필요가 있습니다. 이 값은, 연결기 서버의 작성시로 지정된 Map 인수내 밖에 지정할 수 없습니다.

관련 항목:
정수 필드치

RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

public static final String  RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

작성된 RMI 객체 RMIServerSocketFactory 를 이 연결기로 지정하는 속성의 이름입니다. 이 속성에는,RMIServerSocketFactory 형의 값을 관련지을 필요가 있습니다. 이 값은, 연결기 서버의 작성시로 지정된 Map 인수내 밖에 지정할 수 없습니다.

관련 항목:
정수 필드치
생성자 의 상세

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL  url,
                          Map <String ,? > environment)
                   throws IOException 

RMIConnectorServer 를 작성합니다. 이 처리는,RMIConnectorServer(directoryURL, environment, null, null) 의 호출과 동등합니다.

파라미터:
url - 연결기 서버의 작성 방법을 정의하는 URL. null 는 불가
environment - RMI 객체의 작성과 포함을 관리하는 속성. 이 파라미터가 null 의 경우, 빈 상태(empty)의 맵을 지정했을 경우와 같은 것이 된다
예외:
IllegalArgumentException - url 가 null 의 경우
MalformedURLException - url 가 RMI 연결기의 구문에 준거하고 있지 않는 경우, 또는 그 프로토콜이 이 구현으로 인식되지 않는 경우. 이 생성자 의 사용시에는, rmi 와 iiop 만이 유효
IOException - 어떠한 이유로써 연결기 서버를 작성할 수 없는 경우, 또는 start 메소드의 실패를 피할 수 없는 경우

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL  url,
                          Map <String ,? > environment,
                          MBeanServer  mbeanServer)
                   throws IOException 

지정된 MBean 서버의 RMIConnectorServer 를 작성합니다. 이 처리는,RMIConnectorServer(directoryURL, environment, null, mbeanServer) 의 호출과 동등합니다.

파라미터:
url - 연결기 서버의 작성 방법을 정의하는 URL. null 는 불가
environment - RMI 객체의 작성과 포함을 관리하는 속성. 이 파라미터가 null 의 경우, 빈 상태(empty)의 맵을 지정했을 경우와 같은 것이 되는
mbeanServer - 새로운 연결기 서버의 접속처 MBean 서버. 이 연결기 서버를 MBean 서버에 등록하는 것에 의해 MBean 서버에 접속하는 경우는 null
예외:
IllegalArgumentException - url 가 null 의 경우
MalformedURLException - url 가 RMI 연결기의 구문에 준거하고 있지 않는 경우, 또는 그 프로토콜이 이 구현으로 인식되지 않는 경우. 이 생성자 의 사용시에는, rmi 와 iiop 만이 유효
IOException - 어떠한 이유로써 연결기 서버를 작성할 수 없는 경우, 또는 start 메소드의 실패를 피할 수 없는 경우

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL  url,
                          Map <String ,? > environment,
                          RMIServerImpl  rmiServerImpl,
                          MBeanServer  mbeanServer)
                   throws IOException 

지정된 MBean 서버의 RMIConnectorServer 를 작성합니다.

파라미터:
url - 연결기 서버의 작성 방법을 정의하는 URL. null 는 불가
environment - RMI 객체의 작성과 포함을 관리하는 속성. 이 파라미터가 null 의 경우, 빈 상태(empty)의 맵을 지정했을 경우와 같은 것이 되는
rmiServerImpl - url 로 지정된 프로토콜형에 준거한, RMIServer 인터페이스의 구현. 이 파라미터의 값이 null 이외의 경우, url 로 지정된 프로토콜형은 강제당하지 않고, 유효라고 보여진다. 그 이외의 경우, rmi 와 iiop 만이 인식되는
mbeanServer - 새로운 연결기 서버의 접속처 MBean 서버. 이 연결기 서버를 MBean 서버에 등록하는 것에 의해 MBean 서버에 접속하는 경우는 null
예외:
IllegalArgumentException - url 가 null 의 경우
MalformedURLException - url 가 RMI 연결기의 구문에 준거하고 있지 않는 경우, 또는 그 프로토콜이 이 구현으로 인식되지 않는 경우. rmiServerImpl 가 null 때는, rmi 와 iiop 만이 인식된다
IOException - 어떠한 이유로써 연결기 서버를 작성할 수 없는 경우, 또는 start 메소드의 실패를 피할 수 없는 경우
관련 항목:
start()
메소드의 상세

toJMXConnector

public JMXConnector  toJMXConnector(Map <String ,? > env)
                            throws IOException 

이 연결기 서버의 클라이언트 Stub를 돌려줍니다. 클라이언트 Stub는 직렬화 가능한 객체입니다. 이 객체의 connect 메소드를 사용해, 이 연결기 서버와의 새로운 접속을 1 개 확립할 수 있습니다.

정의:
인터페이스 JMXConnectorServerMBean 내의 toJMXConnector
오버라이드(override):
클래스 JMXConnectorServer 내의 toJMXConnector
파라미터:
env - JMXConnector.connect(Map) 에 제공 가능한 같은 종류의 클라이언트 접속 파라미터. 이 파라미터가 null 의 경우, 빈 상태(empty)의 맵을 지정했을 경우와 같은 것이 된다
반환값:
이 연결기 서버와의 새로운 접속을 확립하기 위해서 사용할 수 있다 클라이언트 Stub
예외:
UnsupportedOperationException - 이 연결기 서버가 클라이언트 Stub의 생성 기능을 지원하지 않는 경우
IllegalStateException - JMXConnectorServer 가 기동하고 있지 않는 경우 (isActive() 를 참조)
IOException - 통신 장해에 의해, Stub를 작성할 수 없는 경우

start

public void start()
           throws IOException 

액티브하게 된 연결기 서버는, 클라이언트 접속의 대기를 개시합니다. 연결기 서버가 벌써 액티브한 경우는, 이 메소드를 호출해도 아무것도 일어나지 않습니다. 연결기 서버가 정지하고 있는 상태로 이 메소드를 호출하면(자),IOException 가 생성됩니다.

초기 호출시의 이 메소드의 동작은, 이하와 같이, 구축시로 지정된 파라미터에 의존합니다.

우선, RMI 로부터 연결기 서버를 export 하기 위한(해),RMIServerImpl 의 서브 클래스의 객체가 요구됩니다.

지정된 주소에,javax.management.remote.rmi 의 패키지 문서의 지정 대로의 JNDI 디렉토리 URL 가 포함되는 경우, 이 RMIConnectorServer 는, 지정된 주소에 RMIServerImpl 를 바인드 하는 것으로써, bootstrap 합니다.

JMXServiceURL 의 URL 패스 부분이 빈 상태(empty) 또는 단일의 slash (/)인 경우, RMI 객체는 디렉토리에 바인드 되지 않습니다. 대신에, 그 참조가,getAddress() 로부터 반환되는 RMIConnectorServer 주소의 URL 패스내에 encode 됩니다. rmiiiop 의 encode에 대해서는,javax.management.remote.rmi 의 패키지 문서에 기재되어 있습니다.

URL 패스가 빈 상태(empty)이 아니고, JNDI 디렉토리 URL 도 아닌 경우, 또는 프로토콜이 rmiiiop 도 아닌 경우의 동작은, 구현 마다 정의되고 있습니다. 연결기 서버의 작성시 또는 개시시에 MalformedURLException 를 throw 하는 동작이 정의되고 있는 경우도 있습니다.

예외:
IllegalStateException - 연결기 서버가 MBean 서버에 접속되어 있지 않은 경우
IOException - 연결기 서버를 기동할 수 없는 경우

stop

public void stop()
          throws IOException 

연결기 서버를 종료해, 클라이언트 접속의 대기를 정지합니다. 이 메소드를 호출하면(자), 이 서버로 작성된 모든 클라이언트 접속이 종료합니다. 이 메소드가 정상적으로 종료했을 경우도, 예외를 생성해 종료했을 경우도, 연결기 서버는 새로운 클라이언트 접속을 작성하지 않게 됩니다.

일단 정지한 연결기 서버를 재차 기동할 수 없습니다.

연결기 서버가 벌써 정지하고 있는 경우는, 이 메소드를 호출해도 아무것도 일어나지 않습니다. 연결기 서버가 아직 기동하고 있지 않는 상태로 이 메소드를 호출하면(자), 연결기 서버 객체가 영속적으로 무효화됩니다.

클라이언트 접속의 종료시에 생성된 예외는, 이 메소드로부터는 throw 되지 않습니다. 이 MBean 로부터는,JMXConnectionNotification 와 종료할 수 없었던 접속의 접속 ID 가 발행됩니다.

연결기 서버의 종료는, 시간이 걸리는 오퍼레이션입니다. 예를 들어 유효한 접속을 가지고 있는 클라이언트 머신이 크래쉬 했을 경우, 종료 오퍼레이션은 네트워크 프로토콜의 타임 아웃까지 중단될 가능성이 있습니다. 종료 오퍼레이션의 도중에 기다리게 되고 싶지 않은 경우는, 별thread로 실행해 주세요.

이 메소드는, 연결기 서버의 RMIServerImpl 객체상에서 close 메소드를 호출합니다.

start 메소드로 RMIServerImpl 가 JNDI 디렉토리에 바인드 되고 있는 경우, 이 메소드로 바인드가 해제됩니다.

예외:
IOException - 서버를 정상적으로 종료할 수 없는 경우, 또는 디렉토리로부터 RMIServerImpl 의 바인드를 해제할 수 없다 경우. 이 예외가 throw 되었을 때, 서버는 벌써 모든 클라이언트 접속의 종료 처리, RMIServerImpl.close() 의 호출해, 및 RMIServerImpl 의 바인드 해제를 필요에 따라서 시행하고 있다. 서버가 모든 클라이언트 접속의 종료를 시행했을 때 예외가 생성되어 있지 않으면, 모든 클라이언트 접속은 종료하고 있다

isActive

public boolean isActive()
인터페이스 JMXConnectorServerMBean 의 기술:

연결기 서버가 액티브한가 어떤가를 판정합니다. start 메소드가 정상적으로 종료하면(자), 연결기 서버는 액티브하게 됩니다. 그 후,stop 메소드가 불려 가는지, 장해가 발생할 때까지, 연결기 서버는 액티브한 상태를 유지합니다.

반환값:
연결기 서버가 액티브한 경우는 true

getAddress

public JMXServiceURL  getAddress()
인터페이스 JMXConnectorServerMBean 의 기술:

이 연결기 서버의 주소

반환값:
이 연결기 서버의 주소. 존재하지 않는 경우는 null

getAttributes

public Map <String ,? > getAttributes()
인터페이스 JMXConnectorServerMBean 의 기술:

이 연결기 서버의 속성

반환값:
이 연결기 서버의 속성을 포함한다 읽기 전용 맵. 직렬화 가능한 값을 가지는 속성은, 이 맵으로부터 제외된다. 직렬화 가능한 속성이 존재하지 않는 경우, 빈 상태(empty)의 맵이 반환된다

setMBeanServerForwarder

public void setMBeanServerForwarder(MBeanServerForwarder  mbsf)
인터페이스 JMXConnectorServerMBean 의 기술:

이 연결기 서버 경유로 착신한 MBean 서버에의 요구를 차단하는 객체를 추가합니다. 이 객체는, 이 연결기 서버에 의해 작성된 새로운 접속의 MBeanServer 로서 지정됩니다. 기존의 접속에 영향은 없습니다.

이 연결기 서버가 벌써 MBeanServer 객체에 관련지을 수 있고 있는 경우는,mbsf.setMBeanServer 에 이 객체가 건네받습니다. 이 처리로 예외가 생성되었을 경우, 이 메소드는 그 예외를 throw 합니다.

throw 되는 예외는, 어떤 영향도 가지지 않습니다. 이 연결기가 아직 MBeanServer 객체에 관련지을 수 있지 않은 경우, 또는 mbsf.setMBeanServer 호출이 성공했을 경우,mbsf 가 이 연결기 서버의 MBeanServer 가 됩니다.

정의:
인터페이스 JMXConnectorServerMBean 내의 setMBeanServerForwarder
오버라이드(override):
클래스 JMXConnectorServer 내의 setMBeanServerForwarder
파라미터:
mbsf - 새로운 MBeanServerForwarder

connectionOpened

protected void connectionOpened(String  connectionId,
                                String  message,
                                Object  userData)
클래스 JMXConnectorServer 의 기술:

새로운 클라이언트 접속을 유효하게 했을 때 서브 클래스에 의해 불려 갑니다. JMXConnectorServer.getConnectionIds() 에 의해 반환되는 리스트에 connectionId 를 추가해,JMXConnectionNotification.OPENEDJMXConnectionNotification 를 발행합니다.

오버라이드(override):
클래스 JMXConnectorServer 내의 connectionOpened
파라미터:
connectionId - 새로운 접속의 ID. 이전에 이 연결기 서버에 의해 유효하게 된 접속의 ID 란 차이가 나지 않으면 안 되는
message - 발행된 JMXConnectionNotification 의 메세지. null 도 가능Notification.getMessage() 를 참조
userData - 발행된 JMXConnectionNotificationuserData. null 도 가능Notification.getUserData() 를 참조

connectionClosed

protected void connectionClosed(String  connectionId,
                                String  message,
                                Object  userData)
클래스 JMXConnectorServer 의 기술:

클라이언트 접속이 정상적으로 종료했을 때 서브 클래스에 의해 불려 갑니다. JMXConnectorServer.getConnectionIds() 에 의해 반환되는 리스트로부터 connectionId 를 삭제해,JMXConnectionNotification.CLOSEDJMXConnectionNotification 를 발행합니다.

오버라이드(override):
클래스 JMXConnectorServer 내의 connectionClosed
파라미터:
connectionId - 종료한 접속의 ID
message - 발행된 JMXConnectionNotification 의 메세지. null 도 가능Notification.getMessage() 를 참조
userData - 발행된 JMXConnectionNotificationuserData. null 도 가능Notification.getUserData() 를 참조

connectionFailed

protected void connectionFailed(String  connectionId,
                                String  message,
                                Object  userData)
클래스 JMXConnectorServer 의 기술:

클라이언트 접속에 실패했을 때 서브 클래스에 의해 불려 갑니다. JMXConnectorServer.getConnectionIds() 에 의해 반환되는 리스트로부터 connectionId 를 삭제해,JMXConnectionNotification.FAILEDJMXConnectionNotification 를 발행합니다.

오버라이드(override):
클래스 JMXConnectorServer 내의 connectionFailed
파라미터:
connectionId - 실패한 접속의 ID
message - 발행된 JMXConnectionNotification 의 메세지. null 도 가능Notification.getMessage() 를 참조
userData - 발행된 JMXConnectionNotificationuserData. null 도 가능Notification.getUserData() 를 참조

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 도 참조해 주세요.