📄 superchannelcontrollerdaemon.java.svn-base
字号:
package com.infobank.superchannel.daemon.controller;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.registry.Registry;import java.rmi.server.UnicastRemoteObject;import java.util.UUID;import java.lang.management.*;import org.apache.commons.configuration.Configuration;import org.apache.log4j.Logger;import com.infobank.superchannel.admin.controller.DatabaseCacheController;import com.infobank.superchannel.admin.controller.SuperChannelController;import com.infobank.superchannel.admin.controller.implementation.SuperChannelControllerImpl;import com.infobank.superchannel.admin.monitor.implementation.DatabaseCacheStatusMonitorImpl;import com.infobank.superchannel.daemon.GenericDaemon;import com.infobank.superchannel.daemon.databasecache.DatabaseCacheDaemon;import com.infobank.superchannel.daemon.messagelauncher.MessageLauncherDaemon;import com.infobank.superchannel.pojo.ControllerUserToken;import com.infobank.superchannel.util.DaemonConfiguration;public class SuperChannelControllerDaemon implements GenericDaemon{ private SuperChannelController controller=null; private SuperChannelControllerImpl controllerImpl=null; private static SuperChannelControllerDaemon instance=null; private ControllerUserToken token=new ControllerUserToken(UUID.randomUUID()); private String databaseCacheDaemonJVMArgs=null; private String databaseCacheDaemonMain=DatabaseCacheDaemon.class.getName(); private String messageLauncherDaemonJVMArgs=null; private String messageLauncherDaemonMain=MessageLauncherDaemon.class.getName(); private String classPath=null; private Logger logger=Logger.getLogger(SuperChannelControllerDaemon.class); /** * @param args */ public static void main(String[] args) { instance=new SuperChannelControllerDaemon(); DaemonConfiguration.init(); RuntimeMXBean rtmxBean=ManagementFactory.getRuntimeMXBean(); instance.classPath=rtmxBean.getClassPath(); DaemonConfiguration config=DaemonConfiguration.getInstance(); String endPoint=config.getString("/daemon[@type='SuperChannel']/endpoint/@name"); instance.logger.info("Classpath:"+instance.classPath); long timeout=config.getLong("/daemon[@type='SuperChannel']/security/token/timeout"); try{ instance.controllerImpl=new SuperChannelControllerImpl(instance.token,timeout,instance.classPath); instance.controller=(SuperChannelController)UnicastRemoteObject.exportObject(instance.controllerImpl, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind(endPoint,instance.controller); } catch(RemoteException ex){ ex.printStackTrace(); throw new RuntimeException("fatal error: could not bind controller to registry"); } } public String getState() { try{ return controller.getDatabaseCacheState(token); }catch(RemoteException ex){ return "Stopped"; } } public boolean pause() { try{ return controller.pause(token); }catch(RemoteException ex){ return false; } } public boolean reload() { try{ return controller.reload(token); }catch(RemoteException ex){ return false; } } public boolean restart() { try{ return controller.restart(token); }catch(RemoteException ex){ return false; } } public boolean resume() { try{ return controller.resume(token); }catch(RemoteException ex){ return false; } } public boolean start() { try{ controller.startDatabaseCache(token); return controller.startAllMessageLauncher(token); }catch(RemoteException ex){ return false; } } public boolean stop() { try{ return controller.stop(token); } catch(RemoteException ex){ return false; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -