public BootstrapHost(String name, Properties props) { super(name, props); Singletons.replace(BootstrapHostService.class, this); try { workerManager = new WorkerManager(); setWorkerManagerAddress(workerManager.getAddress()); notificationManager = new NotificationManager(); setNotificationManagerAddress(notificationManager.getAddress()); statisticsManager = new StatisticsManager(); setStatisticsManagerAddress(statisticsManager.getAddress()); broadcastMessageAgent = new BroadcastMessageAgent(); setBroadcastMessageAgentAddress(broadcastMessageAgent.getAddress()); WorkerGroupFactory.startup(workerManager); initializeCatalogServices(); if (GroupManager.getCoordinationServices().localMemberIsOldestMember()) doGlobalRecovery(); registerMBeans(); } catch (PEException e) { throw new RuntimeException("Failed to start DVE server - " + e.rootCause().getMessage(), e); } catch (Throwable e) { throw new RuntimeException("Failed to start DVE server - " + e.getMessage(), e); } }
@Override protected void close() { unregisterMBeans(); super.close(); // No shutdown methods should throw exceptions as we could do nothing but print it notificationManager.shutdown(); WorkerGroupFactory.shutdown(workerManager); workerManager.shutdown(); statisticsManager.shutdown(); broadcastMessageAgent.shutdown(); }