$BL\ | $BA0$N9`L\(B | $B Java Remote Method Invocation


7.3 $B5/F02DG=%j%b!<%H%*%V%8%'%/%H$N

$B5/F0<1JL;R$r2p$7$F%"%/%;%9$G$-$k%j%b!<%H%*%V%8%'%/%H$r:n@.$9$k$K$O!"
$B5/F05-=R;R(B (ActivationDesc) $B$O!"
$B5/F0$,9T$($k$h$&$K%*%V%8%'%/%H$rEPO?$9$k$H$-$O!">e$N$I$l$+(B 1 $B$D$NJ}K!$@$1$r;HMQ$7$F$/$@$5$$!#(B $BJ#?t$NJ}K!$r;HMQ$7$J$$$G$/$@$5$$!#5/F02DG=%*%V%8%'%/%H$NH$7$F$/$@$5$$!#(B


7.3.1 ActivationDesc $B%/%i%9(B

ActivationDesc $B$K$O!"%*%V%8%'%/%H$N5/F0$KI,MW$J>pJs$,4^$^$l$^$9!#6qBNE*$K$O!"%*%V%8%'%/%H$N5/F0%0%k!<%W<1JL;R!"%*%V%8%'%/%H$N%/%i%9L>!"%*%V%8%'%/%H$N%3!<%I$N%m!<%I85$N%3!<%I%Y!<%9%Q%9(B (URL)$B!"$*$h$S!"5/F0$N$?$S$K;HMQ$5$l$k%*%V%8%'%/%H8GM-$N=i4|2=%G!<%?$,4^$^$l$k(B MarshalledObject $B$,4^$^$l$^$9!#(B

$B5/F0%7%9%F%`$KEPO?$5$l$?5-=R;R$O!"%*%V%8%'%/%H$N:F:n@.$^$?$O5/F0$KI,MW$J>pJs$rH$5$l$^$9!#%*%V%8%'%/%H$N5-=R;R$K4^$^$l$k(B MarshalledObject $B$O!"5/F0;~$K;HMQ$9$k!"%*%V%8%'%/%H$N%j%b!<%H%*%V%8%'%/%H$N%3%s%9%H%i%/%?$K(B 2 $BHVL\$N0z?t$H$7$FEO$5$l$^$9!#(B

package java.rmi.activation;

public final class ActivationDesc implements java.io.Serializable { public ActivationDesc(String className, String codebase, java.rmi.MarshalledObject data) throws ActivationException; public ActivationDesc(String className, String codebase, java.rmi.MarshalledObject data, boolean restart) throws ActivationException; public ActivationDesc(ActivationGroupID groupID, String className, String codebase, java.rmi.MarshalledObject data, boolean restart); public ActivationDesc(ActivationGroupID groupID, String className, String codebase, java.rmi.MarshalledObject data); public ActivationGroupID getGroupID(); public String getClassName(); public String getLocation(); public java.rmi.MarshalledObject getData() public boolean getRestartMode(); }

ActivationDesc $B$N(B 1 $B$DL\$N%3%s%9%H%i%/%?$O!"(Bcodebase $B$G;XDj$5$l$?%3!<%I%Y!<%9%Q%9$+$i%m!<%I$G$-$k(B className$B!"%*%V%8%'%/%H5-=R;R$r9=C[$7$^$9!#BP>]$H$J$k%*%V%8%'%/%H$O!"%/%i%9$,!"$*$h$S@0Ns2=$5$l$?7A<0$N=i4|2=>pJs$,(B data $B$G$"$k%*%V%8%'%/%H$G$9!#$3$N7A<0$N%3%s%9%H%i%/%?$,;HMQ$5$l$k>l9g!"%*%V%8%'%/%H$N%0%k!<%W<1JL;R$O!"%G%U%)%k%H$G$=$N(B JVM $B$N(B ActivationGroup $B$N8=:_$N<1JL;R$K$J$j$^$9!#F1$8(B ActivationGroupID $B$r;}$D%*%V%8%'%/%H$O!"$9$Y$FF1$8(B JVM $BFb$G5/F0$5$l$^$9!#8=:_$N%0%k!<%W$,%"%/%F%#%V$G$J$$>l9g!"$^$?$O%G%U%)%k%H%0%k!<%W$,:n@.$G$-$J$$>l9g$O!"(BActivationException $B$,%9%m!<$5$l$^$9!#(BgroupID $B$,(B null $B$N>l9g$O!"(BIllegalArgumentException $B$,%9%m!<$5$l$^$9!#(B


$BCm(B - $B$=$N(B JVM $B$N(B ActivationGroup $B$,8=:_%"%/%F%#%V$G$J$$>l9g$O!"(BActivationDesc $B:n@.$NI{:nMQ$H$7$F%G%U%)%k%H$N(B ActivationGroup $B$,:n@.$5$l$^$9!#%G%U%)%k%H$N5/F0%0%k!<%W$O!"%;%-%e%j%F%#%^%M!<%8%c$H$7$F(B java.lang.SecurityManager $B$r;HMQ$7!":F5/F0$N:]$O!"5/F0$5$l$?%0%k!<%W$N(B JVM $B$N%W%m%Q%F%#$r!"$=$N(B JVM $B$N8=:_$N%W%m%Q%F%#$K@_Dj$7$^$9!#JL$N%;%-%e%j%F%#%^%M!<%8%c$,I,MW$J>l9g$O!"%G%U%)%k%H$N(B ActivationDesc $B$r:n@.$9$kA0$K(B JVM $B$N5/F0%0%k!<%W$r@_Dj$9$kI,MW$,$"$j$^$9!#(BJVM $B$N(B ActivationGroup $B$r:n@.$9$kJ}K!$N>\:Y$O!"(BActivationGroup.createGroup $B%a%=%C%I$r;2>H$7$F$/$@$5$$!#(B
ActivationDesc $B$N(B 2 $B$DL\$N%3%s%9%H%i%/%?$O!"(B1 $B$DL\$N%3%s%9%H%i%/%?$HF1$8$h$&$K$7$F%*%V%8%'%/%H5-=R;R$r9=C[$7$^$9$,!"%Q%i%a!<%?(B restart $B$b;XDj$9$kI,MW$,$"$j$^$9!#%*%V%8%'%/%H$N!V:F5/F0%5!<%S%9!W$rI,MW$H$9$k>l9g!"$D$^$j!"%"%/%F%#%Y!<%?$N:F5/F0;~$K%*%V%8%'%/%H$,<+F0E*$K:F5/F0$5$l$k$h$&$K$9$k$K$O(B ($BI,MW$J$H$-$K(B $BCY1d5/F0$9$k$N$H$OH?BP(B)$B!"(Brestart $B$K(B true $B$r;XDj$7$^$9!#(Brestart $B$K(B false $B$r;XDj$9$k$H!"%*%V%8%'%/%H$OI,MW$J$H$-$K$N$_%j%b!<%H%a%=%C%I8F$S=P$7$K$h$j5/F0$5$l$^$9!#(B

ActivationDesc $B$N(B 3 $B$DL\$N%3%s%9%H%i%/%?$O!"%0%k!<%W<1JL;R$,(B groupID $B$G!"%/%i%9L>$,!"(Bcodebase $B$G;XDj$5$l$?%3!<%I%Y!<%9%Q%9$+$i%m!<%I$G$-$k(B className$B!"$*$h$S=i4|2=>pJs$,(B data $B$G$"$k%*%V%8%'%/%H$N%*%V%8%'%/%H5-=R;R$r9=C[$7$^$9!#F1$8(B groupID $B$r;}$D%*%V%8%'%/%H$O!"$9$Y$FF1$8(B JVM $BFb$G5/F0$5$l$^$9!#(B

ActivationDesc $B$N(B 4 $B$DL\$N%3%s%9%H%i%/%?$O!"(B3 $B$DL\$N%3%s%9%H%i%/%?$HF1$8$h$&$K$7$F%*%V%8%'%/%H5-=R;R$r9=C[$7$^$9$,!":F5/F0%b!<%I$r;XDj$G$-$k$h$&$K$J$C$F$$$^$9!#A0=R$7$?%*%V%8%'%/%H$N:F5/F0%5!<%S%9$,I,MW$J>l9g$O!"(Brestart $B$K(B true $B$r;XDj$7$^$9!#(B

getGroupID $B%a%=%C%I$O!"5-=R;R$G;XDj$5$l$?%*%V%8%'%/%H$N%0%k!<%W<1JL;R$rJV$7$^$9!#%0%k!<%W$O!"J#?t$N%*%V%8%'%/%H$r(B 1 $B$D$N(B Java Virtual Machine $B$K$^$H$a$kLr3d$r2L$?$7$^$9!#(B

getClassName $B%a%=%C%I$O!"5/F05-=R;R$G;XDj$5$l$?%*%V%8%'%/%H$N%/%i%9L>$rJV$7$^$9!#(B

getLocation $B%a%=%C%I$O!"%*%V%8%'%/%H$N%/%i%9$N%@%&%s%m!<%I85$H$J$k%3!<%I%Y!<%9%Q%9$rJV$7$^$9!#(B

getData $B%a%=%C%I$O!"5-=R;R$G;XDj$5$l$?%*%V%8%'%/%H$N=i4|2=(B ($B5/F0(B) $B%G!<%?$,4^$^$l$k!V@0Ns2=$5$l$?%*%V%8%'%/%H!W$rJV$7$^$9!#(B

getRestartMode $B%a%=%C%I$O!"$3$N%*%V%8%'%/%H$N:F5/F0%b!<%I$,M-8z$K$J$C$F$$$k>l9g$O(B true $B$rJV$7!"L58z$K$J$C$F$$$k>l9g$O(B false $B$rJV$7$^$9!#(B


7.3.2 ActivationID $B%/%i%9(B

$B5/F0%W%m%H%3%k$G$O!"5/F02DG=$J%j%b!<%H%*%V%8%'%/%H$r5/F0<1JL;R$K$h$jI=$7$^$9!#5/F0<1JL;R(B (ActivationID $B%/%i%9$N%$%s%9%?%s%9(B) $B$K$O!"%*%V%8%'%/%H$r5/F0$9$k$?$a$KI,MW$JpJs$,4^$^$l$F$$$^$9!#(B

$B%*%V%8%'%/%H$N5/F0<1JL;R$O!"%*%V%8%'%/%H$r5/F0%7%9%F%`$KEPO?$9$k$3$H$G

package java.rmi.activation;

public class ActivationID implements java.io.Serializable { public ActivationID(Activator activator); public Remote activate(boolean force) throws ActivationException, UnknownObjectException, java.rmi.RemoteException; public boolean equals(Object obj); public int hashCode(); }

ActivationID $B$N%3%s%9%H%i%/%?$O!"(Bactivator $B$H$$$&0z?t$@$1$r$H$j$^$9!#(B $B$3$N0z?t$K$O!"$3$N5/F0<1JL;R$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r5/F0$9$k%"%/%F%#%Y!<%?$X$N%j%b!<%H;2>H$r;XDj$7$^$9!#(BActivationID $B$N%$%s%9%?%s%9$O!"Bg0hE*$K0l0U$K$J$j$^$9!#(B

activate $B%a%=%C%I$O!"5/F0<1JL;R$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r5/F0$7$^$9!#(Bforce $B%Q%i%a!<%?$K(B true $B$r;XDj$9$k$H!"%-%c%C%7%e$5$l$F$$$k%j%b!<%H%*%V%8%'%/%H$N;2>H$O8E$$;2>H$G$"$k$H8+$J$5$l!"%*%V%8%'%/%H$N5/F0;~$K$O%0%k!<%W$X$NLd$$9g$o$;$,6/@)E*$K9T$o$l$^$9!#(Bforce $B$K(B false $B$r;XDj$9$k$H!"%-%c%C%7%e$5$l$?CM$,;HMQ$5$l$^$9!#5/F0$K<:GT$7$?>l9g$O!"(BActivationException $B$,%9%m!<$5$l$^$9!#%*%V%8%'%/%H<1JL;R$,%"%/%F%#%Y!<%?$,CN$i$J$$<1JL;R$G$"$k>l9g!"(Bactivate $B%a%=%C%I$O(B UnknownObjectException $B$r%9%m!<$7$^$9!#%"%/%F%#%Y!<%?$N%j%b!<%H8F$S=P$7$,<:GT$7$?>l9g$O!"(BRemoteException $B$,%9%m!<$5$l$^$9!#(B

equals $B%a%=%C%I$O!"FbMF$,Ey$7$$$+$I$&$+$r%A%'%C%/$9$k%a%=%C%I$G$9!#$3$N%a%=%C%I$O!"$9$Y$F$N%U%#!<%k%I$,Ey2A(B ($B3F%U%#!<%k%I$N(B Object.equals $B$N%;%^%s%F%#%/%9$K>H$i$79g$o$;$FF10l$^$?$OEy2A(B) $B$G$"$k>l9g$O(B true $B$rJV$7$^$9!#(Bp1 $B$H(B p2 $B$,(B ActivationID $B%/%i%9$N%$%s%9%?%s%9$G$"$k$H$9$k$H!"(Bp1.equals(p2) $B$,(B true $B$rJV$9>l9g$O!"(BhashCode $B%a%=%C%I$OF1$8CM$rJV$7$^$9!#(B


7.3.3 Activatable $B%/%i%9(B

Activatable $B%/%i%9$O!";}B3E*%"%/%;%9$rI,MW$H$9$k!"%7%9%F%`$K$h$j5/F02DG=$J%j%b!<%H%*%V%8%'%/%H$r07$&$?$a$N%5%]!<%H$rDs6!$7$^$9!#(BActivatable $B%/%i%9$O!"5/F02DG=%*%V%8%'%/%H$Nrmid $B$rF0:n$5$;$F$*$/I,MW$,$"$j$^$9!#(B

package java.rmi.activation;

public abstract class Activatable extends java.rmi.server.RemoteServer { protected Activatable(String codebase, java.rmi.MarshalledObject data, boolean restart, int port) throws ActivationException, java.rmi.RemoteException; protected Activatable(String codebase, java.rmi.MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, java.rmi.RemoteException; protected Activatable(ActivationID id, int port) throws java.rmi.RemoteException; protected Activatable(ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws java.rmi.RemoteException; protected ActivationID getID(); public static Remote register(ActivationDesc desc) throws UnknownGroupException, ActivationException, java.rmi.RemoteException; public static boolean inactive(ActivationID id) throws UnknownObjectException, ActivationException, java.rmi.RemoteException; public static void unregister(ActivationID id) throws UnknownObjectException, ActivationException, java.rmi.RemoteException; public static ActivationID exportObject(Remote obj, String codebase, MarshalledObject data, boolean restart, int port) throws ActivationException, java.rmi.RemoteException; public static ActivationID exportObject(Remote obj, String codebase, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, java.rmi.RemoteException; public static Remote exportObject(Remote obj, ActivationID id, int port) throws java.rmi.RemoteException; public static Remote exportObject(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws java.rmi.RemoteException; public static boolean unexportObject(Remote obj, boolean force) throws java.rmi.NoSuchObjectException; }

$B5/F02DG=%j%b!<%H%*%V%8%'%/%H$NActivatable $B%/%i%9$r(B extends $B@a$G3HD%$7$F$$$F$b$7$F$$$J$/$F$b$+$^$$$^$;$s!#(BActivatable $B%/%i%9$r3HD%$7$?>l9g!"%j%b!<%H%*%V%8%'%/%H$Njava.rmi.server.RemoteObject $B$+$iE,@Z$J(B hashCode $B%a%=%C%I$H(B equals $B%a%=%C%I$NDj5A$,7Q>5$5$l$^$9!#$7$?$,$C$F!"F10l$N(B Activatable $B%j%b!<%H%*%V%8%'%/%H$rD4$Y$k(B 2 $B$D$N%j%b!<%H%*%V%8%'%/%H;2>H$OEy2A$K$J$j$^$9(B (equals $B%a%=%C%I$,(B true $B$rJV$9(B)$B!#$^$?!"(BActivatable $B%/%i%9$N%$%s%9%?%s%9$O!"$=$NE,@Z$J%9%?%V%*%V%8%'%/%H$HEy$7$/$J$j$^$9!#(B $B$?$H$($P!"(BObject.equals $B%a%=%C%I$r!"$=$N0z?t$K%*%V%8%'%/%H$Ntrue $B$,JV$5$l$^$9(B ($B5U$N>l9g$bF1MM(B)$B!#(B


Activatable $B%/%i%9%a%=%C%I(B

Activatable $B%/%i%9$N(B 1 $B$DL\$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H$NEPO?$H;XDj$5$l$?%]!<%H(B port $B$G$N%*%V%8%'%/%H$N%(%/%9%]!<%H$K;HMQ$7$^$9!#(B port $B$K%<%m$r;XDj$7$?>l9g$OF?L>%]!<%H$,A*$P$l$^$9!#(Bcodebase $B$K$O!"%*%V%8%'%/%H$N%/%i%9%3!<%I$N%@%&%s%m!<%I85$H$J$k(B URL $B%Q%9$r;XDj$7!"(Bdata $B$K$O$=$N=i4|2=%G!<%?$r;XDj$7$^$9!#(Brestart $B$K(B true $B$r;XDj$9$k$H!"%"%/%F%#%Y!<%?$,:F5/F0$7!"$+$D%0%k!<%W$,%/%i%C%7%e$7$?>l9g$K!"%*%V%8%'%/%H$,<+F0E*$K:F5/F0$5$l$k$h$&$K$J$j$^$9!#(Brestart $B$K(B false $B$r;XDj$9$k$H!"%*%V%8%'%/%H$OI,MW$J$H$-$K$N$_%j%b!<%H%a%=%C%I8F$S=P$7$K$h$j5/F0$5$l$k$h$&$K$J$j$^$9!#(B

$B$3$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H$r!V:G=i$N!W9=C[;~$KEPO?$*$h$S%(%/%9%]!<%H$9$k$?$a!"(BActivatable $B%/%i%9$N6q>]%5%V%/%i%9$+$i8F$S=P$5$J$1$l$P$J$j$^$;$s!#5/F02DG=%*%V%8%'%/%H9=C[$NI{:nMQ$H$7$F!"%/%i%$%"%s%H$+$i$N8F$S=P$7$K1~$8$i$l$k$h$&$K!"%j%b!<%H%*%V%8%'%/%H$,5/F0%7%9%F%`$K!VEPO?!W$5$l$k$HF1;~$K(B RMI $B%i%s%?%$%`$K!V%(%/%9%]!<%H!W$5$l$^$9(B (port $B$K%<%m$r;XDj$7$?>l9g$OF?L>%]!<%H$G(B)$B!#(B

$B$3$N%3%s%9%H%i%/%?$O!"5/F0%7%9%F%`$X$N%*%V%8%'%/%H$NEPO?$,<:GT$7$?>l9g$O(B ActivationException $B$r%9%m!<$7$^$9!#(BRMI $B%i%s%?%$%`$X$N%*%V%8%'%/%H$N%(%/%9%]!<%H$,<:GT$7$?>l9g$O(B RemoteException $B$r%9%m!<$7$^$9!#(B

2 $B$DL\$N%3%s%9%H%i%/%?$O!"(BActivatable $B$N:G=i$N%3%s%9%H%i%/%?$HF1$8$G$9$,!"$3$N5/F02DG=%*%V%8%'%/%H$H$N$d$j$H$j$K;HMQ$9$k%/%i%$%"%s%H%=%1%C%H%U%!%/%H%j$H%5!<%P%=%1%C%H%U%!%/%H%j$r;XDj$G$-$k$h$&$K$J$C$F$$$^$9!#>\:Y$O!"(B$B!V(BRMI $B%=%1%C%H%U%!%/%H%j!W(B$B$K4X$9$k@a$r;2>H$7$F$/$@$5$$!#(B

3 $B$DL\$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H$N5/F0$H;XDj$5$l$?%]!<%H(B port $B$G$N%*%V%8%'%/%H$N%(%/%9%]!<%H(B (ActivationID id $B$r;HMQ(B) $B$K;HMQ$7$^$9!#$3$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H<+?H$,!"Activatable $B%/%i%9$N6q>]%5%V%/%i%9$+$i8F$S=P$5$J$1$l$P$J$j$^$;$s!#(B

$B9=C[$NI{:nMQ$H$7$F!"%j%b!<%H%*%V%8%'%/%H$O;XDj$5$l$?%]!<%H(B port $B$G(B RMI $B%i%s%?%$%`$K!V%(%/%9%]!<%H!W$5$l!"%/%i%$%"%s%H$+$i$N8F$S=P$7$K1~$8$i$l$k$h$&$K$J$j$^$9!#$3$N%3%s%9%H%i%/%?$O!"(BRMI $B%i%s%?%$%`$X$N%*%V%8%'%/%H$N%(%/%9%]!<%H$,<:GT$7$?>l9g$O(B RemoteException $B$r%9%m!<$7$^$9!#(B

4 $B$DL\$N%3%s%9%H%i%/%?$O(B 3 $B$DL\$N%3%s%9%H%i%/%?$HF1$8$G$9$,!"$3$N5/F02DG=%*%V%8%'%/%H$H$N$d$j$H$j$K;HMQ$9$k%/%i%$%"%s%H%=%1%C%H%U%!%/%H%j$H%5!<%P%=%1%C%H%U%!%/%H%j$r;XDj$G$-$k$h$&$K$J$C$F$$$^$9!#(B

getID $B%a%=%C%I$O!"%*%V%8%'%/%H$N5/F0<1JL;R$rJV$7$^$9!#$3$N%a%=%C%I$O!"%5%V%/%i%9$@$1$,%*%V%8%'%/%H$N<1JL;R$rl9g!"$^$?$O%*%V%8%'%/%H$N5/F05-=R;R$NEPO?$r2r=|$9$k>l9g$K;HMQ$7$^$9!#(B

register $B%a%=%C%I$O!"5/F02DG=%j%b!<%H%*%V%8%'%/%H$rI,MW$J$H$-$K5/F0$G$-$k$h$&$K!"$=$N%*%V%8%'%/%H5-=R;R(B desc $B$r5/F0%7%9%F%`$KEPO?$7$^$9!#$3$N%a%=%C%I$r;HMQ$9$k$N$O!"5/F02DG=%*%V%8%'%/%H$r!";vA0$K:n@.$7$J$$$GEPO?$9$k$H$-$G$9!#$3$N%a%=%C%I$O!"5/F02DG=%*%V%8%'%/%H$r$"$H$GJ]B8$7$?$j8F$S=P$7$?$j$G$-$k$h$&$K!"$=$N(B Remote $B%9%?%V$rJV$7$^$9!#(B $B$3$N7k2L!"5/F02DG=%*%V%8%'%/%H$O!"$O$8$a$K6/@)E*$K:n@.$^$?$O5/F0$5$l$^$9!#(Bdesc $B$N%0%k!<%W<1JL;R$,5/F0%7%9%F%`$KEPO?$5$l$F$$$J$$>l9g$O!"$3$N%a%=%C%I$O(B UnknownGroupException $B$r%9%m!<$7$^$9!#5/F0%7%9%F%`$N$,F0:n$7$F$$$J$$>l9g$O(B ActivationException $B$r%9%m!<$7$^$9!#$^$?!"5/F0%7%9%F%`$N%j%b!<%H8F$S=P$7$,<:GT$7$?>l9g$O(B RemoteException $B$r%9%m!<$7$^$9!#(B

inactive $B%a%=%C%I$O!";XDj$7$?5/F0(B id $B$r;}$D%*%V%8%'%/%H$,8=:_%"%/%F%#%V$G$J$$$3$H$r%7%9%F%`$KCN$i$;$k$?$a$K;HMQ$7$^$9!#8=;~E@$G%"%/%F%#%V$H$5$l$F$$$k%*%V%8%'%/%H$O!"%/%i%$%"%s%H$+$i$N8F$S=P$7$ruBV$N8F$S=P$7$dl9g$@$1(B)$B!#$^$?!"$3$N%a%=%C%I$r8F$S=P$9$H!"$3$N(B JVM $B$N(B ActivationGroup $B$K$b%*%V%8%'%/%H$,%"%/%F%#%V$G$J$$$3$H$,CN$i$5$l!"$3$l$rActivationGroup $B$O!"$=$N(B ActivationMonitor $B$K%*%V%8%'%/%H$,%"%/%F%#%V$G$J$$$3$H$rCN$i$;$^$9!#$3$N%a%=%C%I$N8F$S=P$7$,@.8y$7$?>l9g!"$=$l0J9_!"%"%/%F%#%Y!<%?$KBP$7$F5/F0MW5a$,$"$k$H!"%*%V%8%'%/%H$O:FEY5/F0$5$l$^$9!#(Binactive $B%a%=%C%I$O!"%*%V%8%'%/%H$N%"%s%(%/%9%]!<%H$K@.8y$7$?>l9g!"$D$^$j!"J]N1>uBV$N8F$S=P$7$dl9g$O(B true $B$rJV$7!"J]N1>uBV$N8F$S=P$7$dl9g$O(B false $B$rJV$7$^$9!#;XDj$7$?%*%V%8%'%/%H$,%"%/%F%#%Y!<%?$,CN$i$J$$%*%V%8%'%/%H$G$"$k>l9g!"$3$N%a%=%C%I$O(B UnknownObjectException $B$r%9%m!<$7$^$9(B ($B$9$G$K%"%/%F%#%V$G$J$/$J$C$F$$$k2DG=@-$"$j(B)$B!#(B $B%0%k!<%W$,%"%/%F%#%V$G$J$$>l9g$O(B ActivationException $B$r%9%m!<$7$^$9!#(B $B%b%K%?$K%*%V%8%'%/%H$,%"%/%F%#%V$G$J$$$3$H$rCN$i$;$k$N$K<:GT$7$?>l9g$O(B RemoteException $B$r%9%m!<$7$^$9!#%*%V%8%'%/%H$,%"%/%F%#%V$G$"$k$H8+$i$l$k>l9g$G$"$C$F$b!"$9$G$K%"%s%(%/%9%]!<%H$5$l$F$$$k>l9g$O!"$3$N%a%=%C%I$N8F$S=P$7$O@.8y$9$k$3$H$,$"$j$^$9!#(B

unregister $B%a%=%C%I$O!"(Bid $B$K4XO"IU$1$i$l$?5/F05-=R;R$NEPO?$r2r=|$7$^$9!#$3$N7k2L!"%*%V%8%'%/%H$O$=$N(B id $B$G5/F0$G$-$J$/$J$j$^$9!#%*%V%8%'%/%H(B id $B$,5/F0%7%9%F%`$NCN$i$J$$<1JL;R$G$"$k>l9g$O!"(BUnknownObjectException $B$,%9%m!<$5$l$^$9!#5/F0%7%9%F%`$,F0:n$7$F$$$J$$>l9g$O!"(BActivationException $B$,%9%m!<$5$l$^$9!#5/F0%7%9%F%`$N%j%b!<%H8F$S=P$7$,<:GT$7$?>l9g$O!"(BRemoteException $B$,%9%m!<$5$l$^$9!# $B(B $B

$B%(%/%9%]!<%H$5$l$?%*%V%8%'%/%H$O!"(BRMI $B8F$S=P$7$r $B$3$N(B exportObject $B%a%=%C%I$O!"5/F05-=R;R(B desc $B$r5/F0%7%9%F%`$KEPO?$9$k$3$H$GF@$?5/F0<1JL;R$rJV$7$^$9!#5/F0%0%k!<%W$,(B JVM $B$G%"%/%F%#%V$K$J$C$F$$$J$$>l9g$O!"(BActivationException $B$,%9%m!<$5$l$^$9!#%*%V%8%'%/%H$NEPO?$^$?$O%(%/%9%]!<%H$,<:GT$7$?>l9g$O!"(BRemoteException $B$,%9%m!<$5$l$^$9!#(B

obj $B$,(B extends $B@a$G(B Activatable $B$r3HD%$7$F$$$k>l9g$O!"(BActivatable $B$N(B 1 $B$DL\$N%3%s%9%H%i%/%?$,$3$N%a%=%C%I$r8F$S=P$9$?$a!"$3$N%a%=%C%I$r8F$S=P$9I,MW$O$"$j$^$;$s!#(B

2 $B$DL\$N(B exportObject $B%a%=%C%I$O!"(B1 $B$DL\$N(B exportObject $B%a%=%C%I$HF1$8$G$9$,!"5/F02DG=%*%V%8%'%/%H$H$N$d$j$H$j$K;HMQ$9$k%/%i%$%"%s%H%=%1%C%H%U%!%/%H%j$H%5!<%P%=%1%C%H%U%!%/%H%j$r;XDj$G$-$k$h$&$K$J$C$F$$$^$9!#(B

3 $B$DL\$N(B exportObject $B%a%=%C%I$O!"<1JL;R(B id $B$r;}$D!V5/F02DG=!W%j%b!<%H%*%V%8%'%/%H(B ($BI,$:$7$b(B Activatable $B7?$G$"$kI,MW$O$J$$(B) $B$r(B RMI $B%i%s%?%$%`$K%(%/%9%]!<%H$7!"%*%V%8%'%/%H(B obj $B$,%/%i%$%"%s%H$+$i$N8F$S=P$7$K1~$8$i$l$k$h$&$K$7$^$9!#(Bport $B$K%<%m$r;XDj$7$?>l9g$O!"%*%V%8%'%/%H$OF?L>%]!<%H$G%(%/%9%]!<%H$5$l$^$9!#(B

$B5/F0Cf!"$3$N(B exportObject $B%a%=%C%I$O!"(Bextend $B@a$G(B Activatable $B%/%i%9$r3HD%$7$F$$$J$$!V5/F02DG=!W%*%V%8%'%/%H$+$iL@<(E*$K8F$S=P$9$h$&$K$9$Y$-$G$9!#(BActivatable $B%/%i%9$r3HD%$7$F$$$k%*%V%8%'%/%H$N>l9g$O!"$3$N%a%=%C%I$rD>@\8F$S=P$9I,MW$O$"$j$^$;$s!#(B $B$3$N>l9g!"$3$N%a%=%C%I$O>e$N(B 3 $B$DL\$N%3%s%9%H%i%/%?(B ($B%5%V%/%i%9$,$=$NFCJL$J5/F0%3%s%9%H%i%/%?$+$i8F$S=P$9%3%s%9%H%i%/%?(B) $B$K$h$j8F$S=P$5$l$^$9!#(B

$B$3$N(B exportObject $B%a%=%C%I$O!"5/F02DG=%*%V%8%'%/%H$N(B Remote $B%9%?%V$rJV$7$^$9!#%*%V%8%'%/%H$N%(%/%9%]!<%H$K<:GT$7$?>l9g$O!"$3$N%a%=%C%I$O(B RemoteException $B$r%9%m!<$7$^$9!#(B

4 $B$DL\$N(B exportObject $B%a%=%C%I$O(B 3 $B$DL\$N(B exportObject $B%a%=%C%I$HF1$8$G$9$,!"$3$N5/F02DG=%*%V%8%'%/%H$H$N$d$j$H$j$K;HMQ$9$k%/%i%$%"%s%H%=%1%C%H%U%!%/%H%j$H%5!<%P%=%1%C%H%U%!%/%H%j$r;XDj$G$-$k$h$&$K$J$C$F$$$^$9!#(B

unexportObject $B%a%=%C%I$r;H$&$H!"Ce8F$,%j%b!<%H%*%V%8%'%/%H(B obj $B$rMxMQ$G$-$J$/$J$j$^$9!#(Bforce $B%Q%i%a!<%?$,(B true $B$N>l9g$O!"$?$H$($=$N%j%b!<%H%*%V%8%'%/%H$KBP$9$kJ]N1Cf$^$?$O?J9TCf$N8F$S=P$7$,$"$k>l9g$G$b!"%*%V%8%'%/%H$O6/@)E*$K%"%s%(%/%9%]!<%H$5$l$^$9!#(Bforce $B%Q%i%a!<%?$K(B false $B$r;XDj$9$k$H!"J]N1>uBV$N8F$S=P$7$dl9g$K8B$j!"%*%V%8%'%/%H$O%"%s%(%/%9%]!<%H$5$l$^$9!#%*%V%8%'%/%H$,@5>o$K%"%s%(%/%9%]!<%H$5$l$?>l9g$O!"(BRMI $B$N%i%s%?%$%`$K$h$C$F$=$N%*%V%8%'%/%H$,FbIt%F!<%V%k$+$i:o=|$5$l$^$9!#(BRMI $B$+$i6/@)E*$K%*%V%8%'%/%H$r:o=|$9$k$H!"%/%i%$%"%s%H$O$=$N%j%b!<%H%*%V%8%'%/%H$X$N8E$$;2>H$rJ];}$7$?$^$^$K$J$C$F$7$^$&2DG=@-$,$"$j$^$9!#%*%V%8%'%/%H$,;vA0$K(B RMI $B$N%i%s%?%$%`$K%(%/%9%]!<%H$5$l$F$$$J$$>l9g$O!"$3$N%a%=%C%I$O!"(Bjava.rmi.NoSuchObjectException $B$r%9%m!<$7$^$9!#(B


$B5/F02DG=%j%b!<%H%*%V%8%'%/%H$N9=C[(B

$B%*%V%8%'%/%H$r5/F0$G$-$k$h$&$K$9$k$K$O!"!V5/F02DG=!W%*%V%8%'%/%H$NActivatable $B%/%i%9$r3HD%$7$F$$$k$+$I$&$+$K$+$+$o$i$:(B) $B$G!"$=$N5/F0<1JL;R(B (ActivationID $B7?$N$b$N(B) $B$H!"$=$N5/F0%G!<%?(B java.rmi.MarshalledObject ($BEPO?;~$K;HMQ$7$?5/F0<1JL;R$GDs6!$7$?$b$N(B) $B$N(B 2 $B$D$N0z?t$r$H$kFCJL$J(B public $B%3%s%9%H%i%/%?$rDj5A$9$kI,MW$,$"$j$^$9!#5/F0%0%k!<%W$O!"$=$N(B JVM $BFb$G%j%b!<%H%*%V%8%'%/%H$r5/F0$9$k$H$-$K!"$3$NFCJL$J%3%s%9%H%i%/%?$r;HMQ$7$F%j%b!<%H%*%V%8%'%/%H$r9=C[$7$^$9(B ($B>\:Y$O8e=R(B)$B!#%j%b!<%H%*%V%8%'%/%H$NActivatable.inactive $B%a%=%C%I8F$S=P$7$K$h$j%"%/%F%#%V$G$J$/$J$C$?$H$-$K5/F0%0%k!<%W$K$=$l$rCN$i$;$k$3$H$,$G$-$k$h$&$K!"%j%b!<%H%*%V%8%'%/%H$G!"$=$N5/F0<1JL;R$rJ];}$7$F$*$/$3$H$b$G$-$^$9!#(B

Activatable $B$N(B 1 $B$DL\$H(B 2 $B$DL\$N%3%s%9%H%i%/%?$O!"5/F02DG=%*%V%8%'%/%H$NEPO?$H!";XDj$5$l$?%]!<%H(B port $B$G$N%*%V%8%'%/%H$N%(%/%9%]!<%H$NN>J}$K;HMQ$5$l$^$9!#$3$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H$r:G=i$K9=C[$9$k$H$-$K;HMQ$9$Y$-$G$9!#(B 3 $B$DL\$N%3%s%9%H%i%/%?$O!"%*%V%8%'%/%H$r:FEY5/F0$9$k$H$-$K;HMQ$7$^$9!#(B

Activatable $B$N6q>]%5%V%/%i%9$G$O!":G=i$N9=C[;~$K$O(B 1 $B$DL\$^$?$O(B 2 $B$DL\$N%3%s%9%H%i%/%?7A<0$r8F$S=P$7$F!"%*%V%8%'%/%H$NEPO?$H%(%/%9%]!<%H$r9T$&I,MW$,$"$j$^$9!#$3$N%3%s%9%H%i%/%?$O!"$^$:!"%*%V%8%'%/%H$N%/%i%9L>!"%*%V%8%'%/%HMQ$KDs6!$5$l$?(B codebase $B$*$h$S(B data $B$K$h$j5/F05-=R;R(B (ActivationDesc) $B$r:n@.$7$^$9!#(B $B$^$?!"$=$N5/F0%0%k!<%W$O(B JVM $B$N%G%U%)%k%H$N%0%k!<%W$K$J$j$^$9!#ActivationSystem $B$KEPO?$7$^$9!#:G8e$K!"5/F02DG=%*%V%8%'%/%H$rFCDj$N%]!<%H(B port $B$G(B RMI $B%i%s%?%$%`$K%(%/%9%]!<%H$7(B (port $B$K%<%m$r;XDj$7$?>l9g$OF?L>%]!<%H$,A*$P$l$k(B)$B!"%*%V%8%'%/%H$r(B activeObject $B$H$7$F%m!<%+%k$J(B ActivationGroup $B$KJs9p$7$^$9!#EPO?Cf$+%(%/%9%]!<%HCf$K%(%i!<$,H/@8$7$?>l9g$O!"$3$N%3%s%9%H%i%/%?$O(B RemoteException $B$r%9%m!<$7$^$9!#$J$*!"$=$l0J9_!"(Bprotected $B%a%=%C%I(B getID $B$r8F$S=P$9$H%*%V%8%'%/%H$N5/F0<1JL;R$,JV$5$l$k$h$&$K!"%*%V%8%'%/%H$N(B ActivationID ($BEPO?$K$h$j Activatable $B$N(B 3 $B$DL\$N%3%s%9%H%i%/%?7A<0$O!";XDj$5$l$?%]!<%H$G$N%*%V%8%'%/%H$N%(%/%9%]!<%H$K;HMQ$5$l$^$9!#$3$N(B 3 $B$DL\$N%3%s%9%H%i%/%?7A<0$O!"%*%V%8%'%/%H<+?H$,Activatable $B%/%i%9$N6q>]%5%V%/%i%9$+$i8F$S=P$5$J$1$l$P$J$j$^$;$s!#(B

$B$3$N%3%s%9%H%i%/%?$O!"5/F02DG=%*%V%8%'%/%H$rFCDj$N%]!<%H(B port $B$G(B RMI $B%i%s%?%$%`$K%(%/%9%]!<%H$9$k(B (port $B$K%<%m$r;XDj$7$?>l9g$OF?L>%]!<%H$,A*$P$l$k(B) $B$@$1$G!"%*%V%8%'%/%H$,%"%/%F%#%V$G$"$k$3$H$r(B ActivationGroup $B$KCN$i$;$k$3$H$O$7$^$;$s!#(B $B$3$l$O!"$3$N(B ActivationGroup $B$O%*%V%8%'%/%H$r5/F0$7$F$$$k(B ActivationGroup $B$G$"$j!"%*%V%8%'%/%H$,$9$G$K%"%/%F%#%V$K$J$C$F$$$k$3$H$rCN$C$F$$$k$+$i$G$9!#(B

$BServer $B$H!"(Bextends $B@a$G(B Activatable $B$r!V3HD%!W$7$?(B ServerImpl $B$N

package examples;

public interface Server extends java.rmi.Remote {
	public void doImportantStuff()
		throws java.rmi.RemoteException;
}

public class ServerImpl extends Activatable implements Server
{
	// Constructor for initial construction, registration and export
	public ServerImpl(String codebase, MarshalledObject data)
		throws ActivationException, java.rmi.RemoteException
	{
		// register object with activation system, then
		// export on anonymous port
		super(codebase, data, false, 0);
	}

	// Constructor for activation and export; this constructor
	// is called by the ActivationInstantiator.newInstance
	// method during activation in order to construct the object.
	public ServerImpl(ActivationID id, MarshalledObject data)
		throws java.rmi.RemoteException
	{
		// call the superclass's constructor in order to
		// export the object to the RMI runtime.
		super(id, 0);
		// initialize object (using data, for example)
	}

	public void doImportantStuff() { ... }
}
$B%*%V%8%'%/%H$O!"<+J,<+?H$r%(%/%9%]!<%H$9$k@UG$$r;}$A$^$9!#(BActivatable $B$N%3%s%9%H%i%/%?$O!"(BUnicastRemoteObject $B7?$N%i%$%V;2>H$K$h$j%*%V%8%'%/%H$r(B RMI $B%i%s%?%$%`$K!V%(%/%9%]!<%H!W$9$k=hM}$r9T$$$^$9!#(B $B$7$?$,$C$F!"(Bextends $B@a$G(B Activatable $B%/%i%9$r3HD%$7$F$$$k%*%V%8%'%/%H$Nl9g$r=|$$$F!"%*%V%8%'%/%H$rL@<(E*$K%(%/%9%]!<%H$9$kI,MW$O$"$j$^$;$s!#(Bextends $B@a$G(B Activatable $B%/%i%9$r3HD%$7$F$$$J$$%*%V%8%'%/%H$NActivatable.exportObject $B$N$$$:$l$+$r8F$S=P$7$F%*%V%8%'%/%H$rL@<(E*$K%(%/%9%]!<%H$7$J$1$l$P$J$j$^$;$s!#(B

$BServerImpl $B$O(B Activatable $B$G$O$J$/JL$N%/%i%9$r(B extends $B@a$G3HD%$7$F$$$^$9!#(B $B$7$?$,$C$F!"(BServerImpl $B$O!":G=i$N9=C[;~$H5/F0;~$K<+J,<+?H$r%(%/%9%]!<%H$9$k@UG$$rIi$C$F$$$^$9!#$3$N%/%i%9Dj5A$K$O!"(BServerImpl $B$N=i4|2=%3%s%9%H%i%/%?$HFCJL$J!V5/F0!W%3%s%9%H%i%/%?$,$"$j$^$9!#(B $B$=$l$>$l$N%3%s%9%H%i%/%?$NCf$G$O!"%*%V%8%'%/%H$r%(%/%9%]!<%H$9$k$?$a!"=jDj$N8F$S=P$7$r9T$J$C$F$$$^$9!#(B

package examples;

public class ServerImpl extends SomeClass implements Server { // constructor for initial creation public ServerImpl(String codebase, MarshalledObject data) throws ActivationException, java.rmi.RemoteException { // register and export the object Activatable.exportObject(this, codebase, data, false, 0); } // constructor for activation public ServerImpl(ActivationID id, MarshalledObject data) throws java.rmi.RemoteException { // export the object Activatable.exportObject(this, id, 0); } public void doImportantStuff() { ... } }


$B%*%V%8%'%/%H$r:n@.$7$J$$$G5/F05-=R;R$rEPO?$9$k(B

$B5/F02DG=%j%b!<%H%*%V%8%'%/%H$r!"@h$K:n@.$7$J$$$G5/F0%7%9%F%`$KEPO?$9$k$K$O!"$=$N5/F05-=R;R(B (ActivationDesc $B%/%i%9$N%$%s%9%?%s%9(B) $B$r$?$@EPO?$9$k$@$1$G$+$^$$$^$;$s!#5/F05-=R;R$K$O!"I,MW;~$K5/F0%7%9%F%`$,%*%V%8%'%/%H$r5/F0$9$k$N$KI,MW$J$9$Y$F$N>pJs$,4^$^$l$F$$$^$9!#(Bexamples.ServerImpl $B%/%i%9$N%$%s%9%?%s%9$N5/F05-=R;R$O!"JN,$7$F$$$^$9!#(B

Server server;
ActivationDesc desc;
String codebase = "http://zaphod/codebase/";

MarshalledObject data = new MarshalledObject("some data");
desc = new ActivationDesc( "examples.ServerImpl", codebase, data);
server = (Server)Activatable.register(desc);

register $B$N8F$S=P$79T$G$O!"(Bexamples.ServerImpl $B%*%V%8%'%/%H$N%9%?%V$G$"$j!"(Bexamples.ServerImpl $B$GRemote $B%9%?%V$,JV$5$l$^$9!#(B $B$?$H$($P!"$3$N(B Remote $B%9%?%V$G$O%j%b!<%H%$%s%?%U%'!<%9(B Server $B$,server $B$KBeF~$5$l$F$$$k!"$3$N%9%?%V%*%V%8%'%/%H$O!"%j%b!<%H%$%s%?%U%'!<%9(B examples.Server $B$r



$BL\ | $BA0$N9`L\(B | $B
Copyright © 1997-1999 Sun Microsystems, Inc. All Rights Reserved.