rmi 서버를 종료했다가 rmi를 실행할 때, 유의할 점이 있다.

실행시, 

처음 실행할 때는 createRegistry를 사용한다.
 LocateRegistry.createRegistry(rmiPort);

rmi 서버를 종료하고 다시 실행할 때는 getRegistry를 사용하면 된다.

코드는 다음과 같다.



 


/**

 * A RMI Server class binds or unbinds <code>NetworkDataBase</code> class.   

 * 

 * @author Kim, Yong Hwan

 * @version 1.0

 * 

 */

public class RMIServer {

/**

* <code>NetworkDataBase</code> object to bind or unbind

*/

private static NetworkDataBase ndb;

/**

* RMI Server port

*/

private static int port;

/**

* Checks if connection is valid

*/

private static boolean isConnected;

/**

* Checks if rmi server is running in first time

*/

private static boolean firstTime = true;

 

    /**

     * Binds the remote RMI database on the specified port.

     * 

     * @param dbLocation 

     *   database file location.

     * @param rmiPort

     *            port on the server.

     * @throws RemoteException

     *            Thrown if the remote database, <code>NetworkDataBase</code> 

     *            class could not be accessed.

     */

    public static void register(String dbLocation, int rmiPort) throws RemoteException {

    Registry registry;

    port = rmiPort;

    ndb = new NetworkDataBase(dbLocation); 

    if (firstTime) {

    registry = LocateRegistry.createRegistry(rmiPort);

    firstTime = false;

    } else {

    registry = LocateRegistry.getRegistry(rmiPort);

    }

        registry.rebind("database", ndb);


        isConnected = true;

    }

    

    /**

     * Unbinds and unexports the remote RMI database 

     * 

     * @throws RemoteException

     *            Thrown if the rmi server is not shutdown.

     */

    public static void exit() throws RemoteException {

    try {

Naming.unbind("rmi://127.0.0.1:" + port + "/database");

} catch (Exception e){

throw new RemoteException(e.getMessage());

}

        ndb = null;

        port = 0;

        isConnected = false;

    }

    

    /**

     * Gets if connection is valid;

     * @return return true, if connection is alive. Otherwise return false.

     */

    public static boolean isConnected() {

    return isConnected;

    }

}

Posted by 김용환 '김용환'
TAG ,

댓글을 달아 주세요

  1. Favicon of http://www.moncleroutletespain.com/ BlogIcon moncler online 2013.01.04 17:27  댓글주소  수정/삭제  댓글쓰기

    A ce jour, cette vague de décès, http://www.moncleroutletespain.com/ http://www.moncleroutletespain.com/, qui a commencé le soir de la Saint-Sylvestre, http://www.moncleroutletespain.com/ moncler online,?reste inexpliquée, http://www.moncleroutletespain.com/ moncler chaquetas, a indiqué la commission de la chasse et de la pêche de cet Etat du Sud américain. Des tests doivent être pratiqués lundi. La plupart des oiseaux sont des carouges à épaulettes, http://www.moncleroutletespain.com/ moncler, reconnaissables à leurs taches rouges à la base des ailes, http://www.moncleroutletespain.com/ moncler outlet.Selon un quotidien de l'Etat, les oiseaux pourraient avoir été touchés par la grêle en haute altitude. Une autre théorie met en cause les feux d'artifice du Nouvel An qui pourraient avoir surpris les oiseaux en plein vol, http://www.moncleroutletespain.com/ moncler españa. Actu en continu Séisme à Sumatra en Indonésie Actu en continu Intempéries/Colombie : 2010 particulièrement meurtrièreRelated articles:


    http://ragonfly.tistory.com/?page=1 http://ragonfly.tistory.com/?page=1

    http://sunys.tistory.com/39 http://sunys.tistory.com/39