protected static void keepAlive()

in commons-jcs3-core/src/main/java/org/apache/commons/jcs3/auxiliary/remote/server/RemoteCacheServerFactory.java [157:223]


    protected static void keepAlive(final String registryHost, final int registryPort, final ICacheEventLogger cacheEventLogger)
    {
        final String namingURL = RemoteUtils.getNamingURL(registryHost, registryPort, serviceName);
        log.debug( "looking up server {0}", namingURL );

        try
        {
            final Object obj = Naming.lookup( namingURL );

            // Successful connection to the remote server.
            final String message = "RMI registry looks fine.  Found [" + obj + "] in registry [" + namingURL + "]";
            if ( cacheEventLogger != null )
            {
                cacheEventLogger.logApplicationEvent( "RegistryKeepAliveRunner", "Naming.lookup", message );
            }
            log.debug( message );
        }
        catch ( final Exception ex )
        {
            // Failed to connect to the remote server.
            final String message = "Problem finding server at [" + namingURL
                + "].  Will attempt to start registry and rebind.";
            log.error( message, ex );
            if ( cacheEventLogger != null )
            {
                cacheEventLogger.logError( "RegistryKeepAliveRunner", "Naming.lookup", message + ":" + ex.getMessage() );
            }

            registry = RemoteUtils.createRegistry(registryPort);

            if ( cacheEventLogger != null )
            {
                if (registry != null)
                {
                    cacheEventLogger.logApplicationEvent( "RegistryKeepAliveRunner", "createRegistry",
                            "Successfully created registry [" + serviceName + "]." );
                }
                else
                {
                    cacheEventLogger.logError( "RegistryKeepAliveRunner", "createRegistry",
                            "Could not start registry [" + serviceName + "]." );
                }
            }
        }

        try
        {
            registerServer(serviceName, remoteCacheServer);

            final String message = "Successfully rebound server to registry [" + serviceName + "].";
            if ( cacheEventLogger != null )
            {
                cacheEventLogger.logApplicationEvent( "RegistryKeepAliveRunner", "registerServer", message );
            }
            log.info( message );
        }
        catch ( final RemoteException e )
        {
            final String message = "Could not rebind server to registry [" + serviceName + "].";
            log.error( message, e );
            if ( cacheEventLogger != null )
            {
                cacheEventLogger.logError( "RegistryKeepAliveRunner", "registerServer", message + ":"
                    + e.getMessage() );
            }
        }
    }