@Override public void stop() { acceptor.dispose(); }
public void stop() { log.info("RTMP Mina Transport stop"); // first we unbind to prevent new connections acceptor.unbind(); // second we shutdown the customized executor, if we used it if (!enableDefaultAcceptor) { executor.shutdownNow(); } // lastly dispose the acceptor without allowing for deadlocks acceptor.dispose(false); // deregister with jmx if (serviceManagerObjectName != null) { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); try { mbs.unregisterMBean(serviceManagerObjectName); } catch (Exception e) { log.warn("Error on jmx unregistration", e); } } }
private static NioSocketAcceptor buildSocketAcceptor() { // Create SocketAcceptor with correct number of processors final int processorCount = JiveGlobals.getIntProperty( "xmpp.processor.count", Runtime.getRuntime().availableProcessors() ); final NioSocketAcceptor socketAcceptor = new NioSocketAcceptor( processorCount ); // Set that it will be possible to bind a socket if there is a connection in the timeout state. socketAcceptor.setReuseAddress( true ); // Set the listen backlog (queue) length. Default is 50. socketAcceptor.setBacklog( JiveGlobals.getIntProperty( "xmpp.socket.backlog", 50 ) ); // Set default (low level) settings for new socket connections final SocketSessionConfig socketSessionConfig = socketAcceptor.getSessionConfig(); //socketSessionConfig.setKeepAlive(); final int receiveBuffer = JiveGlobals.getIntProperty( "xmpp.socket.buffer.receive", -1 ); if ( receiveBuffer > 0 ) { socketSessionConfig.setReceiveBufferSize( receiveBuffer ); } final int sendBuffer = JiveGlobals.getIntProperty( "xmpp.socket.buffer.send", -1 ); if ( sendBuffer > 0 ) { socketSessionConfig.setSendBufferSize( sendBuffer ); } final int linger = JiveGlobals.getIntProperty( "xmpp.socket.linger", -1 ); if ( linger > 0 ) { socketSessionConfig.setSoLinger( linger ); } socketSessionConfig.setTcpNoDelay( JiveGlobals.getBooleanProperty( "xmpp.socket.tcp-nodelay", socketSessionConfig.isTcpNoDelay() ) ); return socketAcceptor; }
acceptor = new NioSocketAcceptor(ioThreads); } else { acceptor = new NioSocketAcceptor(executor, pool); DefaultIoFilterChainBuilder chain = acceptor.getFilterChain(); LoggingFilter logFilter = new LoggingFilter(RTMPMinaTransport.class); acceptor.setCloseOnDeactivation(true); acceptor.setHandler(ioHandler); acceptor.setBacklog(backlog); SocketSessionConfig sessionConf = acceptor.getSessionConfig(); sessionConf.setReuseAddress(true); sessionConf.setTcpNoDelay(tcpNoDelay); sessionConf.setSendBufferSize(sendBufferSize); sessionConf.setReceiveBufferSize(receiveBufferSize); sessionConf.setMaxReadBufferSize(receiveBufferSize); sessionConf.setThroughputCalculationInterval(thoughputCalcInterval); sessionConf.setIdleTime(IdleStatus.BOTH_IDLE, idleTime); sessionConf.setKeepAlive(keepAlive); sessionConf.setTrafficClass(trafficClass);
acceptor = new NioSocketAcceptor(numProcessors); } else { acceptor = new NioSocketAcceptor(); filter.setEnabledProtocols(getFilteredProtocols(sslParameters)); filter.setEnabledCipherSuites(getFilteredCipherSuites(sslParameters)); acceptor.getFilterChain().addFirst("ssl", filter); }); acceptor.setReuseAddress(true); acceptor.getSessionConfig().setReadBufferSize(readBufferSize); acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10); acceptor.setHandler(new MultiportSyslogHandler(maxEventSize, batchSize, getChannelProcessor(), sourceCounter, portHeader, clientIPHeader, clientHostnameHeader, defaultDecoder, portCharsets, keepFields)); acceptor.bind(addr); } catch (IOException ex) { logger.error("Could not bind to address: " + String.valueOf(addr), ex);
final DefaultIoFilterChainBuilder filterChain = socketAcceptor.getFilterChain(); filterChain.addFirst( ConnectionManagerImpl.EXECUTOR_FILTER_NAME, executorFilter ); socketAcceptor.getSessionConfig().setMaxReadBufferSize( configuration.getMaxBufferSize() ); Log.debug( "Throttling read buffer for connections to max={} bytes", configuration.getMaxBufferSize() ); socketAcceptor.setHandler( connectionHandler ); socketAcceptor.bind( new InetSocketAddress( configuration.getBindAddress(), configuration.getPort() ) ); socketAcceptor.unbind(); } finally { socketAcceptor = null;
cli.getOptionValue("loglevel", "INFO"))); NioDatagramAcceptor acceptor = new NioDatagramAcceptor(); final SwitchHandler handler = new SwitchHandler(acceptor); acceptor.setHandler(handler); DefaultIoFilterChainBuilder chain = acceptor.getFilterChain(); LoggingFilter loggingFilter = new LoggingFilter(); loggingFilter.setMessageReceivedLogLevel(LogLevel.TRACE); chain.addLast("logger", loggingFilter); DatagramSessionConfig dcfg = acceptor.getSessionConfig(); dcfg.setReuseAddress(true); acceptor.addListener(new IoServiceListener() { acceptor.bind(bindAddress); + acceptor.getLocalAddress().getPort());
acceptor.setHandler(new DnsProtocolHandler(this, new RecordStore() { @Override public Set<ResourceRecord> getRecords(QuestionRecord question) throws DnsException { ((DatagramSessionConfig) acceptor.getSessionConfig()).setReuseAddress(true); acceptor.bind();
private SocketSessionConfig getSessionConfig() { SocketSessionConfig config = new DefaultSocketSessionConfig(); config.setKeepAlive(true); config.setReuseAddress(true); return config; }
final DefaultIoFilterChainBuilder filterChain = socketAcceptor.getFilterChain(); socketAcceptor.getSessionConfig().setMaxReadBufferSize( configuration.getMaxBufferSize() ); Log.debug( "Throttling read buffer for connections to max={} bytes", configuration.getMaxBufferSize() );
/** {@inheritDoc} */ @Override public void sessionOpened(IoSession session) throws Exception { SocketSessionConfig ssc = (SocketSessionConfig) session.getConfig(); ssc.setTcpNoDelay(true); super.sessionOpened(session); }
/** * {@inheritDoc} */ @Override protected void dispose0() throws Exception { if (connector != null) { connector.dispose(); } }
/** * Creates a new proxy connector. */ public ProxyConnector() { super(new DefaultSocketSessionConfig(), null); }
/** * Creates a new instance. * * @param processor The IoProcessor instance to use */ public NioDatagramConnector(IoProcessor<NioSession> processor) { super(new DefaultDatagramSessionConfig(), processor); }
NioDatagramAcceptor acceptor = new NioDatagramAcceptor(); handler = new SwitchHandler(acceptor); acceptor.setHandler(handler); DefaultIoFilterChainBuilder chain = acceptor.getFilterChain(); LoggingFilter loggingFilter = new LoggingFilter(); loggingFilter.setMessageReceivedLogLevel(LogLevel.TRACE); chain.addLast("logger", loggingFilter); DatagramSessionConfig dcfg = acceptor.getSessionConfig(); dcfg.setReuseAddress(true); acceptor.addListener(new IoServiceListener() { acceptor.bind(bindAddress); + acceptor.getLocalAddress().getPort());
acceptor.setHandler(new DnsProtocolHandler(this, new RecordStore() { @Override public Set<ResourceRecord> getRecords(QuestionRecord question) throws DnsException { ((DatagramSessionConfig) acceptor.getSessionConfig()).setReuseAddress(true); acceptor.bind();
/** * Creates a new proxy connector. * * @param connector Connector used to establish proxy connections. */ public ProxyConnector(final SocketConnector connector) { this(connector, new DefaultSocketSessionConfig(), null); }
/** * Creates a new instance. * * @param executor The executor to use */ public NioDatagramAcceptor(Executor executor) { this(new DefaultDatagramSessionConfig(), executor); }
@Override public void stop() { acceptor.dispose(); }
/** * Creates a new instance. * * @param processorCount The number of IoProcessor instance to create */ public NioDatagramConnector(int processorCount) { super(new DefaultDatagramSessionConfig(), NioProcessor.class, processorCount); }