Application
Configures the operation of the application container.
| Application Container Configuration Options | |
|---|---|
Class Name (String) |
|
| Description | The class name of an Application that will be constructed upon start-up |
| Default | N/A |
| Property | babl.application.class.name |
| API | ApplicationConfig.applicationClassname |
Idle Strategy (String) |
|
| Description | The name of the idle strategy to use when the server is
launched in DETACHED mode
|
| Default | BUSY_SPIN |
| Property | babl.application.idle.strategy |
| API | ApplicationConfig.applicationIdleStrategy |
Session Container
Configures the operation of the server as a whole.
| Session Container Configuration Options | |
|---|---|
Directory (String) |
|
| Description | The working directory for the web-socket server. Monitoring files will be created in this directory |
| Default | $TMP/babl-server |
| Property | babl.server.directory |
| API | SessionContainerConfig.serverDirectory |
Bind Address (String) |
|
| Description | The hostname or IP address that the server will listen on for inbound TCP connections |
| Default | 0.0.0.0 |
| Property | babl.server.bind.address |
| API | SessionContainerConfig.bindAddress |
Listen Port (String) |
|
| Description | The port that the server will listen on for inbound TCP connections |
| Default | 8080 |
| Property | babl.server.listen.port |
| API | SessionContainerConfig.listenPort |
Connection Backlog (int) |
|
| Description | The maximum number of pending connections |
| Default | 20 |
| Property | babl.server.connection.backlog |
| API | SessionContainerConfig.connectionBacklog |
Poll Mode Enabled (boolean) |
|
| Description | Enables poll-mode when the number of active sessions is below a configurable limit |
| Default | false |
| Property | babl.server.poll.mode.enabled |
| API | SessionContainerConfig.pollModeEnabled |
Poll Mode Session Limit (int) |
|
| Description | Receive sockets will be polled as part of the event-loop (rather than using select())
if the active session count is below or at this value
|
| Default | 5 |
| Property | babl.server.poll.mode.session.limit |
| API | SessionContainerConfig.pollModeSessionLimit |
Session Monitoring File Entry Count (int) |
|
| Description | Sets the maximum number of sessions per monitoring file (monitoring files will be created as needed) |
| Default | 4096 |
| Property | babl.server.session.monitoring.entry.count |
| API | SessionContainerConfig.sessionMonitoringFileEntryCount |
Session Poll Limit (int) |
|
| Description | Sets the maximum number of sessions that will be ready for reading per invocation of the server event-loop |
| Default | 200 |
| Property | babl.server.session.poll.limit |
| API | SessionContainerConfig.sessionPollLimit |
Active Session Limit (int) |
|
| Description | Sets the maximum number of sessions for a given container |
| Default | 1000 |
| Property | babl.server.active.session.limit |
| API | SessionContainerConfig.activeSessionLimit |
Connection Validator (String) |
|
| Description | Fully-qualified classname of an implementation of ConnectionValidator |
| Default | AlwaysValidConnectionValidator |
| Property | babl.server.validation.validator |
| API | SessionContainerConfig.connectionValidator |
Validation Timeout Nanos (long) |
|
| Description | Sets the timeout for connections to be validated |
| Default | 10s |
| Property | babl.server.validation.timeout |
| API | SessionContainerConfig.validationTimeoutNanos |
Server Idle Strategy (String) |
|
| Description | Sets the idling strategy used in the Server event-loop. One of BUSY_SPIN,YIELDING,BACK_OFF,SLEEPING.
|
| Default | BUSY_SPIN |
| Property | babl.server.idle.strategy |
| API | SessionContainerConfig.serverIdleStrategy |
Session
Configure per-session settings.
| Session Configuration Options | |
|---|---|
Maximum Buffer Size (int) |
|
| Description | The maximum size, in bytes that the session's send or receive buffer can grow to |
| Default | 32MB |
| Property | babl.session.buffer.max.size |
| API | SessionConfig.maxBufferSize |
Receive Buffer Size (int) |
|
| Description | The initial size, in bytes of the session's receive buffer (used for encoded web socket frames read from the network) |
| Default | 1KB |
| Property | babl.session.buffer.receive.size |
| API | SessionConfig.receiveBufferSize |
Send Buffer Size (int) |
|
| Description | The initial size, in bytes of the session's send buffer (used for web socket frames queued for writing to the network) |
| Default | 1KB |
| Property | babl.session.buffer.send.size |
| API | SessionConfig.sendBufferSize |
Decode Buffer Size (int) |
|
| Description | The initial size, in bytes of the session's decode buffer (used for assembling decoded web socket frames before delivery to the application) |
| Default | 1KB |
| Property | babl.session.buffer.decode.size |
| API | SessionConfig.sessionDecodeBufferSize |
Decode Maximum Buffer Size (int) |
|
| Description | The maximum size, in bytes of the session's decode buffer (used for assembling decoded web socket frames before delivery to the application) |
| Default | 128KB |
| Property | babl.session.buffer.decode.max.size |
| API | SessionConfig.sessionDecodeBufferMaxSize |
Maximum Web Socket Frame Length (int) |
|
| Description | The maximum length, in bytes of the largest acceptable web socket frame |
| Default | 64KB |
| Property | babl.session.frame.max.size |
| API | SessionConfig.maxWebSocketFrameLength |
Ping Send Interval (long) |
|
| Description | The time, in nanoseconds that an idle session will wait before sending a PING frame to
its peer
|
| Default | 5s |
| Property | babl.session.ping.interval |
| API | SessionConfig.pingIntervalNanos |
Pong Response Timeout (long) |
|
| Description | The time, in nanoseconds that a session will wait before a PONG response before closing
|
| Default | 30s |
| Property | babl.session.pong.response.timeout |
| API | SessionConfig.pongResponseTimeoutNanos |
Socket
Configures network socket settings.
| Socket Configuration Options | |
|---|---|
Send Buffer Size (int) |
|
| Description | The size, in bytes of the session's socket send buffer (SO_SND_BUF) |
| Default | 64KB |
| Property | babl.socket.send.buffer.size |
| API | SocketConfig.sendBufferSize |
Receive Buffer Size (int) |
|
| Description | The size, in bytes of the session's socket receive buffer (SO_RCV_BUF) |
| Default | 64KB |
| Property | babl.socket.receive.buffer.size |
| API | SocketConfig.receiveBufferSize |
TCP No Delay Enabled (boolean) |
|
| Description | Indicates whether Nagle's Algorithm should be disabled (SO_TCP_NODELAY) |
| Default | false |
| Property | babl.socket.tcpNoDelay.enabled |
| API | SocketConfig.tcpNoDelay |
Proxy
Configures the operation of the IPC transport between the session container and the application.
Only used when server deployment mode is DETACHED.
| Proxy Configuration Options | |
|---|---|
Server Adapter Poll Fragment Limit (int) |
|
| Description | The maximum number of fragments processed by the server adapter for a single poll call
|
| Default | 50 |
| Property | babl.proxy.server.adapter.poll.limit |
| API | ProxyConfig.serverAdapterPollFragmentLimit |
Application Adapter Poll Fragment Limit (int) |
|
| Description | The maximum number of fragments processed by the application adapter for a single poll
call
|
| Default | 40 |
| Property | babl.proxy.application.adapter.poll.limit |
| API | ProxyConfig.applicationAdapterPollFragmentLimit |
Server Stream Base ID (int) |
|
| Description | The starting stream ID for server instances |
| Default | 6000 |
| Property | babl.proxy.server.stream.base.id |
| API | ProxyConfig.serverStreamBaseId |
Application Stream Base ID (int) |
|
| Description | The starting stream ID for application instances |
| Default | 5000 |
| Property | babl.proxy.application.stream.base.id |
| API | ProxyConfig.applicationStreamBaseId |
Launch Media Driver (boolean) |
|
| Description | Indicates whether an Aeron MediaDriver should be launched for use by proxies |
| Default | false |
| Property | babl.proxy.driver.launch |
| API | ProxyConfig.launchMediaDriver |
Media Driver Directory (String) |
|
| Description | Indicates where the MediaDriver should be launched |
| Default | ${java.io.tmpdir}/proxy-driver |
| Property | babl.proxy.driver.dir |
| API | ProxyConfig.mediaDriverDir |
Performance Mode (String) |
|
| Description | Configures the performance level of the launched MediaDriver |
| Default | PerformanceMode.HIGH |
| Property | babl.performance.mode |
| API | PerformanceConfig.performanceMode |
JVM Settings
For best performance, set the following system properties:
-Djava.lang.Integer.IntegerCache.high=65536-Djava.net.preferIPv4Stack=true-XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields-XX:BiasedLockingStartupDelay=0