|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.server.UnicastRemoteObject
java.rmi.activation.ActivationGroup
public abstract class ActivationGroup
ActivationGroup
는, 그룹내의 「기동 가능한」객체의 새로운 인스턴스를 생성해, 그룹의 ActivationMonitor
에 대해서, 객체의 기동이나 정지, 혹은 그룹 전체의 정지를 통지합니다.
ActivationGroup
는 최초, 이하의 어떤 것이나 방법으로 작성합니다.
ActivationDesc
(명시적인 ActivationGroupID
는 없다)를 작성한다
ActivationGroup.createGroup
메소드를 사용한다
ActivationGroupDesc
의 등록 후, 그룹내의 최초의 객체를 기동한다
activator만이,ActivationGroup
를 다시 작성할 수가 있습니다. 필요에 따라서 activator는, 등록된 기동 그룹 마다 별개의 VM 를 child process등으로 해서 생성해, 기동 요구를 적절한 그룹에 리다이렉트(redirect) 합니다. VM 를 생성하는 방법은, 구현에 따라서 다릅니다. 기동 그룹은, static 메소드 ActivationGroup.createGroup
를 사용해 작성됩니다. createGroup
메소드로 그룹을 작성하는 경우, 다음의 2 개의 필요 조건이 있습니다. 1) 그룹은,ActivationGroup
의 구상 서브 클래스인 것, 2) 그룹에는, 이하의 2 개의 인수를 취하는 생성자 이 있는 것입니다.
ActivationGroupID
java.rmi.MarshalledObject
내의) 초기화 데이터
그룹이 작성되면(자),ActivationGroup
의 디폴트의 구현에서는, 이 그룹의 ActivationGroupDesc
을 작성했을 때에 요구된 프로퍼티에 의해 시스템의 프로퍼티이 오버라이드(override) 되어java.rmi.RMISecurityManager
가 디폴트의 system security 매니저로서 설정됩니다. 그룹내에서 객체가 기동될 때, 특정의 프로퍼티의 설정을 필요로 하는 어플리케이션의 경우, 임의의 ActivationDesc
를 작성하기 전 (디폴트의 ActivationDesc
가 작성되기 전)에, 어플리케이션에 필요한 프로퍼티으로 구성되는 특별한 Properties
객체를 작성합니다. 그리고, 그 Properties
를 설정해 ActivationGroupDesc
를 작성하고 나서,ActivationGroup.createGroup
를 사용합니다. java.rmi.RMISecurityManager
이외의 시큐리티 매니저가 필요한 어플리케이션의 경우는, ActivativationGroupDescriptor 프로퍼티 리스트로,java.security.manager
프로퍼티을 인스톨 하는 시큐리티 매니저의 이름으로 설정할 수 있습니다.
ActivationInstantiator
,
ActivationGroupDesc
,
ActivationGroupID
,
직렬화 된 형식 필드의 개요 |
---|
클래스 java.rmi.server. RemoteObject 로부터 상속된 필드 |
---|
ref |
생성자 의 개요 | |
---|---|
protected |
ActivationGroup (ActivationGroupID groupID)
지정된 기동 그룹 식별자를 가지는 기동 그룹을 구축합니다. |
메소드의 개요 | |
---|---|
protected void |
activeObject (ActivationID id,
MarshalledObject <? extends Remote > mobj)
이 protected 메소드는, 서브 클래스가 그룹의 모니터에 activeObject 콜백을 실시하기 위해서(때문에) 필요합니다. |
abstract void |
activeObject (ActivationID id,
Remote obj)
그룹의 activeObject 메소드는, 객체가 export 될 때 불려 갑니다. |
static ActivationGroup |
createGroup (ActivationGroupID id,
ActivationGroupDesc desc,
long incarnation)
현재의 VM 로 사용하는 기동 그룹을 작성 및 설정합니다. |
static ActivationGroupID |
currentGroupID ()
현재의 기동 그룹의 식별자를 돌려줍니다. |
static ActivationSystem |
getSystem ()
VM 가 사용하는 기동 시스템을 돌려줍니다. |
protected void |
inactiveGroup ()
이 protected 메소드는, 서브 클래스가 그룹의 모니터에 inactiveGroup 콜백을 실시하기 위해서(때문에) 필요합니다. |
boolean |
inactiveObject (ActivationID id)
그룹의 inactiveObject 메소드는,Activatable.inactive 메소드의 호출을 통해서 간접적으로 불려 갑니다. |
static void |
setSystem (ActivationSystem system)
VM 가 사용하는 기동 시스템을 설정합니다. |
클래스 java.rmi.server. UnicastRemoteObject 로부터 상속된 메소드 |
---|
clone , exportObject , exportObject , exportObject , unexportObject |
클래스 java.rmi.server. RemoteServer 로부터 상속된 메소드 |
---|
getClientHost , getLog , setLog |
클래스 java.rmi.server. RemoteObject 로부터 상속된 메소드 |
---|
equals , getRef , hashCode , toString , toStub |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
인터페이스 java.rmi.activation. ActivationInstantiator 로부터 상속된 메소드 |
---|
newInstance |
생성자 의 상세 |
---|
protected ActivationGroup(ActivationGroupID groupID) throws RemoteException
java.rmi.server.UnicastRemoteObject
로서 export 됩니다.
groupID
- 그룹의 식별자
RemoteException
- 이 그룹을 export 할 수 없는 경우메소드의 상세 |
---|
public boolean inactiveObject(ActivationID id) throws ActivationException , UnknownObjectException , RemoteException
inactiveObject
메소드는,Activatable.inactive
메소드의 호출을 통해서 간접적으로 불려 갑니다. 원격 객체의 구현에서는, 객체가 종료할 때, 즉, 객체가 동작중이 아니게 될 때,Activatable
의 inactive
메소드를 호출할 필요가 있습니다. 객체가 종료시에 Activatable.inactive
를 호출하지 않으면 그룹은 자신이 작성한 객체에의 강참조를 보관 유지하므로, 객체는 결코 가베지 컬렉트되지 않습니다.
그룹의 inactiveObject
메소드는, 원격 객체를 RMI 런타임으로부터 안 export 해, RMI 착신 호출의 접수를 할 수 없게 합니다. 객체의 안 export는, 보류중 혹은 실행중의 호출을 객체가 가지고 있지 않은 경우에만 가능합니다. ActivationGroup
의 서브 클래스는, 이 메소드를 오버라이드(override) 해 객체를 안 export 할 필요가 있습니다.
RMI 런타임으로부터 객체를 삭제 후, 그룹은 그 ActivationMonitor
에, 모니터의 inactiveObject
메소드를 통해서, 원격 객체가 기동중이 아닌 것을 통지할 필요가 있습니다. 이것에 의해, 이후의 기동 요구 때에, activator에 의해 원격 객체가 다시 기동됩니다.
이 메소드는, 그룹의 모니터에 객체가 종료하고 있는 것을 통지할 뿐입니다. 객체의 안 export에 필요한 그 외의 조건을 만족할지 어떨지는, ActivationGroup 의 구상 서브 클래스에 의합니다.
id
- 객체의 기동 식별자
UnknownObjectException
- 객체가 불명의 경우.
벌써 종료하고 있는 경우도 있다
RemoteException
- 호출 통지 모니터가 실패했을 경우
ActivationException
- 그룹이 정지하고 있는 경우public abstract void activeObject(ActivationID id, Remote obj) throws ActivationException , UnknownObjectException , RemoteException
activeObject
메소드는, 객체가 export 될 때 불려 갑니다. export는,Activatable
객체의 구축, 혹은 Activatable.exportObject
의 명시적인 호출에 의해 실행됩니다. 객체가 기동되고 있는 것을 그룹의 ActivationMonitor
에 대해서 아직 통지하고 있지 않는 경우, 그룹은, 모니터의 activeObject
메소드를 사용해 이것을 통지할 필요가 있습니다.
id
- 객체의 식별자obj
- 구현된 원격 객체
UnknownObjectException
- 객체가 미등록의 경우
RemoteException
- 호출 통지 모니터가 실패했을 경우
ActivationException
- 그룹이 정지하고 있는 경우public static ActivationGroup createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation) throws ActivationException
createGroup
메소드를 사용해 설정되는 것은, 착신하는 activate
요구를 실행하기 위해서,Activator
가 기동 그룹의 재작성을 개시했을 때입니다. 그룹은, 최초로 ActivationSystem
를 사용해 등록된 뒤에, 이 메소드를 사용해 작성할 수 있게 됩니다.
ActivationGroupDesc
로 지정된 그룹의 클래스는,ActivationGroup
의 구상 서브 클래스이며, 또, 2 개의 인수를 취하는 public 생성자 을 가지고 있을 필요가 있습니다. 그 인수는,ActivationGroupDesc
로부터 취득되는, 그룹의 ActivationGroupID
와 그룹의 초기화 데이터를 포함한 MarshalledObject
입니다.
ActivationGroupDesc
로 지정된 그룹의 클래스명이 null
의 경우, 이 메소드는, 디폴트의 기동 그룹의 구현 클래스명에 포함되는 그룹 기술자와 같이 동작합니다.
주: 독자적인 기동 그룹을 작성하는 어플리케이션의 경우는, 그 그룹의 시큐리티 매니저를 설정할 필요가 있습니다. 그렇게 하지 않으면 그룹내에서 객체를 기동할 수 없습니다. 디폴트에서는 java.rmi.RMISecurityManager
가 시큐리티 매니저로서 설정됩니다.
시큐리티 매니저가 그룹 VM 로 설정되어 있는 경우, 이 메소드는 최초로 시큐리티 매니저의 checkSetFactory
메소드를 호출합니다. 이 결과,SecurityException
가 되는 일이 있습니다. 다른 시큐리티 매니저를 설정할 필요가 있는 어플리케이션의 경우, 그룹의 ActivationGroupDesc
로 지정된 정책 파일로, 새로운 시큐리티 매니저를 설정하기 위해서 필요한 허가를 그 그룹에게 줄 필요가 있습니다 (주: 이것은, 그룹이 시큐리티 매니저를 다운로드 및 설정하는 경우에 필요).
그룹이 작성되면(자),ActivationSystem
에 그룹이 기동한 것을 통지하기 위해서 activeGroup
메소드가 불려 가 이 메소드는 그룹의 ActivationMonitor
를 돌려줍니다. 어플리케이션으로부터 activeGroup
를 개별적으로 호출할 필요는 없습니다. 왜냐하면, 이 처리는 이 메소드에 의해 행해지기 때문입니다.
그룹이 작성되면(자), 이후의 currentGroupID
메소드에의 호출은, 그룹이 종료할 때까지는 이 그룹의 식별자를 돌려줍니다.
id
- 기동 그룹의 식별자desc
- 기동 그룹의 기술자incarnation
- 그룹의 생성 번호.
그룹을 최초로 작성했을 때에는 0
ActivationException
- 그룹이 벌써 존재하는 경우,
혹은 그룹의 작성중에 에러가 발생했을 경우
SecurityException
- 그룹을 작성하는 허가가 주어지지 않았던 경우.
주:시큐리티 매니저의
checkSetFactory
메소드의 디폴트의 구현은, 「setFactory」의 RuntimePermission 를 필요로 하는SecurityManager.checkSetFactory()
public static ActivationGroupID currentGroupID()
public static void setSystem(ActivationSystem system) throws ActivationException
ActivationSystem
에의 참조를 취득하기 위해서,getSystem
메소드가, activator의 레지스트리로 이름 「java.rmi.activation.ActivationSystem」를 검색합니다. 디폴트에서는, 기동 시스템의 검색에 사용되는 포트 번호는,ActivationSystem.SYSTEM_PORT
로 정의되고 있습니다. 이 포트 정의는, 프로퍼티 java.rmi.activation.port
를 설정하는 것으로써 오버라이드(override) 할 수 있습니다.
시큐리티 매니저가 존재하는 경우, 이 메소드는 최초로 시큐리티 매니저의 checkSetFactory
메소드를 호출합니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.
system
- ActivationSystem
에의 원격 참조
ActivationException
- 기동 시스템이 벌써 설정되어 있는 경우
SecurityException
- 기동 시스템을 설정하는 허가가 주어지지 않았던 경우.
주:시큐리티 매니저의
checkSetFactory
메소드의 디폴트의 구현은, 「setFactory」의 RuntimePermission 를 필요로 하는getSystem()
,
SecurityManager.checkSetFactory()
public static ActivationSystem getSystem() throws ActivationException
setSystem
메소드로 설정할 수 있습니다. setSystem
메소드로 기동 시스템을 설정할 수 없는 경우는,ActivationSystem
에의 참조를 취득하기 위해서,getSystem
메소드가 activator의 레지스트리로 이름 「java.rmi.activation.ActivationSystem」를 검색합니다. 디폴트에서는, 기동 시스템의 검색에 사용되는 포트 번호는,ActivationSystem.SYSTEM_PORT
로 정의되고 있습니다. 이 포트 정의는, 프로퍼티 java.rmi.activation.port
를 설정하는 것으로써 오버라이드(override) 할 수 있습니다.
ActivationException
- 기동 시스템을 취득할 수 없는지,
바인드되어 있지 않은 경우.
기동 시스템은 정지중인setSystem(java.rmi.activation.ActivationSystem)
protected void activeObject(ActivationID id, MarshalledObject <? extends Remote > mobj) throws ActivationException , UnknownObjectException , RemoteException
activeObject
콜백을 실시하기 위해서(때문에) 필요합니다. 이 호출은, 그룹의 ActivationMonitor
에 곧바로 전송 됩니다.
id
- 객체의 식별자mobj
- 원격 객체의 Stub를 포함한, 정렬화 된 객체
UnknownObjectException
- 객체가 미등록의 경우
RemoteException
- 호출 통지 모니터가 실패했을 경우
ActivationException
- 기동 에러가 발생했을 경우protected void inactiveGroup() throws UnknownGroupException , RemoteException
inactiveGroup
콜백을 실시하기 위해서(때문에) 필요합니다. 이 호출은, 그룹의 ActivationMonitor
에 곧바로 전송 됩니다. 또, VM 가 사용하는 현재의 그룹이 null 로 설정됩니다.
UnknownGroupException
- 그룹이 미등록의 경우
RemoteException
- 호출 통지 모니터가 실패했을 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.