目次|| Java Remote Method Invocation


8.2 RemoteCallインタフェース

RemoteCallインタフェースは、リモート・オブジェクトのスタブとスケルトンがリモート・オブジェクトへの呼出しを実行するための抽象化です。
注 - Java 2 SDK, Standard Edition, v1.2では、RemoteCallインタフェースは非推奨です。1.2のスタブ・プロトコルは、このインタフェースを使いません。Java 2 SDK, Standard Edition, v1.2では、スタブは、パラメータとしてRemoteCallを必要としない新しいinvokeメソッドを使います。
package java.rmi.server;

import java.io.*;

public interface RemoteCall {
        ObjectOutput getOutputStream() throws IOException;
        void releaseOutputStream() throws IOException;
        ObjectInput getInputStream() throws IOException;
        void releaseInputStream() throws IOException;
        ObjectOutput getResultStream(boolean success)
                throws IOException, StreamCorruptedException;
        void executeCall() throws Exception;
        void done() throws IOException;
}


getOutputStreamメソッドは、スタブが引数を整列化する、またはスケルトンが結果を整列化する先へ出力ストリームを返します。

releaseOutputStreamメソッドは、出力ストリームを解放します。トランスポートによっては、このメソッドはストリーム自体を解放します。

getInputStreamメソッドは、スタブが結果を非整列化する、またはスケルトンが引数を非整列化する先からInputStreamを返します。

releaseInputStreamメソッドは、入力ストリームを解放します。この結果いくつかのトランスポートは、接続の入力側を早期に解放できます。

getResultStreamメソッドは、出力ストリームを返します(呼出しが成功したかどうかを示すヘッダー情報を書き込んだあと)。結果ストリームを得ることができるのは、1回のリモート呼出しに対して1回だけです。successtrueであれば、転送のため整列化される結果は正常終了であり、それ以外の結果は例外になります。StreamCorruptedExceptionは、そのリモート呼出しに対しての結果ストリームがすでに得られている場合にスローされます。

executeCallメソッドは、どのような値が与えられてもその値により呼出しを実行します。

doneメソッドは、リモート呼出しが完了したあとのクリーンアップを許可します。



目次||
Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved.