@Override protected void doOpen() throws Throwable { FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless(); filterChainBuilder.add(new TransportFilter()); filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this)); filterChainBuilder.add(new GrizzlyHandler(getUrl(), this)); TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance(); ThreadPoolConfig config = builder.getWorkerThreadPoolConfig(); config.setPoolName(CLIENT_THREAD_POOL_NAME) .setQueueLimit(-1) .setCorePoolSize(0) .setMaxPoolSize(Integer.MAX_VALUE) .setKeepAliveTime(60L, TimeUnit.SECONDS); builder.setTcpNoDelay(true).setKeepAlive(true) .setConnectionTimeout(getConnectTimeout()) .setIOStrategy(SameThreadIOStrategy.getInstance()); transport = builder.build(); transport.setProcessor(filterChainBuilder.build()); transport.start(); }
@Override protected void doOpen() throws Throwable { FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless(); filterChainBuilder.add(new TransportFilter()); filterChainBuilder.add(new GrizzlyCodecAdapter(getCodec(), getUrl(), this)); filterChainBuilder.add(new GrizzlyHandler(getUrl(), this)); TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance(); ThreadPoolConfig config = builder.getWorkerThreadPoolConfig(); config.setPoolName(SERVER_THREAD_POOL_NAME).setQueueLimit(-1); String threadpool = getUrl().getParameter(Constants.THREADPOOL_KEY, Constants.DEFAULT_THREADPOOL); if (Constants.DEFAULT_THREADPOOL.equals(threadpool)) { int threads = getUrl().getPositiveParameter(Constants.THREADS_KEY, Constants.DEFAULT_THREADS); config.setCorePoolSize(threads).setMaxPoolSize(threads) .setKeepAliveTime(0L, TimeUnit.SECONDS); } else if ("cached".equals(threadpool)) { int threads = getUrl().getPositiveParameter(Constants.THREADS_KEY, Integer.MAX_VALUE); config.setCorePoolSize(0).setMaxPoolSize(threads) .setKeepAliveTime(60L, TimeUnit.SECONDS); } else { throw new IllegalArgumentException("Unsupported threadpool type " + threadpool); } builder.setKeepAlive(true).setReuseAddress(false) .setIOStrategy(SameThreadIOStrategy.getInstance()); transport = builder.build(); transport.setProcessor(filterChainBuilder.build()); transport.bind(getBindAddress()); transport.start(); }
public GrizzlyAsyncHttpProvider(final AsyncHttpClientConfig clientConfig) { this.clientConfig = clientConfig; this.providerConfig = clientConfig.getAsyncHttpProviderConfig() instanceof GrizzlyAsyncHttpProviderConfig ? (GrizzlyAsyncHttpProviderConfig) clientConfig.getAsyncHttpProviderConfig() : new GrizzlyAsyncHttpProviderConfig(); final TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance(); clientTransport = builder.build(); initializeTransport(clientConfig); connectionManager = new ConnectionManager(this, clientTransport, providerConfig); try { clientTransport.start(); } catch (IOException ioe) { throw new RuntimeException(ioe); } }
TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance(); transportBuilder.setReuseAddress(false); transportBuilder.setWorkerThreadPoolConfig(ThreadPoolConfig.defaultConfig()); } else { transportBuilder.setWorkerThreadPoolConfig( ThreadPoolConfig.defaultConfig().setMaxPoolSize(2).setCorePoolSize(2)); transportBuilder.setWorkerThreadPoolConfig(workerThreadPoolConfig); if (sharedTransport) { transportBuilder.setSelectorThreadPoolConfig(ThreadPoolConfig.defaultConfig()); } else { transportBuilder.setSelectorThreadPoolConfig( ThreadPoolConfig.defaultConfig().setMaxPoolSize(1).setCorePoolSize(1)); TCPNIOTransport transport = transportBuilder.build(); transportBuilder.setSelectorThreadPoolConfig(selectorThreadPoolConfig); return transportBuilder.build();
@Override protected TCPNIOTransport newInstance() { final TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance(); builder.setIOStrategy(WorkerThreadIOStrategy.getInstance()); } else { builder.setIOStrategy(SameThreadIOStrategy.getInstance()); useWorkerThreadStrategy ? Math.max(2, cpus / 4) : Math.max(5, (cpus / 2) - 1); builder.setSelectorThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize( selectorThreadCount).setMaxPoolSize(selectorThreadCount).setPoolName( "OpenDJ LDAP SDK Grizzly selector thread")); if (builder.getWorkerThreadPoolConfig() != null) { final String workersStr = System.getProperty("org.forgerock.opendj.transport.workers"); final int workerThreadCount; builder.setWorkerThreadPoolConfig(ThreadPoolConfig.defaultConfig().setCorePoolSize( workerThreadCount).setMaxPoolSize(workerThreadCount).setPoolName( "OpenDJ LDAP SDK Grizzly worker thread")); builder.setLinger(Integer.parseInt(lingerStr)); builder.setTcpNoDelay(Boolean.parseBoolean(tcpNoDelayStr)); builder.setReuseAddress(Boolean.parseBoolean(reuseAddressStr)); final TCPNIOTransport transport = builder.build();
public GrizzlyServerManager(ExecutorService selectorPool, ExecutorService workerPool, ExecutorService idleTimeoutExecutorService, HttpListenerRegistry httpListenerRegistry, TcpServerSocketProperties serverSocketProperties, int selectorCount) { this.httpListenerRegistry = httpListenerRegistry; requestHandlerFilter = new GrizzlyRequestDispatcherFilter(httpListenerRegistry); sslFilterDelegate = new GrizzlyAddressDelegateFilter<>(); httpServerFilterDelegate = new GrizzlyAddressDelegateFilter<>(); FilterChainBuilder serverFilterChainBuilder = FilterChainBuilder.stateless(); serverFilterChainBuilder.add(new TransportFilter()); serverFilterChainBuilder.add(sslFilterDelegate); serverFilterChainBuilder.add(httpServerFilterDelegate); serverFilterChainBuilder.add(requestHandlerFilter); // Initialize Transport executorProvider = new WorkManagerSourceExecutorProvider(); TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance().setOptimizedForMultiplexing(true) .setIOStrategy(new ExecutorPerServerAddressIOStrategy(executorProvider)); configureServerSocketProperties(transportBuilder, serverSocketProperties); transport = transportBuilder.build(); transport .setNIOChannelDistributor(new RoundRobinConnectionDistributor(transport, selectorCount >= MIN_SELECTORS_FOR_DEDICATED_ACCEPTOR, true)); transport.setSelectorRunnersCount(selectorCount); transport.setWorkerThreadPool(workerPool); transport.setKernelThreadPool(selectorPool); // Set filterchain as a Transport Processor transport.setProcessor(serverFilterChainBuilder.build()); this.idleTimeoutExecutorService = idleTimeoutExecutorService; }
TCPNIOTransportBuilder.newInstance(); tcpTransportBuilder.getWorkerThreadPoolConfig(); final TCPNIOTransport transport = tcpTransportBuilder.build();
try { final TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance(); transportBuilder.getWorkerThreadPoolConfig().setMaxPoolSize(1).setCorePoolSize(1); } else { transportBuilder.setWorkerThreadPoolConfig(workerThreadPoolConfig); transportBuilder.getSelectorThreadPoolConfig().setMaxPoolSize(1).setCorePoolSize(1); } else { transportBuilder.setSelectorThreadPoolConfig(selectorThreadPoolConfig); transport = transportBuilder.build();
private static TCPNIOTransport createTransport( final boolean isOptimizedForMultiplexing) { return TCPNIOTransportBuilder .newInstance() .setOptimizedForMultiplexing(isOptimizedForMultiplexing) .build(); }
/** * Starts the server. */ public void start() throws IOException { if (isRunning) { return; } isRunning = true; final FilterChain filterChain = FilterChainBuilder.stateless() .add(new TransportFilter()) .add(new StringFilter(Charsets.UTF8_CHARSET)) .add(new EchoFilter()) .build(); final TCPNIOTransport tcpTransport = TCPNIOTransportBuilder.newInstance() .setProcessor(filterChain) .build(); transport = tcpTransport; tcpTransport.bind(endpointAddress); tcpTransport.start(); }
filterChainBuilder.add(new StringFilter(Charsets.UTF8_CHARSET)); filterChainBuilder.add(serverEchoFilter); TCPNIOTransport transport = TCPNIOTransportBuilder.newInstance() .setIOStrategy(strategy) .setMaxAsyncWriteQueueSizeInBytes(AsyncQueueWriter.UNLIMITED_SIZE) .build(); transport.setProcessor(filterChainBuilder.build());
/** * @see TCPNIOTransport#setLinger(int) * * @return this <code>TCPNIOTransportBuilder</code> */ public TCPNIOTransportBuilder setLinger(int linger) { this.linger = linger; return getThis(); }
private void configureServerSocketProperties(TCPNIOTransportBuilder transportBuilder, TcpServerSocketProperties serverSocketProperties) { if (serverSocketProperties.getKeepAlive() != null) { transportBuilder.setKeepAlive(serverSocketProperties.getKeepAlive()); } if (serverSocketProperties.getLinger() != null) { transportBuilder.setLinger(serverSocketProperties.getLinger()); } if (serverSocketProperties.getReceiveBufferSize() != null) { transportBuilder.setReadBufferSize(serverSocketProperties.getReceiveBufferSize()); } if (serverSocketProperties.getSendBufferSize() != null) { transportBuilder.setWriteBufferSize(serverSocketProperties.getSendBufferSize()); } if (serverSocketProperties.getClientTimeout() != null) { transportBuilder.setClientSocketSoTimeout(serverSocketProperties.getClientTimeout()); } if (serverSocketProperties.getServerTimeout() != null) { transportBuilder.setServerSocketSoTimeout(serverSocketProperties.getServerTimeout()); } transportBuilder.setReuseAddress(serverSocketProperties.getReuseAddress()); transportBuilder.setTcpNoDelay(serverSocketProperties.getSendTcpNoDelay()); transportBuilder.setServerConnectionBackLog(serverSocketProperties.getReceiveBacklog()); }
public static TCPNIOTransportBuilder newInstance() { return new TCPNIOTransportBuilder(TCPNIOTransport.class); }
@Override public NIOTransport get() { return TCPNIOTransportBuilder.newInstance().build(); } }},
TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance(); transportBuilder.setReuseAddress(false); transportBuilder.setWorkerThreadPoolConfig(ThreadPoolConfig.defaultConfig()); } else { transportBuilder.setWorkerThreadPoolConfig( ThreadPoolConfig.defaultConfig().setMaxPoolSize(2).setCorePoolSize(2)); transportBuilder.setWorkerThreadPoolConfig(workerThreadPoolConfig); if (sharedTransport) { transportBuilder.setSelectorThreadPoolConfig(ThreadPoolConfig.defaultConfig()); } else { transportBuilder.setSelectorThreadPoolConfig( ThreadPoolConfig.defaultConfig().setMaxPoolSize(1).setCorePoolSize(1)); TCPNIOTransport transport = transportBuilder.build(); transportBuilder.setSelectorThreadPoolConfig(selectorThreadPoolConfig); return transportBuilder.build();
TCPNIOTransportBuilder transportBuilder = TCPNIOTransportBuilder.newInstance() .setOptimizedForMultiplexing(true) .setIOStrategy(new ExecutorPerServerAddressIOStrategy(executorProvider)); transport = transportBuilder.build();
TCPNIOTransportBuilder.newInstance(); tcpTransportBuilder.getWorkerThreadPoolConfig(); final TCPNIOTransport transport = tcpTransportBuilder.build();
/** * @see TCPNIOTransport#setServerSocketSoTimeout(int) * * @return this <code>TCPNIOTransportBuilder</code> */ public TCPNIOTransportBuilder setServerSocketSoTimeout(int serverSocketSoTimeout) { this.serverSocketSoTimeout = serverSocketSoTimeout; return getThis(); }
transportBuilder.setKeepAlive(serverSocketProperties.getKeepAlive()); transportBuilder.setLinger(serverSocketProperties.getLinger()); transportBuilder.setReuseAddress(serverSocketProperties.getReuseAddress()); transportBuilder.setTcpNoDelay(serverSocketProperties.getSendTcpNoDelay()); transportBuilder.setServerConnectionBackLog(serverSocketProperties.getReceiveBacklog()); transportBuilder.setReadBufferSize(serverSocketProperties.getReceiveBufferSize()); transportBuilder.setWriteBufferSize(serverSocketProperties.getSendBufferSize()); transportBuilder.setServerSocketSoTimeout(serverSocketProperties.getServerTimeout()); transportBuilder.setClientSocketSoTimeout(serverSocketProperties.getTimeout());