private void shutdown() { client.shutdown(); } }
@Override public DistributedObjectClient createClient(final DSOClientConfigHelper config, final TCThreadGroup threadGroup, final ClassProvider classProvider, final PreparedComponentsFromL2Connection connectionComponents, final Manager manager, final DsoClusterInternal dsoCluster, final TCSecurityManager securityManager, final AbortableOperationManager abortableOperationManager, final RejoinManagerInternal rejoinManager, UUID uuid) { return new DistributedObjectClient(config, threadGroup, classProvider, connectionComponents, manager, dsoCluster, securityManager, abortableOperationManager, rejoinManager, uuid); }
public ClientShutdownManager(ClientObjectManager objectManager, DistributedObjectClient client, PreparedComponentsFromL2Connection connectionComponents, RejoinManager rejoinManager) { this.client = client; this.rejoinManager = rejoinManager; this.rtxManager = client.getRemoteTransactionManager(); this.channel = client.getChannel(); this.handshakeManager = client.getClientHandshakeManager(); this.connectionComponents = connectionComponents; }
public synchronized void start() { rejoinManager.start(); validateSecurityConfig(); validateGroupConfig(); validateClientServerCompatibility(); final StageManager stageManager = getStageManager(); this.dumpHandler.registerForDump(new CallbackDumpAdapter(stageManager)); final ReconnectConfig l1ReconnectConfig = getReconnectPropertiesFromServer(); final NetworkStackHarnessFactory networkStackHarnessFactory = getNetworkStackHarnessFactory(useOOOLayer, l1ReconnectConfig); new HealthCheckerConfigClientImpl(this.l1Properties .getPropertiesFor("healthcheck.l2"), "DSO Client"), getMessageTypeClassMapping(), getMessageTypeFactoryMapping(encoding), ReconnectionRejectedHandlerL1.SINGLETON, securityManager, productId); this.tcMemManager = new TCMemoryManagerImpl(getThreadGroup()); final long timeOut = TCPropertiesImpl.getProperties().getLong(TCPropertiesConsts.LOGGING_LONG_GC_THRESHOLD); final LongGCLogger gcLogger = this.dsoClientBuilder.createLongGCLogger(timeOut); final Stage serverEventDeliveryStage = createServerEventDeliveryStage(stageManager); initChannelMessageRouter(messageRouter, hydrateStage, lockResponse, receiveRootID, receiveObject, receiveTransaction, oidRequestResponse, transactionResponse, batchTxnAckStage, pauseStage, jmxRemoteTunnelStage, clusterMembershipEventStage,
@Override public void execute() throws Throwable { final AbstractClientFactory clientFactory = AbstractClientFactory.getFactory(); ManagerImpl.this.dso = clientFactory.createClient(ManagerImpl.this.config, group, ManagerImpl.this.classProvider, ManagerImpl.this.connectionComponents, ManagerImpl.this, ManagerImpl.this.dsoCluster, ManagerImpl.this.securityManager, ManagerImpl.this.abortableOperationManager, ManagerImpl.this.rejoinManager, uuid); if (forTests) { ManagerImpl.this.dso.setCreateDedicatedMBeanServer(true); } ManagerImpl.this.dso.start(testStartLatch); ManagerImpl.this.objectManager = ManagerImpl.this.dso.getObjectManager(); ManagerImpl.this.txManager = ManagerImpl.this.dso.getTransactionManager(); ManagerImpl.this.lockManager = ManagerImpl.this.dso.getLockManager(); ManagerImpl.this.searchRequestManager = ManagerImpl.this.dso.getSearchRequestManager(); ManagerImpl.this.methodCallManager = ManagerImpl.this.dso.getDmiManager(); ManagerImpl.this.serverEventListenerManager = ManagerImpl.this.dso.getServerEventListenerManager(); ManagerImpl.this.shutdownManager = new ClientShutdownManager(ManagerImpl.this.objectManager, ManagerImpl.this.dso, ManagerImpl.this.connectionComponents, rejoinManager); ManagerImpl.this.dsoCluster.init(ManagerImpl.this.dso.getClusterMetaDataManager(), ManagerImpl.this.objectManager, ManagerImpl.this.dso.getClusterEventsStage()); }
@Override public void execute() throws Throwable { final AbstractClientFactory clientFactory = AbstractClientFactory.getFactory(); final DistributedObjectClient client = clientFactory.createClient(configHelper, group, classProvider, connectionComponents, dsoCluster, securityManager, abortableOperationManager, rejoinManager, uuid, productId); client.start(); dsoCluster.init(client.getClusterMetaDataManager(), client.getObjectManager(), client.getClusterEventsStage()); dsoCluster.addClusterListener(new ClusterEventListener(client.getRemoteTransactionManager())); dsoCluster.addClusterListener(new DsoClusterErrorListener() { @Override public void nodeError(DsoClusterEvent event) { // TAB-6001: close the channel, connection not allowed and client should not be connected to the server client.getChannel().close(); // this client must be restarted to ever connect back to the cluster so shutdown the rejoinManager rejoinManager.shutdown(); } }); clientRef.set(client); } };
getStageManager().stopAll(); } catch (final Throwable t) { logger.error("Error stopping stage manager", t); + "Live threads: " + getLiveThreads(this.threadGroup));
@Override public ClientID getClientID() { return this.dso.getChannel().getClientIDProvider().getClientID(); }
@Override public GroupID[] getGroupIDs() { return this.dso.getGroupIDs(); }
public DistributedObjectClient(final DSOClientConfigHelper config, final TCThreadGroup threadGroup, final ClassProvider classProvider, final PreparedComponentsFromL2Connection connectionComponents, final DsoClusterInternal dsoCluster, final TCSecurityManager securityManager, final AbortableOperationManager abortableOperationManager, final RejoinManagerInternal rejoinManager, UUID uuid, final ProductID productId) { super(threadGroup); this.productId = productId; Assert.assertNotNull(config); this.abortableOperationManager = abortableOperationManager; this.config = config; this.securityManager = securityManager; this.classProvider = classProvider; this.connectionComponents = connectionComponents; this.dsoCluster = dsoCluster; this.threadGroup = threadGroup; this.threadIDMap = new ThreadIDMapImpl(); this.dsoClientBuilder = createClientBuilder(); this.rejoinManager = rejoinManager; this.uuid = uuid; this.taskRunner = Runners.newDefaultCachedScheduledTaskRunner(threadGroup); this.shutdownAction = new Thread(new ShutdownAction(), L1VMShutdownHookName); Runtime.getRuntime().addShutdownHook(this.shutdownAction); }
private void init(final boolean forTests, final CountDownLatch testStartLatch) { resolveClasses(); // call this before starting any threads (SEDA, DistributedMethod call stuff, etc) if (this.startClient) { if (this.clientStarted.attemptSet()) { startClient(forTests, testStartLatch); this.platformService.init(rejoinManager, this.dso.getClientHandshakeManager()); } } }
public synchronized void start() { rejoinManager.start(); validateSecurityConfig(); validateGroupConfig(); validateClientServerCompatibility(); final StageManager stageManager = getStageManager(); this.dumpHandler.registerForDump(new CallbackDumpAdapter(stageManager)); final ReconnectConfig l1ReconnectConfig = getReconnectPropertiesFromServer(); final NetworkStackHarnessFactory networkStackHarnessFactory = getNetworkStackHarnessFactory(useOOOLayer, l1ReconnectConfig); new HealthCheckerConfigClientImpl(this.l1Properties .getPropertiesFor("healthcheck.l2"), "DSO Client"), getMessageTypeClassMapping(), getMessageTypeFactoryMapping(encoding), ReconnectionRejectedHandlerL1.SINGLETON, securityManager, productId); this.tcMemManager = new TCMemoryManagerImpl(getThreadGroup()); final long timeOut = TCPropertiesImpl.getProperties().getLong(TCPropertiesConsts.LOGGING_LONG_GC_THRESHOLD); final LongGCLogger gcLogger = this.dsoClientBuilder.createLongGCLogger(timeOut); final Stage serverEventDeliveryStage = createServerEventDeliveryStage(stageManager); initChannelMessageRouter(messageRouter, hydrateStage, lockResponse, receiveRootID, receiveObject, receiveTransaction, oidRequestResponse, transactionResponse, batchTxnAckStage, pauseStage, jmxRemoteTunnelStage, managementStage, clusterMembershipEventStage, clusterMetaDataStage,
@Override public void execute() throws Throwable { final AbstractClientFactory clientFactory = AbstractClientFactory.getFactory(); ManagerImpl.this.dso = clientFactory.createClient(ManagerImpl.this.config, group, ManagerImpl.this.classProvider, ManagerImpl.this.connectionComponents, ManagerImpl.this, ManagerImpl.this.dsoCluster, ManagerImpl.this.securityManager, ManagerImpl.this.abortableOperationManager, ManagerImpl.this.rejoinManager, uuid, productId); if (forTests) { ManagerImpl.this.dso.setCreateDedicatedMBeanServer(true); } ManagerImpl.this.dso.start(); ManagerImpl.this.objectManager = ManagerImpl.this.dso.getObjectManager(); ManagerImpl.this.txManager = ManagerImpl.this.dso.getTransactionManager(); ManagerImpl.this.lockManager = ManagerImpl.this.dso.getLockManager(); ManagerImpl.this.searchRequestManager = ManagerImpl.this.dso.getSearchRequestManager(); ManagerImpl.this.serverEventListenerManager = ManagerImpl.this.dso.getServerEventListenerManager(); ManagerImpl.this.shutdownManager = new ClientShutdownManager(ManagerImpl.this.objectManager, ManagerImpl.this.dso, ManagerImpl.this.connectionComponents, rejoinManager); ManagerImpl.this.dsoCluster.init(ManagerImpl.this.dso.getClusterMetaDataManager(), ManagerImpl.this.objectManager, ManagerImpl.this.dso.getClusterEventsStage()); ManagerImpl.this.dsoCluster.addClusterListener(new ClusterEventListener(ManagerImpl.this.shutdownManager .getRemoteTransactionManager())); }
getStageManager().stopAll(); } catch (final Throwable t) { logger.error("Error stopping stage manager", t); + "Live threads: " + getLiveThreads(this.threadGroup));
@Override public String getClientID() { return Long.toString(this.dso.getChannel().getClientIDProvider().getClientID().toLong()); }
@Override public GroupID[] getGroupIDs() { return this.dso.getGroupIDs(); }
public DistributedObjectClient(final DSOClientConfigHelper config, final TCThreadGroup threadGroup, final ClassProvider classProvider, final PreparedComponentsFromL2Connection connectionComponents, final Manager manager, final DsoClusterInternal dsoCluster, final TCSecurityManager securityManager, final AbortableOperationManager abortableOperationManager, final RejoinManagerInternal rejoinManager, UUID uuid) { super(threadGroup); Assert.assertNotNull(config); this.abortableOperationManager = abortableOperationManager; this.config = config; this.securityManager = securityManager; this.classProvider = classProvider; this.connectionComponents = connectionComponents; this.manager = manager; this.dsoCluster = dsoCluster; this.threadGroup = threadGroup; this.threadIDMap = new ThreadIDMapImpl(); this.dsoClientBuilder = createClientBuilder(); this.rejoinManager = rejoinManager; this.uuid = uuid; this.taskRunner = manager.getTastRunner(); }
private void init(final boolean forTests) { resolveClasses(); // call this before starting any threads (SEDA, DistributedMethod call stuff, etc) if (this.startClient) { if (this.clientStarted.attemptSet()) { startClient(forTests); this.platformService.init(rejoinManager, this.dso.getClientHandshakeManager()); } } }
public synchronized void start(CountDownLatch testStartLatch) { rejoinManager.start(); validateSecurityConfig(); validateGroupConfig(); final StageManager stageManager = getStageManager(); this.dumpHandler.registerForDump(new CallbackDumpAdapter(stageManager)); final ReconnectConfig l1ReconnectConfig = getReconnectPropertiesFromServer(); final NetworkStackHarnessFactory networkStackHarnessFactory = getNetworkStackHarnessFactory(useOOOLayer, l1ReconnectConfig); new HealthCheckerConfigClientImpl(this.l1Properties .getPropertiesFor("healthcheck.l2"), "DSO Client"), getMessageTypeClassMapping(), getMessageTypeFactoryMapping(encoding), ReconnectionRejectedHandlerL1.SINGLETON, securityManager); final CacheConfig cacheConfig = new CacheConfigImpl(cacheManagerProperties); this.tcMemManager = new TCMemoryManagerImpl( getThreadGroup()); final long timeOut = TCPropertiesImpl.getProperties().getLong(TCPropertiesConsts.LOGGING_LONG_GC_THRESHOLD); final LongGCLogger gcLogger = this.dsoClientBuilder.createLongGCLogger(timeOut); initChannelMessageRouter(messageRouter, hydrateStage, lockResponse, lockStatisticsEnableDisableStage, receiveRootID, receiveObject, receiveTransaction, oidRequestResponse, transactionResponse, batchTxnAckStage, pauseStage, jmxRemoteTunnelStage, clusterMembershipEventStage, openChannel(serverHost, serverPort, maxConnectRetries); waitForHandshake();
public ClientShutdownManager(ClientObjectManager objectManager, DistributedObjectClient client, PreparedComponentsFromL2Connection connectionComponents, RejoinManager rejoinManager) { this.client = client; this.rejoinManager = rejoinManager; this.rtxManager = client.getRemoteTransactionManager(); this.channel = client.getChannel(); this.handshakeManager = client.getClientHandshakeManager(); this.connectionComponents = connectionComponents; }